From 5677271d38eccdcc94507251ea39febc738b8704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Haso=C5=88?= Date: Wed, 16 Jul 2014 10:51:51 +0200 Subject: [PATCH] Removed vendor libraries from repository --- css/.DS_Store | Bin 6148 -> 0 bytes css/bootstrap-slider/slider.css | 166 - .../bootstrap3-wysihtml5.css | 102 - .../bootstrap3-wysihtml5.min.css | 3 - css/bootstrap.css | 7118 --------- css/bootstrap.min.css | 7 - css/colorpicker/bootstrap-colorpicker.css | 214 - css/colorpicker/bootstrap-colorpicker.min.css | 9 - css/datatables/dataTables.bootstrap.css | 223 - css/datatables/images/sort_asc.png | Bin 1118 -> 0 bytes css/datatables/images/sort_asc_disabled.png | Bin 1050 -> 0 bytes css/datatables/images/sort_both.png | Bin 1136 -> 0 bytes css/datatables/images/sort_desc.png | Bin 1127 -> 0 bytes css/datatables/images/sort_desc_disabled.png | Bin 1045 -> 0 bytes css/daterangepicker/daterangepicker-bs3.css | 245 - css/font-awesome.css | 1338 -- css/font-awesome.min.css | 4 - css/fullcalendar/fullcalendar.css | 617 - css/fullcalendar/fullcalendar.print.css | 29 - css/iCheck/.DS_Store | Bin 6148 -> 0 bytes css/iCheck/all.css | 61 - css/iCheck/flat/_all.css | 560 - css/iCheck/flat/aero.css | 56 - css/iCheck/flat/aero.png | Bin 1520 -> 0 bytes css/iCheck/flat/aero@2x.png | Bin 3218 -> 0 bytes css/iCheck/flat/blue.css | 56 - css/iCheck/flat/blue.png | Bin 1518 -> 0 bytes css/iCheck/flat/blue@2x.png | Bin 3217 -> 0 bytes css/iCheck/flat/flat.css | 56 - css/iCheck/flat/flat.png | Bin 1515 -> 0 bytes css/iCheck/flat/flat@2x.png | Bin 3217 -> 0 bytes css/iCheck/flat/green.css | 56 - css/iCheck/flat/green.png | Bin 1444 -> 0 bytes css/iCheck/flat/green@2x.png | Bin 3117 -> 0 bytes css/iCheck/flat/grey.css | 56 - css/iCheck/flat/grey.png | Bin 1516 -> 0 bytes css/iCheck/flat/grey@2x.png | Bin 3217 -> 0 bytes css/iCheck/flat/orange.css | 56 - css/iCheck/flat/orange.png | Bin 1518 -> 0 bytes css/iCheck/flat/orange@2x.png | Bin 3275 -> 0 bytes css/iCheck/flat/pink.css | 56 - css/iCheck/flat/pink.png | Bin 1522 -> 0 bytes css/iCheck/flat/pink@2x.png | Bin 3218 -> 0 bytes css/iCheck/flat/purple.css | 56 - css/iCheck/flat/purple.png | Bin 1519 -> 0 bytes css/iCheck/flat/purple@2x.png | Bin 3218 -> 0 bytes css/iCheck/flat/red.css | 56 - css/iCheck/flat/red.png | Bin 1516 -> 0 bytes css/iCheck/flat/red@2x.png | Bin 3276 -> 0 bytes css/iCheck/flat/yellow.css | 56 - css/iCheck/flat/yellow.png | Bin 1516 -> 0 bytes css/iCheck/flat/yellow@2x.png | Bin 3216 -> 0 bytes css/iCheck/futurico/futurico.css | 56 - css/iCheck/futurico/futurico.png | Bin 1734 -> 0 bytes css/iCheck/futurico/futurico@2x.png | Bin 3446 -> 0 bytes css/iCheck/line/_all.css | 740 - css/iCheck/line/aero.css | 74 - css/iCheck/line/blue.css | 74 - css/iCheck/line/green.css | 74 - css/iCheck/line/grey.css | 74 - css/iCheck/line/line.css | 74 - css/iCheck/line/line.png | Bin 588 -> 0 bytes css/iCheck/line/line@2x.png | Bin 1073 -> 0 bytes css/iCheck/line/orange.css | 74 - css/iCheck/line/pink.css | 74 - css/iCheck/line/purple.css | 74 - css/iCheck/line/red.css | 74 - css/iCheck/line/yellow.css | 74 - css/iCheck/minimal/_all.css | 557 - css/iCheck/minimal/aero.css | 62 - css/iCheck/minimal/aero.png | Bin 1151 -> 0 bytes css/iCheck/minimal/aero@2x.png | Bin 1409 -> 0 bytes css/iCheck/minimal/blue.css | 62 - css/iCheck/minimal/blue.png | Bin 1132 -> 0 bytes css/iCheck/minimal/blue@2x.png | Bin 1410 -> 0 bytes css/iCheck/minimal/green.css | 62 - css/iCheck/minimal/green.png | Bin 1143 -> 0 bytes css/iCheck/minimal/green@2x.png | Bin 1408 -> 0 bytes css/iCheck/minimal/grey.css | 62 - css/iCheck/minimal/grey.png | Bin 1142 -> 0 bytes css/iCheck/minimal/grey@2x.png | Bin 1407 -> 0 bytes css/iCheck/minimal/minimal.css | 62 - css/iCheck/minimal/minimal.png | Bin 1114 -> 0 bytes css/iCheck/minimal/minimal@2x.png | Bin 1410 -> 0 bytes css/iCheck/minimal/orange.css | 62 - css/iCheck/minimal/orange.png | Bin 1139 -> 0 bytes css/iCheck/minimal/orange@2x.png | Bin 1407 -> 0 bytes css/iCheck/minimal/pink.css | 62 - css/iCheck/minimal/pink.png | Bin 1150 -> 0 bytes css/iCheck/minimal/pink@2x.png | Bin 1409 -> 0 bytes css/iCheck/minimal/purple.css | 62 - css/iCheck/minimal/purple.png | Bin 1132 -> 0 bytes css/iCheck/minimal/purple@2x.png | Bin 1409 -> 0 bytes css/iCheck/minimal/red.css | 62 - css/iCheck/minimal/red.png | Bin 1130 -> 0 bytes css/iCheck/minimal/red@2x.png | Bin 1410 -> 0 bytes css/iCheck/minimal/yellow.css | 62 - css/iCheck/minimal/yellow.png | Bin 1135 -> 0 bytes css/iCheck/minimal/yellow@2x.png | Bin 1406 -> 0 bytes css/iCheck/polaris/polaris.css | 62 - css/iCheck/polaris/polaris.png | Bin 6401 -> 0 bytes css/iCheck/polaris/polaris@2x.png | Bin 16760 -> 0 bytes css/iCheck/square/_all.css | 620 - css/iCheck/square/aero.css | 62 - css/iCheck/square/aero.png | Bin 2167 -> 0 bytes css/iCheck/square/aero@2x.png | Bin 4455 -> 0 bytes css/iCheck/square/blue.css | 62 - css/iCheck/square/blue.png | Bin 2185 -> 0 bytes css/iCheck/square/blue@2x.png | Bin 4485 -> 0 bytes css/iCheck/square/green.css | 62 - css/iCheck/square/green.png | Bin 2193 -> 0 bytes css/iCheck/square/green@2x.png | Bin 4498 -> 0 bytes css/iCheck/square/grey.css | 62 - css/iCheck/square/grey.png | Bin 2186 -> 0 bytes css/iCheck/square/grey@2x.png | Bin 4483 -> 0 bytes css/iCheck/square/orange.css | 62 - css/iCheck/square/orange.png | Bin 2181 -> 0 bytes css/iCheck/square/orange@2x.png | Bin 4474 -> 0 bytes css/iCheck/square/pink.css | 62 - css/iCheck/square/pink.png | Bin 2189 -> 0 bytes css/iCheck/square/pink@2x.png | Bin 4479 -> 0 bytes css/iCheck/square/purple.css | 62 - css/iCheck/square/purple.png | Bin 2188 -> 0 bytes css/iCheck/square/purple@2x.png | Bin 4501 -> 0 bytes css/iCheck/square/red.css | 62 - css/iCheck/square/red.png | Bin 2190 -> 0 bytes css/iCheck/square/red@2x.png | Bin 4490 -> 0 bytes css/iCheck/square/square.css | 62 - css/iCheck/square/square.png | Bin 2175 -> 0 bytes css/iCheck/square/square@2x.png | Bin 4478 -> 0 bytes css/iCheck/square/yellow.css | 62 - css/iCheck/square/yellow.png | Bin 2131 -> 0 bytes css/iCheck/square/yellow@2x.png | Bin 4385 -> 0 bytes css/images/animated-overlay.gif | Bin 1738 -> 0 bytes css/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 212 -> 0 bytes css/images/ui-bg_flat_55_fbec88_40x100.png | Bin 206 -> 0 bytes css/images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 336 -> 0 bytes css/images/ui-bg_glass_85_dfeffc_1x400.png | Bin 341 -> 0 bytes css/images/ui-bg_glass_95_fef1ec_1x400.png | Bin 332 -> 0 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 5824 -> 0 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 333 -> 0 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 292 -> 0 bytes css/images/ui-icons_217bc0_256x240.png | Bin 4549 -> 0 bytes css/images/ui-icons_2e83ff_256x240.png | Bin 4549 -> 0 bytes css/images/ui-icons_469bdd_256x240.png | Bin 4549 -> 0 bytes css/images/ui-icons_6da8d5_256x240.png | Bin 4549 -> 0 bytes css/images/ui-icons_cd0a0a_256x240.png | Bin 4549 -> 0 bytes css/images/ui-icons_d8e7f3_256x240.png | Bin 4549 -> 0 bytes css/images/ui-icons_f9bd01_256x240.png | Bin 4549 -> 0 bytes css/ionicons.css | 2183 --- css/ionicons.min.css | 6 - css/ionslider/ion.rangeSlider.css | 126 - css/ionslider/ion.rangeSlider.skinFlat.css | 89 - css/ionslider/ion.rangeSlider.skinNice.css | 85 - css/jQueryUI/images/animated-overlay.gif | Bin 1738 -> 0 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 212 -> 0 bytes .../images/ui-bg_flat_100_e6e7e8_40x100.png | Bin 206 -> 0 bytes .../images/ui-bg_flat_100_f56954_40x100.png | Bin 206 -> 0 bytes .../images/ui-bg_flat_55_f39c12_40x100.png | Bin 206 -> 0 bytes .../images/ui-bg_flat_65_ffffff_40x100.png | Bin 208 -> 0 bytes .../images/ui-bg_flat_75_dadada_40x100.png | Bin 230 -> 0 bytes .../images/ui-bg_flat_75_e6e6e6_40x100.png | Bin 230 -> 0 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 208 -> 0 bytes .../images/ui-icons_222222_256x240.png | Bin 6922 -> 0 bytes .../images/ui-icons_454545_256x240.png | Bin 6992 -> 0 bytes .../images/ui-icons_888888_256x240.png | Bin 6999 -> 0 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6299 -> 0 bytes css/jQueryUI/jquery-ui-1.10.3.custom.css | 1178 -- css/jQueryUI/jquery-ui-1.10.3.custom.min.css | 7 - css/jvectormap/jquery-jvectormap-1.2.2.css | 36 - css/morris/morris.css | 2 - css/timepicker/bootstrap-timepicker.css | 121 - css/timepicker/bootstrap-timepicker.min.css | 10 - js/.DS_Store | Bin 6148 -> 0 bytes js/AdminLTE/app.js | 36 +- js/bootstrap.js | 2006 --- js/bootstrap.min.js | 7 - js/jquery-ui-1.10.3.js | 8709 ----------- js/jquery-ui-1.10.3.min.js | 6 - .../bootstrap-slider/bootstrap-slider.js | 388 - .../bootstrap3-wysihtml5.all.min.js | 6 - .../bootstrap3-wysihtml5.js | 350 - js/plugins/ckeditor/CHANGES.md | 378 - js/plugins/ckeditor/LICENSE.md | 1264 -- js/plugins/ckeditor/README.md | 39 - js/plugins/ckeditor/adapters/jquery.js | 10 - js/plugins/ckeditor/build-config.js | 142 - js/plugins/ckeditor/ckeditor.js | 900 -- js/plugins/ckeditor/config.js | 38 - js/plugins/ckeditor/contents.css | 123 - js/plugins/ckeditor/lang/af.js | 5 - js/plugins/ckeditor/lang/ar.js | 5 - js/plugins/ckeditor/lang/bg.js | 5 - js/plugins/ckeditor/lang/bn.js | 5 - js/plugins/ckeditor/lang/bs.js | 5 - js/plugins/ckeditor/lang/ca.js | 5 - js/plugins/ckeditor/lang/cs.js | 5 - js/plugins/ckeditor/lang/cy.js | 5 - js/plugins/ckeditor/lang/da.js | 5 - js/plugins/ckeditor/lang/de.js | 5 - js/plugins/ckeditor/lang/el.js | 5 - js/plugins/ckeditor/lang/en-au.js | 5 - js/plugins/ckeditor/lang/en-ca.js | 5 - js/plugins/ckeditor/lang/en-gb.js | 5 - js/plugins/ckeditor/lang/en.js | 5 - js/plugins/ckeditor/lang/eo.js | 5 - js/plugins/ckeditor/lang/es.js | 5 - js/plugins/ckeditor/lang/et.js | 5 - js/plugins/ckeditor/lang/eu.js | 5 - js/plugins/ckeditor/lang/fa.js | 5 - js/plugins/ckeditor/lang/fi.js | 5 - js/plugins/ckeditor/lang/fo.js | 5 - js/plugins/ckeditor/lang/fr-ca.js | 5 - js/plugins/ckeditor/lang/fr.js | 5 - js/plugins/ckeditor/lang/gl.js | 5 - js/plugins/ckeditor/lang/gu.js | 5 - js/plugins/ckeditor/lang/he.js | 5 - js/plugins/ckeditor/lang/hi.js | 5 - js/plugins/ckeditor/lang/hr.js | 5 - js/plugins/ckeditor/lang/hu.js | 5 - js/plugins/ckeditor/lang/id.js | 5 - js/plugins/ckeditor/lang/is.js | 5 - js/plugins/ckeditor/lang/it.js | 5 - js/plugins/ckeditor/lang/ja.js | 5 - js/plugins/ckeditor/lang/ka.js | 5 - js/plugins/ckeditor/lang/km.js | 5 - js/plugins/ckeditor/lang/ko.js | 5 - js/plugins/ckeditor/lang/ku.js | 5 - js/plugins/ckeditor/lang/lt.js | 5 - js/plugins/ckeditor/lang/lv.js | 5 - js/plugins/ckeditor/lang/mk.js | 5 - js/plugins/ckeditor/lang/mn.js | 5 - js/plugins/ckeditor/lang/ms.js | 5 - js/plugins/ckeditor/lang/nb.js | 5 - js/plugins/ckeditor/lang/nl.js | 5 - js/plugins/ckeditor/lang/no.js | 5 - js/plugins/ckeditor/lang/pl.js | 5 - js/plugins/ckeditor/lang/pt-br.js | 5 - js/plugins/ckeditor/lang/pt.js | 5 - js/plugins/ckeditor/lang/ro.js | 5 - js/plugins/ckeditor/lang/ru.js | 5 - js/plugins/ckeditor/lang/si.js | 5 - js/plugins/ckeditor/lang/sk.js | 5 - js/plugins/ckeditor/lang/sl.js | 5 - js/plugins/ckeditor/lang/sq.js | 5 - js/plugins/ckeditor/lang/sr-latn.js | 5 - js/plugins/ckeditor/lang/sr.js | 5 - js/plugins/ckeditor/lang/sv.js | 5 - js/plugins/ckeditor/lang/th.js | 5 - js/plugins/ckeditor/lang/tr.js | 5 - js/plugins/ckeditor/lang/ug.js | 5 - js/plugins/ckeditor/lang/uk.js | 5 - js/plugins/ckeditor/lang/vi.js | 5 - js/plugins/ckeditor/lang/zh-cn.js | 5 - js/plugins/ckeditor/lang/zh.js | 5 - .../plugins/a11yhelp/dialogs/a11yhelp.js | 10 - .../dialogs/lang/_translationstatus.txt | 25 - .../plugins/a11yhelp/dialogs/lang/ar.js | 9 - .../plugins/a11yhelp/dialogs/lang/bg.js | 9 - .../plugins/a11yhelp/dialogs/lang/ca.js | 10 - .../plugins/a11yhelp/dialogs/lang/cs.js | 10 - .../plugins/a11yhelp/dialogs/lang/cy.js | 9 - .../plugins/a11yhelp/dialogs/lang/da.js | 9 - .../plugins/a11yhelp/dialogs/lang/de.js | 10 - .../plugins/a11yhelp/dialogs/lang/el.js | 10 - .../plugins/a11yhelp/dialogs/lang/en.js | 9 - .../plugins/a11yhelp/dialogs/lang/eo.js | 10 - .../plugins/a11yhelp/dialogs/lang/es.js | 10 - .../plugins/a11yhelp/dialogs/lang/et.js | 9 - .../plugins/a11yhelp/dialogs/lang/fa.js | 9 - .../plugins/a11yhelp/dialogs/lang/fi.js | 10 - .../plugins/a11yhelp/dialogs/lang/fr-ca.js | 10 - .../plugins/a11yhelp/dialogs/lang/fr.js | 11 - .../plugins/a11yhelp/dialogs/lang/gl.js | 10 - .../plugins/a11yhelp/dialogs/lang/gu.js | 9 - .../plugins/a11yhelp/dialogs/lang/he.js | 9 - .../plugins/a11yhelp/dialogs/lang/hi.js | 9 - .../plugins/a11yhelp/dialogs/lang/hr.js | 9 - .../plugins/a11yhelp/dialogs/lang/hu.js | 10 - .../plugins/a11yhelp/dialogs/lang/id.js | 9 - .../plugins/a11yhelp/dialogs/lang/it.js | 10 - .../plugins/a11yhelp/dialogs/lang/ja.js | 8 - .../plugins/a11yhelp/dialogs/lang/km.js | 9 - .../plugins/a11yhelp/dialogs/lang/ko.js | 9 - .../plugins/a11yhelp/dialogs/lang/ku.js | 10 - .../plugins/a11yhelp/dialogs/lang/lt.js | 9 - .../plugins/a11yhelp/dialogs/lang/lv.js | 11 - .../plugins/a11yhelp/dialogs/lang/mk.js | 9 - .../plugins/a11yhelp/dialogs/lang/mn.js | 9 - .../plugins/a11yhelp/dialogs/lang/nb.js | 9 - .../plugins/a11yhelp/dialogs/lang/nl.js | 10 - .../plugins/a11yhelp/dialogs/lang/no.js | 9 - .../plugins/a11yhelp/dialogs/lang/pl.js | 10 - .../plugins/a11yhelp/dialogs/lang/pt-br.js | 9 - .../plugins/a11yhelp/dialogs/lang/pt.js | 10 - .../plugins/a11yhelp/dialogs/lang/ro.js | 9 - .../plugins/a11yhelp/dialogs/lang/ru.js | 9 - .../plugins/a11yhelp/dialogs/lang/si.js | 8 - .../plugins/a11yhelp/dialogs/lang/sk.js | 10 - .../plugins/a11yhelp/dialogs/lang/sl.js | 10 - .../plugins/a11yhelp/dialogs/lang/sq.js | 9 - .../plugins/a11yhelp/dialogs/lang/sr-latn.js | 9 - .../plugins/a11yhelp/dialogs/lang/sr.js | 9 - .../plugins/a11yhelp/dialogs/lang/sv.js | 10 - .../plugins/a11yhelp/dialogs/lang/th.js | 9 - .../plugins/a11yhelp/dialogs/lang/tr.js | 10 - .../plugins/a11yhelp/dialogs/lang/ug.js | 9 - .../plugins/a11yhelp/dialogs/lang/uk.js | 10 - .../plugins/a11yhelp/dialogs/lang/vi.js | 9 - .../plugins/a11yhelp/dialogs/lang/zh-cn.js | 7 - .../plugins/a11yhelp/dialogs/lang/zh.js | 7 - .../ckeditor/plugins/about/dialogs/about.js | 7 - .../about/dialogs/hidpi/logo_ckeditor.png | Bin 13339 -> 0 bytes .../plugins/about/dialogs/logo_ckeditor.png | Bin 6757 -> 0 bytes .../plugins/clipboard/dialogs/paste.js | 11 - .../plugins/dialog/dialogDefinition.js | 4 - .../plugins/fakeobjects/images/spacer.gif | Bin 43 -> 0 bytes js/plugins/ckeditor/plugins/icons.png | Bin 10030 -> 0 bytes js/plugins/ckeditor/plugins/icons_hidpi.png | Bin 34465 -> 0 bytes .../ckeditor/plugins/image/dialogs/image.js | 43 - .../ckeditor/plugins/image/images/noimage.png | Bin 2115 -> 0 bytes .../ckeditor/plugins/link/dialogs/anchor.js | 8 - .../ckeditor/plugins/link/dialogs/link.js | 37 - .../ckeditor/plugins/link/images/anchor.png | Bin 763 -> 0 bytes .../plugins/link/images/hidpi/anchor.png | Bin 1597 -> 0 bytes .../plugins/magicline/images/hidpi/icon.png | Bin 260 -> 0 bytes .../plugins/magicline/images/icon.png | Bin 172 -> 0 bytes .../plugins/pastefromword/filter/default.js | 31 - js/plugins/ckeditor/plugins/scayt/LICENSE.md | 28 - js/plugins/ckeditor/plugins/scayt/README.md | 25 - .../ckeditor/plugins/scayt/dialogs/options.js | 20 - .../plugins/scayt/dialogs/toolbar.css | 71 - .../dialogs/lang/_translationstatus.txt | 20 - .../plugins/specialchar/dialogs/lang/ar.js | 13 - .../plugins/specialchar/dialogs/lang/bg.js | 13 - .../plugins/specialchar/dialogs/lang/ca.js | 14 - .../plugins/specialchar/dialogs/lang/cs.js | 13 - .../plugins/specialchar/dialogs/lang/cy.js | 14 - .../plugins/specialchar/dialogs/lang/de.js | 13 - .../plugins/specialchar/dialogs/lang/el.js | 13 - .../plugins/specialchar/dialogs/lang/en.js | 13 - .../plugins/specialchar/dialogs/lang/eo.js | 12 - .../plugins/specialchar/dialogs/lang/es.js | 13 - .../plugins/specialchar/dialogs/lang/et.js | 13 - .../plugins/specialchar/dialogs/lang/fa.js | 12 - .../plugins/specialchar/dialogs/lang/fi.js | 13 - .../plugins/specialchar/dialogs/lang/fr-ca.js | 10 - .../plugins/specialchar/dialogs/lang/fr.js | 11 - .../plugins/specialchar/dialogs/lang/gl.js | 13 - .../plugins/specialchar/dialogs/lang/he.js | 12 - .../plugins/specialchar/dialogs/lang/hr.js | 13 - .../plugins/specialchar/dialogs/lang/hu.js | 12 - .../plugins/specialchar/dialogs/lang/id.js | 13 - .../plugins/specialchar/dialogs/lang/it.js | 14 - .../plugins/specialchar/dialogs/lang/ja.js | 9 - .../plugins/specialchar/dialogs/lang/km.js | 13 - .../plugins/specialchar/dialogs/lang/ku.js | 13 - .../plugins/specialchar/dialogs/lang/lv.js | 13 - .../plugins/specialchar/dialogs/lang/nb.js | 11 - .../plugins/specialchar/dialogs/lang/nl.js | 13 - .../plugins/specialchar/dialogs/lang/no.js | 11 - .../plugins/specialchar/dialogs/lang/pl.js | 12 - .../plugins/specialchar/dialogs/lang/pt-br.js | 11 - .../plugins/specialchar/dialogs/lang/pt.js | 13 - .../plugins/specialchar/dialogs/lang/ru.js | 13 - .../plugins/specialchar/dialogs/lang/si.js | 13 - .../plugins/specialchar/dialogs/lang/sk.js | 13 - .../plugins/specialchar/dialogs/lang/sl.js | 12 - .../plugins/specialchar/dialogs/lang/sq.js | 13 - .../plugins/specialchar/dialogs/lang/sv.js | 11 - .../plugins/specialchar/dialogs/lang/th.js | 13 - .../plugins/specialchar/dialogs/lang/tr.js | 12 - .../plugins/specialchar/dialogs/lang/ug.js | 13 - .../plugins/specialchar/dialogs/lang/uk.js | 12 - .../plugins/specialchar/dialogs/lang/vi.js | 14 - .../plugins/specialchar/dialogs/lang/zh-cn.js | 9 - .../plugins/specialchar/dialogs/lang/zh.js | 12 - .../specialchar/dialogs/specialchar.js | 14 - .../ckeditor/plugins/table/dialogs/table.js | 21 - .../plugins/tabletools/dialogs/tableCell.js | 16 - js/plugins/ckeditor/plugins/wsc/LICENSE.md | 28 - js/plugins/ckeditor/plugins/wsc/README.md | 25 - .../ckeditor/plugins/wsc/dialogs/ciframe.html | 66 - .../ckeditor/plugins/wsc/dialogs/tmp.html | 118 - .../plugins/wsc/dialogs/tmpFrameset.html | 52 - .../ckeditor/plugins/wsc/dialogs/wsc.css | 82 - .../ckeditor/plugins/wsc/dialogs/wsc.js | 67 - .../ckeditor/plugins/wsc/dialogs/wsc_ie.js | 11 - js/plugins/ckeditor/skins/moono/dialog.css | 5 - js/plugins/ckeditor/skins/moono/dialog_ie.css | 5 - .../ckeditor/skins/moono/dialog_ie7.css | 5 - .../ckeditor/skins/moono/dialog_ie8.css | 5 - .../ckeditor/skins/moono/dialog_iequirks.css | 5 - .../ckeditor/skins/moono/dialog_opera.css | 5 - js/plugins/ckeditor/skins/moono/editor.css | 5 - .../ckeditor/skins/moono/editor_gecko.css | 5 - js/plugins/ckeditor/skins/moono/editor_ie.css | 5 - .../ckeditor/skins/moono/editor_ie7.css | 5 - .../ckeditor/skins/moono/editor_ie8.css | 5 - .../ckeditor/skins/moono/editor_iequirks.css | 5 - js/plugins/ckeditor/skins/moono/icons.png | Bin 10030 -> 0 bytes .../ckeditor/skins/moono/icons_hidpi.png | Bin 34465 -> 0 bytes .../ckeditor/skins/moono/images/arrow.png | Bin 261 -> 0 bytes .../ckeditor/skins/moono/images/close.png | Bin 824 -> 0 bytes .../skins/moono/images/hidpi/close.png | Bin 1792 -> 0 bytes .../skins/moono/images/hidpi/lock-open.png | Bin 1503 -> 0 bytes .../skins/moono/images/hidpi/lock.png | Bin 1616 -> 0 bytes .../skins/moono/images/hidpi/refresh.png | Bin 2320 -> 0 bytes .../ckeditor/skins/moono/images/lock-open.png | Bin 736 -> 0 bytes .../ckeditor/skins/moono/images/lock.png | Bin 728 -> 0 bytes .../ckeditor/skins/moono/images/refresh.png | Bin 953 -> 0 bytes js/plugins/ckeditor/skins/moono/readme.md | 51 - js/plugins/ckeditor/styles.js | 111 - .../colorpicker/bootstrap-colorpicker.js | 949 -- .../colorpicker/bootstrap-colorpicker.min.js | 1 - js/plugins/datatables/dataTables.bootstrap.js | 250 - js/plugins/datatables/jquery.dataTables.js | 12099 ---------------- js/plugins/daterangepicker/daterangepicker.js | 883 -- js/plugins/flot/excanvas.js | 1428 -- js/plugins/flot/excanvas.min.js | 1 - js/plugins/flot/jquery.colorhelpers.js | 180 - js/plugins/flot/jquery.colorhelpers.min.js | 1 - js/plugins/flot/jquery.flot.canvas.js | 345 - js/plugins/flot/jquery.flot.canvas.min.js | 1 - js/plugins/flot/jquery.flot.categories.js | 190 - js/plugins/flot/jquery.flot.categories.min.js | 1 - js/plugins/flot/jquery.flot.crosshair.js | 176 - js/plugins/flot/jquery.flot.crosshair.min.js | 1 - js/plugins/flot/jquery.flot.errorbars.js | 353 - js/plugins/flot/jquery.flot.errorbars.min.js | 1 - js/plugins/flot/jquery.flot.fillbetween.js | 226 - .../flot/jquery.flot.fillbetween.min.js | 1 - js/plugins/flot/jquery.flot.image.js | 241 - js/plugins/flot/jquery.flot.image.min.js | 1 - js/plugins/flot/jquery.flot.js | 3137 ---- js/plugins/flot/jquery.flot.min.js | 2 - js/plugins/flot/jquery.flot.navigate.js | 346 - js/plugins/flot/jquery.flot.navigate.min.js | 1 - js/plugins/flot/jquery.flot.pie.js | 817 -- js/plugins/flot/jquery.flot.pie.min.js | 1 - js/plugins/flot/jquery.flot.resize.js | 60 - js/plugins/flot/jquery.flot.resize.min.js | 1 - js/plugins/flot/jquery.flot.selection.js | 360 - js/plugins/flot/jquery.flot.selection.min.js | 1 - js/plugins/flot/jquery.flot.stack.js | 188 - js/plugins/flot/jquery.flot.stack.min.js | 1 - js/plugins/flot/jquery.flot.symbol.js | 71 - js/plugins/flot/jquery.flot.symbol.min.js | 1 - js/plugins/flot/jquery.flot.threshold.js | 142 - js/plugins/flot/jquery.flot.threshold.min.js | 1 - js/plugins/flot/jquery.flot.time.js | 431 - js/plugins/flot/jquery.flot.time.min.js | 1 - js/plugins/fullcalendar/fullcalendar.js | 6110 -------- js/plugins/fullcalendar/fullcalendar.min.js | 7 - js/plugins/iCheck/icheck.js | 506 - js/plugins/iCheck/icheck.min.js | 10 - .../jquery.inputmask.date.extensions.js | 488 - .../input-mask/jquery.inputmask.extensions.js | 122 - js/plugins/input-mask/jquery.inputmask.js | 1632 --- .../jquery.inputmask.numeric.extensions.js | 177 - .../jquery.inputmask.phone.extensions.js | 50 - .../jquery.inputmask.regex.extensions.js | 170 - .../input-mask/phone-codes/phone-be.json | 45 - .../input-mask/phone-codes/phone-codes.json | 294 - js/plugins/input-mask/phone-codes/readme.txt | 1 - js/plugins/ionslider/ion.rangeSlider.min.js | 22 - js/plugins/jqueryKnob/.DS_Store | Bin 6148 -> 0 bytes js/plugins/jqueryKnob/jquery.knob.js | 764 - js/plugins/jvectormap/.DS_Store | Bin 6148 -> 0 bytes .../jvectormap/jquery-jvectormap-1.2.2.min.js | 8 - .../jquery-jvectormap-world-mill-en.js | 1 - js/plugins/misc/html5shiv.js | 8 - js/plugins/misc/jquery.ba-resize.min.js | 9 - js/plugins/misc/jquery.placeholder.js | 187 - js/plugins/misc/modernizr.min.js | 4 - js/plugins/misc/respond.min.js | 1 - js/plugins/morris/morris.js | 1888 --- js/plugins/morris/morris.min.js | 2 - js/plugins/slimScroll/jquery.slimscroll.js | 464 - .../slimScroll/jquery.slimscroll.min.js | 16 - js/plugins/slimScroll/slimScroll.jquery.json | 30 - js/plugins/sparkline/jquery.sparkline.js | 3054 ---- js/plugins/sparkline/jquery.sparkline.min.js | 5 - js/plugins/timepicker/bootstrap-timepicker.js | 903 -- .../timepicker/bootstrap-timepicker.min.js | 5 - 485 files changed, 18 insertions(+), 75809 deletions(-) delete mode 100644 css/.DS_Store delete mode 100644 css/bootstrap-slider/slider.css delete mode 100644 css/bootstrap-wysihtml5/bootstrap3-wysihtml5.css delete mode 100644 css/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css delete mode 100644 css/bootstrap.css delete mode 100644 css/bootstrap.min.css delete mode 100644 css/colorpicker/bootstrap-colorpicker.css delete mode 100644 css/colorpicker/bootstrap-colorpicker.min.css delete mode 100644 css/datatables/dataTables.bootstrap.css delete mode 100644 css/datatables/images/sort_asc.png delete mode 100644 css/datatables/images/sort_asc_disabled.png delete mode 100644 css/datatables/images/sort_both.png delete mode 100644 css/datatables/images/sort_desc.png delete mode 100644 css/datatables/images/sort_desc_disabled.png delete mode 100644 css/daterangepicker/daterangepicker-bs3.css delete mode 100644 css/font-awesome.css delete mode 100644 css/font-awesome.min.css delete mode 100644 css/fullcalendar/fullcalendar.css delete mode 100644 css/fullcalendar/fullcalendar.print.css delete mode 100644 css/iCheck/.DS_Store delete mode 100644 css/iCheck/all.css delete mode 100644 css/iCheck/flat/_all.css delete mode 100644 css/iCheck/flat/aero.css delete mode 100644 css/iCheck/flat/aero.png delete mode 100644 css/iCheck/flat/aero@2x.png delete mode 100644 css/iCheck/flat/blue.css delete mode 100644 css/iCheck/flat/blue.png delete mode 100644 css/iCheck/flat/blue@2x.png delete mode 100644 css/iCheck/flat/flat.css delete mode 100644 css/iCheck/flat/flat.png delete mode 100644 css/iCheck/flat/flat@2x.png delete mode 100644 css/iCheck/flat/green.css delete mode 100644 css/iCheck/flat/green.png delete mode 100644 css/iCheck/flat/green@2x.png delete mode 100644 css/iCheck/flat/grey.css delete mode 100644 css/iCheck/flat/grey.png delete mode 100644 css/iCheck/flat/grey@2x.png delete mode 100644 css/iCheck/flat/orange.css delete mode 100644 css/iCheck/flat/orange.png delete mode 100644 css/iCheck/flat/orange@2x.png delete mode 100644 css/iCheck/flat/pink.css delete mode 100644 css/iCheck/flat/pink.png delete mode 100644 css/iCheck/flat/pink@2x.png delete mode 100644 css/iCheck/flat/purple.css delete mode 100644 css/iCheck/flat/purple.png delete mode 100644 css/iCheck/flat/purple@2x.png delete mode 100644 css/iCheck/flat/red.css delete mode 100644 css/iCheck/flat/red.png delete mode 100644 css/iCheck/flat/red@2x.png delete mode 100644 css/iCheck/flat/yellow.css delete mode 100644 css/iCheck/flat/yellow.png delete mode 100644 css/iCheck/flat/yellow@2x.png delete mode 100644 css/iCheck/futurico/futurico.css delete mode 100644 css/iCheck/futurico/futurico.png delete mode 100644 css/iCheck/futurico/futurico@2x.png delete mode 100644 css/iCheck/line/_all.css delete mode 100644 css/iCheck/line/aero.css delete mode 100644 css/iCheck/line/blue.css delete mode 100644 css/iCheck/line/green.css delete mode 100644 css/iCheck/line/grey.css delete mode 100644 css/iCheck/line/line.css delete mode 100644 css/iCheck/line/line.png delete mode 100644 css/iCheck/line/line@2x.png delete mode 100644 css/iCheck/line/orange.css delete mode 100644 css/iCheck/line/pink.css delete mode 100644 css/iCheck/line/purple.css delete mode 100644 css/iCheck/line/red.css delete mode 100644 css/iCheck/line/yellow.css delete mode 100644 css/iCheck/minimal/_all.css delete mode 100644 css/iCheck/minimal/aero.css delete mode 100644 css/iCheck/minimal/aero.png delete mode 100644 css/iCheck/minimal/aero@2x.png delete mode 100644 css/iCheck/minimal/blue.css delete mode 100644 css/iCheck/minimal/blue.png delete mode 100644 css/iCheck/minimal/blue@2x.png delete mode 100644 css/iCheck/minimal/green.css delete mode 100644 css/iCheck/minimal/green.png delete mode 100644 css/iCheck/minimal/green@2x.png delete mode 100644 css/iCheck/minimal/grey.css delete mode 100644 css/iCheck/minimal/grey.png delete mode 100644 css/iCheck/minimal/grey@2x.png delete mode 100644 css/iCheck/minimal/minimal.css delete mode 100644 css/iCheck/minimal/minimal.png delete mode 100644 css/iCheck/minimal/minimal@2x.png delete mode 100644 css/iCheck/minimal/orange.css delete mode 100644 css/iCheck/minimal/orange.png delete mode 100644 css/iCheck/minimal/orange@2x.png delete mode 100644 css/iCheck/minimal/pink.css delete mode 100644 css/iCheck/minimal/pink.png delete mode 100644 css/iCheck/minimal/pink@2x.png delete mode 100644 css/iCheck/minimal/purple.css delete mode 100644 css/iCheck/minimal/purple.png delete mode 100644 css/iCheck/minimal/purple@2x.png delete mode 100644 css/iCheck/minimal/red.css delete mode 100644 css/iCheck/minimal/red.png delete mode 100644 css/iCheck/minimal/red@2x.png delete mode 100644 css/iCheck/minimal/yellow.css delete mode 100644 css/iCheck/minimal/yellow.png delete mode 100644 css/iCheck/minimal/yellow@2x.png delete mode 100644 css/iCheck/polaris/polaris.css delete mode 100644 css/iCheck/polaris/polaris.png delete mode 100644 css/iCheck/polaris/polaris@2x.png delete mode 100644 css/iCheck/square/_all.css delete mode 100644 css/iCheck/square/aero.css delete mode 100644 css/iCheck/square/aero.png delete mode 100644 css/iCheck/square/aero@2x.png delete mode 100644 css/iCheck/square/blue.css delete mode 100644 css/iCheck/square/blue.png delete mode 100644 css/iCheck/square/blue@2x.png delete mode 100644 css/iCheck/square/green.css delete mode 100644 css/iCheck/square/green.png delete mode 100644 css/iCheck/square/green@2x.png delete mode 100644 css/iCheck/square/grey.css delete mode 100644 css/iCheck/square/grey.png delete mode 100644 css/iCheck/square/grey@2x.png delete mode 100644 css/iCheck/square/orange.css delete mode 100644 css/iCheck/square/orange.png delete mode 100644 css/iCheck/square/orange@2x.png delete mode 100644 css/iCheck/square/pink.css delete mode 100644 css/iCheck/square/pink.png delete mode 100644 css/iCheck/square/pink@2x.png delete mode 100644 css/iCheck/square/purple.css delete mode 100644 css/iCheck/square/purple.png delete mode 100644 css/iCheck/square/purple@2x.png delete mode 100644 css/iCheck/square/red.css delete mode 100644 css/iCheck/square/red.png delete mode 100644 css/iCheck/square/red@2x.png delete mode 100644 css/iCheck/square/square.css delete mode 100644 css/iCheck/square/square.png delete mode 100644 css/iCheck/square/square@2x.png delete mode 100644 css/iCheck/square/yellow.css delete mode 100644 css/iCheck/square/yellow.png delete mode 100644 css/iCheck/square/yellow@2x.png delete mode 100644 css/images/animated-overlay.gif delete mode 100644 css/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 css/images/ui-bg_flat_55_fbec88_40x100.png delete mode 100644 css/images/ui-bg_glass_75_d0e5f5_1x400.png delete mode 100644 css/images/ui-bg_glass_85_dfeffc_1x400.png delete mode 100644 css/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100644 css/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png delete mode 100644 css/images/ui-bg_inset-hard_100_f5f8f9_1x100.png delete mode 100644 css/images/ui-bg_inset-hard_100_fcfdfd_1x100.png delete mode 100644 css/images/ui-icons_217bc0_256x240.png delete mode 100644 css/images/ui-icons_2e83ff_256x240.png delete mode 100644 css/images/ui-icons_469bdd_256x240.png delete mode 100644 css/images/ui-icons_6da8d5_256x240.png delete mode 100644 css/images/ui-icons_cd0a0a_256x240.png delete mode 100644 css/images/ui-icons_d8e7f3_256x240.png delete mode 100644 css/images/ui-icons_f9bd01_256x240.png delete mode 100644 css/ionicons.css delete mode 100644 css/ionicons.min.css delete mode 100644 css/ionslider/ion.rangeSlider.css delete mode 100644 css/ionslider/ion.rangeSlider.skinFlat.css delete mode 100644 css/ionslider/ion.rangeSlider.skinNice.css delete mode 100644 css/jQueryUI/images/animated-overlay.gif delete mode 100644 css/jQueryUI/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 css/jQueryUI/images/ui-bg_flat_100_e6e7e8_40x100.png delete mode 100644 css/jQueryUI/images/ui-bg_flat_100_f56954_40x100.png delete mode 100644 css/jQueryUI/images/ui-bg_flat_55_f39c12_40x100.png delete mode 100644 css/jQueryUI/images/ui-bg_flat_65_ffffff_40x100.png delete mode 100644 css/jQueryUI/images/ui-bg_flat_75_dadada_40x100.png delete mode 100644 css/jQueryUI/images/ui-bg_flat_75_e6e6e6_40x100.png delete mode 100644 css/jQueryUI/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100644 css/jQueryUI/images/ui-icons_222222_256x240.png delete mode 100644 css/jQueryUI/images/ui-icons_454545_256x240.png delete mode 100644 css/jQueryUI/images/ui-icons_888888_256x240.png delete mode 100644 css/jQueryUI/images/ui-icons_ffffff_256x240.png delete mode 100644 css/jQueryUI/jquery-ui-1.10.3.custom.css delete mode 100644 css/jQueryUI/jquery-ui-1.10.3.custom.min.css delete mode 100644 css/jvectormap/jquery-jvectormap-1.2.2.css delete mode 100644 css/morris/morris.css delete mode 100644 css/timepicker/bootstrap-timepicker.css delete mode 100644 css/timepicker/bootstrap-timepicker.min.css delete mode 100644 js/.DS_Store delete mode 100644 js/bootstrap.js delete mode 100644 js/bootstrap.min.js delete mode 100644 js/jquery-ui-1.10.3.js delete mode 100644 js/jquery-ui-1.10.3.min.js delete mode 100644 js/plugins/bootstrap-slider/bootstrap-slider.js delete mode 100644 js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js delete mode 100644 js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.js delete mode 100644 js/plugins/ckeditor/CHANGES.md delete mode 100644 js/plugins/ckeditor/LICENSE.md delete mode 100644 js/plugins/ckeditor/README.md delete mode 100644 js/plugins/ckeditor/adapters/jquery.js delete mode 100644 js/plugins/ckeditor/build-config.js delete mode 100644 js/plugins/ckeditor/ckeditor.js delete mode 100644 js/plugins/ckeditor/config.js delete mode 100644 js/plugins/ckeditor/contents.css delete mode 100644 js/plugins/ckeditor/lang/af.js delete mode 100644 js/plugins/ckeditor/lang/ar.js delete mode 100644 js/plugins/ckeditor/lang/bg.js delete mode 100644 js/plugins/ckeditor/lang/bn.js delete mode 100644 js/plugins/ckeditor/lang/bs.js delete mode 100644 js/plugins/ckeditor/lang/ca.js delete mode 100644 js/plugins/ckeditor/lang/cs.js delete mode 100644 js/plugins/ckeditor/lang/cy.js delete mode 100644 js/plugins/ckeditor/lang/da.js delete mode 100644 js/plugins/ckeditor/lang/de.js delete mode 100644 js/plugins/ckeditor/lang/el.js delete mode 100644 js/plugins/ckeditor/lang/en-au.js delete mode 100644 js/plugins/ckeditor/lang/en-ca.js delete mode 100644 js/plugins/ckeditor/lang/en-gb.js delete mode 100644 js/plugins/ckeditor/lang/en.js delete mode 100644 js/plugins/ckeditor/lang/eo.js delete mode 100644 js/plugins/ckeditor/lang/es.js delete mode 100644 js/plugins/ckeditor/lang/et.js delete mode 100644 js/plugins/ckeditor/lang/eu.js delete mode 100644 js/plugins/ckeditor/lang/fa.js delete mode 100644 js/plugins/ckeditor/lang/fi.js delete mode 100644 js/plugins/ckeditor/lang/fo.js delete mode 100644 js/plugins/ckeditor/lang/fr-ca.js delete mode 100644 js/plugins/ckeditor/lang/fr.js delete mode 100644 js/plugins/ckeditor/lang/gl.js delete mode 100644 js/plugins/ckeditor/lang/gu.js delete mode 100644 js/plugins/ckeditor/lang/he.js delete mode 100644 js/plugins/ckeditor/lang/hi.js delete mode 100644 js/plugins/ckeditor/lang/hr.js delete mode 100644 js/plugins/ckeditor/lang/hu.js delete mode 100644 js/plugins/ckeditor/lang/id.js delete mode 100644 js/plugins/ckeditor/lang/is.js delete mode 100644 js/plugins/ckeditor/lang/it.js delete mode 100644 js/plugins/ckeditor/lang/ja.js delete mode 100644 js/plugins/ckeditor/lang/ka.js delete mode 100644 js/plugins/ckeditor/lang/km.js delete mode 100644 js/plugins/ckeditor/lang/ko.js delete mode 100644 js/plugins/ckeditor/lang/ku.js delete mode 100644 js/plugins/ckeditor/lang/lt.js delete mode 100644 js/plugins/ckeditor/lang/lv.js delete mode 100644 js/plugins/ckeditor/lang/mk.js delete mode 100644 js/plugins/ckeditor/lang/mn.js delete mode 100644 js/plugins/ckeditor/lang/ms.js delete mode 100644 js/plugins/ckeditor/lang/nb.js delete mode 100644 js/plugins/ckeditor/lang/nl.js delete mode 100644 js/plugins/ckeditor/lang/no.js delete mode 100644 js/plugins/ckeditor/lang/pl.js delete mode 100644 js/plugins/ckeditor/lang/pt-br.js delete mode 100644 js/plugins/ckeditor/lang/pt.js delete mode 100644 js/plugins/ckeditor/lang/ro.js delete mode 100644 js/plugins/ckeditor/lang/ru.js delete mode 100644 js/plugins/ckeditor/lang/si.js delete mode 100644 js/plugins/ckeditor/lang/sk.js delete mode 100644 js/plugins/ckeditor/lang/sl.js delete mode 100644 js/plugins/ckeditor/lang/sq.js delete mode 100644 js/plugins/ckeditor/lang/sr-latn.js delete mode 100644 js/plugins/ckeditor/lang/sr.js delete mode 100644 js/plugins/ckeditor/lang/sv.js delete mode 100644 js/plugins/ckeditor/lang/th.js delete mode 100644 js/plugins/ckeditor/lang/tr.js delete mode 100644 js/plugins/ckeditor/lang/ug.js delete mode 100644 js/plugins/ckeditor/lang/uk.js delete mode 100644 js/plugins/ckeditor/lang/vi.js delete mode 100644 js/plugins/ckeditor/lang/zh-cn.js delete mode 100644 js/plugins/ckeditor/lang/zh.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/da.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/de.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/el.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/en.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/es.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/et.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/he.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/id.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/it.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/km.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/no.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/si.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/th.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js delete mode 100644 js/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js delete mode 100644 js/plugins/ckeditor/plugins/about/dialogs/about.js delete mode 100644 js/plugins/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png delete mode 100644 js/plugins/ckeditor/plugins/about/dialogs/logo_ckeditor.png delete mode 100644 js/plugins/ckeditor/plugins/clipboard/dialogs/paste.js delete mode 100644 js/plugins/ckeditor/plugins/dialog/dialogDefinition.js delete mode 100644 js/plugins/ckeditor/plugins/fakeobjects/images/spacer.gif delete mode 100644 js/plugins/ckeditor/plugins/icons.png delete mode 100644 js/plugins/ckeditor/plugins/icons_hidpi.png delete mode 100644 js/plugins/ckeditor/plugins/image/dialogs/image.js delete mode 100644 js/plugins/ckeditor/plugins/image/images/noimage.png delete mode 100644 js/plugins/ckeditor/plugins/link/dialogs/anchor.js delete mode 100644 js/plugins/ckeditor/plugins/link/dialogs/link.js delete mode 100644 js/plugins/ckeditor/plugins/link/images/anchor.png delete mode 100644 js/plugins/ckeditor/plugins/link/images/hidpi/anchor.png delete mode 100644 js/plugins/ckeditor/plugins/magicline/images/hidpi/icon.png delete mode 100644 js/plugins/ckeditor/plugins/magicline/images/icon.png delete mode 100644 js/plugins/ckeditor/plugins/pastefromword/filter/default.js delete mode 100644 js/plugins/ckeditor/plugins/scayt/LICENSE.md delete mode 100644 js/plugins/ckeditor/plugins/scayt/README.md delete mode 100644 js/plugins/ckeditor/plugins/scayt/dialogs/options.js delete mode 100644 js/plugins/ckeditor/plugins/scayt/dialogs/toolbar.css delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/ar.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/bg.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/ca.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/cs.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/cy.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/de.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/el.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/en.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/eo.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/es.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/et.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/fa.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/fi.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/fr.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/gl.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/he.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/hr.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/hu.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/id.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/it.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/ja.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/km.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/ku.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/lv.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/nb.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/nl.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/no.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/pl.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/pt.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/ru.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/si.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/sk.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/sl.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/sq.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/sv.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/th.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/tr.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/ug.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/uk.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/vi.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/lang/zh.js delete mode 100644 js/plugins/ckeditor/plugins/specialchar/dialogs/specialchar.js delete mode 100644 js/plugins/ckeditor/plugins/table/dialogs/table.js delete mode 100644 js/plugins/ckeditor/plugins/tabletools/dialogs/tableCell.js delete mode 100644 js/plugins/ckeditor/plugins/wsc/LICENSE.md delete mode 100644 js/plugins/ckeditor/plugins/wsc/README.md delete mode 100644 js/plugins/ckeditor/plugins/wsc/dialogs/ciframe.html delete mode 100644 js/plugins/ckeditor/plugins/wsc/dialogs/tmp.html delete mode 100644 js/plugins/ckeditor/plugins/wsc/dialogs/tmpFrameset.html delete mode 100644 js/plugins/ckeditor/plugins/wsc/dialogs/wsc.css delete mode 100644 js/plugins/ckeditor/plugins/wsc/dialogs/wsc.js delete mode 100644 js/plugins/ckeditor/plugins/wsc/dialogs/wsc_ie.js delete mode 100644 js/plugins/ckeditor/skins/moono/dialog.css delete mode 100644 js/plugins/ckeditor/skins/moono/dialog_ie.css delete mode 100644 js/plugins/ckeditor/skins/moono/dialog_ie7.css delete mode 100644 js/plugins/ckeditor/skins/moono/dialog_ie8.css delete mode 100644 js/plugins/ckeditor/skins/moono/dialog_iequirks.css delete mode 100644 js/plugins/ckeditor/skins/moono/dialog_opera.css delete mode 100644 js/plugins/ckeditor/skins/moono/editor.css delete mode 100644 js/plugins/ckeditor/skins/moono/editor_gecko.css delete mode 100644 js/plugins/ckeditor/skins/moono/editor_ie.css delete mode 100644 js/plugins/ckeditor/skins/moono/editor_ie7.css delete mode 100644 js/plugins/ckeditor/skins/moono/editor_ie8.css delete mode 100644 js/plugins/ckeditor/skins/moono/editor_iequirks.css delete mode 100644 js/plugins/ckeditor/skins/moono/icons.png delete mode 100644 js/plugins/ckeditor/skins/moono/icons_hidpi.png delete mode 100644 js/plugins/ckeditor/skins/moono/images/arrow.png delete mode 100644 js/plugins/ckeditor/skins/moono/images/close.png delete mode 100644 js/plugins/ckeditor/skins/moono/images/hidpi/close.png delete mode 100644 js/plugins/ckeditor/skins/moono/images/hidpi/lock-open.png delete mode 100644 js/plugins/ckeditor/skins/moono/images/hidpi/lock.png delete mode 100644 js/plugins/ckeditor/skins/moono/images/hidpi/refresh.png delete mode 100644 js/plugins/ckeditor/skins/moono/images/lock-open.png delete mode 100644 js/plugins/ckeditor/skins/moono/images/lock.png delete mode 100644 js/plugins/ckeditor/skins/moono/images/refresh.png delete mode 100644 js/plugins/ckeditor/skins/moono/readme.md delete mode 100644 js/plugins/ckeditor/styles.js delete mode 100644 js/plugins/colorpicker/bootstrap-colorpicker.js delete mode 100644 js/plugins/colorpicker/bootstrap-colorpicker.min.js delete mode 100644 js/plugins/datatables/dataTables.bootstrap.js delete mode 100644 js/plugins/datatables/jquery.dataTables.js delete mode 100644 js/plugins/daterangepicker/daterangepicker.js delete mode 100644 js/plugins/flot/excanvas.js delete mode 100644 js/plugins/flot/excanvas.min.js delete mode 100644 js/plugins/flot/jquery.colorhelpers.js delete mode 100644 js/plugins/flot/jquery.colorhelpers.min.js delete mode 100644 js/plugins/flot/jquery.flot.canvas.js delete mode 100644 js/plugins/flot/jquery.flot.canvas.min.js delete mode 100644 js/plugins/flot/jquery.flot.categories.js delete mode 100644 js/plugins/flot/jquery.flot.categories.min.js delete mode 100644 js/plugins/flot/jquery.flot.crosshair.js delete mode 100644 js/plugins/flot/jquery.flot.crosshair.min.js delete mode 100644 js/plugins/flot/jquery.flot.errorbars.js delete mode 100644 js/plugins/flot/jquery.flot.errorbars.min.js delete mode 100644 js/plugins/flot/jquery.flot.fillbetween.js delete mode 100644 js/plugins/flot/jquery.flot.fillbetween.min.js delete mode 100644 js/plugins/flot/jquery.flot.image.js delete mode 100644 js/plugins/flot/jquery.flot.image.min.js delete mode 100644 js/plugins/flot/jquery.flot.js delete mode 100644 js/plugins/flot/jquery.flot.min.js delete mode 100644 js/plugins/flot/jquery.flot.navigate.js delete mode 100644 js/plugins/flot/jquery.flot.navigate.min.js delete mode 100644 js/plugins/flot/jquery.flot.pie.js delete mode 100644 js/plugins/flot/jquery.flot.pie.min.js delete mode 100644 js/plugins/flot/jquery.flot.resize.js delete mode 100644 js/plugins/flot/jquery.flot.resize.min.js delete mode 100644 js/plugins/flot/jquery.flot.selection.js delete mode 100644 js/plugins/flot/jquery.flot.selection.min.js delete mode 100644 js/plugins/flot/jquery.flot.stack.js delete mode 100644 js/plugins/flot/jquery.flot.stack.min.js delete mode 100644 js/plugins/flot/jquery.flot.symbol.js delete mode 100644 js/plugins/flot/jquery.flot.symbol.min.js delete mode 100644 js/plugins/flot/jquery.flot.threshold.js delete mode 100644 js/plugins/flot/jquery.flot.threshold.min.js delete mode 100644 js/plugins/flot/jquery.flot.time.js delete mode 100644 js/plugins/flot/jquery.flot.time.min.js delete mode 100644 js/plugins/fullcalendar/fullcalendar.js delete mode 100644 js/plugins/fullcalendar/fullcalendar.min.js delete mode 100644 js/plugins/iCheck/icheck.js delete mode 100644 js/plugins/iCheck/icheck.min.js delete mode 100644 js/plugins/input-mask/jquery.inputmask.date.extensions.js delete mode 100644 js/plugins/input-mask/jquery.inputmask.extensions.js delete mode 100644 js/plugins/input-mask/jquery.inputmask.js delete mode 100644 js/plugins/input-mask/jquery.inputmask.numeric.extensions.js delete mode 100644 js/plugins/input-mask/jquery.inputmask.phone.extensions.js delete mode 100644 js/plugins/input-mask/jquery.inputmask.regex.extensions.js delete mode 100644 js/plugins/input-mask/phone-codes/phone-be.json delete mode 100644 js/plugins/input-mask/phone-codes/phone-codes.json delete mode 100644 js/plugins/input-mask/phone-codes/readme.txt delete mode 100644 js/plugins/ionslider/ion.rangeSlider.min.js delete mode 100644 js/plugins/jqueryKnob/.DS_Store delete mode 100644 js/plugins/jqueryKnob/jquery.knob.js delete mode 100644 js/plugins/jvectormap/.DS_Store delete mode 100644 js/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js delete mode 100644 js/plugins/jvectormap/jquery-jvectormap-world-mill-en.js delete mode 100644 js/plugins/misc/html5shiv.js delete mode 100644 js/plugins/misc/jquery.ba-resize.min.js delete mode 100644 js/plugins/misc/jquery.placeholder.js delete mode 100644 js/plugins/misc/modernizr.min.js delete mode 100644 js/plugins/misc/respond.min.js delete mode 100644 js/plugins/morris/morris.js delete mode 100644 js/plugins/morris/morris.min.js delete mode 100644 js/plugins/slimScroll/jquery.slimscroll.js delete mode 100644 js/plugins/slimScroll/jquery.slimscroll.min.js delete mode 100644 js/plugins/slimScroll/slimScroll.jquery.json delete mode 100644 js/plugins/sparkline/jquery.sparkline.js delete mode 100644 js/plugins/sparkline/jquery.sparkline.min.js delete mode 100644 js/plugins/timepicker/bootstrap-timepicker.js delete mode 100644 js/plugins/timepicker/bootstrap-timepicker.min.js diff --git a/css/.DS_Store b/css/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 li { - float: left; - display: list-item; - list-style: none; - margin: 0 5px 10px 0; -} - -ul.wysihtml5-toolbar a[data-wysihtml5-command=bold] { - font-weight: bold; -} - -ul.wysihtml5-toolbar a[data-wysihtml5-command=italic] { - font-style: italic; -} - -ul.wysihtml5-toolbar a[data-wysihtml5-command=underline] { - text-decoration: underline; -} - -ul.wysihtml5-toolbar a.btn.wysihtml5-command-active { - background-image: none; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05); - background-color: #E6E6E6; - background-color: #D9D9D9; - outline: 0; -} - -ul.wysihtml5-commands-disabled .dropdown-menu { - display: none !important; -} - -ul.wysihtml5-toolbar div.wysihtml5-colors { - display:block; - width: 50px; - height: 20px; - margin-top: 2px; - margin-left: 5px; - position: absolute; - pointer-events: none; -} - -ul.wysihtml5-toolbar a.wysihtml5-colors-title { - padding-left: 70px; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="black"] { - background: black !important; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="silver"] { - background: silver !important; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="gray"] { - background: gray !important; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="maroon"] { - background: maroon !important; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="red"] { - background: red !important; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="purple"] { - background: purple !important; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="green"] { - background: green !important; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="olive"] { - background: olive !important; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="navy"] { - background: navy !important; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="blue"] { - background: blue !important; -} - -ul.wysihtml5-toolbar div[data-wysihtml5-command-value="orange"] { - background: orange !important; -} diff --git a/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css b/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css deleted file mode 100644 index d8dd3c228..000000000 --- a/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css +++ /dev/null @@ -1,3 +0,0 @@ -/*! bootstrap3-wysihtml5-bower 2013-11-22 */ - -ul.wysihtml5-toolbar{margin:0;padding:0;display:block}ul.wysihtml5-toolbar::after{clear:both;display:table;content:""}ul.wysihtml5-toolbar>li{float:left;display:list-item;list-style:none;margin:0 5px 10px 0}ul.wysihtml5-toolbar a[data-wysihtml5-command=bold]{font-weight:700}ul.wysihtml5-toolbar a[data-wysihtml5-command=italic]{font-style:italic}ul.wysihtml5-toolbar a[data-wysihtml5-command=underline]{text-decoration:underline}ul.wysihtml5-toolbar a.btn.wysihtml5-command-active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);background-color:#E6E6E6;background-color:#D9D9D9;outline:0}ul.wysihtml5-commands-disabled .dropdown-menu{display:none!important}ul.wysihtml5-toolbar div.wysihtml5-colors{display:block;width:50px;height:20px;margin-top:2px;margin-left:5px;position:absolute;pointer-events:none}ul.wysihtml5-toolbar a.wysihtml5-colors-title{padding-left:70px}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=black]{background:#000!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=silver]{background:silver!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=gray]{background:gray!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=maroon]{background:maroon!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=red]{background:red!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=purple]{background:purple!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=green]{background:green!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=olive]{background:olive!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=navy]{background:navy!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=blue]{background:#00f!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=orange]{background:orange!important} \ No newline at end of file diff --git a/css/bootstrap.css b/css/bootstrap.css deleted file mode 100644 index 377dff300..000000000 --- a/css/bootstrap.css +++ /dev/null @@ -1,7118 +0,0 @@ -/*! - * Bootstrap v3.0.3 (http://getbootstrap.com) - * Copyright 2013 Twitter, Inc. - * Licensed under http://www.apache.org/licenses/LICENSE-2.0 - */ - -/*! normalize.css v2.1.3 | MIT License | git.io/normalize */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} - -audio, -canvas, -video { - display: inline-block; -} - -audio:not([controls]) { - display: none; - height: 0; -} - -[hidden], -template { - display: none; -} - -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} - -body { - margin: 0; -} - -a { - background: transparent; -} - -a:focus { - outline: thin dotted; -} - -a:active, -a:hover { - outline: 0; -} - -h1 { - margin: 0.67em 0; - font-size: 2em; -} - -abbr[title] { - border-bottom: 1px dotted; -} - -b, -strong { - font-weight: bold; -} - -dfn { - font-style: italic; -} - -hr { - height: 0; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -mark { - color: #000; - background: #ff0; -} - -code, -kbd, -pre, -samp { - font-family: monospace, serif; - font-size: 1em; -} - -pre { - white-space: pre-wrap; -} - -q { - quotes: "\201C" "\201D" "\2018" "\2019"; -} - -small { - font-size: 80%; -} - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - border: 0; -} - -svg:not(:root) { - overflow: hidden; -} - -figure { - margin: 0; -} - -fieldset { - padding: 0.35em 0.625em 0.75em; - margin: 0 2px; - border: 1px solid #c0c0c0; -} - -legend { - padding: 0; - border: 0; -} - -button, -input, -select, -textarea { - margin: 0; - font-family: inherit; - font-size: 100%; -} - -button, -input { - line-height: normal; -} - -button, -select { - text-transform: none; -} - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} - -button[disabled], -html input[disabled] { - cursor: default; -} - -input[type="checkbox"], -input[type="radio"] { - padding: 0; - box-sizing: border-box; -} - -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} - -textarea { - overflow: auto; - vertical-align: top; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -@media print { - * { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - @page { - margin: 2cm .5cm; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: #fff !important; - } - .navbar { - display: none; - } - .table td, - .table th { - background-color: #fff !important; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} - -*, -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -html { - font-size: 62.5%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.428571429; - color: #333333; - background-color: #ffffff; -} - -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -a { - color: #428bca; - text-decoration: none; -} - -a:hover, -a:focus { - color: #2a6496; - text-decoration: underline; -} - -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -img { - vertical-align: middle; -} - -.img-responsive { - display: block; - height: auto; - max-width: 100%; -} - -.img-rounded { - border-radius: 6px; -} - -.img-thumbnail { - display: inline-block; - height: auto; - max-width: 100%; - padding: 4px; - line-height: 1.428571429; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -.img-circle { - border-radius: 50%; -} - -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eeeeee; -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: 500; - line-height: 1.1; - color: inherit; -} - -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #999999; -} - -h1, -h2, -h3 { - margin-top: 20px; - margin-bottom: 10px; -} - -h1 small, -h2 small, -h3 small, -h1 .small, -h2 .small, -h3 .small { - font-size: 65%; -} - -h4, -h5, -h6 { - margin-top: 10px; - margin-bottom: 10px; -} - -h4 small, -h5 small, -h6 small, -h4 .small, -h5 .small, -h6 .small { - font-size: 75%; -} - -h1, -.h1 { - font-size: 36px; -} - -h2, -.h2 { - font-size: 30px; -} - -h3, -.h3 { - font-size: 24px; -} - -h4, -.h4 { - font-size: 18px; -} - -h5, -.h5 { - font-size: 14px; -} - -h6, -.h6 { - font-size: 12px; -} - -p { - margin: 0 0 10px; -} - -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 200; - line-height: 1.4; -} - -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} - -small, -.small { - font-size: 85%; -} - -cite { - font-style: normal; -} - -.text-muted { - color: #999999; -} - -.text-primary { - color: #428bca; -} - -.text-primary:hover { - color: #3071a9; -} - -.text-warning { - color: #8a6d3b; -} - -.text-warning:hover { - color: #66512c; -} - -.text-danger { - color: #a94442; -} - -.text-danger:hover { - color: #843534; -} - -.text-success { - color: #3c763d; -} - -.text-success:hover { - color: #2b542c; -} - -.text-info { - color: #31708f; -} - -.text-info:hover { - color: #245269; -} - -.text-left { - text-align: left; -} - -.text-right { - text-align: right; -} - -.text-center { - text-align: center; -} - -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eeeeee; -} - -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} - -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} - -.list-unstyled { - padding-left: 0; - list-style: none; -} - -.list-inline { - padding-left: 0; - list-style: none; -} - -.list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; -} - -.list-inline > li:first-child { - padding-left: 0; -} - -dl { - margin-top: 0; - margin-bottom: 20px; -} - -dt, -dd { - line-height: 1.428571429; -} - -dt { - font-weight: bold; -} - -dd { - margin-left: 0; -} - -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } - .dl-horizontal dd:before, - .dl-horizontal dd:after { - display: table; - content: " "; - } - .dl-horizontal dd:after { - clear: both; - } - .dl-horizontal dd:before, - .dl-horizontal dd:after { - display: table; - content: " "; - } - .dl-horizontal dd:after { - clear: both; - } -} - -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999999; -} - -.initialism { - font-size: 90%; - text-transform: uppercase; -} - -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - border-left: 5px solid #eeeeee; -} - -blockquote p { - font-size: 17.5px; - font-weight: 300; - line-height: 1.25; -} - -blockquote p:last-child { - margin-bottom: 0; -} - -blockquote small, -blockquote .small { - display: block; - line-height: 1.428571429; - color: #999999; -} - -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} - -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eeeeee; - border-left: 0; -} - -blockquote.pull-right p, -blockquote.pull-right small, -blockquote.pull-right .small { - text-align: right; -} - -blockquote.pull-right small:before, -blockquote.pull-right .small:before { - content: ''; -} - -blockquote.pull-right small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} - -blockquote:before, -blockquote:after { - content: ""; -} - -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.428571429; -} - -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} - -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - white-space: nowrap; - background-color: #f9f2f4; - border-radius: 4px; -} - -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.428571429; - color: #333333; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 4px; -} - -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} - -.container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -.container:before, -.container:after { - display: table; - content: " "; -} - -.container:after { - clear: both; -} - -.container:before, -.container:after { - display: table; - content: " "; -} - -.container:after { - clear: both; -} - -@media (min-width: 768px) { - .container { - width: 750px; - } -} - -@media (min-width: 992px) { - .container { - width: 970px; - } -} - -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} - -.row { - margin-right: -15px; - margin-left: -15px; -} - -.row:before, -.row:after { - display: table; - content: " "; -} - -.row:after { - clear: both; -} - -.row:before, -.row:after { - display: table; - content: " "; -} - -.row:after { - clear: both; -} - -.col-xs-1, -.col-sm-1, -.col-md-1, -.col-lg-1, -.col-xs-2, -.col-sm-2, -.col-md-2, -.col-lg-2, -.col-xs-3, -.col-sm-3, -.col-md-3, -.col-lg-3, -.col-xs-4, -.col-sm-4, -.col-md-4, -.col-lg-4, -.col-xs-5, -.col-sm-5, -.col-md-5, -.col-lg-5, -.col-xs-6, -.col-sm-6, -.col-md-6, -.col-lg-6, -.col-xs-7, -.col-sm-7, -.col-md-7, -.col-lg-7, -.col-xs-8, -.col-sm-8, -.col-md-8, -.col-lg-8, -.col-xs-9, -.col-sm-9, -.col-md-9, -.col-lg-9, -.col-xs-10, -.col-sm-10, -.col-md-10, -.col-lg-10, -.col-xs-11, -.col-sm-11, -.col-md-11, -.col-lg-11, -.col-xs-12, -.col-sm-12, -.col-md-12, -.col-lg-12 { - position: relative; - min-height: 1px; - padding-right: 15px; - padding-left: 15px; -} - -.col-xs-1, -.col-xs-2, -.col-xs-3, -.col-xs-4, -.col-xs-5, -.col-xs-6, -.col-xs-7, -.col-xs-8, -.col-xs-9, -.col-xs-10, -.col-xs-11, -.col-xs-12 { - float: left; -} - -.col-xs-12 { - width: 100%; -} - -.col-xs-11 { - width: 91.66666666666666%; -} - -.col-xs-10 { - width: 83.33333333333334%; -} - -.col-xs-9 { - width: 75%; -} - -.col-xs-8 { - width: 66.66666666666666%; -} - -.col-xs-7 { - width: 58.333333333333336%; -} - -.col-xs-6 { - width: 50%; -} - -.col-xs-5 { - width: 41.66666666666667%; -} - -.col-xs-4 { - width: 33.33333333333333%; -} - -.col-xs-3 { - width: 25%; -} - -.col-xs-2 { - width: 16.666666666666664%; -} - -.col-xs-1 { - width: 8.333333333333332%; -} - -.col-xs-pull-12 { - right: 100%; -} - -.col-xs-pull-11 { - right: 91.66666666666666%; -} - -.col-xs-pull-10 { - right: 83.33333333333334%; -} - -.col-xs-pull-9 { - right: 75%; -} - -.col-xs-pull-8 { - right: 66.66666666666666%; -} - -.col-xs-pull-7 { - right: 58.333333333333336%; -} - -.col-xs-pull-6 { - right: 50%; -} - -.col-xs-pull-5 { - right: 41.66666666666667%; -} - -.col-xs-pull-4 { - right: 33.33333333333333%; -} - -.col-xs-pull-3 { - right: 25%; -} - -.col-xs-pull-2 { - right: 16.666666666666664%; -} - -.col-xs-pull-1 { - right: 8.333333333333332%; -} - -.col-xs-pull-0 { - right: 0; -} - -.col-xs-push-12 { - left: 100%; -} - -.col-xs-push-11 { - left: 91.66666666666666%; -} - -.col-xs-push-10 { - left: 83.33333333333334%; -} - -.col-xs-push-9 { - left: 75%; -} - -.col-xs-push-8 { - left: 66.66666666666666%; -} - -.col-xs-push-7 { - left: 58.333333333333336%; -} - -.col-xs-push-6 { - left: 50%; -} - -.col-xs-push-5 { - left: 41.66666666666667%; -} - -.col-xs-push-4 { - left: 33.33333333333333%; -} - -.col-xs-push-3 { - left: 25%; -} - -.col-xs-push-2 { - left: 16.666666666666664%; -} - -.col-xs-push-1 { - left: 8.333333333333332%; -} - -.col-xs-push-0 { - left: 0; -} - -.col-xs-offset-12 { - margin-left: 100%; -} - -.col-xs-offset-11 { - margin-left: 91.66666666666666%; -} - -.col-xs-offset-10 { - margin-left: 83.33333333333334%; -} - -.col-xs-offset-9 { - margin-left: 75%; -} - -.col-xs-offset-8 { - margin-left: 66.66666666666666%; -} - -.col-xs-offset-7 { - margin-left: 58.333333333333336%; -} - -.col-xs-offset-6 { - margin-left: 50%; -} - -.col-xs-offset-5 { - margin-left: 41.66666666666667%; -} - -.col-xs-offset-4 { - margin-left: 33.33333333333333%; -} - -.col-xs-offset-3 { - margin-left: 25%; -} - -.col-xs-offset-2 { - margin-left: 16.666666666666664%; -} - -.col-xs-offset-1 { - margin-left: 8.333333333333332%; -} - -.col-xs-offset-0 { - margin-left: 0; -} - -@media (min-width: 768px) { - .col-sm-1, - .col-sm-2, - .col-sm-3, - .col-sm-4, - .col-sm-5, - .col-sm-6, - .col-sm-7, - .col-sm-8, - .col-sm-9, - .col-sm-10, - .col-sm-11, - .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666666666666%; - } - .col-sm-10 { - width: 83.33333333333334%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666666666666%; - } - .col-sm-7 { - width: 58.333333333333336%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666666666667%; - } - .col-sm-4 { - width: 33.33333333333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.666666666666664%; - } - .col-sm-1 { - width: 8.333333333333332%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666666666666%; - } - .col-sm-pull-10 { - right: 83.33333333333334%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666666666666%; - } - .col-sm-pull-7 { - right: 58.333333333333336%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666666666667%; - } - .col-sm-pull-4 { - right: 33.33333333333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.666666666666664%; - } - .col-sm-pull-1 { - right: 8.333333333333332%; - } - .col-sm-pull-0 { - right: 0; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666666666666%; - } - .col-sm-push-10 { - left: 83.33333333333334%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666666666666%; - } - .col-sm-push-7 { - left: 58.333333333333336%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666666666667%; - } - .col-sm-push-4 { - left: 33.33333333333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.666666666666664%; - } - .col-sm-push-1 { - left: 8.333333333333332%; - } - .col-sm-push-0 { - left: 0; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666666666666%; - } - .col-sm-offset-10 { - margin-left: 83.33333333333334%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666666666666%; - } - .col-sm-offset-7 { - margin-left: 58.333333333333336%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666666666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.666666666666664%; - } - .col-sm-offset-1 { - margin-left: 8.333333333333332%; - } - .col-sm-offset-0 { - margin-left: 0; - } -} - -@media (min-width: 992px) { - .col-md-1, - .col-md-2, - .col-md-3, - .col-md-4, - .col-md-5, - .col-md-6, - .col-md-7, - .col-md-8, - .col-md-9, - .col-md-10, - .col-md-11, - .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666666666666%; - } - .col-md-10 { - width: 83.33333333333334%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666666666666%; - } - .col-md-7 { - width: 58.333333333333336%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666666666667%; - } - .col-md-4 { - width: 33.33333333333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.666666666666664%; - } - .col-md-1 { - width: 8.333333333333332%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666666666666%; - } - .col-md-pull-10 { - right: 83.33333333333334%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666666666666%; - } - .col-md-pull-7 { - right: 58.333333333333336%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666666666667%; - } - .col-md-pull-4 { - right: 33.33333333333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.666666666666664%; - } - .col-md-pull-1 { - right: 8.333333333333332%; - } - .col-md-pull-0 { - right: 0; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666666666666%; - } - .col-md-push-10 { - left: 83.33333333333334%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666666666666%; - } - .col-md-push-7 { - left: 58.333333333333336%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666666666667%; - } - .col-md-push-4 { - left: 33.33333333333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.666666666666664%; - } - .col-md-push-1 { - left: 8.333333333333332%; - } - .col-md-push-0 { - left: 0; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666666666666%; - } - .col-md-offset-10 { - margin-left: 83.33333333333334%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666666666666%; - } - .col-md-offset-7 { - margin-left: 58.333333333333336%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666666666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.666666666666664%; - } - .col-md-offset-1 { - margin-left: 8.333333333333332%; - } - .col-md-offset-0 { - margin-left: 0; - } -} - -@media (min-width: 1200px) { - .col-lg-1, - .col-lg-2, - .col-lg-3, - .col-lg-4, - .col-lg-5, - .col-lg-6, - .col-lg-7, - .col-lg-8, - .col-lg-9, - .col-lg-10, - .col-lg-11, - .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666666666666%; - } - .col-lg-10 { - width: 83.33333333333334%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666666666666%; - } - .col-lg-7 { - width: 58.333333333333336%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666666666667%; - } - .col-lg-4 { - width: 33.33333333333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.666666666666664%; - } - .col-lg-1 { - width: 8.333333333333332%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666666666666%; - } - .col-lg-pull-10 { - right: 83.33333333333334%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666666666666%; - } - .col-lg-pull-7 { - right: 58.333333333333336%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666666666667%; - } - .col-lg-pull-4 { - right: 33.33333333333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.666666666666664%; - } - .col-lg-pull-1 { - right: 8.333333333333332%; - } - .col-lg-pull-0 { - right: 0; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666666666666%; - } - .col-lg-push-10 { - left: 83.33333333333334%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666666666666%; - } - .col-lg-push-7 { - left: 58.333333333333336%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666666666667%; - } - .col-lg-push-4 { - left: 33.33333333333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.666666666666664%; - } - .col-lg-push-1 { - left: 8.333333333333332%; - } - .col-lg-push-0 { - left: 0; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666666666666%; - } - .col-lg-offset-10 { - margin-left: 83.33333333333334%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666666666666%; - } - .col-lg-offset-7 { - margin-left: 58.333333333333336%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666666666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.666666666666664%; - } - .col-lg-offset-1 { - margin-left: 8.333333333333332%; - } - .col-lg-offset-0 { - margin-left: 0; - } -} - -table { - max-width: 100%; - background-color: transparent; -} - -th { - text-align: left; -} - -.table { - width: 100%; - margin-bottom: 20px; -} - -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.428571429; - vertical-align: top; - border-top: 1px solid #dddddd; -} - -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #dddddd; -} - -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} - -.table > tbody + tbody { - border-top: 2px solid #dddddd; -} - -.table .table { - background-color: #ffffff; -} - -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} - -.table-bordered { - border: 1px solid #dddddd; -} - -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #dddddd; -} - -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} - -.table-striped > tbody > tr:nth-child(odd) > td, -.table-striped > tbody > tr:nth-child(odd) > th { - background-color: #f9f9f9; -} - -.table-hover > tbody > tr:hover > td, -.table-hover > tbody > tr:hover > th { - background-color: #f5f5f5; -} - -table col[class*="col-"] { - position: static; - display: table-column; - float: none; -} - -table td[class*="col-"], -table th[class*="col-"] { - display: table-cell; - float: none; -} - -.table > thead > tr > .active, -.table > tbody > tr > .active, -.table > tfoot > tr > .active, -.table > thead > .active > td, -.table > tbody > .active > td, -.table > tfoot > .active > td, -.table > thead > .active > th, -.table > tbody > .active > th, -.table > tfoot > .active > th { - background-color: #f5f5f5; -} - -.table-hover > tbody > tr > .active:hover, -.table-hover > tbody > .active:hover > td, -.table-hover > tbody > .active:hover > th { - background-color: #e8e8e8; -} - -.table > thead > tr > .success, -.table > tbody > tr > .success, -.table > tfoot > tr > .success, -.table > thead > .success > td, -.table > tbody > .success > td, -.table > tfoot > .success > td, -.table > thead > .success > th, -.table > tbody > .success > th, -.table > tfoot > .success > th { - background-color: #dff0d8; -} - -.table-hover > tbody > tr > .success:hover, -.table-hover > tbody > .success:hover > td, -.table-hover > tbody > .success:hover > th { - background-color: #d0e9c6; -} - -.table > thead > tr > .danger, -.table > tbody > tr > .danger, -.table > tfoot > tr > .danger, -.table > thead > .danger > td, -.table > tbody > .danger > td, -.table > tfoot > .danger > td, -.table > thead > .danger > th, -.table > tbody > .danger > th, -.table > tfoot > .danger > th { - background-color: #f2dede; -} - -.table-hover > tbody > tr > .danger:hover, -.table-hover > tbody > .danger:hover > td, -.table-hover > tbody > .danger:hover > th { - background-color: #ebcccc; -} - -.table > thead > tr > .warning, -.table > tbody > tr > .warning, -.table > tfoot > tr > .warning, -.table > thead > .warning > td, -.table > tbody > .warning > td, -.table > tfoot > .warning > td, -.table > thead > .warning > th, -.table > tbody > .warning > th, -.table > tfoot > .warning > th { - background-color: #fcf8e3; -} - -.table-hover > tbody > tr > .warning:hover, -.table-hover > tbody > .warning:hover > td, -.table-hover > tbody > .warning:hover > th { - background-color: #faf2cc; -} - -@media (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-x: scroll; - overflow-y: hidden; - border: 1px solid #dddddd; - -ms-overflow-style: -ms-autohiding-scrollbar; - -webkit-overflow-scrolling: touch; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} - -fieldset { - padding: 0; - margin: 0; - border: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} - -label { - display: inline-block; - margin-bottom: 5px; - font-weight: bold; -} - -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - /* IE8-9 */ - - line-height: normal; -} - -input[type="file"] { - display: block; -} - -select[multiple], -select[size] { - height: auto; -} - -select optgroup { - font-family: inherit; - font-size: inherit; - font-style: inherit; -} - -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -input[type="number"]::-webkit-outer-spin-button, -input[type="number"]::-webkit-inner-spin-button { - height: auto; -} - -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.428571429; - color: #555555; - vertical-align: middle; -} - -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.428571429; - color: #555555; - vertical-align: middle; - background-color: #ffffff; - background-image: none; - border: 1px solid #cccccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -} - -.form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -} - -.form-control:-moz-placeholder { - color: #999999; -} - -.form-control::-moz-placeholder { - color: #999999; - opacity: 1; -} - -.form-control:-ms-input-placeholder { - color: #999999; -} - -.form-control::-webkit-input-placeholder { - color: #999999; -} - -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eeeeee; -} - -textarea.form-control { - height: auto; -} - -.form-group { - margin-bottom: 15px; -} - -.radio, -.checkbox { - display: block; - min-height: 20px; - padding-left: 20px; - margin-top: 10px; - margin-bottom: 10px; - vertical-align: middle; -} - -.radio label, -.checkbox label { - display: inline; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} - -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - float: left; - margin-left: -20px; -} - -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} - -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; -} - -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} - -input[type="radio"][disabled], -input[type="checkbox"][disabled], -.radio[disabled], -.radio-inline[disabled], -.checkbox[disabled], -.checkbox-inline[disabled], -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"], -fieldset[disabled] .radio, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} - -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -select.input-sm { - height: 30px; - line-height: 30px; -} - -textarea.input-sm { - height: auto; -} - -.input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -select.input-lg { - height: 46px; - line-height: 46px; -} - -textarea.input-lg { - height: auto; -} - -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline { - color: #8a6d3b; -} - -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; -} - -.has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; -} - -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline { - color: #a94442; -} - -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; -} - -.has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; -} - -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline { - color: #3c763d; -} - -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; -} - -.has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; -} - -.form-control-static { - margin-bottom: 0; -} - -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} - -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - } - .form-inline select.form-control { - width: auto; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } -} - -.form-horizontal .control-label, -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; -} - -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; -} - -.form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; -} - -.form-horizontal .form-group:before, -.form-horizontal .form-group:after { - display: table; - content: " "; -} - -.form-horizontal .form-group:after { - clear: both; -} - -.form-horizontal .form-group:before, -.form-horizontal .form-group:after { - display: table; - content: " "; -} - -.form-horizontal .form-group:after { - clear: both; -} - -.form-horizontal .form-control-static { - padding-top: 7px; -} - -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - } -} - -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.428571429; - text-align: center; - white-space: nowrap; - vertical-align: middle; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; -} - -.btn:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.btn:hover, -.btn:focus { - color: #333333; - text-decoration: none; -} - -.btn:active, -.btn.active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} - -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - pointer-events: none; - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} - -.btn-default { - color: #333333; - background-color: #ffffff; - border-color: #cccccc; -} - -.btn-default:hover, -.btn-default:focus, -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - color: #333333; - background-color: #ebebeb; - border-color: #adadad; -} - -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - background-image: none; -} - -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #ffffff; - border-color: #cccccc; -} - -.btn-default .badge { - color: #ffffff; - background-color: #fff; -} - -.btn-primary { - color: #ffffff; - background-color: #428bca; - border-color: #357ebd; -} - -.btn-primary:hover, -.btn-primary:focus, -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #3276b1; - border-color: #285e8e; -} - -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - background-image: none; -} - -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #428bca; - border-color: #357ebd; -} - -.btn-primary .badge { - color: #428bca; - background-color: #fff; -} - -.btn-warning { - color: #ffffff; - background-color: #f0ad4e; - border-color: #eea236; -} - -.btn-warning:hover, -.btn-warning:focus, -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - color: #ffffff; - background-color: #ed9c28; - border-color: #d58512; -} - -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - background-image: none; -} - -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} - -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; -} - -.btn-danger { - color: #ffffff; - background-color: #d9534f; - border-color: #d43f3a; -} - -.btn-danger:hover, -.btn-danger:focus, -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - color: #ffffff; - background-color: #d2322d; - border-color: #ac2925; -} - -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - background-image: none; -} - -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} - -.btn-danger .badge { - color: #d9534f; - background-color: #fff; -} - -.btn-success { - color: #ffffff; - background-color: #5cb85c; - border-color: #4cae4c; -} - -.btn-success:hover, -.btn-success:focus, -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - color: #ffffff; - background-color: #47a447; - border-color: #398439; -} - -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - background-image: none; -} - -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} - -.btn-success .badge { - color: #5cb85c; - background-color: #fff; -} - -.btn-info { - color: #ffffff; - background-color: #5bc0de; - border-color: #46b8da; -} - -.btn-info:hover, -.btn-info:focus, -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - color: #ffffff; - background-color: #39b3d7; - border-color: #269abc; -} - -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - background-image: none; -} - -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} - -.btn-info .badge { - color: #5bc0de; - background-color: #fff; -} - -.btn-link { - font-weight: normal; - color: #428bca; - cursor: pointer; - border-radius: 0; -} - -.btn-link, -.btn-link:active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} - -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} - -.btn-link:hover, -.btn-link:focus { - color: #2a6496; - text-decoration: underline; - background-color: transparent; -} - -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #999999; - text-decoration: none; -} - -.btn-lg { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -.btn-sm { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -.btn-xs { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -.btn-block { - display: block; - width: 100%; - padding-right: 0; - padding-left: 0; -} - -.btn-block + .btn-block { - margin-top: 5px; -} - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} - -.fade.in { - opacity: 1; -} - -.collapse { - display: none; -} - -.collapse.in { - display: block; -} - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height 0.35s ease; - transition: height 0.35s ease; -} - -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg'); -} - -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - -webkit-font-smoothing: antialiased; - font-style: normal; - font-weight: normal; - line-height: 1; - -moz-osx-font-smoothing: grayscale; -} - -.glyphicon:empty { - width: 1em; -} - -.glyphicon-asterisk:before { - content: "\2a"; -} - -.glyphicon-plus:before { - content: "\2b"; -} - -.glyphicon-euro:before { - content: "\20ac"; -} - -.glyphicon-minus:before { - content: "\2212"; -} - -.glyphicon-cloud:before { - content: "\2601"; -} - -.glyphicon-envelope:before { - content: "\2709"; -} - -.glyphicon-pencil:before { - content: "\270f"; -} - -.glyphicon-glass:before { - content: "\e001"; -} - -.glyphicon-music:before { - content: "\e002"; -} - -.glyphicon-search:before { - content: "\e003"; -} - -.glyphicon-heart:before { - content: "\e005"; -} - -.glyphicon-star:before { - content: "\e006"; -} - -.glyphicon-star-empty:before { - content: "\e007"; -} - -.glyphicon-user:before { - content: "\e008"; -} - -.glyphicon-film:before { - content: "\e009"; -} - -.glyphicon-th-large:before { - content: "\e010"; -} - -.glyphicon-th:before { - content: "\e011"; -} - -.glyphicon-th-list:before { - content: "\e012"; -} - -.glyphicon-ok:before { - content: "\e013"; -} - -.glyphicon-remove:before { - content: "\e014"; -} - -.glyphicon-zoom-in:before { - content: "\e015"; -} - -.glyphicon-zoom-out:before { - content: "\e016"; -} - -.glyphicon-off:before { - content: "\e017"; -} - -.glyphicon-signal:before { - content: "\e018"; -} - -.glyphicon-cog:before { - content: "\e019"; -} - -.glyphicon-trash:before { - content: "\e020"; -} - -.glyphicon-home:before { - content: "\e021"; -} - -.glyphicon-file:before { - content: "\e022"; -} - -.glyphicon-time:before { - content: "\e023"; -} - -.glyphicon-road:before { - content: "\e024"; -} - -.glyphicon-download-alt:before { - content: "\e025"; -} - -.glyphicon-download:before { - content: "\e026"; -} - -.glyphicon-upload:before { - content: "\e027"; -} - -.glyphicon-inbox:before { - content: "\e028"; -} - -.glyphicon-play-circle:before { - content: "\e029"; -} - -.glyphicon-repeat:before { - content: "\e030"; -} - -.glyphicon-refresh:before { - content: "\e031"; -} - -.glyphicon-list-alt:before { - content: "\e032"; -} - -.glyphicon-lock:before { - content: "\e033"; -} - -.glyphicon-flag:before { - content: "\e034"; -} - -.glyphicon-headphones:before { - content: "\e035"; -} - -.glyphicon-volume-off:before { - content: "\e036"; -} - -.glyphicon-volume-down:before { - content: "\e037"; -} - -.glyphicon-volume-up:before { - content: "\e038"; -} - -.glyphicon-qrcode:before { - content: "\e039"; -} - -.glyphicon-barcode:before { - content: "\e040"; -} - -.glyphicon-tag:before { - content: "\e041"; -} - -.glyphicon-tags:before { - content: "\e042"; -} - -.glyphicon-book:before { - content: "\e043"; -} - -.glyphicon-bookmark:before { - content: "\e044"; -} - -.glyphicon-print:before { - content: "\e045"; -} - -.glyphicon-camera:before { - content: "\e046"; -} - -.glyphicon-font:before { - content: "\e047"; -} - -.glyphicon-bold:before { - content: "\e048"; -} - -.glyphicon-italic:before { - content: "\e049"; -} - -.glyphicon-text-height:before { - content: "\e050"; -} - -.glyphicon-text-width:before { - content: "\e051"; -} - -.glyphicon-align-left:before { - content: "\e052"; -} - -.glyphicon-align-center:before { - content: "\e053"; -} - -.glyphicon-align-right:before { - content: "\e054"; -} - -.glyphicon-align-justify:before { - content: "\e055"; -} - -.glyphicon-list:before { - content: "\e056"; -} - -.glyphicon-indent-left:before { - content: "\e057"; -} - -.glyphicon-indent-right:before { - content: "\e058"; -} - -.glyphicon-facetime-video:before { - content: "\e059"; -} - -.glyphicon-picture:before { - content: "\e060"; -} - -.glyphicon-map-marker:before { - content: "\e062"; -} - -.glyphicon-adjust:before { - content: "\e063"; -} - -.glyphicon-tint:before { - content: "\e064"; -} - -.glyphicon-edit:before { - content: "\e065"; -} - -.glyphicon-share:before { - content: "\e066"; -} - -.glyphicon-check:before { - content: "\e067"; -} - -.glyphicon-move:before { - content: "\e068"; -} - -.glyphicon-step-backward:before { - content: "\e069"; -} - -.glyphicon-fast-backward:before { - content: "\e070"; -} - -.glyphicon-backward:before { - content: "\e071"; -} - -.glyphicon-play:before { - content: "\e072"; -} - -.glyphicon-pause:before { - content: "\e073"; -} - -.glyphicon-stop:before { - content: "\e074"; -} - -.glyphicon-forward:before { - content: "\e075"; -} - -.glyphicon-fast-forward:before { - content: "\e076"; -} - -.glyphicon-step-forward:before { - content: "\e077"; -} - -.glyphicon-eject:before { - content: "\e078"; -} - -.glyphicon-chevron-left:before { - content: "\e079"; -} - -.glyphicon-chevron-right:before { - content: "\e080"; -} - -.glyphicon-plus-sign:before { - content: "\e081"; -} - -.glyphicon-minus-sign:before { - content: "\e082"; -} - -.glyphicon-remove-sign:before { - content: "\e083"; -} - -.glyphicon-ok-sign:before { - content: "\e084"; -} - -.glyphicon-question-sign:before { - content: "\e085"; -} - -.glyphicon-info-sign:before { - content: "\e086"; -} - -.glyphicon-screenshot:before { - content: "\e087"; -} - -.glyphicon-remove-circle:before { - content: "\e088"; -} - -.glyphicon-ok-circle:before { - content: "\e089"; -} - -.glyphicon-ban-circle:before { - content: "\e090"; -} - -.glyphicon-arrow-left:before { - content: "\e091"; -} - -.glyphicon-arrow-right:before { - content: "\e092"; -} - -.glyphicon-arrow-up:before { - content: "\e093"; -} - -.glyphicon-arrow-down:before { - content: "\e094"; -} - -.glyphicon-share-alt:before { - content: "\e095"; -} - -.glyphicon-resize-full:before { - content: "\e096"; -} - -.glyphicon-resize-small:before { - content: "\e097"; -} - -.glyphicon-exclamation-sign:before { - content: "\e101"; -} - -.glyphicon-gift:before { - content: "\e102"; -} - -.glyphicon-leaf:before { - content: "\e103"; -} - -.glyphicon-fire:before { - content: "\e104"; -} - -.glyphicon-eye-open:before { - content: "\e105"; -} - -.glyphicon-eye-close:before { - content: "\e106"; -} - -.glyphicon-warning-sign:before { - content: "\e107"; -} - -.glyphicon-plane:before { - content: "\e108"; -} - -.glyphicon-calendar:before { - content: "\e109"; -} - -.glyphicon-random:before { - content: "\e110"; -} - -.glyphicon-comment:before { - content: "\e111"; -} - -.glyphicon-magnet:before { - content: "\e112"; -} - -.glyphicon-chevron-up:before { - content: "\e113"; -} - -.glyphicon-chevron-down:before { - content: "\e114"; -} - -.glyphicon-retweet:before { - content: "\e115"; -} - -.glyphicon-shopping-cart:before { - content: "\e116"; -} - -.glyphicon-folder-close:before { - content: "\e117"; -} - -.glyphicon-folder-open:before { - content: "\e118"; -} - -.glyphicon-resize-vertical:before { - content: "\e119"; -} - -.glyphicon-resize-horizontal:before { - content: "\e120"; -} - -.glyphicon-hdd:before { - content: "\e121"; -} - -.glyphicon-bullhorn:before { - content: "\e122"; -} - -.glyphicon-bell:before { - content: "\e123"; -} - -.glyphicon-certificate:before { - content: "\e124"; -} - -.glyphicon-thumbs-up:before { - content: "\e125"; -} - -.glyphicon-thumbs-down:before { - content: "\e126"; -} - -.glyphicon-hand-right:before { - content: "\e127"; -} - -.glyphicon-hand-left:before { - content: "\e128"; -} - -.glyphicon-hand-up:before { - content: "\e129"; -} - -.glyphicon-hand-down:before { - content: "\e130"; -} - -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} - -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} - -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} - -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} - -.glyphicon-globe:before { - content: "\e135"; -} - -.glyphicon-wrench:before { - content: "\e136"; -} - -.glyphicon-tasks:before { - content: "\e137"; -} - -.glyphicon-filter:before { - content: "\e138"; -} - -.glyphicon-briefcase:before { - content: "\e139"; -} - -.glyphicon-fullscreen:before { - content: "\e140"; -} - -.glyphicon-dashboard:before { - content: "\e141"; -} - -.glyphicon-paperclip:before { - content: "\e142"; -} - -.glyphicon-heart-empty:before { - content: "\e143"; -} - -.glyphicon-link:before { - content: "\e144"; -} - -.glyphicon-phone:before { - content: "\e145"; -} - -.glyphicon-pushpin:before { - content: "\e146"; -} - -.glyphicon-usd:before { - content: "\e148"; -} - -.glyphicon-gbp:before { - content: "\e149"; -} - -.glyphicon-sort:before { - content: "\e150"; -} - -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} - -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} - -.glyphicon-sort-by-order:before { - content: "\e153"; -} - -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} - -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} - -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} - -.glyphicon-unchecked:before { - content: "\e157"; -} - -.glyphicon-expand:before { - content: "\e158"; -} - -.glyphicon-collapse-down:before { - content: "\e159"; -} - -.glyphicon-collapse-up:before { - content: "\e160"; -} - -.glyphicon-log-in:before { - content: "\e161"; -} - -.glyphicon-flash:before { - content: "\e162"; -} - -.glyphicon-log-out:before { - content: "\e163"; -} - -.glyphicon-new-window:before { - content: "\e164"; -} - -.glyphicon-record:before { - content: "\e165"; -} - -.glyphicon-save:before { - content: "\e166"; -} - -.glyphicon-open:before { - content: "\e167"; -} - -.glyphicon-saved:before { - content: "\e168"; -} - -.glyphicon-import:before { - content: "\e169"; -} - -.glyphicon-export:before { - content: "\e170"; -} - -.glyphicon-send:before { - content: "\e171"; -} - -.glyphicon-floppy-disk:before { - content: "\e172"; -} - -.glyphicon-floppy-saved:before { - content: "\e173"; -} - -.glyphicon-floppy-remove:before { - content: "\e174"; -} - -.glyphicon-floppy-save:before { - content: "\e175"; -} - -.glyphicon-floppy-open:before { - content: "\e176"; -} - -.glyphicon-credit-card:before { - content: "\e177"; -} - -.glyphicon-transfer:before { - content: "\e178"; -} - -.glyphicon-cutlery:before { - content: "\e179"; -} - -.glyphicon-header:before { - content: "\e180"; -} - -.glyphicon-compressed:before { - content: "\e181"; -} - -.glyphicon-earphone:before { - content: "\e182"; -} - -.glyphicon-phone-alt:before { - content: "\e183"; -} - -.glyphicon-tower:before { - content: "\e184"; -} - -.glyphicon-stats:before { - content: "\e185"; -} - -.glyphicon-sd-video:before { - content: "\e186"; -} - -.glyphicon-hd-video:before { - content: "\e187"; -} - -.glyphicon-subtitles:before { - content: "\e188"; -} - -.glyphicon-sound-stereo:before { - content: "\e189"; -} - -.glyphicon-sound-dolby:before { - content: "\e190"; -} - -.glyphicon-sound-5-1:before { - content: "\e191"; -} - -.glyphicon-sound-6-1:before { - content: "\e192"; -} - -.glyphicon-sound-7-1:before { - content: "\e193"; -} - -.glyphicon-copyright-mark:before { - content: "\e194"; -} - -.glyphicon-registration-mark:before { - content: "\e195"; -} - -.glyphicon-cloud-download:before { - content: "\e197"; -} - -.glyphicon-cloud-upload:before { - content: "\e198"; -} - -.glyphicon-tree-conifer:before { - content: "\e199"; -} - -.glyphicon-tree-deciduous:before { - content: "\e200"; -} - -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} - -.dropdown { - position: relative; -} - -.dropdown-toggle:focus { - outline: 0; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - font-size: 14px; - list-style: none; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; -} - -.dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} - -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.428571429; - color: #333333; - white-space: nowrap; -} - -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; -} - -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - background-color: #428bca; - outline: 0; -} - -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #999999; -} - -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.open > .dropdown-menu { - display: block; -} - -.open > a { - outline: 0; -} - -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.428571429; - color: #999999; -} - -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} - -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid; - content: ""; -} - -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} - -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; - } -} - -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} - -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} - -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} - -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus { - outline: none; -} - -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} - -.btn-toolbar:before, -.btn-toolbar:after { - display: table; - content: " "; -} - -.btn-toolbar:after { - clear: both; -} - -.btn-toolbar:before, -.btn-toolbar:after { - display: table; - content: " "; -} - -.btn-toolbar:after { - clear: both; -} - -.btn-toolbar .btn-group { - float: left; -} - -.btn-toolbar > .btn + .btn, -.btn-toolbar > .btn-group + .btn, -.btn-toolbar > .btn + .btn-group, -.btn-toolbar > .btn-group + .btn-group { - margin-left: 5px; -} - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} - -.btn-group > .btn:first-child { - margin-left: 0; -} - -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.btn-group > .btn-group { - float: left; -} - -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} - -.btn-group > .btn-group:first-child > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.btn-group > .btn-group:last-child > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -.btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; -} - -.btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; -} - -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} - -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} - -.btn .caret { - margin-left: 0; -} - -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} - -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} - -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} - -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after { - display: table; - content: " "; -} - -.btn-group-vertical > .btn-group:after { - clear: both; -} - -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after { - display: table; - content: " "; -} - -.btn-group-vertical > .btn-group:after { - clear: both; -} - -.btn-group-vertical > .btn-group > .btn { - float: none; -} - -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} - -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} - -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-right-radius: 0; - border-bottom-left-radius: 4px; - border-top-left-radius: 0; -} - -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} - -.btn-group-vertical > .btn-group:first-child > .btn:last-child, -.btn-group-vertical > .btn-group:first-child > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.btn-group-vertical > .btn-group:last-child > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.btn-group-justified { - display: table; - width: 100%; - border-collapse: separate; - table-layout: fixed; -} - -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; -} - -.btn-group-justified > .btn-group .btn { - width: 100%; -} - -[data-toggle="buttons"] > .btn > input[type="radio"], -[data-toggle="buttons"] > .btn > input[type="checkbox"] { - display: none; -} - -.input-group { - position: relative; - display: table; - border-collapse: separate; -} - -.input-group[class*="col-"] { - float: none; - padding-right: 0; - padding-left: 0; -} - -.input-group .form-control { - width: 100%; - margin-bottom: 0; -} - -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} - -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn { - height: auto; -} - -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} - -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn { - height: auto; -} - -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} - -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} - -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} - -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555555; - text-align: center; - background-color: #eeeeee; - border: 1px solid #cccccc; - border-radius: 4px; -} - -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} - -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} - -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} - -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.input-group-addon:first-child { - border-right: 0; -} - -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.input-group-addon:last-child { - border-left: 0; -} - -.input-group-btn { - position: relative; - white-space: nowrap; -} - -.input-group-btn:first-child > .btn { - margin-right: -1px; -} - -.input-group-btn:last-child > .btn { - margin-left: -1px; -} - -.input-group-btn > .btn { - position: relative; -} - -.input-group-btn > .btn + .btn { - margin-left: -4px; -} - -.input-group-btn > .btn:hover, -.input-group-btn > .btn:active { - z-index: 2; -} - -.nav { - padding-left: 0; - margin-bottom: 0; - list-style: none; -} - -.nav:before, -.nav:after { - display: table; - content: " "; -} - -.nav:after { - clear: both; -} - -.nav:before, -.nav:after { - display: table; - content: " "; -} - -.nav:after { - clear: both; -} - -.nav > li { - position: relative; - display: block; -} - -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} - -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eeeeee; -} - -.nav > li.disabled > a { - color: #999999; -} - -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #999999; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; -} - -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eeeeee; - border-color: #428bca; -} - -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} - -.nav > li > a > img { - max-width: none; -} - -.nav-tabs { - border-bottom: 1px solid #dddddd; -} - -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} - -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.428571429; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} - -.nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; -} - -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555555; - cursor: default; - background-color: #ffffff; - border: 1px solid #dddddd; - border-bottom-color: transparent; -} - -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} - -.nav-tabs.nav-justified > li { - float: none; -} - -.nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} - -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} - -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} - -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} - -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #dddddd; -} - -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #ffffff; - } -} - -.nav-pills > li { - float: left; -} - -.nav-pills > li > a { - border-radius: 4px; -} - -.nav-pills > li + li { - margin-left: 2px; -} - -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #ffffff; - background-color: #428bca; -} - -.nav-stacked > li { - float: none; -} - -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} - -.nav-justified { - width: 100%; -} - -.nav-justified > li { - float: none; -} - -.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} - -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} - -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} - -.nav-tabs-justified { - border-bottom: 0; -} - -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} - -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #dddddd; -} - -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #ffffff; - } -} - -.tab-content > .tab-pane { - display: none; -} - -.tab-content > .active { - display: block; -} - -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} - -.navbar:before, -.navbar:after { - display: table; - content: " "; -} - -.navbar:after { - clear: both; -} - -.navbar:before, -.navbar:after { - display: table; - content: " "; -} - -.navbar:after { - clear: both; -} - -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} - -.navbar-header:before, -.navbar-header:after { - display: table; - content: " "; -} - -.navbar-header:after { - clear: both; -} - -.navbar-header:before, -.navbar-header:after { - display: table; - content: " "; -} - -.navbar-header:after { - clear: both; -} - -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} - -.navbar-collapse { - max-height: 340px; - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} - -.navbar-collapse:before, -.navbar-collapse:after { - display: table; - content: " "; -} - -.navbar-collapse:after { - clear: both; -} - -.navbar-collapse:before, -.navbar-collapse:after { - display: table; - content: " "; -} - -.navbar-collapse:after { - clear: both; -} - -.navbar-collapse.in { - overflow-y: auto; -} - -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-right: 0; - padding-left: 0; - } -} - -.container > .navbar-header, -.container > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} - -@media (min-width: 768px) { - .container > .navbar-header, - .container > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} - -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} - -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} - -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} - -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} - -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} - -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} - -.navbar-brand { - float: left; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; -} - -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} - -@media (min-width: 768px) { - .navbar > .container .navbar-brand { - margin-left: -15px; - } -} - -.navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} - -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} - -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} - -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} - -.navbar-nav { - margin: 7.5px -15px; -} - -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} - -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} - -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } - .navbar-nav.navbar-right:last-child { - margin-right: -15px; - } -} - -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - } -} - -.navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); -} - -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - } - .navbar-form select.form-control { - width: auto; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } -} - -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } -} - -@media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-form.navbar-right:last-child { - margin-right: -15px; - } -} - -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.navbar-nav.pull-right > li > .dropdown-menu, -.navbar-nav > li > .dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} - -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} - -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} - -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} - -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } - .navbar-text.navbar-right:last-child { - margin-right: 0; - } -} - -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} - -.navbar-default .navbar-brand { - color: #777777; -} - -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} - -.navbar-default .navbar-text { - color: #777777; -} - -.navbar-default .navbar-nav > li > a { - color: #777777; -} - -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333333; - background-color: transparent; -} - -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555555; - background-color: #e7e7e7; -} - -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #cccccc; - background-color: transparent; -} - -.navbar-default .navbar-toggle { - border-color: #dddddd; -} - -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #dddddd; -} - -.navbar-default .navbar-toggle .icon-bar { - background-color: #cccccc; -} - -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} - -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555555; - background-color: #e7e7e7; -} - -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #cccccc; - background-color: transparent; - } -} - -.navbar-default .navbar-link { - color: #777777; -} - -.navbar-default .navbar-link:hover { - color: #333333; -} - -.navbar-inverse { - background-color: #222222; - border-color: #080808; -} - -.navbar-inverse .navbar-brand { - color: #999999; -} - -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #ffffff; - background-color: transparent; -} - -.navbar-inverse .navbar-text { - color: #999999; -} - -.navbar-inverse .navbar-nav > li > a { - color: #999999; -} - -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #ffffff; - background-color: transparent; -} - -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #080808; -} - -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444444; - background-color: transparent; -} - -.navbar-inverse .navbar-toggle { - border-color: #333333; -} - -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333333; -} - -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #ffffff; -} - -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} - -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - color: #ffffff; - background-color: #080808; -} - -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #999999; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ffffff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444444; - background-color: transparent; - } -} - -.navbar-inverse .navbar-link { - color: #999999; -} - -.navbar-inverse .navbar-link:hover { - color: #ffffff; -} - -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} - -.breadcrumb > li { - display: inline-block; -} - -.breadcrumb > li + li:before { - padding: 0 5px; - color: #cccccc; - content: "/\00a0"; -} - -.breadcrumb > .active { - color: #999999; -} - -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} - -.pagination > li { - display: inline; -} - -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.428571429; - text-decoration: none; - background-color: #ffffff; - border: 1px solid #dddddd; -} - -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; -} - -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} - -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - background-color: #eeeeee; -} - -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #ffffff; - cursor: default; - background-color: #428bca; - border-color: #428bca; -} - -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #999999; - cursor: not-allowed; - background-color: #ffffff; - border-color: #dddddd; -} - -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} - -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 6px; - border-top-left-radius: 6px; -} - -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} - -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} - -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} - -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -.pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; -} - -.pager:before, -.pager:after { - display: table; - content: " "; -} - -.pager:after { - clear: both; -} - -.pager:before, -.pager:after { - display: table; - content: " "; -} - -.pager:after { - clear: both; -} - -.pager li { - display: inline; -} - -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 15px; -} - -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eeeeee; -} - -.pager .next > a, -.pager .next > span { - float: right; -} - -.pager .previous > a, -.pager .previous > span { - float: left; -} - -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #999999; - cursor: not-allowed; - background-color: #ffffff; -} - -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} - -.label[href]:hover, -.label[href]:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.label:empty { - display: none; -} - -.btn .label { - position: relative; - top: -1px; -} - -.label-default { - background-color: #999999; -} - -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #808080; -} - -.label-primary { - background-color: #428bca; -} - -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #3071a9; -} - -.label-success { - background-color: #5cb85c; -} - -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} - -.label-info { - background-color: #5bc0de; -} - -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} - -.label-warning { - background-color: #f0ad4e; -} - -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} - -.label-danger { - background-color: #d9534f; -} - -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} - -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - background-color: #999999; - border-radius: 10px; -} - -.badge:empty { - display: none; -} - -.btn .badge { - position: relative; - top: -1px; -} - -a.badge:hover, -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -a.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #428bca; - background-color: #ffffff; -} - -.nav-pills > li > a > .badge { - margin-left: 3px; -} - -.jumbotron { - padding: 30px; - margin-bottom: 30px; - font-size: 21px; - font-weight: 200; - line-height: 2.1428571435; - color: inherit; - background-color: #eeeeee; -} - -.jumbotron h1, -.jumbotron .h1 { - line-height: 1; - color: inherit; -} - -.jumbotron p { - line-height: 1.4; -} - -.container .jumbotron { - border-radius: 6px; -} - -.jumbotron .container { - max-width: 100%; -} - -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} - -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.428571429; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -.thumbnail > img, -.thumbnail a > img { - display: block; - height: auto; - max-width: 100%; - margin-right: auto; - margin-left: auto; -} - -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #428bca; -} - -.thumbnail .caption { - padding: 9px; - color: #333333; -} - -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} - -.alert h4 { - margin-top: 0; - color: inherit; -} - -.alert .alert-link { - font-weight: bold; -} - -.alert > p, -.alert > ul { - margin-bottom: 0; -} - -.alert > p + p { - margin-top: 5px; -} - -.alert-dismissable { - padding-right: 35px; -} - -.alert-dismissable .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} - -.alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} - -.alert-success hr { - border-top-color: #c9e2b3; -} - -.alert-success .alert-link { - color: #2b542c; -} - -.alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} - -.alert-info hr { - border-top-color: #a6e1ec; -} - -.alert-info .alert-link { - color: #245269; -} - -.alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} - -.alert-warning hr { - border-top-color: #f7e1b5; -} - -.alert-warning .alert-link { - color: #66512c; -} - -.alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} - -.alert-danger hr { - border-top-color: #e4b9c0; -} - -.alert-danger .alert-link { - color: #843534; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.progress-bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #ffffff; - text-align: center; - background-color: #428bca; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - transition: width 0.6s ease; -} - -.progress-striped .progress-bar { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 40px 40px; -} - -.progress.active .progress-bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} - -.progress-bar-success { - background-color: #5cb85c; -} - -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-bar-info { - background-color: #5bc0de; -} - -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-bar-warning { - background-color: #f0ad4e; -} - -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-bar-danger { - background-color: #d9534f; -} - -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.media, -.media-body { - overflow: hidden; - zoom: 1; -} - -.media, -.media .media { - margin-top: 15px; -} - -.media:first-child { - margin-top: 0; -} - -.media-object { - display: block; -} - -.media-heading { - margin: 0 0 5px; -} - -.media > .pull-left { - margin-right: 10px; -} - -.media > .pull-right { - margin-left: 10px; -} - -.media-list { - padding-left: 0; - list-style: none; -} - -.list-group { - padding-left: 0; - margin-bottom: 20px; -} - -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #ffffff; - border: 1px solid #dddddd; -} - -.list-group-item:first-child { - border-top-right-radius: 4px; - border-top-left-radius: 4px; -} - -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} - -.list-group-item > .badge { - float: right; -} - -.list-group-item > .badge + .badge { - margin-right: 5px; -} - -a.list-group-item { - color: #555555; -} - -a.list-group-item .list-group-item-heading { - color: #333333; -} - -a.list-group-item:hover, -a.list-group-item:focus { - text-decoration: none; - background-color: #f5f5f5; -} - -a.list-group-item.active, -a.list-group-item.active:hover, -a.list-group-item.active:focus { - z-index: 2; - color: #ffffff; - background-color: #428bca; - border-color: #428bca; -} - -a.list-group-item.active .list-group-item-heading, -a.list-group-item.active:hover .list-group-item-heading, -a.list-group-item.active:focus .list-group-item-heading { - color: inherit; -} - -a.list-group-item.active .list-group-item-text, -a.list-group-item.active:hover .list-group-item-text, -a.list-group-item.active:focus .list-group-item-text { - color: #e1edf7; -} - -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} - -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} - -.panel { - margin-bottom: 20px; - background-color: #ffffff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} - -.panel-body { - padding: 15px; -} - -.panel-body:before, -.panel-body:after { - display: table; - content: " "; -} - -.panel-body:after { - clear: both; -} - -.panel-body:before, -.panel-body:after { - display: table; - content: " "; -} - -.panel-body:after { - clear: both; -} - -.panel > .list-group { - margin-bottom: 0; -} - -.panel > .list-group .list-group-item { - border-width: 1px 0; -} - -.panel > .list-group .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.panel > .list-group .list-group-item:last-child { - border-bottom: 0; -} - -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} - -.panel > .table, -.panel > .table-responsive > .table { - margin-bottom: 0; -} - -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive { - border-top: 1px solid #dddddd; -} - -.panel > .table > tbody:first-child th, -.panel > .table > tbody:first-child td { - border-top: 0; -} - -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} - -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} - -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} - -.panel > .table-bordered > thead > tr:last-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:last-child > th, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-bordered > thead > tr:last-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; -} - -.panel > .table-responsive { - margin-bottom: 0; - border: 0; -} - -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} - -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} - -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} - -.panel-title > a { - color: inherit; -} - -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #dddddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} - -.panel-group .panel { - margin-bottom: 0; - overflow: hidden; - border-radius: 4px; -} - -.panel-group .panel + .panel { - margin-top: 5px; -} - -.panel-group .panel-heading { - border-bottom: 0; -} - -.panel-group .panel-heading + .panel-collapse .panel-body { - border-top: 1px solid #dddddd; -} - -.panel-group .panel-footer { - border-top: 0; -} - -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #dddddd; -} - -.panel-default { - border-color: #dddddd; -} - -.panel-default > .panel-heading { - color: #333333; - background-color: #f5f5f5; - border-color: #dddddd; -} - -.panel-default > .panel-heading + .panel-collapse .panel-body { - border-top-color: #dddddd; -} - -.panel-default > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #dddddd; -} - -.panel-primary { - border-color: #428bca; -} - -.panel-primary > .panel-heading { - color: #ffffff; - background-color: #428bca; - border-color: #428bca; -} - -.panel-primary > .panel-heading + .panel-collapse .panel-body { - border-top-color: #428bca; -} - -.panel-primary > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #428bca; -} - -.panel-success { - border-color: #d6e9c6; -} - -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} - -.panel-success > .panel-heading + .panel-collapse .panel-body { - border-top-color: #d6e9c6; -} - -.panel-success > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #d6e9c6; -} - -.panel-warning { - border-color: #faebcc; -} - -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} - -.panel-warning > .panel-heading + .panel-collapse .panel-body { - border-top-color: #faebcc; -} - -.panel-warning > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #faebcc; -} - -.panel-danger { - border-color: #ebccd1; -} - -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} - -.panel-danger > .panel-heading + .panel-collapse .panel-body { - border-top-color: #ebccd1; -} - -.panel-danger > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #ebccd1; -} - -.panel-info { - border-color: #bce8f1; -} - -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} - -.panel-info > .panel-heading + .panel-collapse .panel-body { - border-top-color: #bce8f1; -} - -.panel-info > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #bce8f1; -} - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} - -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} - -.well-lg { - padding: 24px; - border-radius: 6px; -} - -.well-sm { - padding: 9px; - border-radius: 3px; -} - -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} - -.close:hover, -.close:focus { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); -} - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} - -.modal-open { - overflow: hidden; -} - -.modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - display: none; - overflow: auto; - overflow-y: scroll; -} - -.modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; -} - -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); -} - -.modal-dialog { - position: relative; - z-index: 1050; - width: auto; - margin: 10px; -} - -.modal-content { - position: relative; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - outline: none; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1030; - background-color: #000000; -} - -.modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} - -.modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); -} - -.modal-header { - min-height: 16.428571429px; - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} - -.modal-header .close { - margin-top: -2px; -} - -.modal-title { - margin: 0; - line-height: 1.428571429; -} - -.modal-body { - position: relative; - padding: 20px; -} - -.modal-footer { - padding: 19px 20px 20px; - margin-top: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} - -.modal-footer:before, -.modal-footer:after { - display: table; - content: " "; -} - -.modal-footer:after { - clear: both; -} - -.modal-footer:before, -.modal-footer:after { - display: table; - content: " "; -} - -.modal-footer:after { - clear: both; -} - -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} - -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} - -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} - -@media screen and (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } -} - -.tooltip { - position: absolute; - z-index: 1030; - display: block; - font-size: 12px; - line-height: 1.4; - opacity: 0; - filter: alpha(opacity=0); - visibility: visible; -} - -.tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); -} - -.tooltip.top { - padding: 5px 0; - margin-top: -3px; -} - -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} - -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} - -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} - -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - border-radius: 4px; -} - -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-top-color: #000000; - border-width: 5px 5px 0; -} - -.tooltip.top-left .tooltip-arrow { - bottom: 0; - left: 5px; - border-top-color: #000000; - border-width: 5px 5px 0; -} - -.tooltip.top-right .tooltip-arrow { - right: 5px; - bottom: 0; - border-top-color: #000000; - border-width: 5px 5px 0; -} - -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-right-color: #000000; - border-width: 5px 5px 5px 0; -} - -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-left-color: #000000; - border-width: 5px 0 5px 5px; -} - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -.tooltip.bottom-left .tooltip-arrow { - top: 0; - left: 5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -.tooltip.bottom-right .tooltip-arrow { - top: 0; - right: 5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - max-width: 276px; - padding: 1px; - text-align: left; - white-space: normal; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - background-clip: padding-box; -} - -.popover.top { - margin-top: -10px; -} - -.popover.right { - margin-left: 10px; -} - -.popover.bottom { - margin-top: 10px; -} - -.popover.left { - margin-left: -10px; -} - -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} - -.popover-content { - padding: 9px 14px; -} - -.popover .arrow, -.popover .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.popover .arrow { - border-width: 11px; -} - -.popover .arrow:after { - border-width: 10px; - content: ""; -} - -.popover.top .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999999; - border-top-color: rgba(0, 0, 0, 0.25); - border-bottom-width: 0; -} - -.popover.top .arrow:after { - bottom: 1px; - margin-left: -10px; - border-top-color: #ffffff; - border-bottom-width: 0; - content: " "; -} - -.popover.right .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999999; - border-right-color: rgba(0, 0, 0, 0.25); - border-left-width: 0; -} - -.popover.right .arrow:after { - bottom: -10px; - left: 1px; - border-right-color: #ffffff; - border-left-width: 0; - content: " "; -} - -.popover.bottom .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-bottom-color: #999999; - border-bottom-color: rgba(0, 0, 0, 0.25); - border-top-width: 0; -} - -.popover.bottom .arrow:after { - top: 1px; - margin-left: -10px; - border-bottom-color: #ffffff; - border-top-width: 0; - content: " "; -} - -.popover.left .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-left-color: #999999; - border-left-color: rgba(0, 0, 0, 0.25); - border-right-width: 0; -} - -.popover.left .arrow:after { - right: 1px; - bottom: -10px; - border-left-color: #ffffff; - border-right-width: 0; - content: " "; -} - -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} - -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} - -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - height: auto; - max-width: 100%; - line-height: 1; -} - -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} - -.carousel-inner > .active { - left: 0; -} - -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} - -.carousel-inner > .next { - left: 100%; -} - -.carousel-inner > .prev { - left: -100%; -} - -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} - -.carousel-inner > .active.left { - left: -100%; -} - -.carousel-inner > .active.right { - left: 100%; -} - -.carousel-control { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 15%; - font-size: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - opacity: 0.5; - filter: alpha(opacity=50); -} - -.carousel-control.left { - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); -} - -.carousel-control.right { - right: 0; - left: auto; - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); -} - -.carousel-control:hover, -.carousel-control:focus { - color: #ffffff; - text-decoration: none; - outline: none; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; -} - -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; -} - -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; -} - -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - font-family: serif; -} - -.carousel-control .icon-prev:before { - content: '\2039'; -} - -.carousel-control .icon-next:before { - content: '\203a'; -} - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; -} - -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #ffffff; - border-radius: 10px; -} - -.carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #ffffff; -} - -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} - -.carousel-caption .btn { - text-shadow: none; -} - -@media screen and (min-width: 768px) { - .carousel-control .glyphicons-chevron-left, - .carousel-control .glyphicons-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - margin-left: -15px; - font-size: 30px; - } - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} - -.clearfix:before, -.clearfix:after { - display: table; - content: " "; -} - -.clearfix:after { - clear: both; -} - -.center-block { - display: block; - margin-right: auto; - margin-left: auto; -} - -.pull-right { - float: right !important; -} - -.pull-left { - float: left !important; -} - -.hide { - display: none !important; -} - -.show { - display: block !important; -} - -.invisible { - visibility: hidden; -} - -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.hidden { - display: none !important; - visibility: hidden !important; -} - -.affix { - position: fixed; -} - -@-ms-viewport { - width: device-width; -} - -.visible-xs, -tr.visible-xs, -th.visible-xs, -td.visible-xs { - display: none !important; -} - -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-xs.visible-sm { - display: block !important; - } - table.visible-xs.visible-sm { - display: table; - } - tr.visible-xs.visible-sm { - display: table-row !important; - } - th.visible-xs.visible-sm, - td.visible-xs.visible-sm { - display: table-cell !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-xs.visible-md { - display: block !important; - } - table.visible-xs.visible-md { - display: table; - } - tr.visible-xs.visible-md { - display: table-row !important; - } - th.visible-xs.visible-md, - td.visible-xs.visible-md { - display: table-cell !important; - } -} - -@media (min-width: 1200px) { - .visible-xs.visible-lg { - display: block !important; - } - table.visible-xs.visible-lg { - display: table; - } - tr.visible-xs.visible-lg { - display: table-row !important; - } - th.visible-xs.visible-lg, - td.visible-xs.visible-lg { - display: table-cell !important; - } -} - -.visible-sm, -tr.visible-sm, -th.visible-sm, -td.visible-sm { - display: none !important; -} - -@media (max-width: 767px) { - .visible-sm.visible-xs { - display: block !important; - } - table.visible-sm.visible-xs { - display: table; - } - tr.visible-sm.visible-xs { - display: table-row !important; - } - th.visible-sm.visible-xs, - td.visible-sm.visible-xs { - display: table-cell !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-sm.visible-md { - display: block !important; - } - table.visible-sm.visible-md { - display: table; - } - tr.visible-sm.visible-md { - display: table-row !important; - } - th.visible-sm.visible-md, - td.visible-sm.visible-md { - display: table-cell !important; - } -} - -@media (min-width: 1200px) { - .visible-sm.visible-lg { - display: block !important; - } - table.visible-sm.visible-lg { - display: table; - } - tr.visible-sm.visible-lg { - display: table-row !important; - } - th.visible-sm.visible-lg, - td.visible-sm.visible-lg { - display: table-cell !important; - } -} - -.visible-md, -tr.visible-md, -th.visible-md, -td.visible-md { - display: none !important; -} - -@media (max-width: 767px) { - .visible-md.visible-xs { - display: block !important; - } - table.visible-md.visible-xs { - display: table; - } - tr.visible-md.visible-xs { - display: table-row !important; - } - th.visible-md.visible-xs, - td.visible-md.visible-xs { - display: table-cell !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-md.visible-sm { - display: block !important; - } - table.visible-md.visible-sm { - display: table; - } - tr.visible-md.visible-sm { - display: table-row !important; - } - th.visible-md.visible-sm, - td.visible-md.visible-sm { - display: table-cell !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} - -@media (min-width: 1200px) { - .visible-md.visible-lg { - display: block !important; - } - table.visible-md.visible-lg { - display: table; - } - tr.visible-md.visible-lg { - display: table-row !important; - } - th.visible-md.visible-lg, - td.visible-md.visible-lg { - display: table-cell !important; - } -} - -.visible-lg, -tr.visible-lg, -th.visible-lg, -td.visible-lg { - display: none !important; -} - -@media (max-width: 767px) { - .visible-lg.visible-xs { - display: block !important; - } - table.visible-lg.visible-xs { - display: table; - } - tr.visible-lg.visible-xs { - display: table-row !important; - } - th.visible-lg.visible-xs, - td.visible-lg.visible-xs { - display: table-cell !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .visible-lg.visible-sm { - display: block !important; - } - table.visible-lg.visible-sm { - display: table; - } - tr.visible-lg.visible-sm { - display: table-row !important; - } - th.visible-lg.visible-sm, - td.visible-lg.visible-sm { - display: table-cell !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-lg.visible-md { - display: block !important; - } - table.visible-lg.visible-md { - display: table; - } - tr.visible-lg.visible-md { - display: table-row !important; - } - th.visible-lg.visible-md, - td.visible-lg.visible-md { - display: table-cell !important; - } -} - -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} - -.hidden-xs { - display: block !important; -} - -table.hidden-xs { - display: table; -} - -tr.hidden-xs { - display: table-row !important; -} - -th.hidden-xs, -td.hidden-xs { - display: table-cell !important; -} - -@media (max-width: 767px) { - .hidden-xs, - tr.hidden-xs, - th.hidden-xs, - td.hidden-xs { - display: none !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .hidden-xs.hidden-sm, - tr.hidden-xs.hidden-sm, - th.hidden-xs.hidden-sm, - td.hidden-xs.hidden-sm { - display: none !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-xs.hidden-md, - tr.hidden-xs.hidden-md, - th.hidden-xs.hidden-md, - td.hidden-xs.hidden-md { - display: none !important; - } -} - -@media (min-width: 1200px) { - .hidden-xs.hidden-lg, - tr.hidden-xs.hidden-lg, - th.hidden-xs.hidden-lg, - td.hidden-xs.hidden-lg { - display: none !important; - } -} - -.hidden-sm { - display: block !important; -} - -table.hidden-sm { - display: table; -} - -tr.hidden-sm { - display: table-row !important; -} - -th.hidden-sm, -td.hidden-sm { - display: table-cell !important; -} - -@media (max-width: 767px) { - .hidden-sm.hidden-xs, - tr.hidden-sm.hidden-xs, - th.hidden-sm.hidden-xs, - td.hidden-sm.hidden-xs { - display: none !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm, - tr.hidden-sm, - th.hidden-sm, - td.hidden-sm { - display: none !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-sm.hidden-md, - tr.hidden-sm.hidden-md, - th.hidden-sm.hidden-md, - td.hidden-sm.hidden-md { - display: none !important; - } -} - -@media (min-width: 1200px) { - .hidden-sm.hidden-lg, - tr.hidden-sm.hidden-lg, - th.hidden-sm.hidden-lg, - td.hidden-sm.hidden-lg { - display: none !important; - } -} - -.hidden-md { - display: block !important; -} - -table.hidden-md { - display: table; -} - -tr.hidden-md { - display: table-row !important; -} - -th.hidden-md, -td.hidden-md { - display: table-cell !important; -} - -@media (max-width: 767px) { - .hidden-md.hidden-xs, - tr.hidden-md.hidden-xs, - th.hidden-md.hidden-xs, - td.hidden-md.hidden-xs { - display: none !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .hidden-md.hidden-sm, - tr.hidden-md.hidden-sm, - th.hidden-md.hidden-sm, - td.hidden-md.hidden-sm { - display: none !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md, - tr.hidden-md, - th.hidden-md, - td.hidden-md { - display: none !important; - } -} - -@media (min-width: 1200px) { - .hidden-md.hidden-lg, - tr.hidden-md.hidden-lg, - th.hidden-md.hidden-lg, - td.hidden-md.hidden-lg { - display: none !important; - } -} - -.hidden-lg { - display: block !important; -} - -table.hidden-lg { - display: table; -} - -tr.hidden-lg { - display: table-row !important; -} - -th.hidden-lg, -td.hidden-lg { - display: table-cell !important; -} - -@media (max-width: 767px) { - .hidden-lg.hidden-xs, - tr.hidden-lg.hidden-xs, - th.hidden-lg.hidden-xs, - td.hidden-lg.hidden-xs { - display: none !important; - } -} - -@media (min-width: 768px) and (max-width: 991px) { - .hidden-lg.hidden-sm, - tr.hidden-lg.hidden-sm, - th.hidden-lg.hidden-sm, - td.hidden-lg.hidden-sm { - display: none !important; - } -} - -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-lg.hidden-md, - tr.hidden-lg.hidden-md, - th.hidden-lg.hidden-md, - td.hidden-lg.hidden-md { - display: none !important; - } -} - -@media (min-width: 1200px) { - .hidden-lg, - tr.hidden-lg, - th.hidden-lg, - td.hidden-lg { - display: none !important; - } -} - -.visible-print, -tr.visible-print, -th.visible-print, -td.visible-print { - display: none !important; -} - -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } - .hidden-print, - tr.hidden-print, - th.hidden-print, - td.hidden-print { - display: none !important; - } -} \ No newline at end of file diff --git a/css/bootstrap.min.css b/css/bootstrap.min.css deleted file mode 100644 index c547283bb..000000000 --- a/css/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.0.3 (http://getbootstrap.com) - * Copyright 2013 Twitter, Inc. - * Licensed under http://www.apache.org/licenses/LICENSE-2.0 - */ - -/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h1 small,h2 small,h3 small,h1 .small,h2 .small,h3 .small{font-size:65%}h4,h5,h6{margin-top:10px;margin-bottom:10px}h4 small,h5 small,h6 small,h4 .small,h5 .small,h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-primary:hover{color:#3071a9}.text-warning{color:#8a6d3b}.text-warning:hover{color:#66512c}.text-danger{color:#a94442}.text-danger:hover{color:#843534}.text-success{color:#3c763d}.text-success:hover{color:#2b542c}.text-info{color:#31708f}.text-info:hover{color:#245269}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small,blockquote .small{display:block;line-height:1.428571429;color:#999}blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small,blockquote.pull-right .small{text-align:right}blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}@media(min-width:768px){.container{width:750px}}@media(min-width:992px){.container{width:970px}}@media(min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666666666666%}.col-xs-10{width:83.33333333333334%}.col-xs-9{width:75%}.col-xs-8{width:66.66666666666666%}.col-xs-7{width:58.333333333333336%}.col-xs-6{width:50%}.col-xs-5{width:41.66666666666667%}.col-xs-4{width:33.33333333333333%}.col-xs-3{width:25%}.col-xs-2{width:16.666666666666664%}.col-xs-1{width:8.333333333333332%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666666666666%}.col-xs-pull-10{right:83.33333333333334%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666666666666%}.col-xs-pull-7{right:58.333333333333336%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666666666667%}.col-xs-pull-4{right:33.33333333333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.666666666666664%}.col-xs-pull-1{right:8.333333333333332%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666666666666%}.col-xs-push-10{left:83.33333333333334%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666666666666%}.col-xs-push-7{left:58.333333333333336%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666666666667%}.col-xs-push-4{left:33.33333333333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.666666666666664%}.col-xs-push-1{left:8.333333333333332%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666666666666%}.col-xs-offset-10{margin-left:83.33333333333334%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666666666666%}.col-xs-offset-7{margin-left:58.333333333333336%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666666666667%}.col-xs-offset-4{margin-left:33.33333333333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.666666666666664%}.col-xs-offset-1{margin-left:8.333333333333332%}.col-xs-offset-0{margin-left:0}@media(min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media(min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media(min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{position:static;display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>.active,.table>tbody>tr>.active,.table>tfoot>tr>.active,.table>thead>.active>td,.table>tbody>.active>td,.table>tfoot>.active>td,.table>thead>.active>th,.table>tbody>.active>th,.table>tfoot>.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>.active:hover,.table-hover>tbody>.active:hover>td,.table-hover>tbody>.active:hover>th{background-color:#e8e8e8}.table>thead>tr>.success,.table>tbody>tr>.success,.table>tfoot>tr>.success,.table>thead>.success>td,.table>tbody>.success>td,.table>tfoot>.success>td,.table>thead>.success>th,.table>tbody>.success>th,.table>tfoot>.success>th{background-color:#dff0d8}.table-hover>tbody>tr>.success:hover,.table-hover>tbody>.success:hover>td,.table-hover>tbody>.success:hover>th{background-color:#d0e9c6}.table>thead>tr>.danger,.table>tbody>tr>.danger,.table>tfoot>tr>.danger,.table>thead>.danger>td,.table>tbody>.danger>td,.table>tfoot>.danger>td,.table>thead>.danger>th,.table>tbody>.danger>th,.table>tfoot>.danger>th{background-color:#f2dede}.table-hover>tbody>tr>.danger:hover,.table-hover>tbody>.danger:hover>td,.table-hover>tbody>.danger:hover>th{background-color:#ebcccc}.table>thead>tr>.warning,.table>tbody>tr>.warning,.table>tfoot>tr>.warning,.table>thead>.warning>td,.table>tbody>.warning>td,.table>tfoot>.warning>td,.table>thead>.warning>th,.table>tbody>.warning>th,.table>tfoot>.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>.warning:hover,.table-hover>tbody>.warning:hover>td,.table-hover>tbody>.warning:hover>th{background-color:#faf2cc}@media(max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:7px}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#fff}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1;-moz-osx-font-smoothing:grayscale}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;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);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn:first-child>.btn{margin-right:-1px}.input-group-btn:last-child>.btn{margin-left:-1px}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media(min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media(min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child th,.panel>.table>tbody:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}table.visible-xs.visible-sm{display:table}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}table.visible-xs.visible-md{display:table}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}table.visible-xs.visible-lg{display:table}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}table.visible-sm.visible-xs{display:table}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}table.visible-sm.visible-md{display:table}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}table.visible-sm.visible-lg{display:table}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}table.visible-md.visible-xs{display:table}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}table.visible-md.visible-sm{display:table}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}table.visible-md.visible-lg{display:table}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}table.visible-lg.visible-xs{display:table}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}table.visible-lg.visible-sm{display:table}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}table.visible-lg.visible-md{display:table}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}table.hidden-xs{display:table}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs,tr.hidden-xs,th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,tr.hidden-xs.hidden-md,th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}table.hidden-sm{display:table}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,tr.hidden-sm.hidden-md,th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}table.hidden-md{display:table}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs,tr.hidden-md.hidden-xs,th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,tr.hidden-md.hidden-sm,th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg,tr.hidden-md.hidden-lg,th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}table.hidden-lg{display:table}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,tr.hidden-lg.hidden-md,th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/css/colorpicker/bootstrap-colorpicker.css b/css/colorpicker/bootstrap-colorpicker.css deleted file mode 100644 index 8252394f3..000000000 --- a/css/colorpicker/bootstrap-colorpicker.css +++ /dev/null @@ -1,214 +0,0 @@ -/*! - * Bootstrap Colorpicker - * http://mjolnic.github.io/bootstrap-colorpicker/ - * - * Originally written by (c) 2012 Stefan Petre - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0.txt - * - */ - -.colorpicker-saturation { - float: left; - width: 100px; - height: 100px; - cursor: crosshair; - background-image: url("../../img/bootstrap-colorpicker/saturation.png"); -} - -.colorpicker-saturation i { - position: absolute; - top: 0; - left: 0; - display: block; - width: 5px; - height: 5px; - margin: -4px 0 0 -4px; - border: 1px solid #000; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.colorpicker-saturation i b { - display: block; - width: 5px; - height: 5px; - border: 1px solid #fff; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.colorpicker-hue, -.colorpicker-alpha { - float: left; - width: 15px; - height: 100px; - margin-bottom: 4px; - margin-left: 4px; - cursor: row-resize; -} - -.colorpicker-hue i, -.colorpicker-alpha i { - position: absolute; - top: 0; - left: 0; - display: block; - width: 100%; - height: 1px; - margin-top: -1px; - background: #000; - border-top: 1px solid #fff; -} - -.colorpicker-hue { - background-image: url("../../img/bootstrap-colorpicker/hue.png"); -} - -.colorpicker-alpha { - display: none; - background-image: url("../../img/bootstrap-colorpicker/alpha.png"); -} - -.colorpicker { - top: 0; - left: 0; - z-index: 2500; - min-width: 130px; - padding: 4px; - margin-top: 1px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - *zoom: 1; -} - -.colorpicker:before, -.colorpicker:after { - display: table; - line-height: 0; - content: ""; -} - -.colorpicker:after { - clear: both; -} - -.colorpicker:before { - position: absolute; - top: -7px; - left: 6px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.colorpicker:after { - position: absolute; - top: -6px; - left: 7px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - border-left: 6px solid transparent; - content: ''; -} - -.colorpicker div { - position: relative; -} - -.colorpicker.colorpicker-with-alpha { - min-width: 140px; -} - -.colorpicker.colorpicker-with-alpha .colorpicker-alpha { - display: block; -} - -.colorpicker-color { - height: 10px; - margin-top: 5px; - clear: both; - background-image: url("../../img/bootstrap-colorpicker/alpha.png"); - background-position: 0 100%; -} - -.colorpicker-color div { - height: 10px; -} - -.colorpicker-element .input-group-addon i { - display: block; - width: 16px; - height: 16px; - cursor: pointer; -} - -.colorpicker.colorpicker-inline { - position: relative; - display: inline-block; - float: none; -} - -.colorpicker.colorpicker-horizontal { - width: 110px; - height: auto; - min-width: 110px; -} - -.colorpicker.colorpicker-horizontal .colorpicker-saturation { - margin-bottom: 4px; -} - -.colorpicker.colorpicker-horizontal .colorpicker-color { - width: 100px; -} - -.colorpicker.colorpicker-horizontal .colorpicker-hue, -.colorpicker.colorpicker-horizontal .colorpicker-alpha { - float: left; - width: 100px; - height: 15px; - margin-bottom: 4px; - margin-left: 0; - cursor: col-resize; -} - -.colorpicker.colorpicker-horizontal .colorpicker-hue i, -.colorpicker.colorpicker-horizontal .colorpicker-alpha i { - position: absolute; - top: 0; - left: 0; - display: block; - width: 1px; - height: 15px; - margin-top: 0; - background: #ffffff; - border: none; -} - -.colorpicker.colorpicker-horizontal .colorpicker-hue { - background-image: url("../../img/bootstrap-colorpicker/hue-horizontal.png"); -} - -.colorpicker.colorpicker-horizontal .colorpicker-alpha { - background-image: url("../../img/bootstrap-colorpicker/alpha-horizontal.png"); -} - -.colorpicker.colorpicker-hidden { - display: none; -} - -.colorpicker.colorpicker-visible { - display: block; -} - -.colorpicker-inline.colorpicker-visible { - display: inline-block; -} \ No newline at end of file diff --git a/css/colorpicker/bootstrap-colorpicker.min.css b/css/colorpicker/bootstrap-colorpicker.min.css deleted file mode 100644 index 5f3150428..000000000 --- a/css/colorpicker/bootstrap-colorpicker.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap Colorpicker - * http://mjolnic.github.io/bootstrap-colorpicker/ - * - * Originally written by (c) 2012 Stefan Petre - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0.txt - * - */.colorpicker-saturation{float:left;width:100px;height:100px;cursor:crosshair;background-image:url("../../img/bootstrap-colorpicker/saturation.png")}.colorpicker-saturation i{position:absolute;top:0;left:0;display:block;width:5px;height:5px;margin:-4px 0 0 -4px;border:1px solid #000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-saturation i b{display:block;width:5px;height:5px;border:1px solid #fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-hue,.colorpicker-alpha{float:left;width:15px;height:100px;margin-bottom:4px;margin-left:4px;cursor:row-resize}.colorpicker-hue i,.colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:100%;height:1px;margin-top:-1px;background:#000;border-top:1px solid #fff}.colorpicker-hue{background-image:url("../../img/bootstrap-colorpicker/hue.png")}.colorpicker-alpha{display:none;background-image:url("../../img/bootstrap-colorpicker/alpha.png")}.colorpicker{top:0;left:0;z-index:2500;min-width:130px;padding:4px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1}.colorpicker:before,.colorpicker:after{display:table;line-height:0;content:""}.colorpicker:after{clear:both}.colorpicker:before{position:absolute;top:-7px;left:6px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.colorpicker:after{position:absolute;top:-6px;left:7px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.colorpicker div{position:relative}.colorpicker.colorpicker-with-alpha{min-width:140px}.colorpicker.colorpicker-with-alpha .colorpicker-alpha{display:block}.colorpicker-color{height:10px;margin-top:5px;clear:both;background-image:url("../../img/bootstrap-colorpicker/alpha.png");background-position:0 100%}.colorpicker-color div{height:10px}.colorpicker-element .input-group-addon i{display:block;width:16px;height:16px;cursor:pointer}.colorpicker.colorpicker-inline{position:relative;display:inline-block;float:none}.colorpicker.colorpicker-horizontal{width:110px;height:auto;min-width:110px}.colorpicker.colorpicker-horizontal .colorpicker-saturation{margin-bottom:4px}.colorpicker.colorpicker-horizontal .colorpicker-color{width:100px}.colorpicker.colorpicker-horizontal .colorpicker-hue,.colorpicker.colorpicker-horizontal .colorpicker-alpha{float:left;width:100px;height:15px;margin-bottom:4px;margin-left:0;cursor:col-resize}.colorpicker.colorpicker-horizontal .colorpicker-hue i,.colorpicker.colorpicker-horizontal .colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:1px;height:15px;margin-top:0;background:#fff;border:0}.colorpicker.colorpicker-horizontal .colorpicker-hue{background-image:url("../../img/bootstrap-colorpicker/hue-horizontal.png")}.colorpicker.colorpicker-horizontal .colorpicker-alpha{background-image:url("../../img/bootstrap-colorpicker/alpha-horizontal.png")}.colorpicker.colorpicker-hidden{display:none}.colorpicker.colorpicker-visible{display:block}.colorpicker-inline.colorpicker-visible{display:inline-block} \ No newline at end of file diff --git a/css/datatables/dataTables.bootstrap.css b/css/datatables/dataTables.bootstrap.css deleted file mode 100644 index 27036b0e5..000000000 --- a/css/datatables/dataTables.bootstrap.css +++ /dev/null @@ -1,223 +0,0 @@ -div.dataTables_length label { - font-weight: normal; - float: left; - text-align: left; -} - -div.dataTables_length select { - width: 75px; -} - -div.dataTables_filter label { - font-weight: normal; - float: right; -} - -div.dataTables_filter input { - width: 16em; -} - -div.dataTables_info { - padding-top: 8px; -} - -div.dataTables_paginate { - float: right; - margin: 0; -} - -div.dataTables_paginate ul.pagination { - margin: 2px 0; - white-space: nowrap; -} - -table.dataTable, -table.dataTable td, -table.dataTable th { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - - -table.dataTable { - clear: both; - margin-top: 6px !important; - margin-bottom: 6px !important; - max-width: none !important; -} - -table.dataTable thead .sorting, -table.dataTable thead .sorting_asc, -table.dataTable thead .sorting_desc, -table.dataTable thead .sorting_asc_disabled, -table.dataTable thead .sorting_desc_disabled { - cursor: pointer; -} - -table.dataTable thead .sorting { background: url('images/sort_both.png') no-repeat center right; } -table.dataTable thead .sorting_asc { background: url('images/sort_asc.png') no-repeat center right; } -table.dataTable thead .sorting_desc { background: url('images/sort_desc.png') no-repeat center right; } - -table.dataTable thead .sorting_asc_disabled { background: url('images/sort_asc_disabled.png') no-repeat center right; } -table.dataTable thead .sorting_desc_disabled { background: url('images/sort_desc_disabled.png') no-repeat center right; } - -table.dataTable th:active { - outline: none; -} - -/* Scrolling */ -div.dataTables_scrollHead table { - margin-bottom: 0 !important; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -div.dataTables_scrollHead table thead tr:last-child th:first-child, -div.dataTables_scrollHead table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.dataTables_scrollBody table { - border-top: none; - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -div.dataTables_scrollBody tbody tr:first-child th, -div.dataTables_scrollBody tbody tr:first-child td { - border-top: none; -} - -div.dataTables_scrollFoot table { - margin-top: 0 !important; - border-top: none; -} - - - - -/* - * TableTools styles - */ -.table tbody tr.active td, -.table tbody tr.active th { - background-color: #08C; - color: white; -} - -.table tbody tr.active:hover td, -.table tbody tr.active:hover th { - background-color: #0075b0 !important; -} - -.table tbody tr.active a { - color: white; -} - -.table-striped tbody tr.active:nth-child(odd) td, -.table-striped tbody tr.active:nth-child(odd) th { - background-color: #017ebc; -} - -table.DTTT_selectable tbody tr { - cursor: pointer; -} - -div.DTTT .btn { - color: #333 !important; - font-size: 12px; -} - -div.DTTT .btn:hover { - text-decoration: none !important; -} - -ul.DTTT_dropdown.dropdown-menu { - z-index: 2003; -} - -ul.DTTT_dropdown.dropdown-menu a { - color: #333 !important; /* needed only when demo_page.css is included */ -} - -ul.DTTT_dropdown.dropdown-menu li { - position: relative; -} - -ul.DTTT_dropdown.dropdown-menu li:hover a { - background-color: #0088cc; - color: white !important; -} - -div.DTTT_collection_background { - z-index: 2002; -} - -/* TableTools information display */ -div.DTTT_print_info.modal { - height: 150px; - margin-top: -75px; - text-align: center; -} - -div.DTTT_print_info h6 { - font-weight: normal; - font-size: 28px; - line-height: 28px; - margin: 1em; -} - -div.DTTT_print_info p { - font-size: 14px; - line-height: 20px; -} - - - -/* - * FixedColumns styles - */ -div.DTFC_LeftHeadWrapper table, -div.DTFC_LeftFootWrapper table, -div.DTFC_RightHeadWrapper table, -div.DTFC_RightFootWrapper table, -table.DTFC_Cloned tr.even { - background-color: white; -} - -div.DTFC_RightHeadWrapper table , -div.DTFC_LeftHeadWrapper table { - margin-bottom: 0 !important; - border-top-right-radius: 0 !important; - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_RightBodyWrapper table, -div.DTFC_LeftBodyWrapper table { - border-top: none; - margin-bottom: 0 !important; -} - -div.DTFC_RightBodyWrapper tbody tr:first-child th, -div.DTFC_RightBodyWrapper tbody tr:first-child td, -div.DTFC_LeftBodyWrapper tbody tr:first-child th, -div.DTFC_LeftBodyWrapper tbody tr:first-child td { - border-top: none; -} - -div.DTFC_RightFootWrapper table, -div.DTFC_LeftFootWrapper table { - border-top: none; -} - diff --git a/css/datatables/images/sort_asc.png b/css/datatables/images/sort_asc.png deleted file mode 100644 index a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1118 zcmbVLO=#0l98awuV{uMt6P_}u4rcI3idKFP2SpU%ZJIE?RL`X zK?Oyo=*5GG2SxDYK=7akJqV&hrl{aWJa`y*5xh+1%i2y4V}gO?edPc9{r;a9vjc}) zn|Cxb4AYwFmvVG%_ui)U^y_4!ujsO!qzYuv8YUIR!Aw%KiWp=JrG#@>(I!s4#N7H->?w+cxsH2#GA};A>g8lyFDGPKh!5)vuP_{)}*83+N zJUBU!S0_i+E{*Lu1iGsNB``2iK-CyCU7?y_mv{xb_pUh>ESZqe1Y2{eAZLMSIT%EO zFrdOH1W^=3p>Qk~I{J+k#s5zQ@j{%aIA!l^GQjJ zqA1Uc2%!{8qBKfMNh#9DCnKS_*uZ8?mnf!+8@f8xtz#prVg=E`3bCBLWsNmDAX~PG z<(4fQh=UOzE2?gKXRkc9XeI3Er?HlHECVd%SI}3`hy1_du3@$R$r(qT;k@Sft63UX zv;)2Ea_iH>^6+4jPK-lGM{Zw37Tz>~~zlHzO61x51(V4jcaKrcIVDG$-d>)z}S|7f!xxYhfUE}Kj zug_h&HZN}go22$5Ym1}P8~vYNx7-~$TWFJ;_nh!wFYSAQJF{CCo=xpK8^7?iY1^!H haOA^1D_`VC7fU=jcT diff --git a/css/datatables/images/sort_asc_disabled.png b/css/datatables/images/sort_asc_disabled.png deleted file mode 100644 index 4e144cf0b1f786a9248a2998311e8109998d8a2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1050 zcmaJ=O-K|`93R^(@goeAz6hRU)S-61)?IaU({*Myml|8vh4x}JJM&z}b>>Yo&vx~s z*1>{0Sk$FMM28~iln?~vp$ zL+z1TilQ3g{c@7*P2Q^6L;g-8^nq-LaWstw(J;=d4x}PF%0Lh|)htXxRiC)>9(Gfd zk2X?ioL0_@8ZsHx!!QNYCTxo8?kU)+mV+2%VAin0^v_psXkh4J`eIPw6kCELM*pM( z2PX$o+GI}a)ajlxpt~Rv0TW^s6wEQp6$@dys4J4Qcg@nE2*J59y%|(mNdO5s5Cj>{ zuW=y`gm{Jzw6(Xlp9TWQb1WyYyx`~C#eg7k94LJ>@#g5mVp5Kkd=V>5k6>(zESt~g znS6jjPL}06J3BoMLGTlV-<`0qTJT$LYgs{tuI3mvHjo88MKy!QahN8NZl++`Te6m0 zDibLfTTpG5XE-mVGEhip#w2PB)JKi0I-PD8)*(7w)xTBHA4Yzu(Y*BKcijk8- zXslet#0bL39YHpb27^FRHN*1kB3@C%xaDHi(qLQ;(?o$W3|;IHBC-_Xc|nkPo{#bo zKE_Anh#c$_BEdk1ROZS^8#kea%Upe%D^%oqqhQ*^vkV>MD%4{RGC?tA(byrDwm?jZ z#$wTmdL^!2ITo%WmnFflUSt1hboq)*k9XV}TViYtKD5ZRJ7lb1H!ZJ`CviJ2M^c5A z%=*Sgk8hr8@-S*Kr`Ol~RJX(fddmmK4eR}O=#0l98WD1Hz^GK+C=e@fhgE~b#2$Ux^~T`1v5)mw1NlIe}zC z+ge9alrMQeN|SYi`>tC{zIG}!O_oO7k;UC8kBf>8sknx65F`zy2d1H-4fel=trX>@ z^-LCL<%6P%3`TJ=Ov$hao1$9VN|vJbLJV@SM>nJN{L>dS(6uOiBq(#Tm4F5Pz>p2Q zhq^NAP_G)%=(c^JwImV&17Zb~j6Ty5OHq1RS0sD)n5Dro1ouYi-$7;N6i6T&f*`~B zRW8JV5YO;|=5RQ?2M8R`v7Es2f}anI0YT(Au=3Evo2})=wA8uci&#;*fUzaAY_V8m ziU9`MJuDxIL|hF)@DqgJ88op{@|#XmML~j&YU>u(kqKNyC5HxZlqQk>PQkENWld+L zOr&6JNwHX-;oOueKw17j)G$`j4o<^A@%~fT$qZVMO+yC_*eYpUzR7iEi3uAj7}*(w z`YKgS6%a;F0a+l?9R#wX>ZWTi<7HV)nhsV>6(*%9O%xbi*F?TK!383rh#(|*p6}q} zd?z25;!?0(hzA2Li3(Rj>VN@FT;Xbexbdo7cN7eZc$T28pMYAYjSR4yvZz;&C0tc+ zg{xJMrKKvDCBd+6WB+P&<%mp=yImbyVyq56G|9BvWUP^I>ms=lb4e+lDSgg;Us`JO zKB6{wH+j~F#-A4FY3K3qm~Z6m@V6}oQ%8?p-E$dw`#0C$PJfmCV8)v}3>Ydha%`fZ zJk~G*M^A3LGk$Td;R`icF67R~`sBOHv)Hlqlc%$jy~9_oZJcNyWxkbb_O9u#|7hLF z-<-NMLzh3S0YA@8gd1Pt(Df|3@16Y-n=aSvsF@AkI`ioeFg>&H3bXU&vBnE6gIChkL+(Ey+0iB4Z$Eze7t_CX>Hq)$ diff --git a/css/datatables/images/sort_desc.png b/css/datatables/images/sort_desc.png deleted file mode 100644 index def071ed5afd264a036f6d9e75856366fd6ad153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1127 zcmbVMOK8+U7*1U&zKRu5sR)h{1;yRWWV^4}ShvZpU2*HWU2!iy(qy)cZ89;Lb+`3m zMbruv!GjkO!3qksP*5)lD)k}=Dp*ht-n@8G5m8XoN!zU+ih_Y;=AZe$?|)|~*Ri8v z(dtDU$2DZy)jV65`|pB!_H}d7Cv0h=sUqzpC0fy3%q0!dg+a#Bx^W(BM*oq=xP{{a zC9_bZ#q2IgCss)FbwX9kVQ7wPX{|b%-is;d!ri7V^Y8E8=YeU+{JuyQW*r6hnC$~D z?i}bS=mWia!r)uCftISo2rNuBP__DOPpZoN6tBeg{;|M=DHYl)^V3chvpJv;7lTL$ z26Y&PAc{gL+#HL=wg3?#C_qs_Vi3iouqZ(YW*(kdbB&UeSJN}Lm?ZN(lsb|iR4SEF zB^)Adw}29fgwG+0L8cM(`faLJgSNN6#-L(PcTI+l@K3y+Xf(g*^61+0|J+O6zN2mb?UNGh6GU@A{1+eF%d@N2(^XdVmhis(y25|iAr;gV=io5OsYy0 zB}Gv|2&GUGrBPB%s*yG^841Ug8a88lRI_zlvuiTDGuXsmv6A9qjS{y&NMEf3ay^6+ zuZK85>5PD^rkl1e`{kLAR>iJ)6dP%mSYRr@k~xQcDE=$%X{_--ITM&Og5Ml}G)wJ> zb)dhUZG9%p4iC23#JFrUCcmwHz{cugMoku~ue-kg{Mj0~%`FeCcz9jAdg}QET-kSG za`+2B_+lRTaeAVz>E`F1pN7h>B=BbGqcz13d%ywZR&4OjkNNrF_U}#EcXDGa@V52B z>JnIW7#s%CHi diff --git a/css/datatables/images/sort_desc_disabled.png b/css/datatables/images/sort_desc_disabled.png deleted file mode 100644 index 7824973cc60fc1841b16f2cb39323cefcdc3f942..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1045 zcmaJ=&rj1(9IuWjVlWt@h#q(rlc~7%$2P_q>KN??ODrK{#&I!}_Kh{rzS=%m2N%F- zAW={L0VZBJnRrkSCK{q1NKA||(ZmA>6Hgw9o;Z-;>)3_|u*vIt-(X0AeGY5Bm`Mgoq{>2>Xkbiu%Ds= zw2?31f^tL9kQr8eOxQDR!ltPHq-U$zG{j&MP8pU+Z@qp?149?-TQP-IYzdZ(;duv+ z&5z`@`Drbo)5+_g-xG*{39$-1bH;K7Po%550y+EF3=OIfJT20DK^2ryARz~WSeOlI zY%dFXxiA-r#^dp8fM+?DVR?q*LtI>l@B+(%+D8*_j$RaUa;D~sSR!4**cKS3TrP*p zkuY+m7%q`W_!>MPB8ZS%v9RieEVsL^AVXJk3>zEB0=}X;iDt1#lSubcFztq{<<`nX z3dVS<&2VAXPpJ-6l>b9bvw?PT4(`W$ps<^-*pSIV7tJ~vX67YQ8ELa7v~ZoP?{i~^a{W;-ZQ@ymjxh)IjDt*2O<6Dwh=q$vY$VY; zc&J{Ds~-?cjVm3>Wk@iL-`IZ|UB4pJ;~yJiON_?gLyJtiL&kbxZhV_OiPfx}%6s1@ zcXoG^ffrPJ;LQ4(`t<(ickJ1j|E0&fC8lSh8sUh5lwUg=l~QoqsK t`nTanN|e2@a&yVMdhydiv { - float: left; -} - -.daterangepicker .ranges .range_inputs>div:nth-child(2) { - padding-left: 11px; -} - -.daterangepicker .calendar { - display: none; - max-width: 270px; -} - -.daterangepicker .calendar th, .daterangepicker .calendar td { - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - white-space: nowrap; - text-align: center; - min-width: 32px; -} - -.daterangepicker .ranges label { - color: #333; - display: block; - font-size: 11px; - font-weight: normal; - height: 20px; - line-height: 20px; - margin-bottom: 2px; - text-shadow: #fff 1px 1px 0px; - text-transform: uppercase; - width: 74px; -} - -.daterangepicker .ranges input { - font-size: 11px; -} - -.daterangepicker .ranges .input-mini { - background-color: #eee; - border: 1px solid #ccc; - border-radius: 4px; - color: #555; - display: block; - font-size: 11px; - height: 30px; - line-height: 30px; - vertical-align: middle; - margin: 0 0 10px 0; - padding: 0 6px; - width: 74px; -} - -.daterangepicker .ranges ul { - list-style: none; - margin: 0; - padding: 0; -} - -.daterangepicker .ranges li { - font-size: 13px; - background: #f5f5f5; - border: 1px solid #f5f5f5; - color: #08c; - padding: 3px 12px; - margin-bottom: 8px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - cursor: pointer; -} - -.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover { - background: #08c; - border: 1px solid #08c; - color: #fff; -} - -.daterangepicker .calendar-date { - border: 1px solid #ddd; - padding: 4px; - border-radius: 4px; - background: #fff; -} - -.daterangepicker .calendar-time { - text-align: center; - margin: 8px auto 0 auto; - line-height: 30px; -} - -.daterangepicker { - position: absolute; - background: #fff; - top: 100px; - left: 20px; - padding: 4px; - margin-top: 1px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.daterangepicker.opensleft:before { - position: absolute; - top: -7px; - right: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.daterangepicker.opensleft:after { - position: absolute; - top: -6px; - right: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; - content: ''; -} - -.daterangepicker.opensright:before { - position: absolute; - top: -7px; - left: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.daterangepicker.opensright:after { - position: absolute; - top: -6px; - left: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; - content: ''; -} - -.daterangepicker table { - width: 100%; - margin: 0; -} - -.daterangepicker td, .daterangepicker th { - text-align: center; - width: 20px; - height: 20px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - cursor: pointer; - white-space: nowrap; -} - -.daterangepicker td.off { - color: #999; -} - -.daterangepicker td.disabled { - color: #999; -} - -.daterangepicker td.available:hover, .daterangepicker th.available:hover { - background: #eee; -} - -.daterangepicker td.in-range { - background: #ebf4f8; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.daterangepicker td.active, .daterangepicker td.active:hover { - background-color: #357ebd; - border-color: #3071a9; - color: #fff; -} - -.daterangepicker td.week, .daterangepicker th.week { - font-size: 80%; - color: #ccc; -} - -.daterangepicker select.monthselect, .daterangepicker select.yearselect { - font-size: 12px; - padding: 1px; - height: auto; - margin: 0; - cursor: default; -} - -.daterangepicker select.monthselect { - margin-right: 2%; - width: 56%; -} - -.daterangepicker select.yearselect { - width: 40%; -} - -.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.ampmselect { - width: 50px; - margin-bottom: 0; -} diff --git a/css/font-awesome.css b/css/font-awesome.css deleted file mode 100644 index 048cff973..000000000 --- a/css/font-awesome.css +++ /dev/null @@ -1,1338 +0,0 @@ -/*! - * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.0.3'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg'); - font-weight: normal; - font-style: normal; -} -.fa { - display: inline-block; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.3333333333333333em; - line-height: 0.75em; - vertical-align: -15%; -} -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} -.fa-fw { - width: 1.2857142857142858em; - text-align: center; -} -.fa-ul { - padding-left: 0; - margin-left: 2.142857142857143em; - list-style-type: none; -} -.fa-ul > li { - position: relative; -} -.fa-li { - position: absolute; - left: -2.142857142857143em; - width: 2.142857142857143em; - top: 0.14285714285714285em; - text-align: center; -} -.fa-li.fa-lg { - left: -1.8571428571428572em; -} -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; - border-radius: .1em; -} -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.fa.pull-left { - margin-right: .3em; -} -.fa.pull-right { - margin-left: .3em; -} -.fa-spin { - -webkit-animation: spin 2s infinite linear; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; -} -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - } -} -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - } -} -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); - } - 100% { - -o-transform: rotate(359deg); - } -} -@-ms-keyframes spin { - 0% { - -ms-transform: rotate(0deg); - } - 100% { - -ms-transform: rotate(359deg); - } -} -@keyframes spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(359deg); - } -} -.fa-rotate-90 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); - -webkit-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -o-transform: rotate(90deg); - transform: rotate(90deg); -} -.fa-rotate-180 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); - -webkit-transform: rotate(180deg); - -moz-transform: rotate(180deg); - -ms-transform: rotate(180deg); - -o-transform: rotate(180deg); - transform: rotate(180deg); -} -.fa-rotate-270 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); - -webkit-transform: rotate(270deg); - -moz-transform: rotate(270deg); - -ms-transform: rotate(270deg); - -o-transform: rotate(270deg); - transform: rotate(270deg); -} -.fa-flip-horizontal { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); - -webkit-transform: scale(-1, 1); - -moz-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - -o-transform: scale(-1, 1); - transform: scale(-1, 1); -} -.fa-flip-vertical { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); - -webkit-transform: scale(1, -1); - -moz-transform: scale(1, -1); - -ms-transform: scale(1, -1); - -o-transform: scale(1, -1); - transform: scale(1, -1); -} -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.fa-stack-1x { - line-height: inherit; -} -.fa-stack-2x { - font-size: 2em; -} -.fa-inverse { - color: #ffffff; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: "\f000"; -} -.fa-music:before { - content: "\f001"; -} -.fa-search:before { - content: "\f002"; -} -.fa-envelope-o:before { - content: "\f003"; -} -.fa-heart:before { - content: "\f004"; -} -.fa-star:before { - content: "\f005"; -} -.fa-star-o:before { - content: "\f006"; -} -.fa-user:before { - content: "\f007"; -} -.fa-film:before { - content: "\f008"; -} -.fa-th-large:before { - content: "\f009"; -} -.fa-th:before { - content: "\f00a"; -} -.fa-th-list:before { - content: "\f00b"; -} -.fa-check:before { - content: "\f00c"; -} -.fa-times:before { - content: "\f00d"; -} -.fa-search-plus:before { - content: "\f00e"; -} -.fa-search-minus:before { - content: "\f010"; -} -.fa-power-off:before { - content: "\f011"; -} -.fa-signal:before { - content: "\f012"; -} -.fa-gear:before, -.fa-cog:before { - content: "\f013"; -} -.fa-trash-o:before { - content: "\f014"; -} -.fa-home:before { - content: "\f015"; -} -.fa-file-o:before { - content: "\f016"; -} -.fa-clock-o:before { - content: "\f017"; -} -.fa-road:before { - content: "\f018"; -} -.fa-download:before { - content: "\f019"; -} -.fa-arrow-circle-o-down:before { - content: "\f01a"; -} -.fa-arrow-circle-o-up:before { - content: "\f01b"; -} -.fa-inbox:before { - content: "\f01c"; -} -.fa-play-circle-o:before { - content: "\f01d"; -} -.fa-rotate-right:before, -.fa-repeat:before { - content: "\f01e"; -} -.fa-refresh:before { - content: "\f021"; -} -.fa-list-alt:before { - content: "\f022"; -} -.fa-lock:before { - content: "\f023"; -} -.fa-flag:before { - content: "\f024"; -} -.fa-headphones:before { - content: "\f025"; -} -.fa-volume-off:before { - content: "\f026"; -} -.fa-volume-down:before { - content: "\f027"; -} -.fa-volume-up:before { - content: "\f028"; -} -.fa-qrcode:before { - content: "\f029"; -} -.fa-barcode:before { - content: "\f02a"; -} -.fa-tag:before { - content: "\f02b"; -} -.fa-tags:before { - content: "\f02c"; -} -.fa-book:before { - content: "\f02d"; -} -.fa-bookmark:before { - content: "\f02e"; -} -.fa-print:before { - content: "\f02f"; -} -.fa-camera:before { - content: "\f030"; -} -.fa-font:before { - content: "\f031"; -} -.fa-bold:before { - content: "\f032"; -} -.fa-italic:before { - content: "\f033"; -} -.fa-text-height:before { - content: "\f034"; -} -.fa-text-width:before { - content: "\f035"; -} -.fa-align-left:before { - content: "\f036"; -} -.fa-align-center:before { - content: "\f037"; -} -.fa-align-right:before { - content: "\f038"; -} -.fa-align-justify:before { - content: "\f039"; -} -.fa-list:before { - content: "\f03a"; -} -.fa-dedent:before, -.fa-outdent:before { - content: "\f03b"; -} -.fa-indent:before { - content: "\f03c"; -} -.fa-video-camera:before { - content: "\f03d"; -} -.fa-picture-o:before { - content: "\f03e"; -} -.fa-pencil:before { - content: "\f040"; -} -.fa-map-marker:before { - content: "\f041"; -} -.fa-adjust:before { - content: "\f042"; -} -.fa-tint:before { - content: "\f043"; -} -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\f044"; -} -.fa-share-square-o:before { - content: "\f045"; -} -.fa-check-square-o:before { - content: "\f046"; -} -.fa-arrows:before { - content: "\f047"; -} -.fa-step-backward:before { - content: "\f048"; -} -.fa-fast-backward:before { - content: "\f049"; -} -.fa-backward:before { - content: "\f04a"; -} -.fa-play:before { - content: "\f04b"; -} -.fa-pause:before { - content: "\f04c"; -} -.fa-stop:before { - content: "\f04d"; -} -.fa-forward:before { - content: "\f04e"; -} -.fa-fast-forward:before { - content: "\f050"; -} -.fa-step-forward:before { - content: "\f051"; -} -.fa-eject:before { - content: "\f052"; -} -.fa-chevron-left:before { - content: "\f053"; -} -.fa-chevron-right:before { - content: "\f054"; -} -.fa-plus-circle:before { - content: "\f055"; -} -.fa-minus-circle:before { - content: "\f056"; -} -.fa-times-circle:before { - content: "\f057"; -} -.fa-check-circle:before { - content: "\f058"; -} -.fa-question-circle:before { - content: "\f059"; -} -.fa-info-circle:before { - content: "\f05a"; -} -.fa-crosshairs:before { - content: "\f05b"; -} -.fa-times-circle-o:before { - content: "\f05c"; -} -.fa-check-circle-o:before { - content: "\f05d"; -} -.fa-ban:before { - content: "\f05e"; -} -.fa-arrow-left:before { - content: "\f060"; -} -.fa-arrow-right:before { - content: "\f061"; -} -.fa-arrow-up:before { - content: "\f062"; -} -.fa-arrow-down:before { - content: "\f063"; -} -.fa-mail-forward:before, -.fa-share:before { - content: "\f064"; -} -.fa-expand:before { - content: "\f065"; -} -.fa-compress:before { - content: "\f066"; -} -.fa-plus:before { - content: "\f067"; -} -.fa-minus:before { - content: "\f068"; -} -.fa-asterisk:before { - content: "\f069"; -} -.fa-exclamation-circle:before { - content: "\f06a"; -} -.fa-gift:before { - content: "\f06b"; -} -.fa-leaf:before { - content: "\f06c"; -} -.fa-fire:before { - content: "\f06d"; -} -.fa-eye:before { - content: "\f06e"; -} -.fa-eye-slash:before { - content: "\f070"; -} -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\f071"; -} -.fa-plane:before { - content: "\f072"; -} -.fa-calendar:before { - content: "\f073"; -} -.fa-random:before { - content: "\f074"; -} -.fa-comment:before { - content: "\f075"; -} -.fa-magnet:before { - content: "\f076"; -} -.fa-chevron-up:before { - content: "\f077"; -} -.fa-chevron-down:before { - content: "\f078"; -} -.fa-retweet:before { - content: "\f079"; -} -.fa-shopping-cart:before { - content: "\f07a"; -} -.fa-folder:before { - content: "\f07b"; -} -.fa-folder-open:before { - content: "\f07c"; -} -.fa-arrows-v:before { - content: "\f07d"; -} -.fa-arrows-h:before { - content: "\f07e"; -} -.fa-bar-chart-o:before { - content: "\f080"; -} -.fa-twitter-square:before { - content: "\f081"; -} -.fa-facebook-square:before { - content: "\f082"; -} -.fa-camera-retro:before { - content: "\f083"; -} -.fa-key:before { - content: "\f084"; -} -.fa-gears:before, -.fa-cogs:before { - content: "\f085"; -} -.fa-comments:before { - content: "\f086"; -} -.fa-thumbs-o-up:before { - content: "\f087"; -} -.fa-thumbs-o-down:before { - content: "\f088"; -} -.fa-star-half:before { - content: "\f089"; -} -.fa-heart-o:before { - content: "\f08a"; -} -.fa-sign-out:before { - content: "\f08b"; -} -.fa-linkedin-square:before { - content: "\f08c"; -} -.fa-thumb-tack:before { - content: "\f08d"; -} -.fa-external-link:before { - content: "\f08e"; -} -.fa-sign-in:before { - content: "\f090"; -} -.fa-trophy:before { - content: "\f091"; -} -.fa-github-square:before { - content: "\f092"; -} -.fa-upload:before { - content: "\f093"; -} -.fa-lemon-o:before { - content: "\f094"; -} -.fa-phone:before { - content: "\f095"; -} -.fa-square-o:before { - content: "\f096"; -} -.fa-bookmark-o:before { - content: "\f097"; -} -.fa-phone-square:before { - content: "\f098"; -} -.fa-twitter:before { - content: "\f099"; -} -.fa-facebook:before { - content: "\f09a"; -} -.fa-github:before { - content: "\f09b"; -} -.fa-unlock:before { - content: "\f09c"; -} -.fa-credit-card:before { - content: "\f09d"; -} -.fa-rss:before { - content: "\f09e"; -} -.fa-hdd-o:before { - content: "\f0a0"; -} -.fa-bullhorn:before { - content: "\f0a1"; -} -.fa-bell:before { - content: "\f0f3"; -} -.fa-certificate:before { - content: "\f0a3"; -} -.fa-hand-o-right:before { - content: "\f0a4"; -} -.fa-hand-o-left:before { - content: "\f0a5"; -} -.fa-hand-o-up:before { - content: "\f0a6"; -} -.fa-hand-o-down:before { - content: "\f0a7"; -} -.fa-arrow-circle-left:before { - content: "\f0a8"; -} -.fa-arrow-circle-right:before { - content: "\f0a9"; -} -.fa-arrow-circle-up:before { - content: "\f0aa"; -} -.fa-arrow-circle-down:before { - content: "\f0ab"; -} -.fa-globe:before { - content: "\f0ac"; -} -.fa-wrench:before { - content: "\f0ad"; -} -.fa-tasks:before { - content: "\f0ae"; -} -.fa-filter:before { - content: "\f0b0"; -} -.fa-briefcase:before { - content: "\f0b1"; -} -.fa-arrows-alt:before { - content: "\f0b2"; -} -.fa-group:before, -.fa-users:before { - content: "\f0c0"; -} -.fa-chain:before, -.fa-link:before { - content: "\f0c1"; -} -.fa-cloud:before { - content: "\f0c2"; -} -.fa-flask:before { - content: "\f0c3"; -} -.fa-cut:before, -.fa-scissors:before { - content: "\f0c4"; -} -.fa-copy:before, -.fa-files-o:before { - content: "\f0c5"; -} -.fa-paperclip:before { - content: "\f0c6"; -} -.fa-save:before, -.fa-floppy-o:before { - content: "\f0c7"; -} -.fa-square:before { - content: "\f0c8"; -} -.fa-bars:before { - content: "\f0c9"; -} -.fa-list-ul:before { - content: "\f0ca"; -} -.fa-list-ol:before { - content: "\f0cb"; -} -.fa-strikethrough:before { - content: "\f0cc"; -} -.fa-underline:before { - content: "\f0cd"; -} -.fa-table:before { - content: "\f0ce"; -} -.fa-magic:before { - content: "\f0d0"; -} -.fa-truck:before { - content: "\f0d1"; -} -.fa-pinterest:before { - content: "\f0d2"; -} -.fa-pinterest-square:before { - content: "\f0d3"; -} -.fa-google-plus-square:before { - content: "\f0d4"; -} -.fa-google-plus:before { - content: "\f0d5"; -} -.fa-money:before { - content: "\f0d6"; -} -.fa-caret-down:before { - content: "\f0d7"; -} -.fa-caret-up:before { - content: "\f0d8"; -} -.fa-caret-left:before { - content: "\f0d9"; -} -.fa-caret-right:before { - content: "\f0da"; -} -.fa-columns:before { - content: "\f0db"; -} -.fa-unsorted:before, -.fa-sort:before { - content: "\f0dc"; -} -.fa-sort-down:before, -.fa-sort-asc:before { - content: "\f0dd"; -} -.fa-sort-up:before, -.fa-sort-desc:before { - content: "\f0de"; -} -.fa-envelope:before { - content: "\f0e0"; -} -.fa-linkedin:before { - content: "\f0e1"; -} -.fa-rotate-left:before, -.fa-undo:before { - content: "\f0e2"; -} -.fa-legal:before, -.fa-gavel:before { - content: "\f0e3"; -} -.fa-dashboard:before, -.fa-tachometer:before { - content: "\f0e4"; -} -.fa-comment-o:before { - content: "\f0e5"; -} -.fa-comments-o:before { - content: "\f0e6"; -} -.fa-flash:before, -.fa-bolt:before { - content: "\f0e7"; -} -.fa-sitemap:before { - content: "\f0e8"; -} -.fa-umbrella:before { - content: "\f0e9"; -} -.fa-paste:before, -.fa-clipboard:before { - content: "\f0ea"; -} -.fa-lightbulb-o:before { - content: "\f0eb"; -} -.fa-exchange:before { - content: "\f0ec"; -} -.fa-cloud-download:before { - content: "\f0ed"; -} -.fa-cloud-upload:before { - content: "\f0ee"; -} -.fa-user-md:before { - content: "\f0f0"; -} -.fa-stethoscope:before { - content: "\f0f1"; -} -.fa-suitcase:before { - content: "\f0f2"; -} -.fa-bell-o:before { - content: "\f0a2"; -} -.fa-coffee:before { - content: "\f0f4"; -} -.fa-cutlery:before { - content: "\f0f5"; -} -.fa-file-text-o:before { - content: "\f0f6"; -} -.fa-building-o:before { - content: "\f0f7"; -} -.fa-hospital-o:before { - content: "\f0f8"; -} -.fa-ambulance:before { - content: "\f0f9"; -} -.fa-medkit:before { - content: "\f0fa"; -} -.fa-fighter-jet:before { - content: "\f0fb"; -} -.fa-beer:before { - content: "\f0fc"; -} -.fa-h-square:before { - content: "\f0fd"; -} -.fa-plus-square:before { - content: "\f0fe"; -} -.fa-angle-double-left:before { - content: "\f100"; -} -.fa-angle-double-right:before { - content: "\f101"; -} -.fa-angle-double-up:before { - content: "\f102"; -} -.fa-angle-double-down:before { - content: "\f103"; -} -.fa-angle-left:before { - content: "\f104"; -} -.fa-angle-right:before { - content: "\f105"; -} -.fa-angle-up:before { - content: "\f106"; -} -.fa-angle-down:before { - content: "\f107"; -} -.fa-desktop:before { - content: "\f108"; -} -.fa-laptop:before { - content: "\f109"; -} -.fa-tablet:before { - content: "\f10a"; -} -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\f10b"; -} -.fa-circle-o:before { - content: "\f10c"; -} -.fa-quote-left:before { - content: "\f10d"; -} -.fa-quote-right:before { - content: "\f10e"; -} -.fa-spinner:before { - content: "\f110"; -} -.fa-circle:before { - content: "\f111"; -} -.fa-mail-reply:before, -.fa-reply:before { - content: "\f112"; -} -.fa-github-alt:before { - content: "\f113"; -} -.fa-folder-o:before { - content: "\f114"; -} -.fa-folder-open-o:before { - content: "\f115"; -} -.fa-smile-o:before { - content: "\f118"; -} -.fa-frown-o:before { - content: "\f119"; -} -.fa-meh-o:before { - content: "\f11a"; -} -.fa-gamepad:before { - content: "\f11b"; -} -.fa-keyboard-o:before { - content: "\f11c"; -} -.fa-flag-o:before { - content: "\f11d"; -} -.fa-flag-checkered:before { - content: "\f11e"; -} -.fa-terminal:before { - content: "\f120"; -} -.fa-code:before { - content: "\f121"; -} -.fa-reply-all:before { - content: "\f122"; -} -.fa-mail-reply-all:before { - content: "\f122"; -} -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\f123"; -} -.fa-location-arrow:before { - content: "\f124"; -} -.fa-crop:before { - content: "\f125"; -} -.fa-code-fork:before { - content: "\f126"; -} -.fa-unlink:before, -.fa-chain-broken:before { - content: "\f127"; -} -.fa-question:before { - content: "\f128"; -} -.fa-info:before { - content: "\f129"; -} -.fa-exclamation:before { - content: "\f12a"; -} -.fa-superscript:before { - content: "\f12b"; -} -.fa-subscript:before { - content: "\f12c"; -} -.fa-eraser:before { - content: "\f12d"; -} -.fa-puzzle-piece:before { - content: "\f12e"; -} -.fa-microphone:before { - content: "\f130"; -} -.fa-microphone-slash:before { - content: "\f131"; -} -.fa-shield:before { - content: "\f132"; -} -.fa-calendar-o:before { - content: "\f133"; -} -.fa-fire-extinguisher:before { - content: "\f134"; -} -.fa-rocket:before { - content: "\f135"; -} -.fa-maxcdn:before { - content: "\f136"; -} -.fa-chevron-circle-left:before { - content: "\f137"; -} -.fa-chevron-circle-right:before { - content: "\f138"; -} -.fa-chevron-circle-up:before { - content: "\f139"; -} -.fa-chevron-circle-down:before { - content: "\f13a"; -} -.fa-html5:before { - content: "\f13b"; -} -.fa-css3:before { - content: "\f13c"; -} -.fa-anchor:before { - content: "\f13d"; -} -.fa-unlock-alt:before { - content: "\f13e"; -} -.fa-bullseye:before { - content: "\f140"; -} -.fa-ellipsis-h:before { - content: "\f141"; -} -.fa-ellipsis-v:before { - content: "\f142"; -} -.fa-rss-square:before { - content: "\f143"; -} -.fa-play-circle:before { - content: "\f144"; -} -.fa-ticket:before { - content: "\f145"; -} -.fa-minus-square:before { - content: "\f146"; -} -.fa-minus-square-o:before { - content: "\f147"; -} -.fa-level-up:before { - content: "\f148"; -} -.fa-level-down:before { - content: "\f149"; -} -.fa-check-square:before { - content: "\f14a"; -} -.fa-pencil-square:before { - content: "\f14b"; -} -.fa-external-link-square:before { - content: "\f14c"; -} -.fa-share-square:before { - content: "\f14d"; -} -.fa-compass:before { - content: "\f14e"; -} -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\f150"; -} -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\f151"; -} -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\f152"; -} -.fa-euro:before, -.fa-eur:before { - content: "\f153"; -} -.fa-gbp:before { - content: "\f154"; -} -.fa-dollar:before, -.fa-usd:before { - content: "\f155"; -} -.fa-rupee:before, -.fa-inr:before { - content: "\f156"; -} -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\f157"; -} -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\f158"; -} -.fa-won:before, -.fa-krw:before { - content: "\f159"; -} -.fa-bitcoin:before, -.fa-btc:before { - content: "\f15a"; -} -.fa-file:before { - content: "\f15b"; -} -.fa-file-text:before { - content: "\f15c"; -} -.fa-sort-alpha-asc:before { - content: "\f15d"; -} -.fa-sort-alpha-desc:before { - content: "\f15e"; -} -.fa-sort-amount-asc:before { - content: "\f160"; -} -.fa-sort-amount-desc:before { - content: "\f161"; -} -.fa-sort-numeric-asc:before { - content: "\f162"; -} -.fa-sort-numeric-desc:before { - content: "\f163"; -} -.fa-thumbs-up:before { - content: "\f164"; -} -.fa-thumbs-down:before { - content: "\f165"; -} -.fa-youtube-square:before { - content: "\f166"; -} -.fa-youtube:before { - content: "\f167"; -} -.fa-xing:before { - content: "\f168"; -} -.fa-xing-square:before { - content: "\f169"; -} -.fa-youtube-play:before { - content: "\f16a"; -} -.fa-dropbox:before { - content: "\f16b"; -} -.fa-stack-overflow:before { - content: "\f16c"; -} -.fa-instagram:before { - content: "\f16d"; -} -.fa-flickr:before { - content: "\f16e"; -} -.fa-adn:before { - content: "\f170"; -} -.fa-bitbucket:before { - content: "\f171"; -} -.fa-bitbucket-square:before { - content: "\f172"; -} -.fa-tumblr:before { - content: "\f173"; -} -.fa-tumblr-square:before { - content: "\f174"; -} -.fa-long-arrow-down:before { - content: "\f175"; -} -.fa-long-arrow-up:before { - content: "\f176"; -} -.fa-long-arrow-left:before { - content: "\f177"; -} -.fa-long-arrow-right:before { - content: "\f178"; -} -.fa-apple:before { - content: "\f179"; -} -.fa-windows:before { - content: "\f17a"; -} -.fa-android:before { - content: "\f17b"; -} -.fa-linux:before { - content: "\f17c"; -} -.fa-dribbble:before { - content: "\f17d"; -} -.fa-skype:before { - content: "\f17e"; -} -.fa-foursquare:before { - content: "\f180"; -} -.fa-trello:before { - content: "\f181"; -} -.fa-female:before { - content: "\f182"; -} -.fa-male:before { - content: "\f183"; -} -.fa-gittip:before { - content: "\f184"; -} -.fa-sun-o:before { - content: "\f185"; -} -.fa-moon-o:before { - content: "\f186"; -} -.fa-archive:before { - content: "\f187"; -} -.fa-bug:before { - content: "\f188"; -} -.fa-vk:before { - content: "\f189"; -} -.fa-weibo:before { - content: "\f18a"; -} -.fa-renren:before { - content: "\f18b"; -} -.fa-pagelines:before { - content: "\f18c"; -} -.fa-stack-exchange:before { - content: "\f18d"; -} -.fa-arrow-circle-o-right:before { - content: "\f18e"; -} -.fa-arrow-circle-o-left:before { - content: "\f190"; -} -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\f191"; -} -.fa-dot-circle-o:before { - content: "\f192"; -} -.fa-wheelchair:before { - content: "\f193"; -} -.fa-vimeo-square:before { - content: "\f194"; -} -.fa-turkish-lira:before, -.fa-try:before { - content: "\f195"; -} -.fa-plus-square-o:before { - content: "\f196"; -} diff --git a/css/font-awesome.min.css b/css/font-awesome.min.css deleted file mode 100644 index 449d6ac55..000000000 --- a/css/font-awesome.min.css +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.0.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857142858em;text-align:center}.fa-ul{padding-left:0;margin-left:2.142857142857143em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;top:.14285714285714285em;text-align:center}.fa-li.fa-lg{left:-1.8571428571428572em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-asc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-desc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-reply-all:before{content:"\f122"}.fa-mail-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"} \ No newline at end of file diff --git a/css/fullcalendar/fullcalendar.css b/css/fullcalendar/fullcalendar.css deleted file mode 100644 index b89b05970..000000000 --- a/css/fullcalendar/fullcalendar.css +++ /dev/null @@ -1,617 +0,0 @@ -/*! - * FullCalendar v1.6.4 Stylesheet - * Docs & License: http://arshaw.com/fullcalendar/ - * (c) 2013 Adam Shaw - */ - - -.fc { - direction: ltr; - text-align: left; -} - -.fc table { - border-collapse: collapse; - border-spacing: 0; -} - -html .fc, -.fc table { - font-size: 1em; -} - -.fc td, -.fc th { - padding: 0; - vertical-align: top; -} - - - -/* Header -------------------------------------------------------------------------*/ - -.fc-header td { - white-space: nowrap; -} - -.fc-header-left { - width: 25%; - text-align: left; -} - -.fc-header-center { - text-align: center; -} - -.fc-header-right { - width: 25%; - text-align: right; -} - -.fc-header-title { - display: inline-block; - vertical-align: top; -} - -.fc-header-title h2 { - margin-top: 0; - white-space: nowrap; -} - -.fc .fc-header-space { - padding-left: 10px; -} - -.fc-header .fc-button { - margin-bottom: 1em; - vertical-align: top; -} - -/* buttons edges butting together */ - -.fc-header .fc-button { - margin-right: -1px; -} - -.fc-header .fc-corner-right, /* non-theme */ -.fc-header .ui-corner-right { /* theme */ - margin-right: 0; /* back to normal */ -} - -/* button layering (for border precedence) */ - -.fc-header .fc-state-hover, -.fc-header .ui-state-hover { - z-index: 2; -} - -.fc-header .fc-state-down { - z-index: 3; -} - -.fc-header .fc-state-active, -.fc-header .ui-state-active { - z-index: 4; -} - - - -/* Content -------------------------------------------------------------------------*/ - -.fc-content { - clear: both; - zoom: 1; /* for IE7, gives accurate coordinates for [un]freezeContentHeight */ -} - -.fc-view { - width: 100%; - overflow: hidden; -} - - - -/* Cell Styles -------------------------------------------------------------------------*/ - -.fc-widget-header, /* , usually */ -.fc-widget-content { /* , usually */ - border: 1px solid #ddd; -} - -.fc-state-highlight { /* today cell */ /* TODO: add .fc-today to */ - background: #fcf8e3; -} - -.fc-cell-overlay { /* semi-transparent rectangle while dragging */ - background: #bce8f1; - opacity: .3; - filter: alpha(opacity=30); /* for IE */ -} - - - -/* Buttons -------------------------------------------------------------------------*/ - -.fc-button { - display: inline-block; - padding: 4px 9px; - margin-bottom: 0; - font-size: 12px; - font-weight: normal; - line-height: 1.428571429; - text-align: center; - white-space: nowrap; - vertical-align: middle; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; -} - -.fc-state-default { /* non-theme */ - border: 1px solid; -} - -.fc-state-default.fc-corner-left { /* non-theme */ - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} - -.fc-state-default.fc-corner-right { /* non-theme */ - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} - -/* - Our default prev/next buttons use HTML entities like ‹ › « » - and we'll try to make them look good cross-browser. -*/ - -.fc-text-arrow { - margin: 0 .1em; - font-size: 2em; - font-family: "Courier New", Courier, monospace; - vertical-align: baseline; /* for IE7 */ -} - -.fc-button-prev .fc-text-arrow, -.fc-button-next .fc-text-arrow { /* for ‹ › */ - font-weight: bold; -} - -/* icon (for jquery ui) */ - -.fc-button .fc-icon-wrap { - position: relative; - float: left; - top: 50%; -} - -.fc-button .ui-icon { - position: relative; - float: left; - margin-top: -50%; - *margin-top: 0; - *top: -50%; -} - -/* - button states - borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/) -*/ - -.fc-state-default { - background-color: #f5f5f5; - background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); - background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); - background-repeat: repeat-x; - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - color: #333; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.fc-button.fc-state-default { - border: 1px solid #d9dadc; - border-bottom-color: #d3d5d7; - border-bottom-width: 2px; - margin-left: 0px!important; - background: #fafafa; - color: #666; -} - - -.fc-state-hover, -.fc-state-down, -.fc-state-active, -.fc-state-disabled { - color: #333333; - background-color: #e6e6e6; -} - -.fc-state-hover { - color: #333333; - text-decoration: none; - background-position: 0 -15px; - -webkit-transition: background-position 0.1s linear; - -moz-transition: background-position 0.1s linear; - -o-transition: background-position 0.1s linear; - transition: background-position 0.1s linear; -} - -.fc-state-down, -.fc-state-active { - background-color: #cccccc; - background-image: none; - outline: 0; - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.fc-state-disabled { - cursor: default; - background-image: none; - opacity: 0.65; - filter: alpha(opacity=65); - box-shadow: none; -} - - - -/* Global Event Styles -------------------------------------------------------------------------*/ - -.fc-event-container > * { - z-index: 8; -} - -.fc-event-container > .ui-draggable-dragging, -.fc-event-container > .ui-resizable-resizing { - z-index: 9; -} - -.fc-event { - border: 1px solid #3a87ad; /* default BORDER color */ - background-color: #3a87ad; /* default BACKGROUND color */ - color: #fff; /* default TEXT color */ - font-size: .85em; - cursor: default; -} - -a.fc-event { - text-decoration: none; -} - -a.fc-event, -.fc-event-draggable { - cursor: pointer; -} - -.fc-rtl .fc-event { - text-align: right; -} - -.fc-event-inner { - width: 100%; - height: 100%; - overflow: hidden; -} - -.fc-event-time, -.fc-event-title { - padding: 0 1px; -} - -.fc .ui-resizable-handle { - display: block; - position: absolute; - z-index: 99999; - overflow: hidden; /* hacky spaces (IE6/7) */ - font-size: 300%; /* */ - line-height: 50%; /* */ -} - - - -/* Horizontal Events -------------------------------------------------------------------------*/ - -.fc-event-hori { - border-width: 1px 0; - margin-bottom: 1px; -} - -.fc-ltr .fc-event-hori.fc-event-start, -.fc-rtl .fc-event-hori.fc-event-end { - border-left-width: 1px; - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; -} - -.fc-ltr .fc-event-hori.fc-event-end, -.fc-rtl .fc-event-hori.fc-event-start { - border-right-width: 1px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -/* resizable */ - -.fc-event-hori .ui-resizable-e { - top: 0 !important; /* importants override pre jquery ui 1.7 styles */ - right: -3px !important; - width: 7px !important; - height: 100% !important; - cursor: e-resize; -} - -.fc-event-hori .ui-resizable-w { - top: 0 !important; - left: -3px !important; - width: 7px !important; - height: 100% !important; - cursor: w-resize; -} - -.fc-event-hori .ui-resizable-handle { - _padding-bottom: 14px; /* IE6 had 0 height */ -} - - - -/* Reusable Separate-border Table -------------------------------------------------------------*/ - -table.fc-border-separate { - border-collapse: separate; -} - -.fc-border-separate th, -.fc-border-separate td { - border-width: 1px 0 0 1px; -} - -.fc-border-separate th.fc-last, -.fc-border-separate td.fc-last { - border-right-width: 1px; -} - -.fc-border-separate tr.fc-last th, -.fc-border-separate tr.fc-last td { - border-bottom-width: 1px; -} - -.fc-border-separate tbody tr.fc-first td, -.fc-border-separate tbody tr.fc-first th { - border-top-width: 0; -} - - - -/* Month View, Basic Week View, Basic Day View -------------------------------------------------------------------------*/ - -.fc-grid th { - text-align: center; -} - -.fc .fc-week-number { - width: 22px; - text-align: center; -} - -.fc .fc-week-number div { - padding: 0 2px; -} - -.fc-grid .fc-day-number { - float: right; - padding: 0 2px; -} - -.fc-grid .fc-other-month .fc-day-number { - opacity: 0.3; - filter: alpha(opacity=30); /* for IE */ - /* opacity with small font can sometimes look too faded - might want to set the 'color' property instead - making day-numbers bold also fixes the problem */ -} - -.fc-grid .fc-day-content { - clear: both; - padding: 2px 2px 1px; /* distance between events and day edges */ -} - -/* event styles */ - -.fc-grid .fc-event-time { - font-weight: bold; -} - -/* right-to-left */ - -.fc-rtl .fc-grid .fc-day-number { - float: left; -} - -.fc-rtl .fc-grid .fc-event-time { - float: right; -} - - - -/* Agenda Week View, Agenda Day View -------------------------------------------------------------------------*/ - -.fc-agenda table { - border-collapse: separate; -} - -.fc-agenda-days th { - text-align: center; -} - -.fc-agenda .fc-agenda-axis { - width: 50px; - padding: 0 4px; - vertical-align: middle; - text-align: right; - white-space: nowrap; - font-weight: normal; -} - -.fc-agenda .fc-week-number { - font-weight: bold; -} - -.fc-agenda .fc-day-content { - padding: 2px 2px 1px; -} - -/* make axis border take precedence */ - -.fc-agenda-days .fc-agenda-axis { - border-right-width: 1px; -} - -.fc-agenda-days .fc-col0 { - border-left-width: 0; -} - -/* all-day area */ - -.fc-agenda-allday th { - border-width: 0 1px; -} - -.fc-agenda-allday .fc-day-content { - min-height: 34px; /* TODO: doesnt work well in quirksmode */ - _height: 34px; -} - -/* divider (between all-day and slots) */ - -.fc-agenda-divider-inner { - height: 2px; - overflow: hidden; -} - -.fc-widget-header .fc-agenda-divider-inner { - background: #eee; -} - -/* slot rows */ - -.fc-agenda-slots th { - border-width: 1px 1px 0; -} - -.fc-agenda-slots td { - border-width: 1px 0 0; - background: none; -} - -.fc-agenda-slots td div { - height: 20px; -} - -.fc-agenda-slots tr.fc-slot0 th, -.fc-agenda-slots tr.fc-slot0 td { - border-top-width: 0; -} - -.fc-agenda-slots tr.fc-minor th, -.fc-agenda-slots tr.fc-minor td { - border-top-style: dotted; -} - -.fc-agenda-slots tr.fc-minor th.ui-widget-header { - *border-top-style: solid; /* doesn't work with background in IE6/7 */ -} - - - -/* Vertical Events -------------------------------------------------------------------------*/ - -.fc-event-vert { - border-width: 0 1px; -} - -.fc-event-vert.fc-event-start { - border-top-width: 1px; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} - -.fc-event-vert.fc-event-end { - border-bottom-width: 1px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -.fc-event-vert .fc-event-time { - white-space: nowrap; - font-size: 10px; -} - -.fc-event-vert .fc-event-inner { - position: relative; - z-index: 2; -} - -.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */ - position: absolute; - z-index: 1; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: #fff; - opacity: .25; - filter: alpha(opacity=25); -} - -.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */ -.fc-select-helper .fc-event-bg { - display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */ -} - -/* resizable */ - -.fc-event-vert .ui-resizable-s { - bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */ - width: 100% !important; - height: 8px !important; - overflow: hidden !important; - line-height: 8px !important; - font-size: 11px !important; - font-family: monospace; - text-align: center; - cursor: s-resize; -} - -.fc-agenda .ui-resizable-resizing { /* TODO: better selector */ - _overflow: hidden; -} - -/* Custom calendar */ -.external-event { - margin: 10px 0; - padding: 3px 5px; - border-radius: 2px; - cursor: pointer; - font-weight: 600; - display: inline-block; - margin: 0 5px 5px 0; -} \ No newline at end of file diff --git a/css/fullcalendar/fullcalendar.print.css b/css/fullcalendar/fullcalendar.print.css deleted file mode 100644 index f3d86bd1c..000000000 --- a/css/fullcalendar/fullcalendar.print.css +++ /dev/null @@ -1,29 +0,0 @@ -/*! - * FullCalendar v1.6.4 Print Stylesheet - * Docs & License: http://arshaw.com/fullcalendar/ - * (c) 2013 Adam Shaw - */ - -/* - * Include this stylesheet on your page to get a more printer-friendly calendar. - * When including this stylesheet, use the media='print' attribute of the tag. - * Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css. - */ - - -/* Events ------------------------------------------------------*/ - .fc-event { - background: #fff !important; - color: #000 !important; - } - - /* for vertical events */ - - .fc-event-bg { - display: none !important; - } - - .fc-event .ui-resizable-handle { - display: none !important; - } \ No newline at end of file diff --git a/css/iCheck/.DS_Store b/css/iCheck/.DS_Store deleted file mode 100644 index 9c801d3ad813cddb6b262c4edae720724451ffd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 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 RY6AcO002ovPDHLkV1gs!@UZ{@ diff --git a/css/iCheck/flat/flat@2x.png b/css/iCheck/flat/flat@2x.png deleted file mode 100644 index e70e438c5d5ed00e7082929e61a0d9d162daf473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3217 zcmV;C3~uv@P)S$F#7aSoBq=^5Dy`#8p!k3krHw>_qiwAU7N2J-Ognwk4lQ*` z8=JJE)Yhp$q$XHELu{Hrz@L>sYvT>7sU;JNmGQ0Pjy*YPt&vJh= zpJC?i?%Cfgn?EO)n@!gKgYSMRL2_|}n2zys%w)RIfj6)Le@84)nUYBplP*$GQ8A=_ zBaukbZtaH-Co7PR5>bp%a?E66h~g;PMcn1}4P0M(#TBouR}Lysg$hhT5k^RtQ|QFo zh+qd^LmxDv{~qT3JEVPi|N8OzW=X$uF&<-3fMHUg7g3zR5xgh;`(ZHt_f^a&r5p^* zJp3Ay;b%soL@dBTJcMQ_Vs+mOFbkvMXL2!Cl;dN(g#EVkWeB{);G(awOu&z@5XDHA zJdBne-<4zk#TqoA1Lk9Y-vV4JJqi_bXE@HnR5|t;TG4{&>C)F3u*+G2W=ux9GZ{@- zp|iVU=a7vd?^{6!DEq>}EYx5$(w)($kq(Y6eHp^DAbmX>g9aSJQWPWA6l1BZ(I9J@ ziT!=^aUJf(6(~fiDU`?FD{JN3)R*^Y{$L02a{L%W9XilO5exgy#5Xadkq$Gh@2hV< z+Hn_h4eiwLk~M3fNXGXq#S&B+IxUrrN?EharoIf}GOq);IuOH5NSA7t-EZLfN~dI* z8i-*gq{~#B`ts(MzS?r|M?8(OFrBezl;_BSA{p1$!5rL(e4loy)tCdvmc9((IdD=b zm5bjZX!#v-6Aa(L_LXh}lZ|T-s7R-5oBA?@rLR&xHeeC_&LV73453WxI}A6W0)D4L zo@Fdq_OU*A#`AZRH-sf~RVaA$Rz4!Vc!x2H6=FoRj9{Yq&ss_4@Io+I~(UC-8mn#Gp(^4-p0NzYH%lX^FDrst5J+IFbWso8oBK-baN*bKr5WG8uGq$(C&*eR6sYM z;T8N9EAa~~M?IdB+dfHg9+cbEmtC-HUkBq5)SL~8u&?h(1T~|q?+Y;o^(hRpT6_)5 z@FF_UgD$k=1-Wf9YUMFHsmGZb!#6N}>7wk5e9TT^kTszW+i(a`e1RB_A_HoSoTLH2zSZ8|^vV4&~Tq3#JJV5-Sx{_tm&GY;Uw7o2DR@(={7J~_`1e9)QtxF zZd9FPl}=d}^(|)?oR#_j4u@|QI^;kd9)P)o!}m!<!owx_NE`3?kHN{E#7NG!c*@hTQC5D&amI4&{&^H^G;WjK2x5=?= zm%gm&nnDzX16beNs6r7z!N&U#tfEmem57U5Mqg6S9~ zrlU@7D?*|)dh9z<bzkq_Nm0=G1x52n+HMi1A8U+l4OE;i#rB+G?(4tdJH`mg2L8s}2` zVLJU9gMGZgzS*c%T;@6swa7{EdC&TN)dM)(`MM0>TM@>)6ZlJlov#dE88G_Jhg){Q zuk7&9t;A#BJ2hXMX}CkPuezIhv+*9xMt|+G2K!cE98?*HOHB23kjd%9ThPq`RN+WC ze6>Vz47xck!}p|t;j6#n@h@$vZU+0-LN~Pr`;LTLK7`rmuRYRW-*V`t+*Dr&nVMHI z4VU9Z&EY#E9KPB*@F-T}kmm4x(&X?Jqm<9X!Zupf`a7&)S zzGp)><4pCoK3Yw@2U7``X9&%2p-rmCC4zOO?!Z3g@Hz%BXkDgymA^LT=5ExR!ruM8NzRpIbW*<2JP*mbSJ`+lAC_4tKT3cpgO>gJ*E zR3yqeD5AV?sfWH@+W!cd_Z7IM%V6JD=%&@`-D@ga6_q8NOXUpLRH)eVwp*RjO_t`p!h6tioGRWe-+)d@T-mIEOyb*RNyu z95>i^H;zG-53pOYwsv0!nVKoshS4AZqPP+lhQoJI#^4qVPw;KlpYf>Q!&mHvTWa9I zbR5)p==QqDzCE}OZz5UV!ff;y>#N?emmv$LlV$Wf40YcxuvRgIk6{hCFA;JLyQjVm zGCAegfCD&Ip}nkiOuug@F2j9@;FO5S zu}jgZ)mQ(uJgo8EP$^8ORMvLOVZ(i+cpO`C1Tk?0TjjQ>$-WLUJ(po4@F&Q<;PS@}i9as%j?n5(1c|7g#6dr^sPq>|CV5b?lzS1dKqMFws zUyd5&c|7g#9ee|-yn(1qecAmc?Canpf|?izgn_=-;vd+AThh?C2SH8ThrZ|G`&fW! zzW0Ur8BRcz>(PoDI4NB1(1u#5asoevBxCySKsQt=!D5slD}}2a?m{_K>Bh^M($~RJ z1TpH%OuV}s*QTj&7lN9TKJ}e|^Ze+m7$i$lIA`66ckxSHg(3_SMVN)8Jc~dkQ8x?wwj-!%x3RCn-PnY5XOld)BG&iaf&)l*4q!{B^>y$!bRcNy zlx`AXU*ElmB4~+XpN)MLVz>#gsahv+G`&IUJ5W@oq zTJA?rf^%nq?Mt_wByWHh5U5C}FKp_|8(R7*b>n)hg5Oz%dFX~-?C;x)MnvFuB6u3T zHuYurYV~#gZ&&#+0us8=$>rQx;QC6ZWZ8>n zhC`-&J)MKdAAYBx(uJ3lVV5rlA?bi3zw-y)R zQN%FV#AK}!SzD2e@7s!cL<|nfh^*OaQ(wh@xG4v49CxD{2a)a^#En>jxW;8XaSVB1 zIxK;*FZ!?r>+vztosY3zI`rAnmpAnmNMFy6V=*RS1&(;U0%L`&vDoM?)&9QS*o->7 z;_+Jjlk(U)S*zQozH+IVk>7~Xgi_p$CcKAUm`<;(-6YRdif5pR^?moD0nONlPZ5Xd z#AWS$Xhs9}+0>W8OJAeuz)}=rI(~v??8PVO6`#nlX1ULF6l1BZ;ZN-E8^t!P#Ad7| diff --git a/css/iCheck/flat/green.css b/css/iCheck/flat/green.css deleted file mode 100644 index c9d17c160..000000000 --- a/css/iCheck/flat/green.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, green ------------------------------------ */ -.icheckbox_flat-green, -.iradio_flat-green { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(green.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-green { - background-position: 0 0; -} - .icheckbox_flat-green.checked { - background-position: -22px 0; - } - .icheckbox_flat-green.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-green.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-green { - background-position: -88px 0; -} - .iradio_flat-green.checked { - background-position: -110px 0; - } - .iradio_flat-green.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-green.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-green, - .iradio_flat-green { - background-image: url(green@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/css/iCheck/flat/green.png b/css/iCheck/flat/green.png deleted file mode 100644 index 6b303fbeadb70a90e11d83439189de9b618f0729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1444 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 Hu0mjf1RVUH diff --git a/css/iCheck/flat/grey.css b/css/iCheck/flat/grey.css deleted file mode 100644 index a451650ef..000000000 --- a/css/iCheck/flat/grey.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, grey ------------------------------------ */ -.icheckbox_flat-grey, -.iradio_flat-grey { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(grey.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-grey { - background-position: 0 0; -} - .icheckbox_flat-grey.checked { - background-position: -22px 0; - } - .icheckbox_flat-grey.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-grey.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-grey { - background-position: -88px 0; -} - .iradio_flat-grey.checked { - background-position: -110px 0; - } - .iradio_flat-grey.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-grey.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-grey, - .iradio_flat-grey { - background-image: url(grey@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/css/iCheck/flat/grey.png b/css/iCheck/flat/grey.png deleted file mode 100644 index c6e2873ed5fc2cb1f151c333034ed85422d29a31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1516 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 DWRxc% diff --git a/css/iCheck/flat/orange.css b/css/iCheck/flat/orange.css deleted file mode 100644 index 8c9c92977..000000000 --- a/css/iCheck/flat/orange.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, orange ------------------------------------ */ -.icheckbox_flat-orange, -.iradio_flat-orange { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(orange.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-orange { - background-position: 0 0; -} - .icheckbox_flat-orange.checked { - background-position: -22px 0; - } - .icheckbox_flat-orange.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-orange.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-orange { - background-position: -88px 0; -} - .iradio_flat-orange.checked { - background-position: -110px 0; - } - .iradio_flat-orange.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-orange.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-orange, - .iradio_flat-orange { - background-image: url(orange@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/css/iCheck/flat/orange.png b/css/iCheck/flat/orange.png deleted file mode 100644 index ec2532ebe4492b949f48278fd13b46e792869083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1518 zcmV zZ)lZe7{~EC)0yRr7N(vhAw^EDES=3E6ea^DrB$==PxcS#O*Ir!B7GAoXpkmJl=e!p zHFawK86nOZMVp#`Q>R(_VpDseiB7_kXZ96-TZfC&dG2=Z=kW}>-~)%l{e01fi|4Q% zz4h41-)_-N#%zp6AGk~#_TWQo?Fbd$Klq;mpWmHTx6kY6JG;%lo=QD41Y=Nye8+AA zt@sfqz=)?VfA@kVcE^O- zH5OxT7g}?5ttPVWc#Q2rcPz$7)s3M9UdFV->c%~G<6(ED5_ZWFSb;JWNSWSCz$_aL zGkh{--BrWRFxVwaq6w?9SXS%3q+K>OymxsD53>tg054-&VRd_X?DmSFn~!BC(27!2 zp%HD;sP{_IYMRT{>R4WHU9~zU4--uH5>}xOEl5a<-dm+JjL=ZadzU5d?8cC5Q-_7< zF7pc-G6bgJUh{;Ugaa9x2kokZvkW;8PrMXdlF9w&mE($45Ai3woXJ*ey2Qy&0EGbmk}1 zEq3hYVItI6_R|U^&>D8>1MPEtcB~?vn7t* zrFa{KxJ$3!ckISZ_b^qfu8kK;)eHA&!ARO4$@=GyW~5$;1fHsfb4 zZ%xqh20Xz=!gU_9EywN}*jeq^ZA-N+ZXH@2{-Wh`tGQwdb$ z;_^yQOv50wV?C-Jme)FDx>Mmg_UvBA?p&rC_P}0@gOAw*O<=cg7rSRL7(S*IuH9Z;>B>5MfOpJS%vBOJTuZ|Y zi?@zXv8=i@)CJ@S;uveb3LYat^Me}RyDYD|Kn%;^WlSrqZllL;W0+mzU3}by)=FKg ziLAR5ySvccjh#_-W7vX4$Z}}VN_jeX>#Ef;$I;-S+n|>BE>8({0ZHO5RN`b%L}#Yp zO_=SIT{Y~~qZ+4> zfa@f5&6jF;@3OqMYi+=A%+Tx8_)AXfy%{>Q9%dr%9>q%3>h(n=<)YrJ)tRGVbXnZ= zUGvl3X7M^Kp!cpc%T4dHv|ah(@eA=Vp?8xwBoTDo?`;nq=oZ5Iv+DnY{jVF&-@VRn Ul15pQMF0Q*07*qoM6N<$f=ns@CIA2c diff --git a/css/iCheck/flat/orange@2x.png b/css/iCheck/flat/orange@2x.png deleted file mode 100644 index 9350b50624f9017ba8bb3fc64c526428d0bda407..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3275 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 Ef=5*|pa1{> diff --git a/css/iCheck/flat/purple.css b/css/iCheck/flat/purple.css deleted file mode 100644 index a9760b36d..000000000 --- a/css/iCheck/flat/purple.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, purple ------------------------------------ */ -.icheckbox_flat-purple, -.iradio_flat-purple { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(purple.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-purple { - background-position: 0 0; -} - .icheckbox_flat-purple.checked { - background-position: -22px 0; - } - .icheckbox_flat-purple.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-purple.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-purple { - background-position: -88px 0; -} - .iradio_flat-purple.checked { - background-position: -110px 0; - } - .iradio_flat-purple.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-purple.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-purple, - .iradio_flat-purple { - background-image: url(purple@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/css/iCheck/flat/purple.png b/css/iCheck/flat/purple.png deleted file mode 100644 index 3699fd583289e37e1eca6be2940f22e0daa5350b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1519 zcmV ze`r;87{~Ft)0x$b2BzL6Aw^EDES=3E6ea^DrB$==NA?3mh-xULMEXytph22sQTm@` zYwFadju2;!qD{@8smoUS$ENm2OLP+6yw+RzI4%!%&X;??=iWQ$ffrm3=e(JRhjZDz z^VXB?zulslhWQwWJK-|j*pCme<3_0T{$V{Qe7vF|qwedAruB5&em$Lf&Tx!J2?`y% z33TEIoB|`By8PQu*`L)?w@NAySEB=muoc_YWenY8-QSG5++TBVZ>j*LG89Ef;v&wW zO_H#aahHAi&+d%{UW#{-$t=TSb923PS>nZJDW1X;8Frh|q=45h%heRH5YJ*I9ti2Q zV-e~@7C7y$;{uOBC5l73UD%D2Cg7#ZPTjN{!_)cAje0RC0l~7j{TL51(ADYOz6&}0e zqwE^Xu`rF+LS3uLT6YpAq|u##N!jYgPzEn!T2Xc59=q|VyHX9iWC^T61&X9X#}Y8h zM#Bv6Oc{68urm^N$&zTrdMuaqI+nD{riS+}PvMbvfs5c}Oe?BxKYv+T(RT~6$^<%5 zjvBO}TUvCi9G#}Q8igs#>#eKSjVZun)4hmwXha7R(xGGPbPgjl)bieCiF>*+8L6LKTY2XxQtoU72#pcPd&Ul({M zs`$-#34u?L?{f;Z*FSY2uwMbI$^<^eVTbk+d}dpY-9mhbKhUMug^t})(>-98ENIz& zG~H6iZULrXkxW5>K5Yr?#`0`=pJRCwyrqq}{<;?|@0UpOmNt;U2nDQhCa@8%W6v#f z?5@OHD8}7-{hnhtZo0?dI`-VSW499J=r84%7}U+x0&lZ7Pj;B)-HSoU^|aww(DGs+ zUJm$@X0T}z~7=8bFd*L(17Rj zaCy(54qI^~CGfNB@=5~fPTw4KlNoel+3MzEfgi_{ENYU#tEk0SsLr?Ll@i>CYuJvT zw7hj;%Nz0p8w1yQ$hI828(?R>W4Alt=^W-B)4k-_JpwxigSxp`;QnY}Q7c&3BxVq( z%E#rEzL<%jTH?*9by!~OsOipt>)3M-ICd9e4gQohSmN0I-E<#@>)3P8I(B!X6@N)9 znq0auWOHsuBMUo5-^2fths$f1cov2z@Q+F}@a_lBhgJP*c!m-EG>}GKvv&);OZo?c5vCHdd6FSV796Rx7 zKwva>nJ+{-)rz`%+ngY?#=)zd{1Uz_d#%*ABHQ7Ca8 zo2zqrMvbdcbop$!r`rbyFcCgxKQy7;0cm#6ViH?C)o2W*+L#G|n z@rJI|WUYG*yHJNNhi(_@bj>y2UGC{Fs0)cHuozX?i_37G%ev+nHSAkl#$7e+G@%x! zk$~$Ybj=rPc<-{jwrg#{D9qODGx%H1=-6zXv)Kf4(LI5+sMqTYNXi8rtJgUvqUf@? z>Kf*^yY1q2SU~SxX_K6HS=w}ddHh_$C->bXj!G7~?)SEjPUsb)`dRh=!T#3^=U)u0 VZ#F@RuLJ-9002ovPDHLkV1fY7`WgTL diff --git a/css/iCheck/flat/purple@2x.png b/css/iCheck/flat/purple@2x.png deleted file mode 100644 index 7f4be74a7c08a453802d46e6a7971250ee416f08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3218 zcmV;D3~lp?P)S$F#7aSoBq=@+mDX`4P<%i{X(N%~Xj`iS#pjs<(@x*ip-r9A z#wJ#j+By}8RDuOWRFG-MQjEa|5+Epu4+)@x4@-!XjhpoQ;{Srl?A~+s=G@Ia%l*xK z2IlVO>~F4{KPT6lBxB!!_r4J)*|m^dMWPVHyCg!yqZpjR=n8Fy5E`y)YR6`zmIXQWpAV zHhz!s@H0bEBEPJXmmxeI($}*QsKY@lK_QY&A(qG*b+V?J z*xxr7*Wq4VfqW#JeEHaWWvyJB`tlyl?e73yhF@TyLkGGjVqxED_&x?S(qWqQef7;j zD;6T#&`y1!tXT;~(!Oso7NN}0WvNV*$(kiL^<@Z`cpbnMff!~&x>UIAegoH6Iwi`) zKnyb>T_)Ppmp8Zc)s}_7;2DgB>5N3ZyhaujNxQxdX5uE~`m{@}z)U!{^koRogp*9E zZ2S>H%b$=PXZQxTuXO91Ok9INMLK2L)R!SFeU);t9`oUM=3~8L2&G%!LAV){;dds> zYYnogFGE!=0GCs>syRG1TA?ewz0257S>=UQk9ulqqVcNzpsM|OhBqK z0Tpm;>Z`L8c5ovCnRwkS>|2DOrpU&=3bmMpRA&}yp@{W;XW)FKI_G0Xy7hHXhM;CL zB*MPFqY>1Mwz02^O56qAe2CxSY82uO48sMuMjkr^-Q0z_&ZMKvCos72cG6iF$M)*+kKR|3Q_DkZ+*xYpLqXE;v6Nz}|g;r_hTq=6!*;`f+|2 zXxygs4DLq{yrvfq%35w2garor-WPjf%IE0NmjwkV)$4_7fw`g2L{h6WvcD=F|Yr5tZIB|BrLG3$Fy7f&4zN>K!b%Vja z8&ua=rBjAQeM{K|XCyy>!{J+wHaSp(2VgGY@O=sq`H50HWe6veGL8Gfm!bov(t*Wr z%NUgT&^H@*V+SH)2kt?(OJCM>O<{t*1;~S2wjv5siQ;9rB@YEY^v%R&xE)Ky?Q$&B zr7vr`CLaai0M_>o%F&Kf^Jg4`!Gy#26piSFZl-EnKB|Z5td+IhQf|0!0bau+n1W$q z3TouB0>n$b$G&4VE+4hPboR*FZaLR*-#pxbYf*?CQ7Fgma2f6`I(_vAa5#LY#u>hu z_$x-jaKhm$-#Ii3xzNoea7#UUU^+dh_i$hM#UA@+V-qe!qFjjQk)!OZe=g6~xR%-r z)9KY1?4u3#%|w;rHrG+8LROrg_pIMnJ%GcVugmbg4Pm@Hj=#s*`O5H>0i*AHxMe&1 z%61RkiahqcOY_`J!kwCZ)!o#ajrU6~`F4c+WVISz-z zS4#v(p_^ked`}n{zWO^J|I(uBX0UG+bW>%p?@+kq6PS(u+CvTYEro7MP4#tP0HDU*%eLmq=Us++;SZ$LLK2K#owExGV3L*SM! zgME)cH=mg5>mVKTM4WpqJ23;V_8GqA;qXn`Eab)6b*;jOeqHnR_=!^tzfz*==ArLI z#LF5eqI_<#hrS)!{|K4)Ex4t_VBcowrrG1U=r~;l@VVF)=Re>{T!$Uli*g(dhi}rp ziQD4rP@-6ckMOAs-wvNIJM7oKPuRS2RW}cPry*We;BBa~8!J4Xi~Sz1p^x?T^VmJd z4EEiHqfq5z>{6_)-Pb|7W&*ZiI8IFjSK`8O`1Z>P+={_*zRda?9`k$nid}F^B^;QJ zgGvwG-tgGB3)kT-B+A>Efi7cx)jReQWWaPXjDCfo?)x=XD~9k#sot@0=G;@HcTa3)^tk* z?LPF4VJ9BPGV!<^i<$20;B?59SdYO8hVPT%@a>mxyZq)_2RHb5t62|L!7b-tB{B?s zY5at&>6WKKH;Gud`1-*1m2Q30i`{TbK4uy0I}7<5*SdRc>MP%_eEJPwaTOYn6KD9| ziZJ~%4wcA?Gkhn(&(tCcx7>{7aQZnM9+tJ-5=C7a^=(8<N)EvSMj$MGvj(x&frbV8LPEIbeej1dT84%^t*MLo)KXA*;Li7=7Ju^L)o@YVBcfCjWL9klzR1!HkZ5`*muVIsTG zY*Sx`uWMfi&moYB*UiGdtq5vbZS1RXH#Q>G*(k5Ai1mFpV?R=z{n(steI5K0Z3tT0 zrJF?9*LM#h2wEc8Yhz!9C~n3JNL8Mf*Nj3D>-)y=EZ#+`@{YV_%%;BVewBS4MDYNE zmiy5a=h|6d`_io|!5iR31S-<$Yn%G=hL*lcowxxj;CEJFHaejf`}=mI9!>B&O?U>~ zHuYurYV~za*;PJ_fP^k|a=CUExW3XUQTE`!2t=gI9-I0yeD`=567w++$6z|gW$pQj z;gGIeje~r)MB7hCtVb=uJ1N9VxZHAZPxeIw;C7V zF+|bdL}jfaSzD2`@7s)8G#MO}O|oXQO??&r!%aDWW4Id?IDk~=0B*t}#58W>iDAI| z(qR#lebIx>Sc}h)>U@T^(xJzezPzb7L;8Al3=1$0)i~_&4vcD9V}a3Ks{MUCu?aPJ z)#JVTC*)&mWUWq{`pT_lMt&p4Iuzp;`TP6mhUs+6+Uw-Cit#KIvA*wK)S*HC{sm$% zotUh>7Y(SxUYq(dc6=LEmIkpem5+357yoGJ1O%{$WC)P$=ab3_wDmP$N=H2?qr07*qoM6N<$ Ef)^M{V*mgE diff --git a/css/iCheck/flat/red.css b/css/iCheck/flat/red.css deleted file mode 100644 index 34b71e470..000000000 --- a/css/iCheck/flat/red.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, red ------------------------------------ */ -.icheckbox_flat-red, -.iradio_flat-red { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(red.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-red { - background-position: 0 0; -} - .icheckbox_flat-red.checked { - background-position: -22px 0; - } - .icheckbox_flat-red.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-red.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-red { - background-position: -88px 0; -} - .iradio_flat-red.checked { - background-position: -110px 0; - } - .iradio_flat-red.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-red.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-red, - .iradio_flat-red { - background-image: url(red@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/css/iCheck/flat/red.png b/css/iCheck/flat/red.png deleted file mode 100644 index 0d5ac3819b4d2aee17a543497d3e70699a06f052..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1516 zcmV zZ)jC@9LMpx)0x$b7Ny=LAw^EDES=3E6ea^DrDd~F%l?q~q#6@aB7G7nXpkmJlzS%G znmRTAj1XsyqD{@esnb^aU{ibG5}kxM@9h2HbMJ#McF&J{e)o6>ec=U{!#QuZ!_~-5A0D1Q;bQIEp}P02s!Mm> z1iJ7uPQy(2F2DO}`?Ff=R!IfoYINcdwqTpOjG=q1`x~mu{WbUYrV3Ch!%&1IF5^7f zB?&vByX@0{c2f(y6dxkYEW=`RbG>v~;>Bhup2IUCyDex|z-yP~YR<3_FJdJg3FvfS z5gG#)I7HWJfk&be#R1)J?8ZqG@X}?cZrY7uTIeN%8q<+lUT6)v!yJz#3GbNGfzJ0kdp0 z%<#?>x~qnrQLsyvL>ua`Tu)vQp@YDt5#|XFvWB)V;!2%iG+0O*gBoV2o1HocUj_eH->zhCM-o? zncvWoAutmUnkVEm9L~@@jOTF;sVTwB5p+jmkafQP$KX2l+_+=666F{u<(L%Qjedc*+M6dk%<}HVVBG3y$FWSyi~I3< zhA(M`nC3ya&LPtp>ezh^cIG*D?eB3Ou4A9nMULGuurn^88~FnNfNIRedZcDMUdqGe zJ&Oix!4ah9lR!9?)`ZpRGyD>yP_h2`R`;=YYJaq@=VyInSM;p;;zU0`6Co=@b zV3+wqq)V+_caNJd5Bgztz!DF^9B?iJHBRKZ8^aa&njUB}c8l>ne#Btcu3Uq!NjP=~ z;tjmzxV#DTdV%Scpbe{0hP$Lp$M&JbG;32oqu#x|b!nx$Na8!w9fWz9f;b8#u4D6b zPI}b1o{KJj8%}ro;Q%JV$LxnDusbNr?l}yHkLiMIcR)5>*@%zvzWIu|MuLWGX_#U0 zHu5eOs!Ky%K#n7hiRP=|2@*6vso}lL@~R8OunJzrv~tyL_1JCAW!LxspJmZnt7|op zb@yOj7TtZ=6IC~c?O29TqXw!r;`YisDvpV*w&e;Srk#|pEEgJRu5|VOB#~O9ciClD9Ty+ie z>28~N9Tw1gSK8&4cUjtOK0JOUAtthJ5=SM1uKT_1rxW@F-#@GQ&!Ye9gYz#aOK(=d Sl4{xj0000xky7y@!Zce>mF z7r-e{3l4!d!EN9;JjQnK--P<&{j1~nrqOQzyCVl=gDwW?*JO2-a0MIyCrt502^>Ii(N_um z!H>aQkO%CN33}1vd-VGdYz6B?8!Bp|JB4#QkTe&!nh3HSZK0}%QGi$yk*Wfs?PpEK!Tnc|BQo(Smcnj99<8L*sX z<}`VH?HP`hBM?X>-)`U`ump@_nK?~QzIF-6>SmHJ-lN?*Tfi&9vmnuVmM(%A=Q{y> zGtshim|(oGJTpKeSO_u{&D0li%$Wj#RPZeTi$Ia0WvKut;+Vrt@8je}PeWVLqlF`=!4}4wu@kI$g3@j&78DI_YT7FBn$ny29FWn*&0F%5XOQ(QIz9`{P_IoY4U`C{XfxZPG+iS9PDlpPlJd@nc*-l)- zeQlSTS(@)_ab`Lsj=n>j{r}`#?3U}d=LBPo9HWG9VkhFTM73qi1EHt zz*plf%Y9BsGGCrw=-rHp6fn@YpND<>8R=`!Oz;$t&3W)E@F2(ocY+>ZD44|O&dSPh z-?M=*Tuw{4FC6GA#c+qq4%fk9@E5QeJP%f~__y%6s}B31&?H~Xf(u0j+y{6yeIo@7 z^v&|HZx0iFZO8%Z92D6c@D;EE><3Mt4YYzr@G74h%x%v*n9=r@C|}R`!lk$5I`tF> zMOF#Qz(H^Z1i>v30++yPKDU=>>iPn56L?&r%cRB=|k3ql+jV+;%v4RyCd-`%1$Ryw5_xB8l_DSAbT_~DZVq_0g3a%b2az|z-TTJtssx{u|N#pgA(_S$n^_Yo>MH}3lRdp1D6yE_~pxx z8gLWHX1v7mQH2Koog6z>iWU3ja@}$*7z=ukv7n64<=VJZxbz(;v3yhyRHuPs$I1Z3 zzS-ajFd5{5Op?dPo`_NI^)kNl1?-pa_$cKY0DshTt-fErymF|-;bpQT1p*aZM^ze* zS>fWm@cUf)W`Mom>vlqX?iG+J^p!uBeFeVtnwI4{B#OPCLf-(GBRI{q54TB=a=&MJ zUvUBZGv65H`~6M}_~rZOC^KJ{FAGK%@l{TTfUX>J;g;{x_bJI^GXgv*=__^}n6fd2y7oMibn`{gS|5PSq=bBX2KqM&@`XFU2+FLG1p zI|s;SjzZrof$t|kPsC$qDfBG_vMF@yn@R=z24@3fz<$Z{9q*T~G)-UwCASD|mF!1pH5l^X)zOohIEfo%Gy@=XWHn0=u1a|dJ^*u#R2 zmPS5z(Jx;qPJ^8wM1cyEiJYN?Si&EIPg%aLnwK3; z3eOYPmtv8d3*QMg0xwGbhw?FQ>*iRTbg_m$Q0wn;>|9dl`xd)El#jWsU~D;G3nXiX zfP+!K(KiSlU;+5$>z*9&80Z@1W7eO*2HoXL-V%7u)bu{LIJQ%_w_Wo8v5a9py`IgRK(x3oZv~iar{@#4%%KOSIFK za@Lf4)|YOP=>W$hZZuP((6@wR+J;UYCi(Jm<yya0281QnRv!duo%Ee3T1%x%jd{NQ{eUNNCY<4y zuNDTggah#^U(&=GqbN&373kq|*Y8k~%`EcaQRY`zxwD`)~<%LTeI z#5~^y5cKH1e2<&xDE`U<%Trh*rBOK~651nZK?=GzV`Ky93s^>%=E zlYCLWQoh#bW|c1hujB`CzW5o3dZ#*z*PD zkgUF8uoqOa%$0^?R&pOU+Sn`tDYOoVrNr3Ma?z@^UM)=}QT@C2#noD2-7z9>$$b@Yv0M=2eUEe2T*bd% z17S@USzO~js<_YNCi$Xx>8p$;upH!pvEZlNR|B{T+R0TuR>f_`@-@pjh9D{H8w3Zz zYEaHkE+@bz;4=^=pYgF1+@>6?=4*qg zUx-v?7{~ECt7}%f)q<(BNl1}vR+g@<%R*tYpro|fTKFgX1JX^kD5OMs6DnwsCP|du zNw%%JYW`V5Tx&_%Rr7D^YL;H?s$FEFE8*m5-;3YO#e>Xwne)zZ7JA?V!|*$>)PXBR-W-{hr4DN-?^k5%8#kO>);*p`51DE&QAE{efb1Bp9{QXR(i(wdxauhpu zljz3JI0ZA&yZr2@?4Q+Aw@#{&P@@Y6u?bt$WenY8-QP%E?ytGGw^W1*8G;g|a2e;( zDJj^A+-0BCg^^z1MfeC&W-%6+o9m^^5-%`I@dBQU*lk0r0$#f;S8JAqcp1y^Xh`QY z=A$`efg^OC7I-*nQ5Mp@h@CiL0$#f8)GfOKCPiK{s4*Go<@MI3mFeQK$V&z_hUKHn zGN=nk5tgDkbjhGI8+A<)G_iF9)Z(?UC6h9ptwrFw%RQ|{aI4r{_?kJ;LxsP6Z!5+J?xStu@coNk!rn{gjqHk zX82@^+*QNQ7hiLB9kDZ6ZHc<=HQRu>3R0xx4)`Rexb*zFfXw;0P!pc_?a zKs$P*UGG()+ca0Gm0n(NUA59vgbAj58LQEPE+nN(@2%DuMrf$zy~`43x&aDpTCfPc zWqw0jmcUdzWS)?da41Xj5MIPJq^BIO#?T#sQuBmdhYMM{7j))2G&E@Ct6QiGyd8D? zX1tKV7bx^Og+_iuZY8i!0jtggzQiGi_F;TwTaMjge1^YpQLl>~yA`IpKkJf-&irD! z6^`8^OvHSdh$8)MOV(~sV9Ps&#L;Zaivf5e z%a=5RO!EL-=b&i~cI>_mJF^|T_UAYc*RfCP636aH*clztjeUWCL_KC!#3xrP6|w{*6Y~Zh*MwKI~+1pRvnZpzgvf47SVbXg#{jmmJ&ibe6zK z>@Z)5bgPx`?lJS_K_5&HS>i#M0nRc|<9NQi0j|K;^gxrfTZSL-69&3=Sd2)c2CdA~!CP0Y^qfSShi;o%-n%>{)CDAk_fU`1VG*5~ig$Ib zCbsSk>_8JPhDCLzN!Q%)-Q}L{fVz-Cfd#0;Zd`@yT-7x%sbN3jB6roW(~3r%K@zT$ z)HUCz;l0c9+OD+`BQR61&*EP>tM_K=%m$c=y?Y$1(5%;&kdjM!uUTh~=cCKws%x0v z?zV{6VFA5&rBiNum!-|+m&dOq!o=21;fTc0b-%ZLbf8zzqIjqO5B9%aIR62TiEm69 Sn?h~?0000?8iVsLp+DIfg+SaOI@p-1gw9_~3&{C(g zu}LdRZJi24YJvqsRFG*$DaPOf2~P^*LjtIvxP*1GVUvDe{9iDc-Fwd7oV&Saxxbmu zFmrcv_BWT!pOec?lC^u^2j57LT-+okW2782nGUq!ZLGn+5ld92WX$NKi$q>OvtRob zTzM>Mw>|q0BrA}O5>bpHa?E66h~NQvhzyK-Gg$Rz~AU>4-Jun#m`zmIXQVx1& z7JiSh@H2x^BIaNp9zi1%vAXYtn1-S7Gr1TpCg2Oag59?CWeB{&;G(awjKa?_7sW`H zJPef{Ka^viUdSjHzpn#$F@BEz4jt&Ch=qNp;!5;uq{CF}`|6vG zJ-7$ChIZ=r$eLA9B;)&*VgbqxU6#s5xvW`cQ(uN~nb!ea8Hiyfq)VmC?l*9KrBkwu z55zDN(q+6&eR*?BUu`+~E1t!0n9gw2%WLF7k&Nr>UK+sZvQXBg!*TQm(9PYL1Fdk$s^9z4LAx)?FbTT( z3a{axSc>0ZF>3LQJoaUZ^I(Eaec1)O_H{4bdDMo=@v`o0juP@BRatH!sn z2rr`zo#?XeuLpqWi86E3UR2?Ezd2LKUEouUqg~H zeWxHFs_eyI&>~$_=|KzXjw97{V6NsJI6uL;F1ugd zzK^A=uXIY5LR<`0wxJ%KNHsAu;(t)(ViX$a`$oF@vI{N@2e5Y^;c4_BjCsfKP9M(i ze2v?bp2dUchS&7qVOh&912Eq}-v@%wSM!?|TJaKk`q=knwCa5GgMq#q`@3&AfYsi| zRrnDe42Q6BNAVP%_xK6y;8u-ms6RFIch@6pv8HQog_B_S8`QpYrCaZ0;X4}FP}dsl zyH<6LRXSx^)OP~A;H=aKa5#J`&?X0J@DR);9KKH@B0o`Tn+)MpQm%1d_#$+`R66ho z+%gK~KJ?ASz1WI~*oym*>(ZAsT~nN-ZxIUMmQ9GkRAP7qZYe;K4}G(7IqtwBafcks zcInHSt|>%OIDqxNhYGag)chGoU@+nEJw+3u(9IN$%SZJvoz=3oTPh6qEy5dk43jZL zOh%17R)j>U_t! z8-K%a7*05RL zU^+b-gMFmIzS*c&+~zt0)yPTk^Pctlst0hm^K}`%wTGGO#w0Jm&` zU)kcJTZzZMcWa)TiMUI%uezIhv+*I!Mt|+$2K!FJ2&ggwmzwJ9Ad}OMccGiTsKCK+ z_-cvZFm!W7hVO9$!&iUD<6l};-3<1vhHk12_8knjdT?pf!ZWxJ! zOw1p8{c9A(_wnCw_!_Ylv0k6>EAdf34BzA0*WJuJOV!O_-?yNfR)c*z;g)>(l|gVz zr@_95pqtN3^>vVmc{0JhmQhT{YrTeVML2v@HWLL2c3ms*v0vAGJ$~Yp!mpI6x_Rh3 z9*MFFiYT93>Y;Ck_CG@AeG_i!Fxa;Rx@qxvE;>$^0el`dC-@6Ifg7+DyHJ6{;qXn_ znYcZ{4kd;a_ynKJ@a^#Vvcq2O`-IJ_P<8XrcPbKP8Qz5|JFv{-x!CLB8v1BoKabsW z#9-g;I1E)j#dgKo+I<~lYQ|v`hT_yja5XLphi{(@!)+Lt;LEJP<8i--uhZ_?JbXeJ8=WvL9)Dy>F6}pSG{8|Ll#UY%jj1a>b@tjQZa-NV+D9F5poZ^r@js{ zITNq}g*Y{FbcMsW&(6kNoRQ$B|G3}7S8UPPMa_ok%+}bUy{dIgzi&G(#{+1_3DGRa zEEtlV1>)=KoZ#C=23b^H5EJv21 zFO8p+HQn+I=q3>bR~`#&U+LC6J=g)a6k?{qzB5s%ajm<@roQs+%BSA|7T2H=c?pK^ zZ3xphV^D>h1jBbC{7fxkaLX-N3a5|5;Za%3Eiu$(P~RrRHLk5*i>yBOou+XuHI63x z`i4Ib_&TgXZa92>F&0(GPS@}iZCDOf9zY|8c)aZJ3?7CmPq|%YV5b?lzS1dKBAWLh zUx6y*dA#iK1AG^%yp4!WecAmc?Can-f|?izgn_=-<3Cu3+tSdt6G2VfhrZ|I$C!hO zzW0Ur6^=rc8_|L)I4Rui(28oPaumOWBxCw+K@_T#U_Q!_mBQT)_h154iQ?5v>FeMS zf*AE}Cf;3v>(kV?13}GkpZbo%`F`|O43Y&YT(hpn2ly?nK@kRsB22?#ypMYM7@gdw zGg#Si2BxocQ6-8E(8-yo#Qpdl#-IS%qCk#K#eJxhkI~7Ch}zVb-EY#qIoN@52x6Kc z5%%@{6vGh29JH~oi+WVxt`r8_LSZ6LU?sG|;H&4?0QGBMI%xMrD@Nne6b9Q>!bG;C z#iqUtU)R14o<|^)sGEg-_aLa*V`E>1d$A7b&N_K*MXc|;0eg||?8Sym>+9fOXhYD_ zF5M);zP>vVLC_MxE*twQ#Bd85}=kPw#mG|T|<2LnW_p9vdAclt! zv^8(R7*MR6mR!S5`?EJUFf`}=mG9?kGO&3G1F zHuYurYV~za*;PJ@fP^k|a=CUExW3XUS$5)e1R~O9r%inszB@e(iFufdBQTw#vi3a1 zaLClYajZuJqA;DPti2v_TlzA1*CX!b=K(K5E&4lk(nS&L`ff%O`a4b7Y<*vSD{&zn zM+|*UOx7xqwH3+uzAdOlv%x{xENiyd)K~EzZpr~1$Gxb;KBPPQa5EMlu5lYr9R1#x z4hx{{i*9VdYJ7oo=L@Ws4&Ao&rsQ( zJl?B+Tt2o&){5HHm*E>V^&2r7P>Ng8fDh3H)9I468|1Z0@f;MfzV9y7p%J@q3~`uF zT-M%&M$}=KO??@>^fj6`EJQIT;}>YePJD?j@ueJVl;=!FF&4@i{>1*i5p2RzEXQW- z#%K5%aq+br+l|fg+@;ur$m!HK2Z<8H3SmL4>l?=o5%v`f+;sjeD9(Xdat;K^QO1ej@?|I-*#=XV1;Bh{TjsYIJ`Dqy1O>@aD~FEQ2~O(_Iei#@ zig3URlq1+Ym8!7zugX!dgEe<7QsyZy&f#1@-UFaooUP!r`rx#Jv!xoG5LHQEpFcpB zGfA#%l>}_xbV!+HZnS65?t4f|Pr!#CecXqB+!EW(x=5sEA201Q73YS-kylZB6f^a| z(w#$vG=O%qxw znKT9xiAii@(t}ey1Le&OjpeRU-WvBhYmgB7oSDdV9GF=We!R9Vz8Cg%6NN&dU3@ek zp9-S}f8#C;JH0s1JpVU(ZqK9S>RGa#968P!`t0yx`sVXr$uw*)&IWKq1^ozcHeh(t zi?ea##<~aBua65|Xe1@yFM09O#nJBWpGPgra!PWjN-~T|N@tRkHIgL((v?ISVvY=C z!$6L0lk2q#NhwP8qU)h;RH0ODXDLqW+7-0(<;|3}hG-&li&txIf*yZ1Mpt{5(WP@Y zd2*HFv{HpqwI@q)8X6jE9$0sO+?B58nD*2()9zclw(i!gq}ku!KY@Pa6sPJ2GEEC6 zGAN%nXgd2Guf$8~)HG$B@1ZXmtUi?gn+36twKjbyIjIs#+c>QJgvLraJ*{wUc% zr8rAw(a&NpPGe(Z6q8KjN#?pP$*Da2#+EK!1Ou_d?Ltn~4V2Frl*{Gkje$%ykmL9Q z2q9*37}vcxu4~g+dW1&PDau=EDpV$$$i8Hy7~KbjXux~`Vb=XsJ9t# z2+5r48^}-wnw&odviMQdzkzOGMz&A|5<jT)>?iHTNnA^0n^rc(_;DS4QsS{prBY@Qr`iUxEZ)M*d9{UcPZq9z6p4gS<8SC7 z|KcZ>@4PrS25!?=pY%}sQz1+={--&_x^Tv%YyUGy(*!~*#kmSjTZR4fdvQiaZX1^` zUrseQH^+Guk_wPWBqoN2hI4A=kyD)N8_2ZCgn^8CVj$kSEOid@qj)TSo0u4vx=lEJr1XQJVVTpPMr9%j~~@Z zO5t%pa7zKYyU%wwt!zG;%jJBnLeXgS2-lY5NJ*3$%2Dz+iLq2|2sRI{nippXoNjR1 zeD-sJYs+yYG(J9_Lm2AJLu%!5`C7=Sx`Frx2%%#jy%Og1MWTAYV`ET0r&!KAZy$JL z|C?{MU<=$b!*?#H_y7A}|K!>~5SlcNk$F1%`Adg;aSn}gT4V`+aA zjC>gb<~fIRJ33xY6EstfGExy|_wJ4&&fb0d^57f?=L|S@nSN}};oR3cI}LvvO>#`< zpr1c*M16hzUL*{YPjL;`l2U-2uffSwz{zlJV4PxQdwZ^Y(B9tucP!&wc$51JDe;&; zZ-}nRJ~Baayb-FR+Ga9qDr-(1&P@J c7PO$>0rkpBRwjXd!TtD&4^Meu9Aqe%mkic%kpG0gKUF2qhml=2Xms1Si$ zm`Aie_eMZo#6mi7JzPayWIf< zNs_d!X z>5Zj%Sg!Jl$~Q_&eYbLQBgIWkCKEfxBH`QUB2`pYS%!xVNOHUH0MAt>@f-)wtCr-+ zZ9qQ6<1oudJRXm?q@)A@`7-OIC<@84oPy~+1%R!H#8eCjoJHW7k^wQmTJWp{kGnt~ z6+8#hQ<@@XK<4wXBupCX*nEr@*F@vLK^d|jPqT?UEtcfTtrlFc-{bXeDJ%2Cd_0^% zq#E%xe67b@x|wsOC#gcWTbAO1W`gHF@T>-pdkQ>m@T}rooYRgx5=N^EGD#TkzF^4~ zR6vcxtDSrc~+Urh?Z?eZF8ZOpwcx2WfM*WZvI|cM*-Y;oe4J!8PMRiDA-d(--*RK< za@B(mKCqBo`JvJ;QnNpyqS9%LATCH51J32KJ{N{W%DLk*V^` z4hFrgt*upc^>u-OKj0xK7LUmT0|W8y?xW$Mp`oM*kL?X8rNk&aevT4KgbIf9Z`sI9j^&R#Ds9$z8a!c->#zTzq6k9z4IBpu&tBil$w(V0GHxf4IHz1fMg{_vE(SlQ$q!Q zKy@M);xaWLHXjWpq$3J+AW5({6!NLMYd zq0vMi*3t;cYK+YX2CSyH4{mZx9$L08Kr?Euqu*@#kW@v_%7fYuV+tC}KrIDpn+g4C z1<$+SNs98Y`P_W-O>=|6pkGrp(&?gq(9%CA)<{!RQ)PLe+`Dt<&VCgxBfw)%1LB5g zFk2PjXmW$qRF#d0j1Z=c4R~lRKn9Czs;asH2(O6p{NUmBbmi4E=|Z%RV#yGt)HsYM z)36niDM?9Joaz?(>Gt~<(_jC12*xCd@+<(4*M$Cf!LtAe-J(3#UAHD!GpoiAgU@T4 zo;ho#Z`G==&ECCdZ-^&n0UjF~5KLB45opdADu&)2v0*( zkk)QkNa5IL*vb!3N{NzA*?XnPGA+H)PrKf#r2m~8Tv1waLy$WD9AN_z;hAG%f98ntELwDB6;IF#LUau+T(F>W z|L|}E0BSZKn;Q@}N69h)IR?ZFh)u{KHIsR27UgNXrkk+Yt^n zp?rB}ka?OR$}>ASJCNRC2;a!43D)>aX7dr{DK)V_rJ_8(GM|S(TdE2JA~BVEz3e9v7eVM* zcPvMj4Q)k29dQFpn&!D3Khe6n^sdOGI*#4NFf)mfAM%kCxtH z6taF)h5MtUfGZ1+-M3&0Pd}=449GE{F-!%sOfsM`QJzqLnA9?b*N?CP4TqFMc#`1p zo7A7AC{HvNlRYIKFN{cd0*b|AiU5y&51|!B$+ZP@&VUd`NRp%;)H20@xV9)y_rZSp z@+voJ3U5`#)=+QvI9m#b2+t^ZOfev?Ey@!Lh2r(~^d=kCU1$bBm|zXBKl8PlqU#LoZ&m%iQNUm`+IwPqX5tldcHg*_S|AvLV7 zj8OA6ei~O}r0Mzf=~!2ih6iMl+-^1@5uP6KEH$Y=J)%4#BO{5=`uijJ4p^ngHVoel zi-kwSDVHRr?|^0DvHt|*+=kEke>fZX9MH05%XW5lcEyc8=YR=}bL~QS-u%l^+E~4a zD(3n~PL1U}3;N#~l{z~x{YVnm73Dbz9vM6ygZm?M?Lv4y{`ix@_V#N%<$*w%u4y?< z2*#7d7gH~wD7(2Pz+=zb@Q7Sr#c&=(G-v|a@y7NGSA41A^<*-2m%-D|Yh1e!9!=Hh zddS{$;%|(*i#YQ8_lK{^#@LX+he~xkOLU=Uj zz<~n;ZLMv1EGSsPYl@qZDII|`quBA||GfZ1Q_vd~p$qWXaSNvNK{N+VE@uMb;653l zK%iV-wtV@oPMkQo5da=CM)JIQ4Zr5vll({LdShc_P99AqdhfM9nzhGAi&m7;oMtzb zRq|x5Qgl?O&(CUf@}NwkA(dPbn-5PvQdS2qt=bpTH(&myjAG+9pCSK2rhihh=649UC;AsZW>>~GP5Ii5I zr^6}pq>W|bY$x*}L!Dor3QvhmKV(D*M_CNSU~S#{lhMwu&P|679sVaKiJBsr>(JuG zZJVC>#m_Hnd+Mp_;>j=?S3x{^^d|wH?clk)SO@mtiGyc5coOK3I8SaP(x;n8B1ev< z=`83Ue}A|8szr-#gHa3?!F&ceH`m}=lv{@JaIHN1!`HkDo>&ohVw{_6pq6cTB!G{R zNt*00Zb6=;i99K*^JH$tcJJQRwQ^m` z-*uN|cz7y6jyQPU2ha21ISd|IfJXt(VZN4ga4ybiM;>W^SLczhu2^v+?(x5cL{S5b zC(5^d2%)!6&pYdz_9=x}??_BQ#d@bkTT+<{2c!c_+fai1YybYe;gQo*L zhrlxchB#PM4*s40j9=sTfM*+c-sWpLhn;y`et&>)drSg?4^e_}QE|m|3L*hm?Gm>N zP2tJh&x4OxV05KfB!hUgG?Q*co=m13%4FtnPq1gyP!S3T^6Gi!r2-|)BU(S*82NDE|`1wso8Fw$Ad0hR6lr_%WU+;b1oJY3I%Tub`Min z!Cvkh77=)|hzi(`2k@a6!yt;Wn{{Cf3#f#-eMlk-Js%B-U^lBq6FPA;EO;D!cnM#{ z&Y>Se*y&m&)bl`$S?{ufoD9`0M78X2!A4p2{alA$q(inwpMK}z- zDx}oO7{+6mdyAhqDbWWcHjXUj9Y41WdU0G+Z6EM4EI5ri6}^On@x5)`_=L0SuQ{zw z$}8MQ*s>T`(LIRk?;XeXE{>?b=1p}{mhc8l1sl=V<+&7_Xm-RVFoF|!kE@uGXb%gx zfjpQs`h`4~AcqM@Y#f(x5Vvs#wUe8(@Fmghs5QZJ`vv|t0< z%}0}pDaK_)VcQ0>@?3^C^>SK63V-0)f@8*=t;2V9r)|+0T*NH&R?#S*uGkLa7zgT3 z+oIR;6knkC3(w_~*@K@TfklaZhk6y=3)=#;s+ZCx+OQ1QS|oN=V!z^!oB_U1%20yVj(}GwL+GL}&pjHE=ZGxuB^<7+W82)F@oqNvAVz@tem_=46 zFJU-`gdE4&R3mG~CwK`9sP%2dGnm5-h^s>_tP#^VfUnSlT3!PZ*ok9!xZJ=Y4C6(3 zT|Y(p;v);0%rz#2!GuChkx{)D$wP#!ev# zX%4=DZk>n}#O~BYj-az3Y6MYKV+Ro~ao%6O1ik{N=&xZA{o1&IgP&39CGol@{`=7F zrf^<2x)?VqocB*udSP@xwR!yHCGctV%8?1mTz!hTNn}yU#W4)k#_<-s>=I^#$kC$6 zVMW}}aS4@NE22;>kMH!~!TQKUNTUxK%W*?^8!aBb|0YlmX;Vm}oDqmna^$e9OA$A3 zaNa|>52eg^%3WR&xl0i@r-`ex zAMJPnJ0PtI2{b_3bxdMIA6S-^A`5X-hH($zH8;Qmio0wxa^O?k5@J{ZgRRJN+y(gE zPCV{5*rvG4ZpE|UQ`|BpumF!3(ih-vJCw3~>6Pvhm0D{%R7LC95klZXd=0W#kn6>~}ndN$56?S72*< zisQQG@B=_(CPdx~Kf8mo_yxM<@gCWN_EK3g=7R}(Y7*}?oAo4wYXz7af zBhFz}ddTog^)EXi3}6W(@UkQp@da$|AvgAOR`0s<_vzpG9$watzpx0K+m5676w6@d rfde(F4we@P0tbS?fgo@o2psG`tMVYqN8?Fb00000NkvXXu0mjf=!x$^ diff --git a/css/iCheck/line/orange.css b/css/iCheck/line/orange.css deleted file mode 100644 index 210f33401..000000000 --- a/css/iCheck/line/orange.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, orange ------------------------------------ */ -.icheckbox_line-orange, -.iradio_line-orange { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #f70; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-orange .icheck_line-icon, - .iradio_line-orange .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-orange.hover, - .icheckbox_line-orange.checked.hover, - .iradio_line-orange.hover { - background: #FF9233; - } - .icheckbox_line-orange.checked, - .iradio_line-orange.checked { - background: #f70; - } - .icheckbox_line-orange.checked .icheck_line-icon, - .iradio_line-orange.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-orange.disabled, - .iradio_line-orange.disabled { - background: #FFD6B3; - cursor: default; - } - .icheckbox_line-orange.disabled .icheck_line-icon, - .iradio_line-orange.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-orange.checked.disabled, - .iradio_line-orange.checked.disabled { - background: #FFD6B3; - } - .icheckbox_line-orange.checked.disabled .icheck_line-icon, - .iradio_line-orange.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-orange .icheck_line-icon, - .iradio_line-orange .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/css/iCheck/line/pink.css b/css/iCheck/line/pink.css deleted file mode 100644 index 44c9cea19..000000000 --- a/css/iCheck/line/pink.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, pink ------------------------------------ */ -.icheckbox_line-pink, -.iradio_line-pink { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #a77a94; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-pink .icheck_line-icon, - .iradio_line-pink .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-pink.hover, - .icheckbox_line-pink.checked.hover, - .iradio_line-pink.hover { - background: #B995A9; - } - .icheckbox_line-pink.checked, - .iradio_line-pink.checked { - background: #a77a94; - } - .icheckbox_line-pink.checked .icheck_line-icon, - .iradio_line-pink.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-pink.disabled, - .iradio_line-pink.disabled { - background: #E0D0DA; - cursor: default; - } - .icheckbox_line-pink.disabled .icheck_line-icon, - .iradio_line-pink.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-pink.checked.disabled, - .iradio_line-pink.checked.disabled { - background: #E0D0DA; - } - .icheckbox_line-pink.checked.disabled .icheck_line-icon, - .iradio_line-pink.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-pink .icheck_line-icon, - .iradio_line-pink .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/css/iCheck/line/purple.css b/css/iCheck/line/purple.css deleted file mode 100644 index be4c4e2bb..000000000 --- a/css/iCheck/line/purple.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, purple ------------------------------------ */ -.icheckbox_line-purple, -.iradio_line-purple { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #6a5a8c; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-purple .icheck_line-icon, - .iradio_line-purple .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-purple.hover, - .icheckbox_line-purple.checked.hover, - .iradio_line-purple.hover { - background: #8677A7; - } - .icheckbox_line-purple.checked, - .iradio_line-purple.checked { - background: #6a5a8c; - } - .icheckbox_line-purple.checked .icheck_line-icon, - .iradio_line-purple.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-purple.disabled, - .iradio_line-purple.disabled { - background: #D2CCDE; - cursor: default; - } - .icheckbox_line-purple.disabled .icheck_line-icon, - .iradio_line-purple.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-purple.checked.disabled, - .iradio_line-purple.checked.disabled { - background: #D2CCDE; - } - .icheckbox_line-purple.checked.disabled .icheck_line-icon, - .iradio_line-purple.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-purple .icheck_line-icon, - .iradio_line-purple .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/css/iCheck/line/red.css b/css/iCheck/line/red.css deleted file mode 100644 index ebcd8befd..000000000 --- a/css/iCheck/line/red.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, red ------------------------------------ */ -.icheckbox_line-red, -.iradio_line-red { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #e56c69; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-red .icheck_line-icon, - .iradio_line-red .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-red.hover, - .icheckbox_line-red.checked.hover, - .iradio_line-red.hover { - background: #E98582; - } - .icheckbox_line-red.checked, - .iradio_line-red.checked { - background: #e56c69; - } - .icheckbox_line-red.checked .icheck_line-icon, - .iradio_line-red.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-red.disabled, - .iradio_line-red.disabled { - background: #F7D3D2; - cursor: default; - } - .icheckbox_line-red.disabled .icheck_line-icon, - .iradio_line-red.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-red.checked.disabled, - .iradio_line-red.checked.disabled { - background: #F7D3D2; - } - .icheckbox_line-red.checked.disabled .icheck_line-icon, - .iradio_line-red.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-red .icheck_line-icon, - .iradio_line-red .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/css/iCheck/line/yellow.css b/css/iCheck/line/yellow.css deleted file mode 100644 index 8e088714e..000000000 --- a/css/iCheck/line/yellow.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, yellow ------------------------------------ */ -.icheckbox_line-yellow, -.iradio_line-yellow { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #FFC414; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-yellow .icheck_line-icon, - .iradio_line-yellow .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-yellow.hover, - .icheckbox_line-yellow.checked.hover, - .iradio_line-yellow.hover { - background: #FFD34F; - } - .icheckbox_line-yellow.checked, - .iradio_line-yellow.checked { - background: #FFC414; - } - .icheckbox_line-yellow.checked .icheck_line-icon, - .iradio_line-yellow.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-yellow.disabled, - .iradio_line-yellow.disabled { - background: #FFE495; - cursor: default; - } - .icheckbox_line-yellow.disabled .icheck_line-icon, - .iradio_line-yellow.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-yellow.checked.disabled, - .iradio_line-yellow.checked.disabled { - background: #FFE495; - } - .icheckbox_line-yellow.checked.disabled .icheck_line-icon, - .iradio_line-yellow.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-yellow .icheck_line-icon, - .iradio_line-yellow .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/css/iCheck/minimal/_all.css b/css/iCheck/minimal/_all.css deleted file mode 100644 index b2165ecc3..000000000 --- a/css/iCheck/minimal/_all.css +++ /dev/null @@ -1,557 +0,0 @@ -/* red */ -.icheckbox_minimal-red, -.iradio_minimal-red { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(red.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-red { - background-position: 0 0; -} - .icheckbox_minimal-red.hover { - background-position: -20px 0; - } - .icheckbox_minimal-red.checked { - background-position: -40px 0; - } - .icheckbox_minimal-red.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-red.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-red { - background-position: -100px 0; -} - .iradio_minimal-red.hover { - background-position: -120px 0; - } - .iradio_minimal-red.checked { - background-position: -140px 0; - } - .iradio_minimal-red.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-red.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-red, - .iradio_minimal-red { - background-image: url(red@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* green */ -.icheckbox_minimal-green, -.iradio_minimal-green { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(green.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-green { - background-position: 0 0; -} - .icheckbox_minimal-green.hover { - background-position: -20px 0; - } - .icheckbox_minimal-green.checked { - background-position: -40px 0; - } - .icheckbox_minimal-green.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-green.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-green { - background-position: -100px 0; -} - .iradio_minimal-green.hover { - background-position: -120px 0; - } - .iradio_minimal-green.checked { - background-position: -140px 0; - } - .iradio_minimal-green.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-green.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-green, - .iradio_minimal-green { - background-image: url(green@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* blue */ -.icheckbox_minimal-blue, -.iradio_minimal-blue { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(blue.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-blue { - background-position: 0 0; -} - .icheckbox_minimal-blue.hover { - background-position: -20px 0; - } - .icheckbox_minimal-blue.checked { - background-position: -40px 0; - } - .icheckbox_minimal-blue.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-blue.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-blue { - background-position: -100px 0; -} - .iradio_minimal-blue.hover { - background-position: -120px 0; - } - .iradio_minimal-blue.checked { - background-position: -140px 0; - } - .iradio_minimal-blue.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-blue.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-blue, - .iradio_minimal-blue { - background-image: url(blue@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* aero */ -.icheckbox_minimal-aero, -.iradio_minimal-aero { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(aero.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-aero { - background-position: 0 0; -} - .icheckbox_minimal-aero.hover { - background-position: -20px 0; - } - .icheckbox_minimal-aero.checked { - background-position: -40px 0; - } - .icheckbox_minimal-aero.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-aero.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-aero { - background-position: -100px 0; -} - .iradio_minimal-aero.hover { - background-position: -120px 0; - } - .iradio_minimal-aero.checked { - background-position: -140px 0; - } - .iradio_minimal-aero.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-aero.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-aero, - .iradio_minimal-aero { - background-image: url(aero@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* grey */ -.icheckbox_minimal-grey, -.iradio_minimal-grey { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(grey.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-grey { - background-position: 0 0; -} - .icheckbox_minimal-grey.hover { - background-position: -20px 0; - } - .icheckbox_minimal-grey.checked { - background-position: -40px 0; - } - .icheckbox_minimal-grey.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-grey.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-grey { - background-position: -100px 0; -} - .iradio_minimal-grey.hover { - background-position: -120px 0; - } - .iradio_minimal-grey.checked { - background-position: -140px 0; - } - .iradio_minimal-grey.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-grey.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-grey, - .iradio_minimal-grey { - background-image: url(grey@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* orange */ -.icheckbox_minimal-orange, -.iradio_minimal-orange { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(orange.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-orange { - background-position: 0 0; -} - .icheckbox_minimal-orange.hover { - background-position: -20px 0; - } - .icheckbox_minimal-orange.checked { - background-position: -40px 0; - } - .icheckbox_minimal-orange.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-orange.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-orange { - background-position: -100px 0; -} - .iradio_minimal-orange.hover { - background-position: -120px 0; - } - .iradio_minimal-orange.checked { - background-position: -140px 0; - } - .iradio_minimal-orange.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-orange.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-orange, - .iradio_minimal-orange { - background-image: url(orange@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* yellow */ -.icheckbox_minimal-yellow, -.iradio_minimal-yellow { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(yellow.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-yellow { - background-position: 0 0; -} - .icheckbox_minimal-yellow.hover { - background-position: -20px 0; - } - .icheckbox_minimal-yellow.checked { - background-position: -40px 0; - } - .icheckbox_minimal-yellow.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-yellow.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-yellow { - background-position: -100px 0; -} - .iradio_minimal-yellow.hover { - background-position: -120px 0; - } - .iradio_minimal-yellow.checked { - background-position: -140px 0; - } - .iradio_minimal-yellow.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-yellow.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-yellow, - .iradio_minimal-yellow { - background-image: url(yellow@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* pink */ -.icheckbox_minimal-pink, -.iradio_minimal-pink { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(pink.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-pink { - background-position: 0 0; -} - .icheckbox_minimal-pink.hover { - background-position: -20px 0; - } - .icheckbox_minimal-pink.checked { - background-position: -40px 0; - } - .icheckbox_minimal-pink.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-pink.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-pink { - background-position: -100px 0; -} - .iradio_minimal-pink.hover { - background-position: -120px 0; - } - .iradio_minimal-pink.checked { - background-position: -140px 0; - } - .iradio_minimal-pink.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-pink.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-pink, - .iradio_minimal-pink { - background-image: url(pink@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* purple */ -.icheckbox_minimal-purple, -.iradio_minimal-purple { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(purple.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-purple { - background-position: 0 0; -} - .icheckbox_minimal-purple.hover { - background-position: -20px 0; - } - .icheckbox_minimal-purple.checked { - background-position: -40px 0; - } - .icheckbox_minimal-purple.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-purple.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-purple { - background-position: -100px 0; -} - .iradio_minimal-purple.hover { - background-position: -120px 0; - } - .iradio_minimal-purple.checked { - background-position: -140px 0; - } - .iradio_minimal-purple.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-purple.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-purple, - .iradio_minimal-purple { - background-image: url(purple@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/css/iCheck/minimal/aero.css b/css/iCheck/minimal/aero.css deleted file mode 100644 index c97acc8c1..000000000 --- a/css/iCheck/minimal/aero.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, aero ------------------------------------ */ -.icheckbox_minimal-aero, -.iradio_minimal-aero { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(aero.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-aero { - background-position: 0 0; -} - .icheckbox_minimal-aero.hover { - background-position: -20px 0; - } - .icheckbox_minimal-aero.checked { - background-position: -40px 0; - } - .icheckbox_minimal-aero.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-aero.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-aero { - background-position: -100px 0; -} - .iradio_minimal-aero.hover { - background-position: -120px 0; - } - .iradio_minimal-aero.checked { - background-position: -140px 0; - } - .iradio_minimal-aero.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-aero.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-aero, - .iradio_minimal-aero { - background-image: url(aero@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/css/iCheck/minimal/aero.png b/css/iCheck/minimal/aero.png deleted file mode 100644 index dccf7740c9cb727f9c1eeadd6b584eec8634f23e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1151 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 diff --git a/css/iCheck/minimal/blue.css b/css/iCheck/minimal/blue.css deleted file mode 100644 index 42477cd66..000000000 --- a/css/iCheck/minimal/blue.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, blue ------------------------------------ */ -.icheckbox_minimal-blue, -.iradio_minimal-blue { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(blue.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-blue { - background-position: 0 0; -} - .icheckbox_minimal-blue.hover { - background-position: -20px 0; - } - .icheckbox_minimal-blue.checked { - background-position: -40px 0; - } - .icheckbox_minimal-blue.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-blue.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-blue { - background-position: -100px 0; -} - .iradio_minimal-blue.hover { - background-position: -120px 0; - } - .iradio_minimal-blue.checked { - background-position: -140px 0; - } - .iradio_minimal-blue.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-blue.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-blue, - .iradio_minimal-blue { - background-image: url(blue@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/css/iCheck/minimal/blue.png b/css/iCheck/minimal/blue.png deleted file mode 100644 index af04cee596d5d2f884b03f9d8f0dd25c1cd5a0fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1132 zcmV-y1e5!TP)B!6a+8mE@K*gO6na)qA_z$Z@70Qkpi;GhRz%Q~sJ$s3G!-Hx(1WP>egA-3 z6@q#Z@tV*=4k`+Q2E~hous&Iaw>0czb~=l@Yj@#cx9rTr%e(n?lI+G?TwL@AV%T=p z-g!zOK1aN_liOqSjf{*0^|jmWSbW7|F@B$BTUuHwu{#JQ*s28Y;RXB$&qJ<9zXJOD zzF$8mJ~QU}=)IMXp7!<8D@UKXf1i);2=*J5!vmMi7jyhR311jo%qSPoH@z4w8y>q) zQ}-ylDr|uo+=7-848uOCz!x|TO+x{ZeE(c}6!_?^_+08^T;L-pO+z0d`4|`Y=)1}1 z)ISMGPWm7md(`T173Nq0J3WF%7sgdoI9|ax)HTXgKENmcV8ll_#K-YC=j(CR$MHDh z>Y8w@^07*U`WPoZj>j42>g(ITLHH{-F0P;E`efD6uN?owVS-VWaD>x=J8($N84Xd2 z52~Q`5r__mk3NpN)Ym-+;!|^bdm%o8Q3b89dk)0MTuYz1f9VcL9uAM)Jj@V`XBOH8 zxTfafkWG9L*+)pkM?XE+`WP#|z_HQ`@ez#3KE{d~>&t3DJdGgfaLCHwa$fNU_BoU>2CozFU4#m> z6&1Lg)%vo0C*4cw${`^ztQ;op!%glL%&y^^tPL;;7kYg#3mwb*N#ZlrNB@`Eom1%U z@o0VYY}WRhEapV^;SQ}2ho*noev9Q9!jX7L?86~Eg`Y45w%aK+cfr+{`?CKT#50B? z`H;xo;*PV=?igHQ6)9Ux-3wRYc+UzeJ}6tP9^#|NzH5Dq6<^?3>67?a5hD8-D?S`L zpL72tAX#5Y(i{?7)Kjkq-~l0-f_~R&5YE6uHK!4x6dz0hK5Z}tL41Ux;Zk4s9Egv( zjgUTxkC04(*4I4;;$yCZPv5^xeFjm#3t3kXlDc|gb{@`hJg07AwV(k1!Wf){AF$i- zxO*MM2Z4_;XnlmE8E1VeSh^LrPB6sBvC+qzSbhB-clRNd?N9r-FmXQ;l7LUYk`Rnt zYWd#}(=Y_f@Bv=Jd02?p^Cm>{5e`4j`WS2U5t1gojO1f%RG(A-y1ytKi0K!FiL4wn ye!c&0#OZnvg!SA$`4&s}i$c%$bwSL@$+zDgYAnly;V01m0000l000F^NklL&ACCg+p$sSkc<}5G;Yt~`Y{GC4NLC%&Z)=9RbnqakN!KPFM zIh>vSoFOwiXf_7R9>e_aMus5U!BVH`#&~)kd=EMqd9it2*R$vIg%|gcTyMT}T-Y5}+K2hO1f$1n(|;pbbx*zZVuegFFXh_cUqKcelk|9{pPX`f9J8j-1)je2ZH z4HAHTeM#8Zq2XjP$$08hpZeUbM=L5VU=&Aj0vQbAh6T(+ zIZ{}QjaY5oM+1(-VZ!yPPkl*fMBEjj1zRm(0L?gv(MbY^Odr}%g3WjjmFPx0-p1XK zed<%6E|378KXA%hK!3VQ3lF0VU08{`*o{vy2A3Jd0epi-G+`@NU?YZO?o*%oX2ESl zbb0)Ql^8$`_F!xZ0b|&M8Vq2iolzFDPkrjs1v2wwjsMa9it&F`;0$V!!E{XqwK#(c zJF7UhKJ}?j7l??v7OcW$tiyFo_gu%zxNK*&#MGxg^|@alqBjriZ#~kui+T*W&ut3)k8oAO%~9K*|GJhPkl*f;+93&(f&4JDXw5Ie9c~@ zQHgqV%+x-S~dHFz?Q`U*x+`m{e?AR=yFK>}U44c~JcUDmK6Px=<34=t!h ziK#{l`moS{pZ2E<#J{Y`%{LG2uhyO?5NJ5tTJoT;5J!;0WRpS{9`@U({pkV`akI>x zrx9v?v**)!(6 zX!X~p{pk%v#7(I^Zz9at*(k|_zAA@+6@L4)zlh#I^d_P=5A9E;WE>tx`_mhUh?`sX zoQp7HXJa%E`c63noblVI{pH>TqOXe*Cd_Dmf7){~!i=4bt9j7Z;SkW_w@>@i1tQ|+ ztUZ?_%-GrZJrDZYaQZ&K3~KY+r~T;y@h4%X{O^O({(9`W4q?X5#>qVByN8X)V6r)l zI^6Tyr~T;y5pi=2S=3<;e9s)zS;MhB>AQwiXhc75n|?In1zhvrr~Uc;3QKbTYa#7# z06(J^Td*HK=S`Ga!$2POjiJRv(x?6D0ugcdIcl*BUwiy~^dY=!4f|$tUw^tv`-{9! zpYev3F#6gm_x9I`^H_|X@HIQJ*v{?@-KReF=>idPH-QEV*o~BjfE0FHzz$4=?o*%o zbb*AIFuC>Sq5U1lS9k=6QHBRKWjJhSeTnXv`qZaBT_7UvwxbVE;Rh_hbk71Dw=??C z5V}u&>WlvZ(VK|GzrQM$I0pZe6NHxLnbLwFJGD8h$0hcxCm1Qa8Uv-k)_XvZ21 z#onhr^(CPZarZa2;XAaV0{ig^j^IaRFo?e_;8Bz#g|&DMB^Gc24d{-cPkrihy+E>v zZq%o~$aP~G>d}B|Y&Q2Zz1W9Cn24oMed^O2h=?B(=rHAY6>Ct5CotCnZsID=qX*w( zFjxE3r@kZ-h<4Pcz8o`%FU*YYQ=j@0*=)8zBO)U4{z+RA5zz%AA|jf9004#_{W0Rj Q$N&HU07*qoM6N<$f*_*2MgRZ+ diff --git a/css/iCheck/minimal/green.css b/css/iCheck/minimal/green.css deleted file mode 100644 index bd1e3d0fe..000000000 --- a/css/iCheck/minimal/green.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, green ------------------------------------ */ -.icheckbox_minimal-green, -.iradio_minimal-green { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(green.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-green { - background-position: 0 0; -} - .icheckbox_minimal-green.hover { - background-position: -20px 0; - } - .icheckbox_minimal-green.checked { - background-position: -40px 0; - } - .icheckbox_minimal-green.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-green.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-green { - background-position: -100px 0; -} - .iradio_minimal-green.hover { - background-position: -120px 0; - } - .iradio_minimal-green.checked { - background-position: -140px 0; - } - .iradio_minimal-green.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-green.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-green, - .iradio_minimal-green { - background-image: url(green@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/css/iCheck/minimal/green.png b/css/iCheck/minimal/green.png deleted file mode 100644 index 9171ebc7e456848eee4440b1e9975282f62fe03d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1143 zcmV--1c>{IP)VcOZuC z(Z^km5{SLDNt`DBrcmj_0Gd;{rv_2Fx)5yM2O257y17aJ+{y)B}`je1K2>!HAD=h>zE0-mk}1AFs=- zs|SQ*jgKke>tmhxcwJ_ltxwy(0{oL3C)Z7Jc``LLlj8*(BN$caYE)f#07um^qdrRU zK^3~1iQEP8(Z^An`g-qy_|&oey$~P4s6wEx_a2CkV=a7|{-rh`c{m()^Kgq`EJe^R z!cBE74%x&9p?!ozeDu??t&g?h^Bk+a5Ffz^?PIO@aA*$AFOElm&pm@rY{`k5J))8l;D*`2`{0PfbR}W z!&WG&*SE4-U)C?NTvIr>hIWz+i76bKNizg(ivrp(lz{KJkKlB6>&yOU5I5Oym_rgR z9KtWlo1=sFzTB7bfC#Az$NDFS@C}A73fKW(6Ywqg2x?iaFRKC3Ool|mA(O%8eZ?o3 zuqb03J|y6~3Nz4A%)ozHtuM=W(w&q}4heyFa+rAn_qbOuyN++NHo+;l-0y=~=tjJs zBtBDp>f5S|ilBQufj)XR8}*wkjtT9YK3QgRuzHLwxkuwXKh};`1D< zeG(rNA+(RR;=`fw+4WBXlJ!ZF=8!~1J@tABo)VG@=+09C&cicxOv6VhKBz!J6O00g zk8m_>>g&A+;^WwcPoKm`NGed!1fu}r<5&xyrhi%b45EG)vY{X(b@jyTJY3-QoVtnC zhC$c~<8TIk!al>}?sX6!cs{}q=p!7>IO|iv3Yxfef+0R$8+{xTt55g1y9=>wf7{22 ziTin|1bo4hgkbDdIRn-I!JINUhvW3A37lZ0M|^079o&#HgD zUlb0+^oznoCI^k*=)W7WIv)gKBeze!#R~dGq2mVrqsYn0x8ILOB``|uWn2IN002ov JPDHLkV1hWAFZBQb diff --git a/css/iCheck/minimal/green@2x.png b/css/iCheck/minimal/green@2x.png deleted file mode 100644 index 7f18f96a9c30c6b2d8b726019939ec908a9067cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 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 diff --git a/css/iCheck/minimal/minimal@2x.png b/css/iCheck/minimal/minimal@2x.png deleted file mode 100644 index d62291daaa78d173897d6a713e5cf26321e70cf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1410 zcmV-|1%3L7P)l000F^NklC7#7>40~P-}&PHl_&)QBtv`NW=pMOKCMhnxI9OR;=3w7Sf7r)Q#Ac(ggL`Y62KF zCejG*q!`kQ3yVz?)M5}?e%gp3A?*UCEtWRT=e>9rZXlhUGV`6DXOb)5ip-t2G?NJv zq6-%;#CgeDQCV48UKB-nwi4GD$8p}pix-pGXY;#${d!{iii?XA-^a3_vGXd$R@7iM zR$z$*jNwn5M-NV5*fo%!FCRjqD3N{t`~65{pZ$I$w$J|lSz|)`Y~@2sBr^+9k6oxj zben(&&3e3w7`BEP zq_7#=u*tlGCUiRl1npCw`tqSA;;s;B?680#?89M<-zH$h^x*)CupMus0$n(W*D)Eg zPkrjs0TMuYdAYX${{2b=52FN~*nmmw#YdQO3>e2}_zJtxf*n|gZ5T~*pZe6dz&Tw+ zhsRIYfFV?&6;l}mOraH37{UhIqa}%Y#qf* zn6y1>lhCI=_2~c+akl^;TR;nb^AOOF77J*@!jOIHQ=eX8Wv4iJf#&xzR^u}Edu-p2 zMpU349rLx1*Nd6FM)Wj4{d{!;5pnmLefMG7W56_8tzlQ_KJ}?j2Z%qh(QB*ho?j_8 zVH}6ydwp$tSK*Ny>MKAqdNF2t(TsvHeVU&R5D_=eAwnl60t8H;(;BwsNZ)ewA&reF zG8>UbAC~*?)BJRR_!pb(ym@GT)%HD!K#RStB?tNna15zC1fDPd5+|H)Hl) z8mz$f#&{0&{pt{K)^DHYmwg9_UKd3s%+mb+vhPZSS++N>{TRmI7VrQ{k-}!YfFcVRL=(D_(5F82xgH=f z61UW+zJ%+-8q}i+8?oKYX7!>S-(V&wed<%6ZXhCl%%H=R;(64d0uN)U1>C?D44?ny;)Th4uq`w4GpZc=QFg`W&x=(%Ti{dzTXcG|;@%;)*L_~Ceh=_>Rf8mTFRg-4= Q7ytkO07*qoM6N<$f-B6VcmMzZ diff --git a/css/iCheck/minimal/orange.css b/css/iCheck/minimal/orange.css deleted file mode 100644 index 842e400a9..000000000 --- a/css/iCheck/minimal/orange.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, orange ------------------------------------ */ -.icheckbox_minimal-orange, -.iradio_minimal-orange { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(orange.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-orange { - background-position: 0 0; -} - .icheckbox_minimal-orange.hover { - background-position: -20px 0; - } - .icheckbox_minimal-orange.checked { - background-position: -40px 0; - } - .icheckbox_minimal-orange.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-orange.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-orange { - background-position: -100px 0; -} - .iradio_minimal-orange.hover { - background-position: -120px 0; - } - .iradio_minimal-orange.checked { - background-position: -140px 0; - } - .iradio_minimal-orange.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-orange.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-orange, - .iradio_minimal-orange { - background-image: url(orange@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/css/iCheck/minimal/orange.png b/css/iCheck/minimal/orange.png deleted file mode 100644 index f2a314978df05edbfe0da6ab1e51f81070079b44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1139 zcmV-(1dRKMP)ZO!m-Q8E|KVCp7wFxVqT~(wSQBvH%BDo1XpKv4g1dV0L~DM4h&LM1Gouasx`9- zO6`LV*nP1afbm6QHl)7cHPAk_cDxtbM=&~I^$o9q_OaH}=kDKR2c!yz;IIPM2*wi+ z?JE4L*5c4Z`yjh7mc|ze5n3N}wQuAwz0f{_k=e&w?Ze^l`S-8rfK=hIGY5yE1HR*y zT00l!t9)e*hztlvkvoI?y5Tf*^*x6l1L(r(aUb~mVyS)3`XW(-8?X)U)Ol@e7qR;E zJ%R_U$?T)|HMjxW@J^lAZ2c?q4kEq7QG7^DINUVhQ9ua~p;>_MH@E~JL0z3+D{Fma zzXy@daKus+9}@F#kLMoKuoY0i7EBl5JDVW*y1ez3{~kmZ8xD6!yuxAlFYw`LE!UW_nRy@2w%aE<33mdKVKxY&skqAcQ{;D z*q-rNee`U}_nR!%WcJ}stPh8!f91Xh5sq*a9+H4}wI0L2&<5Y}ty;Sp>Z^R^zXuVn za1UiC~2igbkeUY&HV!57YeJWVC9k)j?w2yPAk2Sga(q4C$kjwbcK0cVdUkNF| zXWvN(#tF6kpMpy;4Lk5BJclc=nz85Wkj)oMnP+{>P4StXgkEOyF*mC(sDHy>6duUw z7lj{i=P=Ot{r6wcLuT15Z=002ovPDHLk FV1hHXFjD{k diff --git a/css/iCheck/minimal/orange@2x.png b/css/iCheck/minimal/orange@2x.png deleted file mode 100644 index 68c835915ac81a16716bd7b0c5d83c81a8d5840e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1407 zcmV-_1%UdAP)l000F>Nkl!D`KdY5xdv zq@CrAF|&haV_-GI{Ilssh9KL4rPJnQJbe$YgHA@?Y~J_%?)_cx;W?7~%QeT%0}qW+c#&^?fivhtI|kr1{Cs&ZJCZ2-{`310WuN_iMB8V7|Ew|6KAS8wA`>$mwb+76B;y3! zZ8Koin)TcgOAX86j{EzlG1K(mHPN51tn5^kR6;5HHoi!u2 zKJ}?j7l??vCal1Dti@$a_FTp@IB#b)#nh)h^|@alqBjriZyo9|f?5pXPR$Tr#E6}_ zE`~n!sZSS(h`VX{&;lCqtA~IdG+ID2rpMN&KJ{gxiCc=Wqy4>vMYw=H@HKl-hYHl9 zb*lF9_2NXnM)b5l{e1NXBI52fd+x$5_?lbTZ4FyO_o+{Px+n6-(Pj3cQ0`V_3`T6Fd{Z-lX7y=DvTT21-72z;)7;kcD!`*)Sv_D-SB5oGj^CUve zZ}xn&0Qxo~hyR<$u_^5Sw7)F;j=ly;Cit~b0)M0ZJz&oZ2sP*JIlln z?N4tYB5r2c^D4rOosE(L=v(Fxu+(p#_7~9`h~7l>=Ar$`gxrG1(f;%XBI4$nJ!d1# z*x48^fWBWG0#5nu)Bf`B0@2q+i3u~>-=FqefG}fc<6;5ywK@c}`t8&Hbb*MtIc?7+ z2s3szelLK&7M#4zFN0eA_Gy2*K>SI}g#Ua{+Fz$V*CNc=**IPReK%2q9*j39QH`5^ z`?Nn@AR=zsk)j$i;d^GH+8Wvmr0)_|U>i>0x;cSucoLWV_i2BAzrvFI|5`}<>&H*1 z!ba?e&v_ZMtf9Yv`bN=YBI(oqbb*Mt`v_Hd6JL1zeDp5tu!g-;xsQL6UHgl?PoMFI zl^A_(m4Ev?h_hIL?eI0*vB1tg7`jh=>eB@x;%*G}7SMp4hkzU!EMP0fLiedpeY!xx zOH6*fd1!w}@j33nA(Y}yO(_o9S)ZXJratwlPZx-YyDjL(!}uO^G1)U0N9~Mm)Q9d< zpZemzK=dXe@$c^jUcfm#hU3U#vL=U4EWtTD>qe}7>Qi49nn`3|lgQLHgr{)?PoN8p zcn_msoE6~>yn|x=jA{(U+^0VE=?z50-5{RAJ{03!oIxFCIt0u>9Zq8>im?x?F&KNF z`qY<&M#SAe*o<$`jD^^b_i-3Mpa%o^%L4908FE;I=TTw-=TMK182Z$wKGzE*MRcP+ z^+m1&i&2Yuti%R$JJW@|_!?ue^r=sMdIJ&hV+^gP49{UTD)1m?TfkLZ#94IWI}GG& zpZe67MS^HYed^0I1NhiX=|1(TFGhaV5fRY^A|fK1e*s#49%*Q=;9LLz N002ovPDHLkV1lNixX}Or diff --git a/css/iCheck/minimal/pink.css b/css/iCheck/minimal/pink.css deleted file mode 100644 index 10ace2188..000000000 --- a/css/iCheck/minimal/pink.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, pink ------------------------------------ */ -.icheckbox_minimal-pink, -.iradio_minimal-pink { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(pink.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-pink { - background-position: 0 0; -} - .icheckbox_minimal-pink.hover { - background-position: -20px 0; - } - .icheckbox_minimal-pink.checked { - background-position: -40px 0; - } - .icheckbox_minimal-pink.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-pink.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-pink { - background-position: -100px 0; -} - .iradio_minimal-pink.hover { - background-position: -120px 0; - } - .iradio_minimal-pink.checked { - background-position: -140px 0; - } - .iradio_minimal-pink.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-pink.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-pink, - .iradio_minimal-pink { - background-image: url(pink@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/css/iCheck/minimal/pink.png b/css/iCheck/minimal/pink.png deleted file mode 100644 index 660553c07409fce4efbc979a4985aa2eb6cf9de7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmV-^1cCdBP)CninA;vEhrPvJgn`_>Eei{YLg;J!Kt%9+BJ3tC$lhc%N7=(>P{x)44}O8( zLo_N3>cxLxh79DOqOhO?ix&q%`%F{3lF&6(oodqEIt35ip{pKV-tHeYkZx~%eLWmY zVO0O=dP*QZN4)OEYHGe}wHnpe>-AFcRVtPAeVWnjcBeTUg=yHU1h3&4Jb0wOR@YH>p zx~Dia;74e}zp$YM`(PI8@E=@&j-dcMUu`Aw(OdDk)W^KYM^HM3K3Msf7y0PB$>-d^ zaTtvpLO6a?yTfI;$-}j|P0${|yt)d<3z&nJM!CfYk&h5;@evO3aX!cOR$BFOKF7S4 zCLCLQJp8df=82ETgn2Gcb`AZ`@eqy^jE00Go=vz0$JCms7^V22 z0eWBHZ-V&fCorYhxx!-KeHoVF1AJ8HWnKS@yn}?MaO5#05)L!d@W`QrRhZ7ecNG?30xIf!sp$2U zpok+hh9mI3JcLC4w*SA!By2boumO`9_)f$K&K14B5)^fW*@wd%68mrnpTT7}EW7(g zzJdot$Xz(BcMd)8V4p()Kf&7!e79o+&7#&<)PQ&(BS+zohu`J8;uXv~lyLxFX5jk^ z>d;fv;ZjlSEAkHFnZl9BkVrVp+=Vl|p0Q^K1?+*daA&&@lKW~a;v zV2#$tZkxD1)>!-Ke;*cMLa_*aQ~$=Hh{J)_M(uTVd+)OR7V$dzvlLef%i%-(`O zIKRnp6*iy@Kf?hy5C6ljhS%L&AU=qEghB5M{7#znsbJ}L+!nzQALm9NYf|+Md)+;R zRK{-mxG`zJ5|V*WzmpJ*U)1)02o_)x`tSyx!=JEb+4BzA`2s&ovp(h;eT1Y#FRgsc zwe>mmZ}3IoSV~_M?&i)R(D?8DyAikh5%}MA{|Jx>;=U;K!cZ5)5hF(93y;7Qi|9&h QIRF3v07*qoM6N<$f*O)Mf&c&j diff --git a/css/iCheck/minimal/pink@2x.png b/css/iCheck/minimal/pink@2x.png deleted file mode 100644 index 7d7b385146c633079799de2d61c49a8562e15d61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1409 zcmV-{1%CR8P)l000F@Nkl-QtdKKuQMw$J|lS!1MqHW_F{re`i{u@zNF z<7RWeS%sI7LqB$7Kc@1jPkrjkz{U;@Cx@Gi$3FF`&)r6}qrw8l(T&3x#0dVjfO}Df zEY@Q))|$7_gkCsIxIXo%F9VH;yF#>~!2*V{1N$(Jo6V>hKnF^&1#hAPJ=lX+a6M$7 z`qZZjB!KewhP(v~y;iP;hf#_yRN^|e<3miqWybL-zC;UJ(SViMjIo&e)Th2Va2pX_ z9zUWI!>GbeOiUwS0y|NKVN}`~r6K#&r#@XEvro?WAMLLQ-(o3_qZ)&lsTo8yj$^5v zRTNvF`qZZjM8sViR^u!-;38&vF5)SiwX@n{>QkTk+%FK(n}_zd5%su^T8!dO%^04y zv+A)ihCcPFPZx-YyE*vC0$TB_hk!w}T0lGI#@44k^<|)mTMl7I`+EV)a1OiRYj&X? z6{tn$Z0+Og#p!&F=xKlY`RWZs#NEsG+<{5>nn~=mhOMFd)TcgOApYcxzP8Hm{gq)Y z#<35+=PNtA3J)cyuK>;H#}(6$W)y_!)BbdUh`4zgX>{Q#e9u*MS;MA;^ew^w+OP&C zW)0dffJOfMv_D-S{^d-5zIkYW)%HA$K*QPAl7PMf97OgO0aodIJ%0GtZuv5oYXclq8^Ul|#TvzkS+YL~kH^6VaQ8_9xRa36G=w=?z50%@upj zN0_m*F`j_FUmOCC`|Z>I^6vuC*F|X)X0*RQ?YRVD#?Hq11oU+}1a$iC)BbdUh`2dn z&lLzWb~b)bKwk%r-R74;9e(??KV2aHq|LPdd{Ek7pFKAq%-GpDl7PM&*o?tj1RO&R zZusrf{&azexH*IzYETT{Q;ZsGIFyjS3s{X79K}_06fJlH7yS2We}2EhlKlT#Nc$Vc zPpC#6_QL19hQkRC5D|A@|k}p&O5* zAFX&F6JVSb;8nbhLi~&xjK$oiKK1DhM8w@Fp2Qv$;vJksJ&GLyicpUeco&7(gLN2< zy-$7W%RnRI?*C}SH)zLF?8OH-h#xSB5&UHV_n{0~tjDt`v4GQPLQf2R>QkTV1(HK_ zqdxUTt_RCeizckW7IQn(kKOnhQ?c}^Pknj=5%FURou&-WU>z#(Am&@ZWt_(;^x->< zQi4jm&>IzA|ev+e`zZsBDz3CL`3rsArl=T)dQYv P00000NkvXXu0mjf#dyTk diff --git a/css/iCheck/minimal/purple.css b/css/iCheck/minimal/purple.css deleted file mode 100644 index 1c5dcbc71..000000000 --- a/css/iCheck/minimal/purple.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, purple ------------------------------------ */ -.icheckbox_minimal-purple, -.iradio_minimal-purple { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(purple.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-purple { - background-position: 0 0; -} - .icheckbox_minimal-purple.hover { - background-position: -20px 0; - } - .icheckbox_minimal-purple.checked { - background-position: -40px 0; - } - .icheckbox_minimal-purple.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-purple.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-purple { - background-position: -100px 0; -} - .iradio_minimal-purple.hover { - background-position: -120px 0; - } - .iradio_minimal-purple.checked { - background-position: -140px 0; - } - .iradio_minimal-purple.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-purple.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-purple, - .iradio_minimal-purple { - background-image: url(purple@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/css/iCheck/minimal/purple.png b/css/iCheck/minimal/purple.png deleted file mode 100644 index 48dec794dd5be9f8209e4392edacd345a1a42c24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1132 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 diff --git a/css/iCheck/minimal/red@2x.png b/css/iCheck/minimal/red@2x.png deleted file mode 100644 index 2eb55a65c7ea2f94073905c81396627b4967352f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1410 zcmV-|1%3L7P)l000F^Nkl@_yje*q+)6GBc$Pi>Zuyoqo7;oQ$>!6d7H}Aaf``z=q;KOqy_m^vqn+F~= zb?)4`Tv1$;TC`|U(V1r#6xl@AxAdEA(fRY|Jsn6X8w4l-ghH(_f(Tf56Z2|Y7 z0vW8sCaf`Uq5;R?FyZ>tr@k~aBJN7ijI9=s#cmwL@B{&arU&~_ip_WfmFUENyo`~M zed<%6E|37mUft*|V8**0T6h@cXvZpyU>82XC|qV3pWq8Lq6u5E0-G=tbD#RuHw|th zqRZn)tU?ym*n`nL0!Fb1)yQI%olzdLPkrjs1v2&IjQ`R8X5w2c#%a``7n3!;sKIG0 zwzFo&)~7!8=>idP*NoM;fc3b7$(}2C0vGJ8=9v1_r#|-!MD*sN{cS)!Mo@=A+^HGD za~QERH^k7VKK1DW5pg#SA6h^Ye)SO0izW+b!SvYr)Th2QG;zxz>}Y?_V+k%|FMQ2j z)T0u0Xq&2ie7%^@*NC3>r=PFhKt$ZVWY66ggRdFG9&6Yhx=(%T(*@#B&gg5a!ros6 z)?gS1;d{Qcv#YTnL4C#8fo@zk-PnQRFn!veE)WqnPa=hO+<@=7fp%-yn2^4C=s`28 zP-?2sj2_JM->3cQ0`V_r3iHiF`>V0%aReI9ww46+72^mpm}oL+$6bE=v_D-SB5s!1 z^AtkOZ}wc8fWB?W;Q!`fYz@0V?Jo_#qpyKdd44UFg1^!J?ziVfgqjQXoS%TcEe-)& z(BiL8`_mhUh@08=yoNAiXQMO$eJdRTR`~7H{vvt<(VK|gJhVT_%NRV4_NO-x5jWTE zIR|0J&c<*8`hIZ;IPJGj`zyQ)L|+%BOqkLB{@i1tQ|+ zj6Ihl%-GrZJpq0DaOyU{4BF?nPy5pa;!n!t{pW+y{<`eB9%07L#)$;<-NGjHVxl>P zTHNy6r~T;y5pmOj9BMHOzGoI{t)U|!eV4HsjW~%L<|G>NC@%Z&)BgN^g(ZdmwUG9g z#ZRcg794=jc>%MnA)BDSQ8b%K`m{e?AR_KQLJeNS=N>;Foq^Y_p>-Ptg2iR^0v`qZa45D`Dd(Pk>}6xN~=4`7Z3T*D>wp$p$( zpiukNr@k~&h<4Pcz5+9VkIj_sQ=j@$xm>PDBO)U4{+G5QBBBdKL_{?I0;Cuo&3X(# Q1ONa407*qoM6N<$f|jt+4*&oF diff --git a/css/iCheck/minimal/yellow.css b/css/iCheck/minimal/yellow.css deleted file mode 100644 index 2c3842313..000000000 --- a/css/iCheck/minimal/yellow.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, yellow ------------------------------------ */ -.icheckbox_minimal-yellow, -.iradio_minimal-yellow { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(yellow.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-yellow { - background-position: 0 0; -} - .icheckbox_minimal-yellow.hover { - background-position: -20px 0; - } - .icheckbox_minimal-yellow.checked { - background-position: -40px 0; - } - .icheckbox_minimal-yellow.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-yellow.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-yellow { - background-position: -100px 0; -} - .iradio_minimal-yellow.hover { - background-position: -120px 0; - } - .iradio_minimal-yellow.checked { - background-position: -140px 0; - } - .iradio_minimal-yellow.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-yellow.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-yellow, - .iradio_minimal-yellow { - background-image: url(yellow@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/css/iCheck/minimal/yellow.png b/css/iCheck/minimal/yellow.png deleted file mode 100644 index 0999b7ecdcea2d0ef81d0810037cebbc6d143217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1135 zcmV-#1d#iQP)83a%uQiDc#BG4mfZU$!a@=u_h>{!P;qy&;2%WTn{3vj>_HP@Bn;#rD(Dx8 zMukDW2z^dSAO~GsScn7SMPaCYW-O{m)7{lYHR-*@t&F9^} z5vaxhLO6a_yTd#zu>*D^g0&vZTTtP612fQ0Q10+S*ZhMqKEk1WoX>E*omYLF&oHl@ z5RM%_c8ORY^R$oi8Rq%=Qu{Xydvk{uKKK3&T0p9B7$#vqG{JS;S8FHz ze3h@P0g)czC~{}8UpLG`OW$+2(S;VwMt$J!3#9g0>kCBFQs=eEE|Tce_XrNK zCbN&;*WfN}!zXoKv-Gc&JBV}+NAV#s;jl9S&pb+4fr$cqx8W)rgt|JvRo42-eh(t8 z;RvKCJ|yOEhwnW`Vaua{Ef_7pcP>WoOL^-n|2>E-HXQblIEBOT)$_~In!m5|?UkGK z!3&4`&JpD!jCmAr1pX<&_aH{lDr#Ka_zXuVPa1vC3 zp9x6WcalL4i7V=<*HiF_kjz2a>og3P;jvn?7NgWYn1f_rD2BoK0=ec>U+)@dA8XfQ z`lNk?WDXL2y=$O-to86&`d5~F5cRu|SQ@Yw2O(*zCuW!73g=54S6~Zja1^HCSNIIa zEswjmLHpplFBHkXK(6Omp9)sej@u>}+Q+%o$C_MyX^*>0$Yt!dj~6EIM?wnqMRyW{ zaZGLhC*dlL!Z-K;ui-kZX6*SoWb*}5=2;(eQ+#G8p_iF_%+2ca>R;~{g+n?0qHq^? z4g-z<(SJAM_j&~K2kxHv6f5Z$g+j`t231s4<9|-I70su7lD+@{002ovPDHLkV1ns# BDx&}Z diff --git a/css/iCheck/minimal/yellow@2x.png b/css/iCheck/minimal/yellow@2x.png deleted file mode 100644 index c16f2b7dc5e975766863f9d98034c34f9eb24fe7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1406 zcmV-^1%djBP)l000F=Nkluv)V~jfx;g z+F8z!nH@A61Fae6pKWer2(lembF(=aPv3*({SG+c$Ua-01rl`yD$^IW}Mo7GnYC zSilYZfeUEIarDD!`2F%=&LmOx{pa6DlzsN^BicUu`)7@j_Ss~i5t*EssKYi?BbgxJ zL9-mMB1H%G;V{PYsZV|C%fiME4JX9}T|aq&8W11VI0FrbfF)ATfqG&M-FST z5v$ERXut_LOt?PvsV@tSh`VAmVT%RyVK)w8c!Gcd(~12k!6v+oO0?ksUdL$2KJ}?j z7f1jVLyvh2=qc^i!ow&-E2=PxUHAxNaG7CzhOe*#jo5-^*oeWH`_!kt8E_jBT^>K7 z3Vo=?9*j*QU<`XujXqS_8D$~+)TcgOAk$B3{EzlG3*TW8&Y=cfn5yYQ4bEYaoi!`A zKJ}?j7l??vCagp+*5MkadamJF^x9cXG4-iWeeM^C=*>g>TaS8-q7DPNTQi84FluM6 zkD*U}>eB@x;%){$wtzLH*DjTX?1nX&b$PkmWv;+7)pXn!wbF)m{-e9d0eqY`y! znXY|&y*Qb#5k2iszhAw9h`4*rp1W}yzUDUeSi`o^ed<%6E)aiGqpz*FsR6HQo!60-_T z=)`>gecGQc5dTt>pKl)8UyVIaBG7QQwG=>K5so5U3_`i7)Tf**7`^&=b=xd;4l3xoY@Hg7uL-xFkP}6JA1qINz*&$#vn*H@@ ze|iHEaWluBLkKf=HcAShZ@ELjGQWM=Uqo*pdK1x`hxR9vavL5;`_mhUh?^VsEJc{H zvoTx%eZM#aob%hK{pH^UqOXe*6K1r(Kkc~?VaCqJl>+E%aR_Mf+o%2M0uga@-kwVl zX6$VIUI2ajarO?s4BGFvPy5pa;!k2G{pW+y{@U%i4q?X5#;F46yM>MD!bEcxwYcTC zPy5paBI4#aQq*ELe9vsuTEp=I>AQ-R*n!g+F{kZkPvNTnKJCx%S6Gt&Ukhn}efSwQ z*o=elIj>-jHS`rw-x!)qBz@YSE)WrSpP&YB;!BU8kKTi~tYP1D?&~S-*8U>z(`US4 zB}QLc<=_4e<02MfCw$FLEVQ!^hwf9K`gDPaxEn`<1?)o3LqHC@EMPmvL-(mqeY!xx zOH6*fd1!wp@CEL}5tQL>O&N~ZS)ZdVratwlPZx-YyKU&iqxb>yFx4{;C+v()G=%O` zpZemzK=dXe@$c^@Uc@Clfm6s~swRhaEX5@|>t?Kd>Qi49nki&olgRWnh-YvNE6{;P ze1I`9&Wi8`-bFFapcaEM_o+{PdIJ%0H-M*c0L6F@7f_Gc4gs@JkMnpR#W;X97>K=3 zed^0XBjWBKY{j=|#v&ZVhd7EK(S?5eWdRSM967AT3n;OGOK3n_41MZTpX&vZBDztZ z`XbkcC8$FKR$-I5lj*=de1q{=`qZaBy@81MF^(2fj_0ukm3SDX7BGY>xQKRqkN$k^ zQ=j^>ND%F)Pkni&AD^0O-KReFC25*wG$JAr?|*44A|kp#L_|dMFA?1xzbBdu1ONa4 M07*qoM6N<$g4YDGqyPW_ diff --git a/css/iCheck/polaris/polaris.css b/css/iCheck/polaris/polaris.css deleted file mode 100644 index 1cb4bcc0e..000000000 --- a/css/iCheck/polaris/polaris.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Polaris skin ------------------------------------ */ -.icheckbox_polaris, -.iradio_polaris { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 29px; - height: 29px; - background: url(polaris.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_polaris { - background-position: 0 0; -} - .icheckbox_polaris.hover { - background-position: -31px 0; - } - .icheckbox_polaris.checked { - background-position: -62px 0; - } - .icheckbox_polaris.disabled { - background-position: -93px 0; - cursor: default; - } - .icheckbox_polaris.checked.disabled { - background-position: -124px 0; - } - -.iradio_polaris { - background-position: -155px 0; -} - .iradio_polaris.hover { - background-position: -186px 0; - } - .iradio_polaris.checked { - background-position: -217px 0; - } - .iradio_polaris.disabled { - background-position: -248px 0; - cursor: default; - } - .iradio_polaris.checked.disabled { - background-position: -279px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_polaris, - .iradio_polaris { - background-image: url(polaris@2x.png); - -webkit-background-size: 310px 31px; - background-size: 310px 31px; - } -} \ No newline at end of file diff --git a/css/iCheck/polaris/polaris.png b/css/iCheck/polaris/polaris.png deleted file mode 100644 index 60c14e6a88f4cc5626d63052f95f5ed87eae5ff1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6401 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%0AGo%L^) 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 t@UE11bp6rDR_i~f>+6;|n>1RGj~WeP1d&iB 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 Yu37qTXT(DE;jD$j4(?=C4f9F*54WWf`2YX_ diff --git a/css/iCheck/square/grey.css b/css/iCheck/square/grey.css deleted file mode 100644 index ecc57ff43..000000000 --- a/css/iCheck/square/grey.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, grey ------------------------------------ */ -.icheckbox_square-grey, -.iradio_square-grey { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(grey.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-grey { - background-position: 0 0; -} - .icheckbox_square-grey.hover { - background-position: -24px 0; - } - .icheckbox_square-grey.checked { - background-position: -48px 0; - } - .icheckbox_square-grey.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-grey.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-grey { - background-position: -120px 0; -} - .iradio_square-grey.hover { - background-position: -144px 0; - } - .iradio_square-grey.checked { - background-position: -168px 0; - } - .iradio_square-grey.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-grey.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-grey, - .iradio_square-grey { - background-image: url(grey@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/css/iCheck/square/grey.png b/css/iCheck/square/grey.png deleted file mode 100644 index f69375854d3c5a283121d10352be8a1729a16cc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2186 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 G$^QeNB@0pj diff --git a/css/iCheck/square/orange.css b/css/iCheck/square/orange.css deleted file mode 100644 index d0c7a2cf2..000000000 --- a/css/iCheck/square/orange.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, orange ------------------------------------ */ -.icheckbox_square-orange, -.iradio_square-orange { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(orange.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-orange { - background-position: 0 0; -} - .icheckbox_square-orange.hover { - background-position: -24px 0; - } - .icheckbox_square-orange.checked { - background-position: -48px 0; - } - .icheckbox_square-orange.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-orange.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-orange { - background-position: -120px 0; -} - .iradio_square-orange.hover { - background-position: -144px 0; - } - .iradio_square-orange.checked { - background-position: -168px 0; - } - .iradio_square-orange.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-orange.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-orange, - .iradio_square-orange { - background-image: url(orange@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/css/iCheck/square/orange.png b/css/iCheck/square/orange.png deleted file mode 100644 index 84608500a670b9460092d68cbf7b4dae77c7d303..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2181 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 diff --git a/css/iCheck/square/pink.css b/css/iCheck/square/pink.css deleted file mode 100644 index 6b706f6db..000000000 --- a/css/iCheck/square/pink.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, pink ------------------------------------ */ -.icheckbox_square-pink, -.iradio_square-pink { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(pink.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-pink { - background-position: 0 0; -} - .icheckbox_square-pink.hover { - background-position: -24px 0; - } - .icheckbox_square-pink.checked { - background-position: -48px 0; - } - .icheckbox_square-pink.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-pink.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-pink { - background-position: -120px 0; -} - .iradio_square-pink.hover { - background-position: -144px 0; - } - .iradio_square-pink.checked { - background-position: -168px 0; - } - .iradio_square-pink.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-pink.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-pink, - .iradio_square-pink { - background-image: url(pink@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/css/iCheck/square/pink.png b/css/iCheck/square/pink.png deleted file mode 100644 index 9c8b4e2b6ce76e1638ab81688b3e7f2cafd901c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2189 zcmV;82y*v{P)% z4$aSQxCP;q-_*KOa0+=0nYo!?Gwk_ECR>+{LjA0PPf2pcZe4R@{-xkN%#9n( zkHGWbAowFV39f=UzzfP*7(VbK_#FsIY!U6xlc=EoUh);N2Zb2%qmV)|7H(Yrc*f7% zWTIIEYC#8R2YwI)vp^0gVBtND*SDf=L$1dqwutt-B`WAIB+J2iD?en;N1|U6>bGO! zD|#9h?_xAZ!P{K5dKJMHNuJ@i8b9YJ56#y>57-9+iZ2ZM$%mkY#rR$HJ%}P3v>FfncgOK%xE`!9 z^Jhq^M7nsr{J^~ic7fg)jv)HLGwjm>;4lrtU%~dvU<(WQ5*P!+;0!p#=Qc<8L4lh3 z`5gUmM}^h+F+VwIc7PM$7zo5LKSSUc`|O~@Ea+$P#s&J&pDy4Ogon*XxT^d*f&C2h zk$rT`1!@?6FF4A=Y>MFstC_Do%DzWXsPwCc&GaW8UbFG@u=z>wKhT=M{Is&~lW@&e z{lM_&NaB%W_|pZPdh7(p!Co7C9ecTo?KJVP2JK)w2*$Bl7-XMzI?Vlc!`xrPql6Y4 z^V32{jfuZRYz7@Qsa3$~)wcl6kHJfJU39zv3V;y$Z*BGsCa~9mKJs%qUcicb%g@L3 zYk=cdcAM9MHoIavYUvb0zowu+ z0Dl6PH2gHxOIL&9&jo)6|FrS5T@xL-CVpM{RsAct3m?!hKLNT{D1Nub{JQB(-2%R+ zwn{2D)`z{P^b6>9I|buL-lLU zuj*e4dPHAzgL1{MJHO>gUBDT$X34z|RZC7$zNoS6!3wEEc7m3onKJ2Q4pcf$mza|-S1lHs=x=LFHV4!ieJEcw#{^?e$Dw+{R_ZV z(HDN;QT)2|>q+VYzVG2`sj6Em>%X^E3QF!4Bg$6YC#&io5pjw1o%YGU-*{W5Ca0$1 z3cI8hN!(DnWcjyq^X4xU#)6X4>ViVgWeb>_$v!b0Z(eg{9G#$&%Gx2S&2 z`Bk0SASjxGu587xJHOdUUBG>vJ{cXpAzAa>^5}OSm!icBWl`laS^dPLk>q}K?xMWc z_?AqD!!jLXaG?Lpkc**e4;KvtzA07yYCju^4M%F^_lBbG1C0ikIA-O$0U7d$xNiMkpibY?jEBY0- z#hTor`nBhmes#svgu0>!9msDm={K>4KN*Z9dANU2X3frwB-h{5E5~0)awozv-D4y; zG;pEk?171i@lRYXS7s!+W1~J__vypPZ9H$_9JojH#Y%8O@e8Qd;9d(v^=rhA}I z4t~M)JCI+0O6)@4zzY1%D@SDD^2c(ut5@EAtx3Y;6EagGbYmoNzWdC9@$s8iK3#cz zU7d|#WIRsIF|bMWMICrk@e63MZKgx@YtFCg?*U6iUzCGx#jiEL(f&+H@)#Wn$y#^}c?y&%{ykCWHa8`BdEjO`hUirNxtj7DQ2ZU> zY0wG+Hs>do7m2*A_`d|)n({kJXR@!rX?SwM0E>602Hj4&27nOyBk>d9PM~<*QDr>up;>ja@Mvt#k^ZUsKSZF5uMSC9nbPva!0LuWS^!O#B^S9cTpe z;wWCcRt|%Qz$pvAy)gH;fikeh#{8_|p?I5#-!Jy#n&D3ua0y}%hW{h*xN){t48>c=*KPrq1^&;vu%CaUKjFA+Hhx|#f0&zSwF%5mEsMXAE;S7Q zup}NshCek6I97D)p!-GP*=<_Lmfh-N`aHJe=N(vF+pSUA_-0S-8SNKFPu^1J@A@8f22}j3UW8J}8wfjD30AvM)1jzV?K)nXx2fG9ejT zV=05wF!m;88^)OBH+?_9bH4xF^E&sO*Ll6}>v`{eJ?_oE46_nBBzx$zQR*OUnK-QUrn&u|!g<6K)d6&+ghDje6$*hW4XROYM#bWJ{g2`VUVn68S@T6QVkj%UY^Qdu~YnrAMddamD|KU`l=VAT?)2v__% z`m1oRTGpY>&{Je`e(cg13D_TtcQSZ*D{k$%&G!b0*h9r9b9Nyva*H*QDbBffW$|Qx zuy}FLQW$h=u_e+%e-&&6kI@ncDn zTF+Z|X;;BlRY!9Hll(ba&>1gg}3|`bit1aqglD5>F|gVcohxq zudYs;x2`AgR`v(RU}nJUui6H4NXERXl&*}h{KD;pvtUdxUee!BMuCf=4~+m3HcpnT zk7rqRr)`QYK>SUe(isx5X%FJgk9B?7BK(+TKg$A^Asd;jTfUCQO{{`yhPb1QEJmRH z2={JdtlW|$4w^?K)G>y7td$9o>g0ptbS_eeVX5sURuSs$g2)H_(N$NFB(IK{^t{Qy>}Xm}0O%+bGX1n{&A z6x*e=qSmZid5DgNP36mnD^OPGMwqRElLKiq1x@-9bNqQdUAkncurvbU?b;ETssUCf=4Ly6O4eT3qheUI!mj z0M5hNAFq(=nmPiSxwGhPz2AC#o2t)}6(%=budYWJLK+JF^vlCUF9Pxot+zGpt5mMw$zties75qUuGMlL7#Am&U+F04QgaCTHyu&%* z0xL%aZ;tmCFm(RCcvG`1cSONqC<7-nxxO5-Tx;4|9_ZPYbf-;47B9gIV`i|X8`1-f z1Z5k#d?ufQJzv}&y>|k8EYlTfU_>n%-rmK@C1`Mm8XRA2m%LjA+@fHFsxWNdN)cB9 zFKp7lD$=@cgb|s-Y9u9#@b}nu7C7Bww6qbb5pKzvJ~yCD=|f5&q@yy;eNNq^j+^x# zW!H=bR*4xvS#3ogNl3xk!80og3B=~OD0l%P@GcWE&WBIP^%~tKKHmFD7kI`6 zG6|Cp6H61Yrd`jnw=lH;-`VaF2SK`EW>RkZS~J*tze%*!o2!^$raJ~O)sxucpTdk% zn=1)b%`3O&IMXMA@nn&E5o~+b(*@mjzcoD@>rGpK-5F#NG_d>OD)fv-8QuC~s^OJi z%^7{smkb|{-?0OFBdptVaWog0fbSY6lIgzhIN#{BU2O|-rv-Z85C$TXcej4s){7hs zmM~O>HEl-R_#sy0BU|w0h7Z0U6!EQLTRi%o0|j>W_OcPqUFn$(tf-$lN8Mm4(iTu} zau_6}r`DbJ>e-rUsF2cN7>L*nZ>6{F^hJ}8CY<6E&5jy5Sb(5rvPy_&m;zxuV9BAf zQ{%rY)H?HI&f8|(sLkDyX$oz-{fWAIOsH1?W2kF*dd;{P%zIPC2EUJY69I6vQ{V5e z$PQKF1Mu=9NxSdzv_E#kiJTY&b292qjZF`wE<0ocAwtH)GRFWU*r(?|9zu%~Y7snd z^}Z0xiUwQq$)_?gP#TeHVDZrFHkmoKz((9p%)=U1!8EWAg(jHLnpxp6|n5=$TzS z_wV1&v=#KvA1F6b_WRzPv~Yd+t>y_Ur$;s}_a3g38n{-{ zKhHN>Bs6e#1e){HP(KIMpros2BPB^v*Q)ST(ZBX%3KIZrKeBaWDKVPwR|z%-?Y)Dg zJwrqzY}h(6M;dwt)PnbsZFwoZVIpGOW=m zr4w{3D_l$PC+3{e|JFEX0?z3)I7z&~)_6&pyE2_DqH(PlceA*Lgw({UsWmHLJ;>xt zYn`UP!pGm_uOGgQEz&mFJ{sy8pScZcW`!B%pH4W}MH!YtmXt)F@_zaDh?m9ON44|1}2E**SXTZ%=Wz_bJ&Dy)BcrvCqn zpk~V{!lLnu@I){rb3yV)x)(B6?MJC1%O|sDC~jRody69G(2~D78X9FA5U4>cP=Y`f zjj-W5wh7j@uw#|bkg>Flje}h93-qklx^0n>(BCmtAC8_s|2?wq#w532ouE%VVoQ{c7db>W2$V;a?9^mcMMf<{kc@#Gt|#PtUyg zSK`*w)1Zbb*M+UtoqpGj!QRR@b3NRwaYS%Y$$n1jT6i1(8J?Vt@6YV=Z;<^@5U=)SU%&7B61-BO&ciR}Yl#)m?1nvPz18?nb?9dB%MJ}x*X4MYBixI&Q%ah{ zSre0jdp;S~y|Qf_t@c(n*J^rj@|6XrrVTvJZf!L&adkH?RmqTxd;5@(`GJ^c!E3$ zS>7|Rj-O^6byUQtENVO8ED(xHG|F|{1S=D1Q)aMx=UvJl|lt~jYUoe z9fN{F9IRNeV12HORSg_Tc(B5~@F#4)o;U_wpP(8^KZBP!PY8t71@(&wUXkQpOoJ-Bbbv_Ks_j~h~#MbZv*nC=Q8v$6~nNt`^fQxmJiiYv81;He@ zzie^Ko3oCL7HH`@u}pOwRZBJ{`*F6VzD-zbpHtFf51Q^K~p-7p(Fd_rcoxi@%E#+%JU{F)q z2As^nqg65wTwJnPy%+KR3(B7m`P4rLxfKd zLFOpdyQPt(&3Q#R&@@E%H5#PabyJ6TElmMwqvNQNDjelkkNX&)bC$zT>&~#M?xiMe z?%`eC3N6vt3ehM=tDutn0tr=bjhd_z9FEq4j;o|&5A(Af$Wl8*w)w&n!p*i-@mrl1 zCPe~!d7?WEFY`UI&cBEmhw4KGB!Knbr>a64za5LcC*mCQIdX=2yAR-DGTqW1st`o) zzN^e+s5pHlIBBr^+5#t8bSqgjP7X+l{zJna!OFO0e>CR!a`0S&%VgOjYnWOG)Kmcg zh8>gbBFsOY4isE%fS9Ha`RKEXbUK$iDmuzbk{tMFYF0i{wRE$9?^5ZnG%`;V+DP*8qpv$W#^myUfS9`xsc2Ciw-jnF*}6x zJXCfSgzo+#-&}s^OL@6(2lku|wrSAJ1Y#WMkJ5S3cy{gm({0>oF}7hKZifEY9+*>9FYIwI#*SPw;Uf vQkXxj%SR`MCS?C#L&i7$@0*%quLG|lDG%5&(;l3Ul>;^wuuJHRKB@l)o@W}& diff --git a/css/iCheck/square/purple.css b/css/iCheck/square/purple.css deleted file mode 100644 index 43051d3db..000000000 --- a/css/iCheck/square/purple.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, purple ------------------------------------ */ -.icheckbox_square-purple, -.iradio_square-purple { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(purple.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-purple { - background-position: 0 0; -} - .icheckbox_square-purple.hover { - background-position: -24px 0; - } - .icheckbox_square-purple.checked { - background-position: -48px 0; - } - .icheckbox_square-purple.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-purple.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-purple { - background-position: -120px 0; -} - .iradio_square-purple.hover { - background-position: -144px 0; - } - .iradio_square-purple.checked { - background-position: -168px 0; - } - .iradio_square-purple.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-purple.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-purple, - .iradio_square-purple { - background-image: url(purple@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/css/iCheck/square/purple.png b/css/iCheck/square/purple.png deleted file mode 100644 index 6bfc16a38ce8d5b2246f25758f2fba8134f6243f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2188 zcmV;72y^#|P)f6B?xpp#8TrQ`SZTl0YbNE?l}`7LwR;Fu9oQsr4LWed6TUKIe$U z_9OjtEPT#SAK&ZO-?5!@9L*OR#>9pct$4;E$j@FnNWbMcxV6Rq&Ih|f{+5gXsj_K) zs^AvHF2Amq|F3LpD#3TaGB6hmgImB2&Vm!559p@)z{jGKi2Rsm`Xh(0E7Rj=o%QBt z1~x_DtH24;K@j*rFK7cTsAFK9IhJu^&QDUgb(m<>M-6;T;wx2F&5iz>g8i^IY1sS% zybg|ocR>@l4Wm06A>D?byE_+XmEnL?TPLKTX0ye=d0flo|OUvp=!ENvQ9Rv9IV! z*t`p|IRpO5RqLiA7zS6#N8k@^mQTP&&?VzX^A`c(;}f7Bc*5QwR)9)6_kl{(btCHC zWzf8e-;gZLZ!~_+5B8U>pdC~Lui^`W9&!!Tu^E4iV~?ZB`i;gz|Cgh9Gb{s3_53N4 zC`mT2i!Zppf}Lz$qcezGU>A?6190d@^A~aZJg8s;-vC2k0JMS=e6BqF7&NG^pU=@B zb&8C}kNL^K=2dVBoCn?r=En!l^O#rZ&50@!#c}-&+yn&XjJ;u(`Nc(k4ta-JZ;_#J_YqL%uhX!-3-@MK@>E9 zhQyu>&7W-G#A65e80Z|&ff+pa#V1B%GEmiz!7S=b7&ctotvhuG> z#pY6(l`&JET)s#qTju8%6lZ1UmZhYmd?_O{r_kuN49<&nIR`cjVh|2Cv+@?*5m7ZUwj~*5wjduJ{G~+q9Vu)o*cqRsURY zTda!*I2FIu^>xN|1Fzk<3PpTQcK&9I^5QFH;&6yuYIMtA-l>%b55^|o z3cIKTMO>S|=!qX@X3d@_%-s3;Pvzt~%LTa~xOcU)t@YFxVxV&ZkBu)-?Xkxqx2S%L z>#I7`fnO{NUFnM7>iVX~bpv1gv`u{dgOWaLhHU@Ui&D76B`en~k*z;k7b@=Mi=A@x z&mYO?Xiz3%`g?m?A3O;9aSAolwV+^I_Ut(eoO!OI+&Ot01sS>@XzOUZ@;B@g6ypqm z>0)1oxSej7-{$&`+WZGiqjuCct{b@f)?GRD`x@!(@k!c@Y4Y>E-> zySdG?$StbhhWdJRS4{J$E4tr?`ugLyfytfQeRAk`HR9>+m8sKGL&d$?a$Sxb`cOtk zf-=!F==b$@wO>6pIy!RK;c%peiaT__qr-ir2DJ@Fq52GbO{~jua7pnCcuLG?4G`6D zaeY;P56HFg4X($A`g-EKfl2ROU#Q48Iz7_b+$HZGJT1e+BQjYMxHstSbhjQG85!>W zV&&~W;ibttA57vuy*#OQdegT!H&2*@Ki|ecU+reV7E``9Y_${q(xIb0mJOjRa z^4724m&qCwcJQ;y7mk?xX{H0b1#X(W7~(6~ybKBy|Gu!lZLW>+^1yOBd~~Y*OpEI4 zRs79hJE#XkcVm>?Qg7abM59OEY3pI*M z1mB?JOre-d&GS1X#QjaClFi_UI4qmo*0_< zbvFMdoeSeN|9`>vw7=Ghpm{fN-wNGfh&@0hynJMAMjW>bmP`mQEtzI(_jn82h+e*KHkFT z&W0WHEE-kU&*w_%k2WnvqhL8$4>BT{pA4{`#~h_YFPi^OOe-(_kMoWkV=;U- z5=)b8;!ZT=)4a<@Gx&fjV3YED?lP{RFM$K#X%GT{fGin5{gK{Mhx5~i`FW3@Wq-?t;>POsk&Ov`OsO3%V zdZUrE(f6Z~wefElXZ**b9X}hT4z+9KRX;1)u;~=|frpL#Hs>>%g#1AB7mnj^Hu8UQ zS4y)l2t_%0R$0Cv9_O{XHqO2MW8hsWAM5<1k- diff --git a/css/iCheck/square/purple@2x.png b/css/iCheck/square/purple@2x.png deleted file mode 100644 index 6d3c8b1af31a6ec5303ac592f5dcdddb5e2034d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4501 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 QnE(I)07*qoM6N<$g2I7inE(I) diff --git a/css/iCheck/square/red@2x.png b/css/iCheck/square/red@2x.png deleted file mode 100644 index c05700a574071f9ccf8a6110d907440c9dc5d8d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4490 zcmYLNXH*kP)24}nL^?L=VoDH0XW!OUt(clU109d zpWtM!UtYaC#lpgW(ZSl{N|e|3tCJ6|xRswM_N;?Fx5vkLFHTKgq$5hz=yX{ z)PHA(-{^I0Kc`A8Juk=EjA2-jPq)FEt~_-$`Ed{#Lfa%Lh)j8~YUY%NyS_F* zUSG;tA^py>8j&4485{=(Y>~$?>Rw{@r+GMe8~LustJ>zC(cg5IZsZ`VjHPc`dYS*U zdhEFi$)3Bth)m_FWYl8O`wWxDW*q$nS!7S4j2HaOE4%foYAU;E0?;BGh}bNPLSA;$P^$F+tM&TJWaQ1bVLf%> zMlVLxYtIFc)Y4dj%J3UFNG`&taO8YX9a@NdRbdME$!rRDjA0DMqirq@e`z@7zYzX& zQR`M!Xyf3@M+51$^mi5!@{sm5py5szeZ#3^6#bO)l55)g{EFO51X+m07oBo>!k-Il zG}b+f47#M5J3i}zZN|Rz>jf^f3S_m;Suk9%Y+Ru6V|2gUgymN5teUyagGekYlJ;uX zF3$mTi$B*XUJ$DR{@@}|tp4+N{h@!Of3c~OOnFYnbRQ#5J6%heLDckIfFEog*vSWL z1N7PQI=}CUW|i!S^F+#x$Xn%T>NWy&Il%H}zS5SzeeaMtvRYYONIJ)9!s#ekBZHm- zxks^rP(>ubb@BdOh@;F&4*J{gY!e^D=))Q~E|@M(rPHkh%Nfl_#wG^}Hm0eFhFXz1}SB824FDHB;jL1VwV!$?;- zkZNWk-C@C}tOV&gG@6QaoyDY#jewyIwP}jjB(!hGKARZT+ek+w<3lh=z>4jPA$MoO zmbsx+Ypfwc$~c8soDrmZYZd6fF`^?G2ViE@IH^XYJB`r7Kh4*ISZ_}i`c{gfvPGM- zku@UC2%<+@nC%~{o=UK*W4ND`jwIRvjjEIci4dpIlN(=AhHjP`g_`3 z5;c)63{iICwXDAYJVJ)f&zSDE?&P#s%12IYW8H%yJV8tI*UixDFQg;%)v=*hF*hSBP>Uv5&*r6EMr&t>% zt<|60htoKN&Yuom#w*{&^7hBXS{IOCum$7G8EmpXI=clYx~`H$OD?m*oDnexNYD=p z7=BX^E(n!xbn;9-l@M4d%>8XMsw@X) zT1G4+UX}GxD|*q4>M{m17CK74HytI|zu}y6Rl3=VxS%=-q*HdK>NGR}(|mgNbLa(D z0aFo~aRe^{ARhCuj}zQ5o|805=hh1;J<^M9zfK9fftti4GkEO4GC==uTDMI#Leuh5p8z?n4X!RjiFuKx% z^uB7_lyE}U>4C&lFQkRi{0D<`U_)&l$I6bLGVDRr(Z50VD3uJB;O^von*oJDvTJ`q zerJf|?O}z7(rD~Cj8}}!Tr+(<Dqx~&kY%}iJ)^Q|YT4yGr)4F<6JugGF zs3PRFfI!|Q#kC<)4=Kd?$%&EJ;LU+12*LT!`SLycF>P!x5wR zjc-*~_AP4ZtzSau2jWyqZ0*gI-DzdY*jrC_TKU`96kC6G-PhOd?zdYyl$>{oa&oNm zY;rK(;S$K~A;Xkrcxg|}cRsm4bNs$MP|-my-Upy7Z%Y}O5`K~r6A^5eE|1?^1GoOl zZnfx%?B*Ge)R2`wcl4)wX}iYAD`Mr$Tvvebkq_}2hzYjlQ_8vFbX{f9|8Pjch>RA9 z{D*@;C183%%Fr@5^i3+rA6Eo2fYS>4&K&bfn3h#3R~K&8^Md-DJ#;<`ym59OqUVUy zP*8fq({t{)d|yh%O1?vz;G4PSgU^@@;3m59^Wx-psn+ErHuvyHk0ybjb1Fe0AssS{ zvRN3#QQ_6+A`_6&iqe*ABs`OKb!o;Csa@g9Q|1iiYFwZ4{qE%9_Po$oLLH;!!j9={ z9&uB1+coVH`k-v5j1vL*n>gxk^L%qj(5EVHK?q zy_Cs#nJ$>uUy!Zkb}4OXn^NsXNhw{L7By1;s4XR6MpUOiTUK=TDtVD#{Fp3k)nu0~ z9>$x_L}ugnuYej=kXle+;Qff8_K5=R)c}*b0UK)n)^(r}oU07P^;PGaS^BRQlOl1eE9W=eRm$g|L4>(>B}~d zOV9r0RMJLBchyPzAwo$$WeTQ7SICqUB)X12nnXVTYFFUsJ6%-I+E4mT4$HDx!pPL? z%?qwWI_DwoZuuggK7A^VgrXpF@H4(h3n z0g$Nbme&dKWzVYZ2%9lX8Txn`{ZGp$>SjRAw%X6^qJW2- z=y$);;o`pnBP?Dk5rgkUUOw0Chga%nEDpY_cKsCqzK>b143-rIMYMQZ z#(tUs#%if#ZR&P8i2EYCte6XOu zbNyR_@#45~u8v=qLpbZM)?6(9!#;24qkqPdHbvL-g)I~5tucYy^=BsO)Q%aK`0Mta zoI_JiqB1tA{S-6=lHU4RUi0JCqHETsYyep__^mHgvcjR51 zS&{n*di$;I5k+WXo{wSUwYhZ>ALUE&`KdZgk-=S~M!VC-D#4Td%w8}Q)cB)+^RBQ| z(S}ep3iJ}8!td7=ZCucsjJh$s&tM-LK19|>>`)4AQX*Eib7;*LWK1l(?rEM?EL@p* z!zcUX5cB3);mX}UZX#u{cs@mZxTkhyMWYi zvo}Z4SP)t4Tpuq5H*ypGXUc5s0d1SKNB9jlC2)W&gRMHjTM@RznNY1`e~8!Xh7R7q zDoSCHdRTqmSUCsCYubvR*mF@0SKB@LQwr3 z5$wBcqPkc*1uR7=q&IzR+BwT${So&>j`ZWHUv>|XJ2cK^fzyY5*93gxMvj(%xI8I{ z8LtO7HSKapVIuNAHg*+gZaNOz7y&p9*P)IXlAHKp*|yQ?Ev%S_aPI)n` z0yrlOkyJ+FiOwaEZO33m)3)UDhhi}N{3xi5-*rumD!KMpcPYS2FRL@cP&p^ABD8mC z2`L6j7ysF)#_!8~2yXC-&ML!jhtO^91?hsHz9k5YV_2IIW#U%s$k+d21BRufyL5Sl2lHWPN zW4lI_npNpkd(n>*1#3Nmexe+^)aPzobo?V~2Xse3|9iHrrom>_?qO2igOg+3z8{_y zKR3GF0~~VSTCy=-692_Zw>#Fd*1&x$Y0BmEDknc>pDyCr~e0SP&JwW diff --git a/css/iCheck/square/square.css b/css/iCheck/square/square.css deleted file mode 100644 index b604fa84f..000000000 --- a/css/iCheck/square/square.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, black ------------------------------------ */ -.icheckbox_square, -.iradio_square { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(square.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square { - background-position: 0 0; -} - .icheckbox_square.hover { - background-position: -24px 0; - } - .icheckbox_square.checked { - background-position: -48px 0; - } - .icheckbox_square.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square.checked.disabled { - background-position: -96px 0; - } - -.iradio_square { - background-position: -120px 0; -} - .iradio_square.hover { - background-position: -144px 0; - } - .iradio_square.checked { - background-position: -168px 0; - } - .iradio_square.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square, - .iradio_square { - background-image: url(square@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/css/iCheck/square/square.png b/css/iCheck/square/square.png deleted file mode 100644 index 2a3c88116c4d39ea9b131b07201a3ca724d097e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2175 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 JPDHLkV1k9ADRlq< diff --git a/css/iCheck/square/yellow@2x.png b/css/iCheck/square/yellow@2x.png deleted file mode 100644 index 6b8e328e1abe901ffa1b472461c858516024a975..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4385 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 M0<$r%F};)UA9(ifzyJUM diff --git a/css/images/animated-overlay.gif b/css/images/animated-overlay.gif deleted file mode 100644 index d441f75ebfbdf26a265dfccd670120d25c0a341c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738 zcmZ|OX;ji_6b5ixNYt8>l?gOuO)6lU%W(mxn(`>1S(XO;u`D+P%xqBvMr|w-Vyr1s z7R|Cn0b8|Hu<=Zmv1mFqh9Fj!NuZfKB2MP$e75`XJ@>=!y!Ux9xR3x;EW!q1^V>X| znVFuRUN`NqJ2)ybXh%e__h!!pv(M|S3+?9F%(K}zyE40MGyhWF5-IDgL&=%2-9`Nk z!1@8uk4t%_{(K~>N;sK&dzJbwJ=$kYTlL=$%#0Pfh>U{%i@~wWbvYsD_K-D`&+u1( z#Ma`>%q<^UhzGvi(hyE`zCD{-=2|zL5>wnB=DE!U?(CZG%q4@lDnCq_%&3DCla#(X zmBhDD+RN$aMWWHm?ig*>1Onn6~r?Ma~N2JKAxN>H%UtRyRqS)6Um!-Tz%-r=& zQmTb^JFIe3W^-kAm`}`2P|niMh>RYyd)S^f(dbrx965?rzbhP|XeP}o&&DSZ4|oYQ z)I{f!SfycYw?3=9W;o-B%U5xs(pP267X~9-7L|4WzaYexC0GtG8wWygm63rF{llCEraxzkc=IxvFQ-y37=_;e5 zJLq^gsSO0Ayz?a>E_?{dmUc+t#qv$)XN8$<<}rQ#)lsiw+pmL&J>~+hgpo>i$m+;l zZIa_ZRIfSeT$~v5d`EBV&*k`apPgjv&B|+d`Q!nyu{L4rs%ZfoF0*Kq8I%ByOcFpL zK=>wzofZo<+0GZLCnWM3oQ^pb(gRSf02;~cEn@LJ>~XB9IkEX{$N#Z`m%>S!U{uPx zloI%bLdo$Adxlh(Uv^yX7s5G&C zLwNRG>~T?G{kzupp8EcyLGPoPf)@&9Wqfw_l&uU-6cexk%5;uQg%wb=0k_733{i#& z1a2p)gV3S2+QG1-K9tZ}E~I<(P0r2aFFY-c{o?TUOz3Xjod#TLE2A_c?*T7t z=1>~%YW450{Qqno4t`}gvLnuMrcu8+#xEBoY%2_+Mb#Z6S38+r*M4O`-+!zl(@m`D zQsi|GA2l3gEy}LFe<#Hv8?$_L#u8E|3-bP$*La*E>B{X!Sy4i6?TKam!49aXCAW4S*P_O^H4^*DpiA40o}Uqw~Eo&veh1`|8i zD2$x+>_b^bXE4N;AW=5>iYak2%!JAh0j1*k1{p#iRCjbB7!cSws~U{1IA@acLII$t z$>X#A+^s6iJ5~DFG!xa?>z{=lxtdi1rzbM-(nqAu3D8h-&64xo6|E!p?pK0xT;qoK z`6%+SpBk+~M?nO}>2mTw!A{yZ6O>Z@kwSd4;8aWU5z!P~tQl?u==^+R`{OmOS}oZh zOXQ3{6kuz?Is^n^L7;9ieB9C+8B{>t+pDrlq4xGDDn#T#3T5$l1g`FTQkU;b-981j zNm{zC`$wn7etklM#qHI4=3m5gwa6DNS{?Z!vSObi_od{4eUo=_S2BKNpkSdiqe(k9WtkeM79;2-%CFbb)aB=&H1?i1}uwFzoZQ(38Kn1zBP ORn*B%u*Wk|4g3!*Rv{Mv diff --git a/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/css/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100644 index c09235f60edcd94315b23a534c61ba2c49df7f9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F1SA+{?>A)!QcOwS?k)_>#w|r1Kptm-M`SUO z_5fqIli7AahM1>|V~EA+ zRdP`(kYX@0Ff`URG|)9N2r;y@GBvd_GSM|Kw=ytjiqefi(U6;;l9^VCTf=AesSkh} O7(8A5T-G@yGywo@=rd#h diff --git a/css/images/ui-bg_flat_55_fbec88_40x100.png b/css/images/ui-bg_flat_55_fbec88_40x100.png deleted file mode 100644 index d48c482d5f7d34bc669a74eb57234c0827bce6d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F$P6UUt$JVyq?iMILR^2p>EL%3lLT@(3p^r= zfwTu0yPeFo12XtMT^vI+&L<~Gur6-+#lXN6!N6E*)>aObQY~?fC`m~yNwrEYN(E93 zMh1q)x`qb2Mg}2wR)$8p2If`<2KlV=ttc9D^HVa@DsgL&i&zeFAcLo?pUXO@ GgeCy26fmR! diff --git a/css/images/ui-bg_glass_75_d0e5f5_1x400.png b/css/images/ui-bg_glass_75_d0e5f5_1x400.png deleted file mode 100644 index c621bd6877ef926f55152fca0c8343d775604df9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&fCnc6a#?2AmP!?*K(O3p^r= zfwTu0yPeFo12XzNT^vI^j=w#>kdKj3=J?0=@27v6%;IVMUg1JcliIElxdYl6axRlf zzjoc!(_FUE@@3iW-UpIBAN=Qk@QpurwKhJKtwDjK>A`E8?p60quDJ!5u2r;lD_g}Z zoV~Vb=3H*wH!=D_yF(V8(VMzqOVPpQnp?N;GJIZCld^S(TIzDS*}~dvVf|)n|IgrS zQura8|6q%H3BUHj1fa`QOI#yLQW8s2t&)pUffR$0fuXUkp@FWEL5QKHm8q$fp^>hE mxs`!IKC65yiiX_$l+3hB+#2K}mRkZfFnGH9xvXnc6a#?2AmP!?*K(O3p^r= zfwTu0yPeFo12QIix;Tb-9DjR7k?RnHg!{+uf13{~G&Ln=`oO=hJOs{);)V=83A}=O}g86Gs>w%OA6 z;^IdBdxdlMKWE!C8<`)MX5lF!N|bSSl7@%*T^8m(9+7( s)XLCE*TCG$z#yMhz7<77ZhlH;S|x4`auLfdff^V*UHx3vIVCg!0IE=a5&!@I diff --git a/css/images/ui-bg_glass_95_fef1ec_1x400.png b/css/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100644 index 398c56a9cb130485289d061475258e0a0b9e43ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&fCnc6a#?2AmP!?*K(O3p^r= zfwTu0yPeFo12VciT^vI^j=w#>k(V)1qW$CZ|6)SVV-&*#dav<$DMuV&n0Dbpw@a7+PAHnpzne=^B_@85rcV g%D19u$jwj5OsmALK`vssB~Sx{r>mdKI;Vst0B*f;)Bpeg diff --git a/css/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/css/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png deleted file mode 100644 index 1025df02a7da7f97940bf779a807a6fd64a93fbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5824 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 diff --git a/css/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/css/images/ui-bg_inset-hard_100_fcfdfd_1x100.png deleted file mode 100644 index 5888e51ee1d2cc7043dcd7e68dd0e5790740d7e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 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 E19GBNuK)l5 diff --git a/css/images/ui-icons_2e83ff_256x240.png b/css/images/ui-icons_2e83ff_256x240.png deleted file mode 100644 index 84b601bf0f726bf95801da487deaf2344a32e4b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4549 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 F{{S81aohj^ diff --git a/css/images/ui-icons_469bdd_256x240.png b/css/images/ui-icons_469bdd_256x240.png deleted file mode 100644 index 5dff3f962cd744033b2aef575491451a8b2ce6a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4549 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 F{{RRLc7^}| diff --git a/css/images/ui-icons_6da8d5_256x240.png b/css/images/ui-icons_6da8d5_256x240.png deleted file mode 100644 index f7809f8566cd0aaef9af00e7caeca9d3720cf1b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4549 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 DTfr$v diff --git a/css/images/ui-icons_d8e7f3_256x240.png b/css/images/ui-icons_d8e7f3_256x240.png deleted file mode 100644 index 9b46228fb1e80406b2a9a65b694e5674494c2775..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4549 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 DwY1D= diff --git a/css/images/ui-icons_f9bd01_256x240.png b/css/images/ui-icons_f9bd01_256x240.png deleted file mode 100644 index f1f0531ad5b02b7f891d84a6b6db6ce7290b65de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4549 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 D=xKF{ diff --git a/css/ionicons.css b/css/ionicons.css deleted file mode 100644 index 6987dd5a8..000000000 --- a/css/ionicons.css +++ /dev/null @@ -1,2183 +0,0 @@ -/*! - Ionicons, v1.4.0 - Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ - https://twitter.com/helloimben https://twitter.com/ionicframework - MIT License: https://github.com/driftyco/ionicons -*/ -@font-face { - font-family: "Ionicons"; - src: url("../fonts/ionicons.eot?v=1.4.0"); - src: url("../fonts/ionicons.eot?v=1.4.0#iefix") format("embedded-opentype"), url("../fonts/ionicons.ttf?v=1.4.0") format("truetype"), url("../fonts/ionicons.woff?v=1.4.0") format("woff"), url("../fonts/ionicons.svg?v=1.4.0#Ionicons") format("svg"); - font-weight: normal; - font-style: normal; } - -.ion, .ion-loading-a, -.ion-loading-b, -.ion-loading-c, -.ion-loading-d, -.ion-looping, -.ion-refreshing, -.ion-ios7-reloading, .ionicons, -.ion-alert, -.ion-alert-circled, -.ion-android-add, -.ion-android-add-contact, -.ion-android-alarm, -.ion-android-archive, -.ion-android-arrow-back, -.ion-android-arrow-down-left, -.ion-android-arrow-down-right, -.ion-android-arrow-up-left, -.ion-android-arrow-up-right, -.ion-android-battery, -.ion-android-book, -.ion-android-calendar, -.ion-android-call, -.ion-android-camera, -.ion-android-chat, -.ion-android-checkmark, -.ion-android-clock, -.ion-android-close, -.ion-android-contact, -.ion-android-contacts, -.ion-android-data, -.ion-android-developer, -.ion-android-display, -.ion-android-download, -.ion-android-dropdown, -.ion-android-earth, -.ion-android-folder, -.ion-android-forums, -.ion-android-friends, -.ion-android-hand, -.ion-android-image, -.ion-android-inbox, -.ion-android-information, -.ion-android-keypad, -.ion-android-lightbulb, -.ion-android-locate, -.ion-android-location, -.ion-android-mail, -.ion-android-microphone, -.ion-android-mixer, -.ion-android-more, -.ion-android-note, -.ion-android-playstore, -.ion-android-printer, -.ion-android-promotion, -.ion-android-reminder, -.ion-android-remove, -.ion-android-search, -.ion-android-send, -.ion-android-settings, -.ion-android-share, -.ion-android-social, -.ion-android-social-user, -.ion-android-sort, -.ion-android-star, -.ion-android-stopwatch, -.ion-android-storage, -.ion-android-system-back, -.ion-android-system-home, -.ion-android-system-windows, -.ion-android-timer, -.ion-android-trash, -.ion-android-volume, -.ion-android-wifi, -.ion-archive, -.ion-arrow-down-a, -.ion-arrow-down-b, -.ion-arrow-down-c, -.ion-arrow-expand, -.ion-arrow-graph-down-left, -.ion-arrow-graph-down-right, -.ion-arrow-graph-up-left, -.ion-arrow-graph-up-right, -.ion-arrow-left-a, -.ion-arrow-left-b, -.ion-arrow-left-c, -.ion-arrow-move, -.ion-arrow-resize, -.ion-arrow-return-left, -.ion-arrow-return-right, -.ion-arrow-right-a, -.ion-arrow-right-b, -.ion-arrow-right-c, -.ion-arrow-shrink, -.ion-arrow-swap, -.ion-arrow-up-a, -.ion-arrow-up-b, -.ion-arrow-up-c, -.ion-at, -.ion-bag, -.ion-battery-charging, -.ion-battery-empty, -.ion-battery-full, -.ion-battery-half, -.ion-battery-low, -.ion-beaker, -.ion-beer, -.ion-bluetooth, -.ion-bookmark, -.ion-briefcase, -.ion-bug, -.ion-calculator, -.ion-calendar, -.ion-camera, -.ion-card, -.ion-chatbox, -.ion-chatbox-working, -.ion-chatboxes, -.ion-chatbubble, -.ion-chatbubble-working, -.ion-chatbubbles, -.ion-checkmark, -.ion-checkmark-circled, -.ion-checkmark-round, -.ion-chevron-down, -.ion-chevron-left, -.ion-chevron-right, -.ion-chevron-up, -.ion-clipboard, -.ion-clock, -.ion-close, -.ion-close-circled, -.ion-close-round, -.ion-cloud, -.ion-code, -.ion-code-download, -.ion-code-working, -.ion-coffee, -.ion-compass, -.ion-compose, -.ion-connection-bars, -.ion-contrast, -.ion-disc, -.ion-document, -.ion-document-text, -.ion-drag, -.ion-earth, -.ion-edit, -.ion-egg, -.ion-eject, -.ion-email, -.ion-eye, -.ion-eye-disabled, -.ion-female, -.ion-filing, -.ion-film-marker, -.ion-flag, -.ion-flash, -.ion-flash-off, -.ion-flask, -.ion-folder, -.ion-fork, -.ion-fork-repo, -.ion-forward, -.ion-game-controller-a, -.ion-game-controller-b, -.ion-gear-a, -.ion-gear-b, -.ion-grid, -.ion-hammer, -.ion-headphone, -.ion-heart, -.ion-help, -.ion-help-buoy, -.ion-help-circled, -.ion-home, -.ion-icecream, -.ion-icon-social-google-plus, -.ion-icon-social-google-plus-outline, -.ion-image, -.ion-images, -.ion-information, -.ion-information-circled, -.ion-ionic, -.ion-ios7-alarm, -.ion-ios7-alarm-outline, -.ion-ios7-albums, -.ion-ios7-albums-outline, -.ion-ios7-arrow-back, -.ion-ios7-arrow-down, -.ion-ios7-arrow-forward, -.ion-ios7-arrow-left, -.ion-ios7-arrow-right, -.ion-ios7-arrow-thin-down, -.ion-ios7-arrow-thin-left, -.ion-ios7-arrow-thin-right, -.ion-ios7-arrow-thin-up, -.ion-ios7-arrow-up, -.ion-ios7-at, -.ion-ios7-at-outline, -.ion-ios7-bell, -.ion-ios7-bell-outline, -.ion-ios7-bolt, -.ion-ios7-bolt-outline, -.ion-ios7-bookmarks, -.ion-ios7-bookmarks-outline, -.ion-ios7-box, -.ion-ios7-box-outline, -.ion-ios7-briefcase, -.ion-ios7-briefcase-outline, -.ion-ios7-browsers, -.ion-ios7-browsers-outline, -.ion-ios7-calculator, -.ion-ios7-calculator-outline, -.ion-ios7-calendar, -.ion-ios7-calendar-outline, -.ion-ios7-camera, -.ion-ios7-camera-outline, -.ion-ios7-cart, -.ion-ios7-cart-outline, -.ion-ios7-chatboxes, -.ion-ios7-chatboxes-outline, -.ion-ios7-chatbubble, -.ion-ios7-chatbubble-outline, -.ion-ios7-checkmark, -.ion-ios7-checkmark-empty, -.ion-ios7-checkmark-outline, -.ion-ios7-circle-filled, -.ion-ios7-circle-outline, -.ion-ios7-clock, -.ion-ios7-clock-outline, -.ion-ios7-close, -.ion-ios7-close-empty, -.ion-ios7-close-outline, -.ion-ios7-cloud, -.ion-ios7-cloud-download, -.ion-ios7-cloud-download-outline, -.ion-ios7-cloud-outline, -.ion-ios7-cloud-upload, -.ion-ios7-cloud-upload-outline, -.ion-ios7-cloudy, -.ion-ios7-cloudy-night, -.ion-ios7-cloudy-night-outline, -.ion-ios7-cloudy-outline, -.ion-ios7-cog, -.ion-ios7-cog-outline, -.ion-ios7-compose, -.ion-ios7-compose-outline, -.ion-ios7-contact, -.ion-ios7-contact-outline, -.ion-ios7-copy, -.ion-ios7-copy-outline, -.ion-ios7-download, -.ion-ios7-download-outline, -.ion-ios7-drag, -.ion-ios7-email, -.ion-ios7-email-outline, -.ion-ios7-eye, -.ion-ios7-eye-outline, -.ion-ios7-fastforward, -.ion-ios7-fastforward-outline, -.ion-ios7-filing, -.ion-ios7-filing-outline, -.ion-ios7-film, -.ion-ios7-film-outline, -.ion-ios7-flag, -.ion-ios7-flag-outline, -.ion-ios7-folder, -.ion-ios7-folder-outline, -.ion-ios7-gear, -.ion-ios7-gear-outline, -.ion-ios7-glasses, -.ion-ios7-glasses-outline, -.ion-ios7-heart, -.ion-ios7-heart-outline, -.ion-ios7-help, -.ion-ios7-help-empty, -.ion-ios7-help-outline, -.ion-ios7-infinite, -.ion-ios7-infinite-outline, -.ion-ios7-information, -.ion-ios7-information-empty, -.ion-ios7-information-outline, -.ion-ios7-ionic-outline, -.ion-ios7-keypad, -.ion-ios7-keypad-outline, -.ion-ios7-lightbulb, -.ion-ios7-lightbulb-outline, -.ion-ios7-location, -.ion-ios7-location-outline, -.ion-ios7-locked, -.ion-ios7-locked-outline, -.ion-ios7-medkit, -.ion-ios7-medkit-outline, -.ion-ios7-mic, -.ion-ios7-mic-off, -.ion-ios7-mic-outline, -.ion-ios7-minus, -.ion-ios7-minus-empty, -.ion-ios7-minus-outline, -.ion-ios7-monitor, -.ion-ios7-monitor-outline, -.ion-ios7-moon, -.ion-ios7-moon-outline, -.ion-ios7-more, -.ion-ios7-more-outline, -.ion-ios7-musical-note, -.ion-ios7-musical-notes, -.ion-ios7-navigate, -.ion-ios7-navigate-outline, -.ion-ios7-paperplane, -.ion-ios7-paperplane-outline, -.ion-ios7-partlysunny, -.ion-ios7-partlysunny-outline, -.ion-ios7-pause, -.ion-ios7-pause-outline, -.ion-ios7-people, -.ion-ios7-people-outline, -.ion-ios7-person, -.ion-ios7-person-outline, -.ion-ios7-personadd, -.ion-ios7-personadd-outline, -.ion-ios7-photos, -.ion-ios7-photos-outline, -.ion-ios7-pie, -.ion-ios7-pie-outline, -.ion-ios7-play, -.ion-ios7-play-outline, -.ion-ios7-plus, -.ion-ios7-plus-empty, -.ion-ios7-plus-outline, -.ion-ios7-pricetag, -.ion-ios7-pricetag-outline, -.ion-ios7-printer, -.ion-ios7-printer-outline, -.ion-ios7-rainy, -.ion-ios7-rainy-outline, -.ion-ios7-recording, -.ion-ios7-recording-outline, -.ion-ios7-redo, -.ion-ios7-redo-outline, -.ion-ios7-refresh, -.ion-ios7-refresh-empty, -.ion-ios7-refresh-outline, -.ion-ios7-reload, -.ion-ios7-rewind, -.ion-ios7-rewind-outline, -.ion-ios7-search, -.ion-ios7-search-strong, -.ion-ios7-skipbackward, -.ion-ios7-skipbackward-outline, -.ion-ios7-skipforward, -.ion-ios7-skipforward-outline, -.ion-ios7-snowy, -.ion-ios7-speedometer, -.ion-ios7-speedometer-outline, -.ion-ios7-star, -.ion-ios7-star-outline, -.ion-ios7-stopwatch, -.ion-ios7-stopwatch-outline, -.ion-ios7-sunny, -.ion-ios7-sunny-outline, -.ion-ios7-telephone, -.ion-ios7-telephone-outline, -.ion-ios7-thunderstorm, -.ion-ios7-thunderstorm-outline, -.ion-ios7-time, -.ion-ios7-time-outline, -.ion-ios7-timer, -.ion-ios7-timer-outline, -.ion-ios7-trash, -.ion-ios7-trash-outline, -.ion-ios7-undo, -.ion-ios7-undo-outline, -.ion-ios7-unlocked, -.ion-ios7-unlocked-outline, -.ion-ios7-upload, -.ion-ios7-upload-outline, -.ion-ios7-videocam, -.ion-ios7-videocam-outline, -.ion-ios7-volume-high, -.ion-ios7-volume-low, -.ion-ios7-wineglass, -.ion-ios7-wineglass-outline, -.ion-ios7-world, -.ion-ios7-world-outline, -.ion-ipad, -.ion-iphone, -.ion-ipod, -.ion-jet, -.ion-key, -.ion-knife, -.ion-laptop, -.ion-leaf, -.ion-levels, -.ion-lightbulb, -.ion-link, -.ion-load-a, -.ion-load-b, -.ion-load-c, -.ion-load-d, -.ion-location, -.ion-locked, -.ion-log-in, -.ion-log-out, -.ion-loop, -.ion-magnet, -.ion-male, -.ion-man, -.ion-map, -.ion-medkit, -.ion-mic-a, -.ion-mic-b, -.ion-mic-c, -.ion-minus, -.ion-minus-circled, -.ion-minus-round, -.ion-model-s, -.ion-monitor, -.ion-more, -.ion-music-note, -.ion-navicon, -.ion-navicon-round, -.ion-navigate, -.ion-no-smoking, -.ion-nuclear, -.ion-paper-airplane, -.ion-paperclip, -.ion-pause, -.ion-person, -.ion-person-add, -.ion-person-stalker, -.ion-pie-graph, -.ion-pin, -.ion-pinpoint, -.ion-pizza, -.ion-plane, -.ion-play, -.ion-playstation, -.ion-plus, -.ion-plus-circled, -.ion-plus-round, -.ion-pound, -.ion-power, -.ion-pricetag, -.ion-pricetags, -.ion-printer, -.ion-radio-waves, -.ion-record, -.ion-refresh, -.ion-reply, -.ion-reply-all, -.ion-search, -.ion-settings, -.ion-share, -.ion-shuffle, -.ion-skip-backward, -.ion-skip-forward, -.ion-social-android, -.ion-social-android-outline, -.ion-social-apple, -.ion-social-apple-outline, -.ion-social-bitcoin, -.ion-social-bitcoin-outline, -.ion-social-buffer, -.ion-social-buffer-outline, -.ion-social-designernews, -.ion-social-designernews-outline, -.ion-social-dribbble, -.ion-social-dribbble-outline, -.ion-social-dropbox, -.ion-social-dropbox-outline, -.ion-social-facebook, -.ion-social-facebook-outline, -.ion-social-freebsd-devil, -.ion-social-github, -.ion-social-github-outline, -.ion-social-googleplus, -.ion-social-googleplus-outline, -.ion-social-hackernews, -.ion-social-hackernews-outline, -.ion-social-linkedin, -.ion-social-linkedin-outline, -.ion-social-pinterest, -.ion-social-pinterest-outline, -.ion-social-reddit, -.ion-social-reddit-outline, -.ion-social-rss, -.ion-social-rss-outline, -.ion-social-skype, -.ion-social-skype-outline, -.ion-social-tumblr, -.ion-social-tumblr-outline, -.ion-social-tux, -.ion-social-twitter, -.ion-social-twitter-outline, -.ion-social-vimeo, -.ion-social-vimeo-outline, -.ion-social-windows, -.ion-social-windows-outline, -.ion-social-wordpress, -.ion-social-wordpress-outline, -.ion-social-yahoo, -.ion-social-yahoo-outline, -.ion-social-youtube, -.ion-social-youtube-outline, -.ion-speakerphone, -.ion-speedometer, -.ion-spoon, -.ion-star, -.ion-stats-bars, -.ion-steam, -.ion-stop, -.ion-thermometer, -.ion-thumbsdown, -.ion-thumbsup, -.ion-trash-a, -.ion-trash-b, -.ion-umbrella, -.ion-unlocked, -.ion-upload, -.ion-usb, -.ion-videocamera, -.ion-volume-high, -.ion-volume-low, -.ion-volume-medium, -.ion-volume-mute, -.ion-waterdrop, -.ion-wifi, -.ion-wineglass, -.ion-woman, -.ion-wrench, -.ion-xbox { - display: inline-block; - font-family: "Ionicons"; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - text-rendering: auto; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } - -.ion-spin, .ion-loading-a, -.ion-loading-b, -.ion-loading-c, -.ion-loading-d, -.ion-looping, -.ion-refreshing, -.ion-ios7-reloading { - -webkit-animation: spin 1s infinite linear; - -moz-animation: spin 1s infinite linear; - -o-animation: spin 1s infinite linear; - animation: spin 1s infinite linear; } - -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); } - - 100% { - -moz-transform: rotate(359deg); } } - -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); } - - 100% { - -webkit-transform: rotate(359deg); } } - -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); } - - 100% { - -o-transform: rotate(359deg); } } - -@-ms-keyframes spin { - 0% { - -ms-transform: rotate(0deg); } - - 100% { - -ms-transform: rotate(359deg); } } - -@keyframes spin { - 0% { - transform: rotate(0deg); } - - 100% { - transform: rotate(359deg); } } - -.ion-loading-a { - -webkit-animation-timing-function: steps(8, start); - -moz-animation-timing-function: steps(8, start); - animation-timing-function: steps(8, start); } - -.ion-alert:before { - content: "\f101"; } - -.ion-alert-circled:before { - content: "\f100"; } - -.ion-android-add:before { - content: "\f2c7"; } - -.ion-android-add-contact:before { - content: "\f2c6"; } - -.ion-android-alarm:before { - content: "\f2c8"; } - -.ion-android-archive:before { - content: "\f2c9"; } - -.ion-android-arrow-back:before { - content: "\f2ca"; } - -.ion-android-arrow-down-left:before { - content: "\f2cb"; } - -.ion-android-arrow-down-right:before { - content: "\f2cc"; } - -.ion-android-arrow-up-left:before { - content: "\f2cd"; } - -.ion-android-arrow-up-right:before { - content: "\f2ce"; } - -.ion-android-battery:before { - content: "\f2cf"; } - -.ion-android-book:before { - content: "\f2d0"; } - -.ion-android-calendar:before { - content: "\f2d1"; } - -.ion-android-call:before { - content: "\f2d2"; } - -.ion-android-camera:before { - content: "\f2d3"; } - -.ion-android-chat:before { - content: "\f2d4"; } - -.ion-android-checkmark:before { - content: "\f2d5"; } - -.ion-android-clock:before { - content: "\f2d6"; } - -.ion-android-close:before { - content: "\f2d7"; } - -.ion-android-contact:before { - content: "\f2d8"; } - -.ion-android-contacts:before { - content: "\f2d9"; } - -.ion-android-data:before { - content: "\f2da"; } - -.ion-android-developer:before { - content: "\f2db"; } - -.ion-android-display:before { - content: "\f2dc"; } - -.ion-android-download:before { - content: "\f2dd"; } - -.ion-android-dropdown:before { - content: "\f2de"; } - -.ion-android-earth:before { - content: "\f2df"; } - -.ion-android-folder:before { - content: "\f2e0"; } - -.ion-android-forums:before { - content: "\f2e1"; } - -.ion-android-friends:before { - content: "\f2e2"; } - -.ion-android-hand:before { - content: "\f2e3"; } - -.ion-android-image:before { - content: "\f2e4"; } - -.ion-android-inbox:before { - content: "\f2e5"; } - -.ion-android-information:before { - content: "\f2e6"; } - -.ion-android-keypad:before { - content: "\f2e7"; } - -.ion-android-lightbulb:before { - content: "\f2e8"; } - -.ion-android-locate:before { - content: "\f2e9"; } - -.ion-android-location:before { - content: "\f2ea"; } - -.ion-android-mail:before { - content: "\f2eb"; } - -.ion-android-microphone:before { - content: "\f2ec"; } - -.ion-android-mixer:before { - content: "\f2ed"; } - -.ion-android-more:before { - content: "\f2ee"; } - -.ion-android-note:before { - content: "\f2ef"; } - -.ion-android-playstore:before { - content: "\f2f0"; } - -.ion-android-printer:before { - content: "\f2f1"; } - -.ion-android-promotion:before { - content: "\f2f2"; } - -.ion-android-reminder:before { - content: "\f2f3"; } - -.ion-android-remove:before { - content: "\f2f4"; } - -.ion-android-search:before { - content: "\f2f5"; } - -.ion-android-send:before { - content: "\f2f6"; } - -.ion-android-settings:before { - content: "\f2f7"; } - -.ion-android-share:before { - content: "\f2f8"; } - -.ion-android-social:before { - content: "\f2fa"; } - -.ion-android-social-user:before { - content: "\f2f9"; } - -.ion-android-sort:before { - content: "\f2fb"; } - -.ion-android-star:before { - content: "\f2fc"; } - -.ion-android-stopwatch:before { - content: "\f2fd"; } - -.ion-android-storage:before { - content: "\f2fe"; } - -.ion-android-system-back:before { - content: "\f2ff"; } - -.ion-android-system-home:before { - content: "\f300"; } - -.ion-android-system-windows:before { - content: "\f301"; } - -.ion-android-timer:before { - content: "\f302"; } - -.ion-android-trash:before { - content: "\f303"; } - -.ion-android-volume:before { - content: "\f304"; } - -.ion-android-wifi:before { - content: "\f305"; } - -.ion-archive:before { - content: "\f102"; } - -.ion-arrow-down-a:before { - content: "\f103"; } - -.ion-arrow-down-b:before { - content: "\f104"; } - -.ion-arrow-down-c:before { - content: "\f105"; } - -.ion-arrow-expand:before { - content: "\f25e"; } - -.ion-arrow-graph-down-left:before { - content: "\f25f"; } - -.ion-arrow-graph-down-right:before { - content: "\f260"; } - -.ion-arrow-graph-up-left:before { - content: "\f261"; } - -.ion-arrow-graph-up-right:before { - content: "\f262"; } - -.ion-arrow-left-a:before { - content: "\f106"; } - -.ion-arrow-left-b:before { - content: "\f107"; } - -.ion-arrow-left-c:before { - content: "\f108"; } - -.ion-arrow-move:before { - content: "\f263"; } - -.ion-arrow-resize:before { - content: "\f264"; } - -.ion-arrow-return-left:before { - content: "\f265"; } - -.ion-arrow-return-right:before { - content: "\f266"; } - -.ion-arrow-right-a:before { - content: "\f109"; } - -.ion-arrow-right-b:before { - content: "\f10a"; } - -.ion-arrow-right-c:before { - content: "\f10b"; } - -.ion-arrow-shrink:before { - content: "\f267"; } - -.ion-arrow-swap:before { - content: "\f268"; } - -.ion-arrow-up-a:before { - content: "\f10c"; } - -.ion-arrow-up-b:before { - content: "\f10d"; } - -.ion-arrow-up-c:before { - content: "\f10e"; } - -.ion-at:before { - content: "\f10f"; } - -.ion-bag:before { - content: "\f110"; } - -.ion-battery-charging:before { - content: "\f111"; } - -.ion-battery-empty:before { - content: "\f112"; } - -.ion-battery-full:before { - content: "\f113"; } - -.ion-battery-half:before { - content: "\f114"; } - -.ion-battery-low:before { - content: "\f115"; } - -.ion-beaker:before { - content: "\f269"; } - -.ion-beer:before { - content: "\f26a"; } - -.ion-bluetooth:before { - content: "\f116"; } - -.ion-bookmark:before { - content: "\f26b"; } - -.ion-briefcase:before { - content: "\f26c"; } - -.ion-bug:before { - content: "\f2be"; } - -.ion-calculator:before { - content: "\f26d"; } - -.ion-calendar:before { - content: "\f117"; } - -.ion-camera:before { - content: "\f118"; } - -.ion-card:before { - content: "\f119"; } - -.ion-chatbox:before { - content: "\f11b"; } - -.ion-chatbox-working:before { - content: "\f11a"; } - -.ion-chatboxes:before { - content: "\f11c"; } - -.ion-chatbubble:before { - content: "\f11e"; } - -.ion-chatbubble-working:before { - content: "\f11d"; } - -.ion-chatbubbles:before { - content: "\f11f"; } - -.ion-checkmark:before { - content: "\f122"; } - -.ion-checkmark-circled:before { - content: "\f120"; } - -.ion-checkmark-round:before { - content: "\f121"; } - -.ion-chevron-down:before { - content: "\f123"; } - -.ion-chevron-left:before { - content: "\f124"; } - -.ion-chevron-right:before { - content: "\f125"; } - -.ion-chevron-up:before { - content: "\f126"; } - -.ion-clipboard:before { - content: "\f127"; } - -.ion-clock:before { - content: "\f26e"; } - -.ion-close:before { - content: "\f12a"; } - -.ion-close-circled:before { - content: "\f128"; } - -.ion-close-round:before { - content: "\f129"; } - -.ion-cloud:before { - content: "\f12b"; } - -.ion-code:before { - content: "\f271"; } - -.ion-code-download:before { - content: "\f26f"; } - -.ion-code-working:before { - content: "\f270"; } - -.ion-coffee:before { - content: "\f272"; } - -.ion-compass:before { - content: "\f273"; } - -.ion-compose:before { - content: "\f12c"; } - -.ion-connection-bars:before { - content: "\f274"; } - -.ion-contrast:before { - content: "\f275"; } - -.ion-disc:before { - content: "\f12d"; } - -.ion-document:before { - content: "\f12f"; } - -.ion-document-text:before { - content: "\f12e"; } - -.ion-drag:before { - content: "\f130"; } - -.ion-earth:before { - content: "\f276"; } - -.ion-edit:before { - content: "\f2bf"; } - -.ion-egg:before { - content: "\f277"; } - -.ion-eject:before { - content: "\f131"; } - -.ion-email:before { - content: "\f132"; } - -.ion-eye:before { - content: "\f133"; } - -.ion-eye-disabled:before { - content: "\f306"; } - -.ion-female:before { - content: "\f278"; } - -.ion-filing:before { - content: "\f134"; } - -.ion-film-marker:before { - content: "\f135"; } - -.ion-flag:before { - content: "\f279"; } - -.ion-flash:before { - content: "\f137"; } - -.ion-flash-off:before { - content: "\f136"; } - -.ion-flask:before { - content: "\f138"; } - -.ion-folder:before { - content: "\f139"; } - -.ion-fork:before { - content: "\f27a"; } - -.ion-fork-repo:before { - content: "\f2c0"; } - -.ion-forward:before { - content: "\f13a"; } - -.ion-game-controller-a:before { - content: "\f13b"; } - -.ion-game-controller-b:before { - content: "\f13c"; } - -.ion-gear-a:before { - content: "\f13d"; } - -.ion-gear-b:before { - content: "\f13e"; } - -.ion-grid:before { - content: "\f13f"; } - -.ion-hammer:before { - content: "\f27b"; } - -.ion-headphone:before { - content: "\f140"; } - -.ion-heart:before { - content: "\f141"; } - -.ion-help:before { - content: "\f143"; } - -.ion-help-buoy:before { - content: "\f27c"; } - -.ion-help-circled:before { - content: "\f142"; } - -.ion-home:before { - content: "\f144"; } - -.ion-icecream:before { - content: "\f27d"; } - -.ion-icon-social-google-plus:before { - content: "\f146"; } - -.ion-icon-social-google-plus-outline:before { - content: "\f145"; } - -.ion-image:before { - content: "\f147"; } - -.ion-images:before { - content: "\f148"; } - -.ion-information:before { - content: "\f14a"; } - -.ion-information-circled:before { - content: "\f149"; } - -.ion-ionic:before { - content: "\f14b"; } - -.ion-ios7-alarm:before { - content: "\f14d"; } - -.ion-ios7-alarm-outline:before { - content: "\f14c"; } - -.ion-ios7-albums:before { - content: "\f14f"; } - -.ion-ios7-albums-outline:before { - content: "\f14e"; } - -.ion-ios7-arrow-back:before { - content: "\f150"; } - -.ion-ios7-arrow-down:before { - content: "\f151"; } - -.ion-ios7-arrow-forward:before { - content: "\f152"; } - -.ion-ios7-arrow-left:before { - content: "\f153"; } - -.ion-ios7-arrow-right:before { - content: "\f154"; } - -.ion-ios7-arrow-thin-down:before { - content: "\f27e"; } - -.ion-ios7-arrow-thin-left:before { - content: "\f27f"; } - -.ion-ios7-arrow-thin-right:before { - content: "\f280"; } - -.ion-ios7-arrow-thin-up:before { - content: "\f281"; } - -.ion-ios7-arrow-up:before { - content: "\f155"; } - -.ion-ios7-at:before { - content: "\f157"; } - -.ion-ios7-at-outline:before { - content: "\f156"; } - -.ion-ios7-bell:before { - content: "\f159"; } - -.ion-ios7-bell-outline:before { - content: "\f158"; } - -.ion-ios7-bolt:before { - content: "\f15b"; } - -.ion-ios7-bolt-outline:before { - content: "\f15a"; } - -.ion-ios7-bookmarks:before { - content: "\f15d"; } - -.ion-ios7-bookmarks-outline:before { - content: "\f15c"; } - -.ion-ios7-box:before { - content: "\f15f"; } - -.ion-ios7-box-outline:before { - content: "\f15e"; } - -.ion-ios7-briefcase:before { - content: "\f283"; } - -.ion-ios7-briefcase-outline:before { - content: "\f282"; } - -.ion-ios7-browsers:before { - content: "\f161"; } - -.ion-ios7-browsers-outline:before { - content: "\f160"; } - -.ion-ios7-calculator:before { - content: "\f285"; } - -.ion-ios7-calculator-outline:before { - content: "\f284"; } - -.ion-ios7-calendar:before { - content: "\f163"; } - -.ion-ios7-calendar-outline:before { - content: "\f162"; } - -.ion-ios7-camera:before { - content: "\f165"; } - -.ion-ios7-camera-outline:before { - content: "\f164"; } - -.ion-ios7-cart:before { - content: "\f167"; } - -.ion-ios7-cart-outline:before { - content: "\f166"; } - -.ion-ios7-chatboxes:before { - content: "\f169"; } - -.ion-ios7-chatboxes-outline:before { - content: "\f168"; } - -.ion-ios7-chatbubble:before { - content: "\f16b"; } - -.ion-ios7-chatbubble-outline:before { - content: "\f16a"; } - -.ion-ios7-checkmark:before { - content: "\f16e"; } - -.ion-ios7-checkmark-empty:before { - content: "\f16c"; } - -.ion-ios7-checkmark-outline:before { - content: "\f16d"; } - -.ion-ios7-circle-filled:before { - content: "\f16f"; } - -.ion-ios7-circle-outline:before { - content: "\f170"; } - -.ion-ios7-clock:before { - content: "\f172"; } - -.ion-ios7-clock-outline:before { - content: "\f171"; } - -.ion-ios7-close:before { - content: "\f2bc"; } - -.ion-ios7-close-empty:before { - content: "\f2bd"; } - -.ion-ios7-close-outline:before { - content: "\f2bb"; } - -.ion-ios7-cloud:before { - content: "\f178"; } - -.ion-ios7-cloud-download:before { - content: "\f174"; } - -.ion-ios7-cloud-download-outline:before { - content: "\f173"; } - -.ion-ios7-cloud-outline:before { - content: "\f175"; } - -.ion-ios7-cloud-upload:before { - content: "\f177"; } - -.ion-ios7-cloud-upload-outline:before { - content: "\f176"; } - -.ion-ios7-cloudy:before { - content: "\f17a"; } - -.ion-ios7-cloudy-night:before { - content: "\f308"; } - -.ion-ios7-cloudy-night-outline:before { - content: "\f307"; } - -.ion-ios7-cloudy-outline:before { - content: "\f179"; } - -.ion-ios7-cog:before { - content: "\f17c"; } - -.ion-ios7-cog-outline:before { - content: "\f17b"; } - -.ion-ios7-compose:before { - content: "\f17e"; } - -.ion-ios7-compose-outline:before { - content: "\f17d"; } - -.ion-ios7-contact:before { - content: "\f180"; } - -.ion-ios7-contact-outline:before { - content: "\f17f"; } - -.ion-ios7-copy:before { - content: "\f182"; } - -.ion-ios7-copy-outline:before { - content: "\f181"; } - -.ion-ios7-download:before { - content: "\f184"; } - -.ion-ios7-download-outline:before { - content: "\f183"; } - -.ion-ios7-drag:before { - content: "\f185"; } - -.ion-ios7-email:before { - content: "\f187"; } - -.ion-ios7-email-outline:before { - content: "\f186"; } - -.ion-ios7-eye:before { - content: "\f189"; } - -.ion-ios7-eye-outline:before { - content: "\f188"; } - -.ion-ios7-fastforward:before { - content: "\f18b"; } - -.ion-ios7-fastforward-outline:before { - content: "\f18a"; } - -.ion-ios7-filing:before { - content: "\f18d"; } - -.ion-ios7-filing-outline:before { - content: "\f18c"; } - -.ion-ios7-film:before { - content: "\f18f"; } - -.ion-ios7-film-outline:before { - content: "\f18e"; } - -.ion-ios7-flag:before { - content: "\f191"; } - -.ion-ios7-flag-outline:before { - content: "\f190"; } - -.ion-ios7-folder:before { - content: "\f193"; } - -.ion-ios7-folder-outline:before { - content: "\f192"; } - -.ion-ios7-gear:before { - content: "\f195"; } - -.ion-ios7-gear-outline:before { - content: "\f194"; } - -.ion-ios7-glasses:before { - content: "\f197"; } - -.ion-ios7-glasses-outline:before { - content: "\f196"; } - -.ion-ios7-heart:before { - content: "\f199"; } - -.ion-ios7-heart-outline:before { - content: "\f198"; } - -.ion-ios7-help:before { - content: "\f19c"; } - -.ion-ios7-help-empty:before { - content: "\f19a"; } - -.ion-ios7-help-outline:before { - content: "\f19b"; } - -.ion-ios7-infinite:before { - content: "\f19e"; } - -.ion-ios7-infinite-outline:before { - content: "\f19d"; } - -.ion-ios7-information:before { - content: "\f1a1"; } - -.ion-ios7-information-empty:before { - content: "\f19f"; } - -.ion-ios7-information-outline:before { - content: "\f1a0"; } - -.ion-ios7-ionic-outline:before { - content: "\f1a2"; } - -.ion-ios7-keypad:before { - content: "\f1a4"; } - -.ion-ios7-keypad-outline:before { - content: "\f1a3"; } - -.ion-ios7-lightbulb:before { - content: "\f287"; } - -.ion-ios7-lightbulb-outline:before { - content: "\f286"; } - -.ion-ios7-location:before { - content: "\f1a6"; } - -.ion-ios7-location-outline:before { - content: "\f1a5"; } - -.ion-ios7-locked:before { - content: "\f1a8"; } - -.ion-ios7-locked-outline:before { - content: "\f1a7"; } - -.ion-ios7-medkit:before { - content: "\f289"; } - -.ion-ios7-medkit-outline:before { - content: "\f288"; } - -.ion-ios7-mic:before { - content: "\f1ab"; } - -.ion-ios7-mic-off:before { - content: "\f1a9"; } - -.ion-ios7-mic-outline:before { - content: "\f1aa"; } - -.ion-ios7-minus:before { - content: "\f1ae"; } - -.ion-ios7-minus-empty:before { - content: "\f1ac"; } - -.ion-ios7-minus-outline:before { - content: "\f1ad"; } - -.ion-ios7-monitor:before { - content: "\f1b0"; } - -.ion-ios7-monitor-outline:before { - content: "\f1af"; } - -.ion-ios7-moon:before { - content: "\f1b2"; } - -.ion-ios7-moon-outline:before { - content: "\f1b1"; } - -.ion-ios7-more:before { - content: "\f1b4"; } - -.ion-ios7-more-outline:before { - content: "\f1b3"; } - -.ion-ios7-musical-note:before { - content: "\f1b5"; } - -.ion-ios7-musical-notes:before { - content: "\f1b6"; } - -.ion-ios7-navigate:before { - content: "\f1b8"; } - -.ion-ios7-navigate-outline:before { - content: "\f1b7"; } - -.ion-ios7-paperplane:before { - content: "\f1ba"; } - -.ion-ios7-paperplane-outline:before { - content: "\f1b9"; } - -.ion-ios7-partlysunny:before { - content: "\f1bc"; } - -.ion-ios7-partlysunny-outline:before { - content: "\f1bb"; } - -.ion-ios7-pause:before { - content: "\f1be"; } - -.ion-ios7-pause-outline:before { - content: "\f1bd"; } - -.ion-ios7-people:before { - content: "\f1c0"; } - -.ion-ios7-people-outline:before { - content: "\f1bf"; } - -.ion-ios7-person:before { - content: "\f1c2"; } - -.ion-ios7-person-outline:before { - content: "\f1c1"; } - -.ion-ios7-personadd:before { - content: "\f1c4"; } - -.ion-ios7-personadd-outline:before { - content: "\f1c3"; } - -.ion-ios7-photos:before { - content: "\f1c6"; } - -.ion-ios7-photos-outline:before { - content: "\f1c5"; } - -.ion-ios7-pie:before { - content: "\f28b"; } - -.ion-ios7-pie-outline:before { - content: "\f28a"; } - -.ion-ios7-play:before { - content: "\f1c8"; } - -.ion-ios7-play-outline:before { - content: "\f1c7"; } - -.ion-ios7-plus:before { - content: "\f1cb"; } - -.ion-ios7-plus-empty:before { - content: "\f1c9"; } - -.ion-ios7-plus-outline:before { - content: "\f1ca"; } - -.ion-ios7-pricetag:before { - content: "\f28d"; } - -.ion-ios7-pricetag-outline:before { - content: "\f28c"; } - -.ion-ios7-printer:before { - content: "\f1cd"; } - -.ion-ios7-printer-outline:before { - content: "\f1cc"; } - -.ion-ios7-rainy:before { - content: "\f1cf"; } - -.ion-ios7-rainy-outline:before { - content: "\f1ce"; } - -.ion-ios7-recording:before { - content: "\f1d1"; } - -.ion-ios7-recording-outline:before { - content: "\f1d0"; } - -.ion-ios7-redo:before { - content: "\f1d3"; } - -.ion-ios7-redo-outline:before { - content: "\f1d2"; } - -.ion-ios7-refresh:before { - content: "\f1d6"; } - -.ion-ios7-refresh-empty:before { - content: "\f1d4"; } - -.ion-ios7-refresh-outline:before { - content: "\f1d5"; } - -.ion-ios7-reload:before, .ion-ios7-reloading:before { - content: "\f28e"; } - -.ion-ios7-rewind:before { - content: "\f1d8"; } - -.ion-ios7-rewind-outline:before { - content: "\f1d7"; } - -.ion-ios7-search:before { - content: "\f1da"; } - -.ion-ios7-search-strong:before { - content: "\f1d9"; } - -.ion-ios7-skipbackward:before { - content: "\f1dc"; } - -.ion-ios7-skipbackward-outline:before { - content: "\f1db"; } - -.ion-ios7-skipforward:before { - content: "\f1de"; } - -.ion-ios7-skipforward-outline:before { - content: "\f1dd"; } - -.ion-ios7-snowy:before { - content: "\f309"; } - -.ion-ios7-speedometer:before { - content: "\f290"; } - -.ion-ios7-speedometer-outline:before { - content: "\f28f"; } - -.ion-ios7-star:before { - content: "\f1e0"; } - -.ion-ios7-star-outline:before { - content: "\f1df"; } - -.ion-ios7-stopwatch:before { - content: "\f1e2"; } - -.ion-ios7-stopwatch-outline:before { - content: "\f1e1"; } - -.ion-ios7-sunny:before { - content: "\f1e4"; } - -.ion-ios7-sunny-outline:before { - content: "\f1e3"; } - -.ion-ios7-telephone:before { - content: "\f1e6"; } - -.ion-ios7-telephone-outline:before { - content: "\f1e5"; } - -.ion-ios7-thunderstorm:before { - content: "\f1e8"; } - -.ion-ios7-thunderstorm-outline:before { - content: "\f1e7"; } - -.ion-ios7-time:before { - content: "\f292"; } - -.ion-ios7-time-outline:before { - content: "\f291"; } - -.ion-ios7-timer:before { - content: "\f1ea"; } - -.ion-ios7-timer-outline:before { - content: "\f1e9"; } - -.ion-ios7-trash:before { - content: "\f1ec"; } - -.ion-ios7-trash-outline:before { - content: "\f1eb"; } - -.ion-ios7-undo:before { - content: "\f1ee"; } - -.ion-ios7-undo-outline:before { - content: "\f1ed"; } - -.ion-ios7-unlocked:before { - content: "\f1f0"; } - -.ion-ios7-unlocked-outline:before { - content: "\f1ef"; } - -.ion-ios7-upload:before { - content: "\f1f2"; } - -.ion-ios7-upload-outline:before { - content: "\f1f1"; } - -.ion-ios7-videocam:before { - content: "\f1f4"; } - -.ion-ios7-videocam-outline:before { - content: "\f1f3"; } - -.ion-ios7-volume-high:before { - content: "\f1f5"; } - -.ion-ios7-volume-low:before { - content: "\f1f6"; } - -.ion-ios7-wineglass:before { - content: "\f294"; } - -.ion-ios7-wineglass-outline:before { - content: "\f293"; } - -.ion-ios7-world:before { - content: "\f1f8"; } - -.ion-ios7-world-outline:before { - content: "\f1f7"; } - -.ion-ipad:before { - content: "\f1f9"; } - -.ion-iphone:before { - content: "\f1fa"; } - -.ion-ipod:before { - content: "\f1fb"; } - -.ion-jet:before { - content: "\f295"; } - -.ion-key:before { - content: "\f296"; } - -.ion-knife:before { - content: "\f297"; } - -.ion-laptop:before { - content: "\f1fc"; } - -.ion-leaf:before { - content: "\f1fd"; } - -.ion-levels:before { - content: "\f298"; } - -.ion-lightbulb:before { - content: "\f299"; } - -.ion-link:before { - content: "\f1fe"; } - -.ion-load-a:before, .ion-loading-a:before { - content: "\f29a"; } - -.ion-load-b:before, .ion-loading-b:before { - content: "\f29b"; } - -.ion-load-c:before, .ion-loading-c:before { - content: "\f29c"; } - -.ion-load-d:before, .ion-loading-d:before { - content: "\f29d"; } - -.ion-location:before { - content: "\f1ff"; } - -.ion-locked:before { - content: "\f200"; } - -.ion-log-in:before { - content: "\f29e"; } - -.ion-log-out:before { - content: "\f29f"; } - -.ion-loop:before, .ion-looping:before { - content: "\f201"; } - -.ion-magnet:before { - content: "\f2a0"; } - -.ion-male:before { - content: "\f2a1"; } - -.ion-man:before { - content: "\f202"; } - -.ion-map:before { - content: "\f203"; } - -.ion-medkit:before { - content: "\f2a2"; } - -.ion-mic-a:before { - content: "\f204"; } - -.ion-mic-b:before { - content: "\f205"; } - -.ion-mic-c:before { - content: "\f206"; } - -.ion-minus:before { - content: "\f209"; } - -.ion-minus-circled:before { - content: "\f207"; } - -.ion-minus-round:before { - content: "\f208"; } - -.ion-model-s:before { - content: "\f2c1"; } - -.ion-monitor:before { - content: "\f20a"; } - -.ion-more:before { - content: "\f20b"; } - -.ion-music-note:before { - content: "\f20c"; } - -.ion-navicon:before { - content: "\f20e"; } - -.ion-navicon-round:before { - content: "\f20d"; } - -.ion-navigate:before { - content: "\f2a3"; } - -.ion-no-smoking:before { - content: "\f2c2"; } - -.ion-nuclear:before { - content: "\f2a4"; } - -.ion-paper-airplane:before { - content: "\f2c3"; } - -.ion-paperclip:before { - content: "\f20f"; } - -.ion-pause:before { - content: "\f210"; } - -.ion-person:before { - content: "\f213"; } - -.ion-person-add:before { - content: "\f211"; } - -.ion-person-stalker:before { - content: "\f212"; } - -.ion-pie-graph:before { - content: "\f2a5"; } - -.ion-pin:before { - content: "\f2a6"; } - -.ion-pinpoint:before { - content: "\f2a7"; } - -.ion-pizza:before { - content: "\f2a8"; } - -.ion-plane:before { - content: "\f214"; } - -.ion-play:before { - content: "\f215"; } - -.ion-playstation:before { - content: "\f30a"; } - -.ion-plus:before { - content: "\f218"; } - -.ion-plus-circled:before { - content: "\f216"; } - -.ion-plus-round:before { - content: "\f217"; } - -.ion-pound:before { - content: "\f219"; } - -.ion-power:before { - content: "\f2a9"; } - -.ion-pricetag:before { - content: "\f2aa"; } - -.ion-pricetags:before { - content: "\f2ab"; } - -.ion-printer:before { - content: "\f21a"; } - -.ion-radio-waves:before { - content: "\f2ac"; } - -.ion-record:before { - content: "\f21b"; } - -.ion-refresh:before, .ion-refreshing:before { - content: "\f21c"; } - -.ion-reply:before { - content: "\f21e"; } - -.ion-reply-all:before { - content: "\f21d"; } - -.ion-search:before { - content: "\f21f"; } - -.ion-settings:before { - content: "\f2ad"; } - -.ion-share:before { - content: "\f220"; } - -.ion-shuffle:before { - content: "\f221"; } - -.ion-skip-backward:before { - content: "\f222"; } - -.ion-skip-forward:before { - content: "\f223"; } - -.ion-social-android:before { - content: "\f225"; } - -.ion-social-android-outline:before { - content: "\f224"; } - -.ion-social-apple:before { - content: "\f227"; } - -.ion-social-apple-outline:before { - content: "\f226"; } - -.ion-social-bitcoin:before { - content: "\f2af"; } - -.ion-social-bitcoin-outline:before { - content: "\f2ae"; } - -.ion-social-buffer:before { - content: "\f229"; } - -.ion-social-buffer-outline:before { - content: "\f228"; } - -.ion-social-designernews:before { - content: "\f22b"; } - -.ion-social-designernews-outline:before { - content: "\f22a"; } - -.ion-social-dribbble:before { - content: "\f22d"; } - -.ion-social-dribbble-outline:before { - content: "\f22c"; } - -.ion-social-dropbox:before { - content: "\f22f"; } - -.ion-social-dropbox-outline:before { - content: "\f22e"; } - -.ion-social-facebook:before { - content: "\f231"; } - -.ion-social-facebook-outline:before { - content: "\f230"; } - -.ion-social-freebsd-devil:before { - content: "\f2c4"; } - -.ion-social-github:before { - content: "\f233"; } - -.ion-social-github-outline:before { - content: "\f232"; } - -.ion-social-googleplus:before { - content: "\f235"; } - -.ion-social-googleplus-outline:before { - content: "\f234"; } - -.ion-social-hackernews:before { - content: "\f237"; } - -.ion-social-hackernews-outline:before { - content: "\f236"; } - -.ion-social-linkedin:before { - content: "\f239"; } - -.ion-social-linkedin-outline:before { - content: "\f238"; } - -.ion-social-pinterest:before { - content: "\f2b1"; } - -.ion-social-pinterest-outline:before { - content: "\f2b0"; } - -.ion-social-reddit:before { - content: "\f23b"; } - -.ion-social-reddit-outline:before { - content: "\f23a"; } - -.ion-social-rss:before { - content: "\f23d"; } - -.ion-social-rss-outline:before { - content: "\f23c"; } - -.ion-social-skype:before { - content: "\f23f"; } - -.ion-social-skype-outline:before { - content: "\f23e"; } - -.ion-social-tumblr:before { - content: "\f241"; } - -.ion-social-tumblr-outline:before { - content: "\f240"; } - -.ion-social-tux:before { - content: "\f2c5"; } - -.ion-social-twitter:before { - content: "\f243"; } - -.ion-social-twitter-outline:before { - content: "\f242"; } - -.ion-social-vimeo:before { - content: "\f245"; } - -.ion-social-vimeo-outline:before { - content: "\f244"; } - -.ion-social-windows:before { - content: "\f247"; } - -.ion-social-windows-outline:before { - content: "\f246"; } - -.ion-social-wordpress:before { - content: "\f249"; } - -.ion-social-wordpress-outline:before { - content: "\f248"; } - -.ion-social-yahoo:before { - content: "\f24b"; } - -.ion-social-yahoo-outline:before { - content: "\f24a"; } - -.ion-social-youtube:before { - content: "\f24d"; } - -.ion-social-youtube-outline:before { - content: "\f24c"; } - -.ion-speakerphone:before { - content: "\f2b2"; } - -.ion-speedometer:before { - content: "\f2b3"; } - -.ion-spoon:before { - content: "\f2b4"; } - -.ion-star:before { - content: "\f24e"; } - -.ion-stats-bars:before { - content: "\f2b5"; } - -.ion-steam:before { - content: "\f30b"; } - -.ion-stop:before { - content: "\f24f"; } - -.ion-thermometer:before { - content: "\f2b6"; } - -.ion-thumbsdown:before { - content: "\f250"; } - -.ion-thumbsup:before { - content: "\f251"; } - -.ion-trash-a:before { - content: "\f252"; } - -.ion-trash-b:before { - content: "\f253"; } - -.ion-umbrella:before { - content: "\f2b7"; } - -.ion-unlocked:before { - content: "\f254"; } - -.ion-upload:before { - content: "\f255"; } - -.ion-usb:before { - content: "\f2b8"; } - -.ion-videocamera:before { - content: "\f256"; } - -.ion-volume-high:before { - content: "\f257"; } - -.ion-volume-low:before { - content: "\f258"; } - -.ion-volume-medium:before { - content: "\f259"; } - -.ion-volume-mute:before { - content: "\f25a"; } - -.ion-waterdrop:before { - content: "\f25b"; } - -.ion-wifi:before { - content: "\f25c"; } - -.ion-wineglass:before { - content: "\f2b9"; } - -.ion-woman:before { - content: "\f25d"; } - -.ion-wrench:before { - content: "\f2ba"; } - -.ion-xbox:before { - content: "\f30c"; } diff --git a/css/ionicons.min.css b/css/ionicons.min.css deleted file mode 100644 index 444760494..000000000 --- a/css/ionicons.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - Ionicons, v1.4.0 - Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ - https://twitter.com/helloimben https://twitter.com/ionicframework - MIT License: https://github.com/driftyco/ionicons -*/@font-face{font-family:"Ionicons";src:url("../fonts/ionicons.eot?v=1.4.0");src:url("../fonts/ionicons.eot?v=1.4.0#iefix") format("embedded-opentype"),url("../fonts/ionicons.ttf?v=1.4.0") format("truetype"),url("../fonts/ionicons.woff?v=1.4.0") format("woff"),url("../fonts/ionicons.svg?v=1.4.0#Ionicons") format("svg");font-weight:normal;font-style:normal}.ion,.ion-loading-a,.ion-loading-b,.ion-loading-c,.ion-loading-d,.ion-looping,.ion-refreshing,.ion-ios7-reloading,.ionicons,.ion-alert,.ion-alert-circled,.ion-android-add,.ion-android-add-contact,.ion-android-alarm,.ion-android-archive,.ion-android-arrow-back,.ion-android-arrow-down-left,.ion-android-arrow-down-right,.ion-android-arrow-up-left,.ion-android-arrow-up-right,.ion-android-battery,.ion-android-book,.ion-android-calendar,.ion-android-call,.ion-android-camera,.ion-android-chat,.ion-android-checkmark,.ion-android-clock,.ion-android-close,.ion-android-contact,.ion-android-contacts,.ion-android-data,.ion-android-developer,.ion-android-display,.ion-android-download,.ion-android-dropdown,.ion-android-earth,.ion-android-folder,.ion-android-forums,.ion-android-friends,.ion-android-hand,.ion-android-image,.ion-android-inbox,.ion-android-information,.ion-android-keypad,.ion-android-lightbulb,.ion-android-locate,.ion-android-location,.ion-android-mail,.ion-android-microphone,.ion-android-mixer,.ion-android-more,.ion-android-note,.ion-android-playstore,.ion-android-printer,.ion-android-promotion,.ion-android-reminder,.ion-android-remove,.ion-android-search,.ion-android-send,.ion-android-settings,.ion-android-share,.ion-android-social,.ion-android-social-user,.ion-android-sort,.ion-android-star,.ion-android-stopwatch,.ion-android-storage,.ion-android-system-back,.ion-android-system-home,.ion-android-system-windows,.ion-android-timer,.ion-android-trash,.ion-android-volume,.ion-android-wifi,.ion-archive,.ion-arrow-down-a,.ion-arrow-down-b,.ion-arrow-down-c,.ion-arrow-expand,.ion-arrow-graph-down-left,.ion-arrow-graph-down-right,.ion-arrow-graph-up-left,.ion-arrow-graph-up-right,.ion-arrow-left-a,.ion-arrow-left-b,.ion-arrow-left-c,.ion-arrow-move,.ion-arrow-resize,.ion-arrow-return-left,.ion-arrow-return-right,.ion-arrow-right-a,.ion-arrow-right-b,.ion-arrow-right-c,.ion-arrow-shrink,.ion-arrow-swap,.ion-arrow-up-a,.ion-arrow-up-b,.ion-arrow-up-c,.ion-at,.ion-bag,.ion-battery-charging,.ion-battery-empty,.ion-battery-full,.ion-battery-half,.ion-battery-low,.ion-beaker,.ion-beer,.ion-bluetooth,.ion-bookmark,.ion-briefcase,.ion-bug,.ion-calculator,.ion-calendar,.ion-camera,.ion-card,.ion-chatbox,.ion-chatbox-working,.ion-chatboxes,.ion-chatbubble,.ion-chatbubble-working,.ion-chatbubbles,.ion-checkmark,.ion-checkmark-circled,.ion-checkmark-round,.ion-chevron-down,.ion-chevron-left,.ion-chevron-right,.ion-chevron-up,.ion-clipboard,.ion-clock,.ion-close,.ion-close-circled,.ion-close-round,.ion-cloud,.ion-code,.ion-code-download,.ion-code-working,.ion-coffee,.ion-compass,.ion-compose,.ion-connection-bars,.ion-contrast,.ion-disc,.ion-document,.ion-document-text,.ion-drag,.ion-earth,.ion-edit,.ion-egg,.ion-eject,.ion-email,.ion-eye,.ion-eye-disabled,.ion-female,.ion-filing,.ion-film-marker,.ion-flag,.ion-flash,.ion-flash-off,.ion-flask,.ion-folder,.ion-fork,.ion-fork-repo,.ion-forward,.ion-game-controller-a,.ion-game-controller-b,.ion-gear-a,.ion-gear-b,.ion-grid,.ion-hammer,.ion-headphone,.ion-heart,.ion-help,.ion-help-buoy,.ion-help-circled,.ion-home,.ion-icecream,.ion-icon-social-google-plus,.ion-icon-social-google-plus-outline,.ion-image,.ion-images,.ion-information,.ion-information-circled,.ion-ionic,.ion-ios7-alarm,.ion-ios7-alarm-outline,.ion-ios7-albums,.ion-ios7-albums-outline,.ion-ios7-arrow-back,.ion-ios7-arrow-down,.ion-ios7-arrow-forward,.ion-ios7-arrow-left,.ion-ios7-arrow-right,.ion-ios7-arrow-thin-down,.ion-ios7-arrow-thin-left,.ion-ios7-arrow-thin-right,.ion-ios7-arrow-thin-up,.ion-ios7-arrow-up,.ion-ios7-at,.ion-ios7-at-outline,.ion-ios7-bell,.ion-ios7-bell-outline,.ion-ios7-bolt,.ion-ios7-bolt-outline,.ion-ios7-bookmarks,.ion-ios7-bookmarks-outline,.ion-ios7-box,.ion-ios7-box-outline,.ion-ios7-briefcase,.ion-ios7-briefcase-outline,.ion-ios7-browsers,.ion-ios7-browsers-outline,.ion-ios7-calculator,.ion-ios7-calculator-outline,.ion-ios7-calendar,.ion-ios7-calendar-outline,.ion-ios7-camera,.ion-ios7-camera-outline,.ion-ios7-cart,.ion-ios7-cart-outline,.ion-ios7-chatboxes,.ion-ios7-chatboxes-outline,.ion-ios7-chatbubble,.ion-ios7-chatbubble-outline,.ion-ios7-checkmark,.ion-ios7-checkmark-empty,.ion-ios7-checkmark-outline,.ion-ios7-circle-filled,.ion-ios7-circle-outline,.ion-ios7-clock,.ion-ios7-clock-outline,.ion-ios7-close,.ion-ios7-close-empty,.ion-ios7-close-outline,.ion-ios7-cloud,.ion-ios7-cloud-download,.ion-ios7-cloud-download-outline,.ion-ios7-cloud-outline,.ion-ios7-cloud-upload,.ion-ios7-cloud-upload-outline,.ion-ios7-cloudy,.ion-ios7-cloudy-night,.ion-ios7-cloudy-night-outline,.ion-ios7-cloudy-outline,.ion-ios7-cog,.ion-ios7-cog-outline,.ion-ios7-compose,.ion-ios7-compose-outline,.ion-ios7-contact,.ion-ios7-contact-outline,.ion-ios7-copy,.ion-ios7-copy-outline,.ion-ios7-download,.ion-ios7-download-outline,.ion-ios7-drag,.ion-ios7-email,.ion-ios7-email-outline,.ion-ios7-eye,.ion-ios7-eye-outline,.ion-ios7-fastforward,.ion-ios7-fastforward-outline,.ion-ios7-filing,.ion-ios7-filing-outline,.ion-ios7-film,.ion-ios7-film-outline,.ion-ios7-flag,.ion-ios7-flag-outline,.ion-ios7-folder,.ion-ios7-folder-outline,.ion-ios7-gear,.ion-ios7-gear-outline,.ion-ios7-glasses,.ion-ios7-glasses-outline,.ion-ios7-heart,.ion-ios7-heart-outline,.ion-ios7-help,.ion-ios7-help-empty,.ion-ios7-help-outline,.ion-ios7-infinite,.ion-ios7-infinite-outline,.ion-ios7-information,.ion-ios7-information-empty,.ion-ios7-information-outline,.ion-ios7-ionic-outline,.ion-ios7-keypad,.ion-ios7-keypad-outline,.ion-ios7-lightbulb,.ion-ios7-lightbulb-outline,.ion-ios7-location,.ion-ios7-location-outline,.ion-ios7-locked,.ion-ios7-locked-outline,.ion-ios7-medkit,.ion-ios7-medkit-outline,.ion-ios7-mic,.ion-ios7-mic-off,.ion-ios7-mic-outline,.ion-ios7-minus,.ion-ios7-minus-empty,.ion-ios7-minus-outline,.ion-ios7-monitor,.ion-ios7-monitor-outline,.ion-ios7-moon,.ion-ios7-moon-outline,.ion-ios7-more,.ion-ios7-more-outline,.ion-ios7-musical-note,.ion-ios7-musical-notes,.ion-ios7-navigate,.ion-ios7-navigate-outline,.ion-ios7-paperplane,.ion-ios7-paperplane-outline,.ion-ios7-partlysunny,.ion-ios7-partlysunny-outline,.ion-ios7-pause,.ion-ios7-pause-outline,.ion-ios7-people,.ion-ios7-people-outline,.ion-ios7-person,.ion-ios7-person-outline,.ion-ios7-personadd,.ion-ios7-personadd-outline,.ion-ios7-photos,.ion-ios7-photos-outline,.ion-ios7-pie,.ion-ios7-pie-outline,.ion-ios7-play,.ion-ios7-play-outline,.ion-ios7-plus,.ion-ios7-plus-empty,.ion-ios7-plus-outline,.ion-ios7-pricetag,.ion-ios7-pricetag-outline,.ion-ios7-printer,.ion-ios7-printer-outline,.ion-ios7-rainy,.ion-ios7-rainy-outline,.ion-ios7-recording,.ion-ios7-recording-outline,.ion-ios7-redo,.ion-ios7-redo-outline,.ion-ios7-refresh,.ion-ios7-refresh-empty,.ion-ios7-refresh-outline,.ion-ios7-reload,.ion-ios7-rewind,.ion-ios7-rewind-outline,.ion-ios7-search,.ion-ios7-search-strong,.ion-ios7-skipbackward,.ion-ios7-skipbackward-outline,.ion-ios7-skipforward,.ion-ios7-skipforward-outline,.ion-ios7-snowy,.ion-ios7-speedometer,.ion-ios7-speedometer-outline,.ion-ios7-star,.ion-ios7-star-outline,.ion-ios7-stopwatch,.ion-ios7-stopwatch-outline,.ion-ios7-sunny,.ion-ios7-sunny-outline,.ion-ios7-telephone,.ion-ios7-telephone-outline,.ion-ios7-thunderstorm,.ion-ios7-thunderstorm-outline,.ion-ios7-time,.ion-ios7-time-outline,.ion-ios7-timer,.ion-ios7-timer-outline,.ion-ios7-trash,.ion-ios7-trash-outline,.ion-ios7-undo,.ion-ios7-undo-outline,.ion-ios7-unlocked,.ion-ios7-unlocked-outline,.ion-ios7-upload,.ion-ios7-upload-outline,.ion-ios7-videocam,.ion-ios7-videocam-outline,.ion-ios7-volume-high,.ion-ios7-volume-low,.ion-ios7-wineglass,.ion-ios7-wineglass-outline,.ion-ios7-world,.ion-ios7-world-outline,.ion-ipad,.ion-iphone,.ion-ipod,.ion-jet,.ion-key,.ion-knife,.ion-laptop,.ion-leaf,.ion-levels,.ion-lightbulb,.ion-link,.ion-load-a,.ion-load-b,.ion-load-c,.ion-load-d,.ion-location,.ion-locked,.ion-log-in,.ion-log-out,.ion-loop,.ion-magnet,.ion-male,.ion-man,.ion-map,.ion-medkit,.ion-mic-a,.ion-mic-b,.ion-mic-c,.ion-minus,.ion-minus-circled,.ion-minus-round,.ion-model-s,.ion-monitor,.ion-more,.ion-music-note,.ion-navicon,.ion-navicon-round,.ion-navigate,.ion-no-smoking,.ion-nuclear,.ion-paper-airplane,.ion-paperclip,.ion-pause,.ion-person,.ion-person-add,.ion-person-stalker,.ion-pie-graph,.ion-pin,.ion-pinpoint,.ion-pizza,.ion-plane,.ion-play,.ion-playstation,.ion-plus,.ion-plus-circled,.ion-plus-round,.ion-pound,.ion-power,.ion-pricetag,.ion-pricetags,.ion-printer,.ion-radio-waves,.ion-record,.ion-refresh,.ion-reply,.ion-reply-all,.ion-search,.ion-settings,.ion-share,.ion-shuffle,.ion-skip-backward,.ion-skip-forward,.ion-social-android,.ion-social-android-outline,.ion-social-apple,.ion-social-apple-outline,.ion-social-bitcoin,.ion-social-bitcoin-outline,.ion-social-buffer,.ion-social-buffer-outline,.ion-social-designernews,.ion-social-designernews-outline,.ion-social-dribbble,.ion-social-dribbble-outline,.ion-social-dropbox,.ion-social-dropbox-outline,.ion-social-facebook,.ion-social-facebook-outline,.ion-social-freebsd-devil,.ion-social-github,.ion-social-github-outline,.ion-social-googleplus,.ion-social-googleplus-outline,.ion-social-hackernews,.ion-social-hackernews-outline,.ion-social-linkedin,.ion-social-linkedin-outline,.ion-social-pinterest,.ion-social-pinterest-outline,.ion-social-reddit,.ion-social-reddit-outline,.ion-social-rss,.ion-social-rss-outline,.ion-social-skype,.ion-social-skype-outline,.ion-social-tumblr,.ion-social-tumblr-outline,.ion-social-tux,.ion-social-twitter,.ion-social-twitter-outline,.ion-social-vimeo,.ion-social-vimeo-outline,.ion-social-windows,.ion-social-windows-outline,.ion-social-wordpress,.ion-social-wordpress-outline,.ion-social-yahoo,.ion-social-yahoo-outline,.ion-social-youtube,.ion-social-youtube-outline,.ion-speakerphone,.ion-speedometer,.ion-spoon,.ion-star,.ion-stats-bars,.ion-steam,.ion-stop,.ion-thermometer,.ion-thumbsdown,.ion-thumbsup,.ion-trash-a,.ion-trash-b,.ion-umbrella,.ion-unlocked,.ion-upload,.ion-usb,.ion-videocamera,.ion-volume-high,.ion-volume-low,.ion-volume-medium,.ion-volume-mute,.ion-waterdrop,.ion-wifi,.ion-wineglass,.ion-woman,.ion-wrench,.ion-xbox{display:inline-block;font-family:"Ionicons";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-spin,.ion-loading-a,.ion-loading-b,.ion-loading-c,.ion-loading-d,.ion-looping,.ion-refreshing,.ion-ios7-reloading{-webkit-animation:spin 1s infinite linear;-moz-animation:spin 1s infinite linear;-o-animation:spin 1s infinite linear;animation:spin 1s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.ion-loading-a{-webkit-animation-timing-function:steps(8, start);-moz-animation-timing-function:steps(8, start);animation-timing-function:steps(8, start)}.ion-alert:before{content:"\f101"}.ion-alert-circled:before{content:"\f100"}.ion-android-add:before{content:"\f2c7"}.ion-android-add-contact:before{content:"\f2c6"}.ion-android-alarm:before{content:"\f2c8"}.ion-android-archive:before{content:"\f2c9"}.ion-android-arrow-back:before{content:"\f2ca"}.ion-android-arrow-down-left:before{content:"\f2cb"}.ion-android-arrow-down-right:before{content:"\f2cc"}.ion-android-arrow-up-left:before{content:"\f2cd"}.ion-android-arrow-up-right:before{content:"\f2ce"}.ion-android-battery:before{content:"\f2cf"}.ion-android-book:before{content:"\f2d0"}.ion-android-calendar:before{content:"\f2d1"}.ion-android-call:before{content:"\f2d2"}.ion-android-camera:before{content:"\f2d3"}.ion-android-chat:before{content:"\f2d4"}.ion-android-checkmark:before{content:"\f2d5"}.ion-android-clock:before{content:"\f2d6"}.ion-android-close:before{content:"\f2d7"}.ion-android-contact:before{content:"\f2d8"}.ion-android-contacts:before{content:"\f2d9"}.ion-android-data:before{content:"\f2da"}.ion-android-developer:before{content:"\f2db"}.ion-android-display:before{content:"\f2dc"}.ion-android-download:before{content:"\f2dd"}.ion-android-dropdown:before{content:"\f2de"}.ion-android-earth:before{content:"\f2df"}.ion-android-folder:before{content:"\f2e0"}.ion-android-forums:before{content:"\f2e1"}.ion-android-friends:before{content:"\f2e2"}.ion-android-hand:before{content:"\f2e3"}.ion-android-image:before{content:"\f2e4"}.ion-android-inbox:before{content:"\f2e5"}.ion-android-information:before{content:"\f2e6"}.ion-android-keypad:before{content:"\f2e7"}.ion-android-lightbulb:before{content:"\f2e8"}.ion-android-locate:before{content:"\f2e9"}.ion-android-location:before{content:"\f2ea"}.ion-android-mail:before{content:"\f2eb"}.ion-android-microphone:before{content:"\f2ec"}.ion-android-mixer:before{content:"\f2ed"}.ion-android-more:before{content:"\f2ee"}.ion-android-note:before{content:"\f2ef"}.ion-android-playstore:before{content:"\f2f0"}.ion-android-printer:before{content:"\f2f1"}.ion-android-promotion:before{content:"\f2f2"}.ion-android-reminder:before{content:"\f2f3"}.ion-android-remove:before{content:"\f2f4"}.ion-android-search:before{content:"\f2f5"}.ion-android-send:before{content:"\f2f6"}.ion-android-settings:before{content:"\f2f7"}.ion-android-share:before{content:"\f2f8"}.ion-android-social:before{content:"\f2fa"}.ion-android-social-user:before{content:"\f2f9"}.ion-android-sort:before{content:"\f2fb"}.ion-android-star:before{content:"\f2fc"}.ion-android-stopwatch:before{content:"\f2fd"}.ion-android-storage:before{content:"\f2fe"}.ion-android-system-back:before{content:"\f2ff"}.ion-android-system-home:before{content:"\f300"}.ion-android-system-windows:before{content:"\f301"}.ion-android-timer:before{content:"\f302"}.ion-android-trash:before{content:"\f303"}.ion-android-volume:before{content:"\f304"}.ion-android-wifi:before{content:"\f305"}.ion-archive:before{content:"\f102"}.ion-arrow-down-a:before{content:"\f103"}.ion-arrow-down-b:before{content:"\f104"}.ion-arrow-down-c:before{content:"\f105"}.ion-arrow-expand:before{content:"\f25e"}.ion-arrow-graph-down-left:before{content:"\f25f"}.ion-arrow-graph-down-right:before{content:"\f260"}.ion-arrow-graph-up-left:before{content:"\f261"}.ion-arrow-graph-up-right:before{content:"\f262"}.ion-arrow-left-a:before{content:"\f106"}.ion-arrow-left-b:before{content:"\f107"}.ion-arrow-left-c:before{content:"\f108"}.ion-arrow-move:before{content:"\f263"}.ion-arrow-resize:before{content:"\f264"}.ion-arrow-return-left:before{content:"\f265"}.ion-arrow-return-right:before{content:"\f266"}.ion-arrow-right-a:before{content:"\f109"}.ion-arrow-right-b:before{content:"\f10a"}.ion-arrow-right-c:before{content:"\f10b"}.ion-arrow-shrink:before{content:"\f267"}.ion-arrow-swap:before{content:"\f268"}.ion-arrow-up-a:before{content:"\f10c"}.ion-arrow-up-b:before{content:"\f10d"}.ion-arrow-up-c:before{content:"\f10e"}.ion-at:before{content:"\f10f"}.ion-bag:before{content:"\f110"}.ion-battery-charging:before{content:"\f111"}.ion-battery-empty:before{content:"\f112"}.ion-battery-full:before{content:"\f113"}.ion-battery-half:before{content:"\f114"}.ion-battery-low:before{content:"\f115"}.ion-beaker:before{content:"\f269"}.ion-beer:before{content:"\f26a"}.ion-bluetooth:before{content:"\f116"}.ion-bookmark:before{content:"\f26b"}.ion-briefcase:before{content:"\f26c"}.ion-bug:before{content:"\f2be"}.ion-calculator:before{content:"\f26d"}.ion-calendar:before{content:"\f117"}.ion-camera:before{content:"\f118"}.ion-card:before{content:"\f119"}.ion-chatbox:before{content:"\f11b"}.ion-chatbox-working:before{content:"\f11a"}.ion-chatboxes:before{content:"\f11c"}.ion-chatbubble:before{content:"\f11e"}.ion-chatbubble-working:before{content:"\f11d"}.ion-chatbubbles:before{content:"\f11f"}.ion-checkmark:before{content:"\f122"}.ion-checkmark-circled:before{content:"\f120"}.ion-checkmark-round:before{content:"\f121"}.ion-chevron-down:before{content:"\f123"}.ion-chevron-left:before{content:"\f124"}.ion-chevron-right:before{content:"\f125"}.ion-chevron-up:before{content:"\f126"}.ion-clipboard:before{content:"\f127"}.ion-clock:before{content:"\f26e"}.ion-close:before{content:"\f12a"}.ion-close-circled:before{content:"\f128"}.ion-close-round:before{content:"\f129"}.ion-cloud:before{content:"\f12b"}.ion-code:before{content:"\f271"}.ion-code-download:before{content:"\f26f"}.ion-code-working:before{content:"\f270"}.ion-coffee:before{content:"\f272"}.ion-compass:before{content:"\f273"}.ion-compose:before{content:"\f12c"}.ion-connection-bars:before{content:"\f274"}.ion-contrast:before{content:"\f275"}.ion-disc:before{content:"\f12d"}.ion-document:before{content:"\f12f"}.ion-document-text:before{content:"\f12e"}.ion-drag:before{content:"\f130"}.ion-earth:before{content:"\f276"}.ion-edit:before{content:"\f2bf"}.ion-egg:before{content:"\f277"}.ion-eject:before{content:"\f131"}.ion-email:before{content:"\f132"}.ion-eye:before{content:"\f133"}.ion-eye-disabled:before{content:"\f306"}.ion-female:before{content:"\f278"}.ion-filing:before{content:"\f134"}.ion-film-marker:before{content:"\f135"}.ion-flag:before{content:"\f279"}.ion-flash:before{content:"\f137"}.ion-flash-off:before{content:"\f136"}.ion-flask:before{content:"\f138"}.ion-folder:before{content:"\f139"}.ion-fork:before{content:"\f27a"}.ion-fork-repo:before{content:"\f2c0"}.ion-forward:before{content:"\f13a"}.ion-game-controller-a:before{content:"\f13b"}.ion-game-controller-b:before{content:"\f13c"}.ion-gear-a:before{content:"\f13d"}.ion-gear-b:before{content:"\f13e"}.ion-grid:before{content:"\f13f"}.ion-hammer:before{content:"\f27b"}.ion-headphone:before{content:"\f140"}.ion-heart:before{content:"\f141"}.ion-help:before{content:"\f143"}.ion-help-buoy:before{content:"\f27c"}.ion-help-circled:before{content:"\f142"}.ion-home:before{content:"\f144"}.ion-icecream:before{content:"\f27d"}.ion-icon-social-google-plus:before{content:"\f146"}.ion-icon-social-google-plus-outline:before{content:"\f145"}.ion-image:before{content:"\f147"}.ion-images:before{content:"\f148"}.ion-information:before{content:"\f14a"}.ion-information-circled:before{content:"\f149"}.ion-ionic:before{content:"\f14b"}.ion-ios7-alarm:before{content:"\f14d"}.ion-ios7-alarm-outline:before{content:"\f14c"}.ion-ios7-albums:before{content:"\f14f"}.ion-ios7-albums-outline:before{content:"\f14e"}.ion-ios7-arrow-back:before{content:"\f150"}.ion-ios7-arrow-down:before{content:"\f151"}.ion-ios7-arrow-forward:before{content:"\f152"}.ion-ios7-arrow-left:before{content:"\f153"}.ion-ios7-arrow-right:before{content:"\f154"}.ion-ios7-arrow-thin-down:before{content:"\f27e"}.ion-ios7-arrow-thin-left:before{content:"\f27f"}.ion-ios7-arrow-thin-right:before{content:"\f280"}.ion-ios7-arrow-thin-up:before{content:"\f281"}.ion-ios7-arrow-up:before{content:"\f155"}.ion-ios7-at:before{content:"\f157"}.ion-ios7-at-outline:before{content:"\f156"}.ion-ios7-bell:before{content:"\f159"}.ion-ios7-bell-outline:before{content:"\f158"}.ion-ios7-bolt:before{content:"\f15b"}.ion-ios7-bolt-outline:before{content:"\f15a"}.ion-ios7-bookmarks:before{content:"\f15d"}.ion-ios7-bookmarks-outline:before{content:"\f15c"}.ion-ios7-box:before{content:"\f15f"}.ion-ios7-box-outline:before{content:"\f15e"}.ion-ios7-briefcase:before{content:"\f283"}.ion-ios7-briefcase-outline:before{content:"\f282"}.ion-ios7-browsers:before{content:"\f161"}.ion-ios7-browsers-outline:before{content:"\f160"}.ion-ios7-calculator:before{content:"\f285"}.ion-ios7-calculator-outline:before{content:"\f284"}.ion-ios7-calendar:before{content:"\f163"}.ion-ios7-calendar-outline:before{content:"\f162"}.ion-ios7-camera:before{content:"\f165"}.ion-ios7-camera-outline:before{content:"\f164"}.ion-ios7-cart:before{content:"\f167"}.ion-ios7-cart-outline:before{content:"\f166"}.ion-ios7-chatboxes:before{content:"\f169"}.ion-ios7-chatboxes-outline:before{content:"\f168"}.ion-ios7-chatbubble:before{content:"\f16b"}.ion-ios7-chatbubble-outline:before{content:"\f16a"}.ion-ios7-checkmark:before{content:"\f16e"}.ion-ios7-checkmark-empty:before{content:"\f16c"}.ion-ios7-checkmark-outline:before{content:"\f16d"}.ion-ios7-circle-filled:before{content:"\f16f"}.ion-ios7-circle-outline:before{content:"\f170"}.ion-ios7-clock:before{content:"\f172"}.ion-ios7-clock-outline:before{content:"\f171"}.ion-ios7-close:before{content:"\f2bc"}.ion-ios7-close-empty:before{content:"\f2bd"}.ion-ios7-close-outline:before{content:"\f2bb"}.ion-ios7-cloud:before{content:"\f178"}.ion-ios7-cloud-download:before{content:"\f174"}.ion-ios7-cloud-download-outline:before{content:"\f173"}.ion-ios7-cloud-outline:before{content:"\f175"}.ion-ios7-cloud-upload:before{content:"\f177"}.ion-ios7-cloud-upload-outline:before{content:"\f176"}.ion-ios7-cloudy:before{content:"\f17a"}.ion-ios7-cloudy-night:before{content:"\f308"}.ion-ios7-cloudy-night-outline:before{content:"\f307"}.ion-ios7-cloudy-outline:before{content:"\f179"}.ion-ios7-cog:before{content:"\f17c"}.ion-ios7-cog-outline:before{content:"\f17b"}.ion-ios7-compose:before{content:"\f17e"}.ion-ios7-compose-outline:before{content:"\f17d"}.ion-ios7-contact:before{content:"\f180"}.ion-ios7-contact-outline:before{content:"\f17f"}.ion-ios7-copy:before{content:"\f182"}.ion-ios7-copy-outline:before{content:"\f181"}.ion-ios7-download:before{content:"\f184"}.ion-ios7-download-outline:before{content:"\f183"}.ion-ios7-drag:before{content:"\f185"}.ion-ios7-email:before{content:"\f187"}.ion-ios7-email-outline:before{content:"\f186"}.ion-ios7-eye:before{content:"\f189"}.ion-ios7-eye-outline:before{content:"\f188"}.ion-ios7-fastforward:before{content:"\f18b"}.ion-ios7-fastforward-outline:before{content:"\f18a"}.ion-ios7-filing:before{content:"\f18d"}.ion-ios7-filing-outline:before{content:"\f18c"}.ion-ios7-film:before{content:"\f18f"}.ion-ios7-film-outline:before{content:"\f18e"}.ion-ios7-flag:before{content:"\f191"}.ion-ios7-flag-outline:before{content:"\f190"}.ion-ios7-folder:before{content:"\f193"}.ion-ios7-folder-outline:before{content:"\f192"}.ion-ios7-gear:before{content:"\f195"}.ion-ios7-gear-outline:before{content:"\f194"}.ion-ios7-glasses:before{content:"\f197"}.ion-ios7-glasses-outline:before{content:"\f196"}.ion-ios7-heart:before{content:"\f199"}.ion-ios7-heart-outline:before{content:"\f198"}.ion-ios7-help:before{content:"\f19c"}.ion-ios7-help-empty:before{content:"\f19a"}.ion-ios7-help-outline:before{content:"\f19b"}.ion-ios7-infinite:before{content:"\f19e"}.ion-ios7-infinite-outline:before{content:"\f19d"}.ion-ios7-information:before{content:"\f1a1"}.ion-ios7-information-empty:before{content:"\f19f"}.ion-ios7-information-outline:before{content:"\f1a0"}.ion-ios7-ionic-outline:before{content:"\f1a2"}.ion-ios7-keypad:before{content:"\f1a4"}.ion-ios7-keypad-outline:before{content:"\f1a3"}.ion-ios7-lightbulb:before{content:"\f287"}.ion-ios7-lightbulb-outline:before{content:"\f286"}.ion-ios7-location:before{content:"\f1a6"}.ion-ios7-location-outline:before{content:"\f1a5"}.ion-ios7-locked:before{content:"\f1a8"}.ion-ios7-locked-outline:before{content:"\f1a7"}.ion-ios7-medkit:before{content:"\f289"}.ion-ios7-medkit-outline:before{content:"\f288"}.ion-ios7-mic:before{content:"\f1ab"}.ion-ios7-mic-off:before{content:"\f1a9"}.ion-ios7-mic-outline:before{content:"\f1aa"}.ion-ios7-minus:before{content:"\f1ae"}.ion-ios7-minus-empty:before{content:"\f1ac"}.ion-ios7-minus-outline:before{content:"\f1ad"}.ion-ios7-monitor:before{content:"\f1b0"}.ion-ios7-monitor-outline:before{content:"\f1af"}.ion-ios7-moon:before{content:"\f1b2"}.ion-ios7-moon-outline:before{content:"\f1b1"}.ion-ios7-more:before{content:"\f1b4"}.ion-ios7-more-outline:before{content:"\f1b3"}.ion-ios7-musical-note:before{content:"\f1b5"}.ion-ios7-musical-notes:before{content:"\f1b6"}.ion-ios7-navigate:before{content:"\f1b8"}.ion-ios7-navigate-outline:before{content:"\f1b7"}.ion-ios7-paperplane:before{content:"\f1ba"}.ion-ios7-paperplane-outline:before{content:"\f1b9"}.ion-ios7-partlysunny:before{content:"\f1bc"}.ion-ios7-partlysunny-outline:before{content:"\f1bb"}.ion-ios7-pause:before{content:"\f1be"}.ion-ios7-pause-outline:before{content:"\f1bd"}.ion-ios7-people:before{content:"\f1c0"}.ion-ios7-people-outline:before{content:"\f1bf"}.ion-ios7-person:before{content:"\f1c2"}.ion-ios7-person-outline:before{content:"\f1c1"}.ion-ios7-personadd:before{content:"\f1c4"}.ion-ios7-personadd-outline:before{content:"\f1c3"}.ion-ios7-photos:before{content:"\f1c6"}.ion-ios7-photos-outline:before{content:"\f1c5"}.ion-ios7-pie:before{content:"\f28b"}.ion-ios7-pie-outline:before{content:"\f28a"}.ion-ios7-play:before{content:"\f1c8"}.ion-ios7-play-outline:before{content:"\f1c7"}.ion-ios7-plus:before{content:"\f1cb"}.ion-ios7-plus-empty:before{content:"\f1c9"}.ion-ios7-plus-outline:before{content:"\f1ca"}.ion-ios7-pricetag:before{content:"\f28d"}.ion-ios7-pricetag-outline:before{content:"\f28c"}.ion-ios7-printer:before{content:"\f1cd"}.ion-ios7-printer-outline:before{content:"\f1cc"}.ion-ios7-rainy:before{content:"\f1cf"}.ion-ios7-rainy-outline:before{content:"\f1ce"}.ion-ios7-recording:before{content:"\f1d1"}.ion-ios7-recording-outline:before{content:"\f1d0"}.ion-ios7-redo:before{content:"\f1d3"}.ion-ios7-redo-outline:before{content:"\f1d2"}.ion-ios7-refresh:before{content:"\f1d6"}.ion-ios7-refresh-empty:before{content:"\f1d4"}.ion-ios7-refresh-outline:before{content:"\f1d5"}.ion-ios7-reload:before,.ion-ios7-reloading:before{content:"\f28e"}.ion-ios7-rewind:before{content:"\f1d8"}.ion-ios7-rewind-outline:before{content:"\f1d7"}.ion-ios7-search:before{content:"\f1da"}.ion-ios7-search-strong:before{content:"\f1d9"}.ion-ios7-skipbackward:before{content:"\f1dc"}.ion-ios7-skipbackward-outline:before{content:"\f1db"}.ion-ios7-skipforward:before{content:"\f1de"}.ion-ios7-skipforward-outline:before{content:"\f1dd"}.ion-ios7-snowy:before{content:"\f309"}.ion-ios7-speedometer:before{content:"\f290"}.ion-ios7-speedometer-outline:before{content:"\f28f"}.ion-ios7-star:before{content:"\f1e0"}.ion-ios7-star-outline:before{content:"\f1df"}.ion-ios7-stopwatch:before{content:"\f1e2"}.ion-ios7-stopwatch-outline:before{content:"\f1e1"}.ion-ios7-sunny:before{content:"\f1e4"}.ion-ios7-sunny-outline:before{content:"\f1e3"}.ion-ios7-telephone:before{content:"\f1e6"}.ion-ios7-telephone-outline:before{content:"\f1e5"}.ion-ios7-thunderstorm:before{content:"\f1e8"}.ion-ios7-thunderstorm-outline:before{content:"\f1e7"}.ion-ios7-time:before{content:"\f292"}.ion-ios7-time-outline:before{content:"\f291"}.ion-ios7-timer:before{content:"\f1ea"}.ion-ios7-timer-outline:before{content:"\f1e9"}.ion-ios7-trash:before{content:"\f1ec"}.ion-ios7-trash-outline:before{content:"\f1eb"}.ion-ios7-undo:before{content:"\f1ee"}.ion-ios7-undo-outline:before{content:"\f1ed"}.ion-ios7-unlocked:before{content:"\f1f0"}.ion-ios7-unlocked-outline:before{content:"\f1ef"}.ion-ios7-upload:before{content:"\f1f2"}.ion-ios7-upload-outline:before{content:"\f1f1"}.ion-ios7-videocam:before{content:"\f1f4"}.ion-ios7-videocam-outline:before{content:"\f1f3"}.ion-ios7-volume-high:before{content:"\f1f5"}.ion-ios7-volume-low:before{content:"\f1f6"}.ion-ios7-wineglass:before{content:"\f294"}.ion-ios7-wineglass-outline:before{content:"\f293"}.ion-ios7-world:before{content:"\f1f8"}.ion-ios7-world-outline:before{content:"\f1f7"}.ion-ipad:before{content:"\f1f9"}.ion-iphone:before{content:"\f1fa"}.ion-ipod:before{content:"\f1fb"}.ion-jet:before{content:"\f295"}.ion-key:before{content:"\f296"}.ion-knife:before{content:"\f297"}.ion-laptop:before{content:"\f1fc"}.ion-leaf:before{content:"\f1fd"}.ion-levels:before{content:"\f298"}.ion-lightbulb:before{content:"\f299"}.ion-link:before{content:"\f1fe"}.ion-load-a:before,.ion-loading-a:before{content:"\f29a"}.ion-load-b:before,.ion-loading-b:before{content:"\f29b"}.ion-load-c:before,.ion-loading-c:before{content:"\f29c"}.ion-load-d:before,.ion-loading-d:before{content:"\f29d"}.ion-location:before{content:"\f1ff"}.ion-locked:before{content:"\f200"}.ion-log-in:before{content:"\f29e"}.ion-log-out:before{content:"\f29f"}.ion-loop:before,.ion-looping:before{content:"\f201"}.ion-magnet:before{content:"\f2a0"}.ion-male:before{content:"\f2a1"}.ion-man:before{content:"\f202"}.ion-map:before{content:"\f203"}.ion-medkit:before{content:"\f2a2"}.ion-mic-a:before{content:"\f204"}.ion-mic-b:before{content:"\f205"}.ion-mic-c:before{content:"\f206"}.ion-minus:before{content:"\f209"}.ion-minus-circled:before{content:"\f207"}.ion-minus-round:before{content:"\f208"}.ion-model-s:before{content:"\f2c1"}.ion-monitor:before{content:"\f20a"}.ion-more:before{content:"\f20b"}.ion-music-note:before{content:"\f20c"}.ion-navicon:before{content:"\f20e"}.ion-navicon-round:before{content:"\f20d"}.ion-navigate:before{content:"\f2a3"}.ion-no-smoking:before{content:"\f2c2"}.ion-nuclear:before{content:"\f2a4"}.ion-paper-airplane:before{content:"\f2c3"}.ion-paperclip:before{content:"\f20f"}.ion-pause:before{content:"\f210"}.ion-person:before{content:"\f213"}.ion-person-add:before{content:"\f211"}.ion-person-stalker:before{content:"\f212"}.ion-pie-graph:before{content:"\f2a5"}.ion-pin:before{content:"\f2a6"}.ion-pinpoint:before{content:"\f2a7"}.ion-pizza:before{content:"\f2a8"}.ion-plane:before{content:"\f214"}.ion-play:before{content:"\f215"}.ion-playstation:before{content:"\f30a"}.ion-plus:before{content:"\f218"}.ion-plus-circled:before{content:"\f216"}.ion-plus-round:before{content:"\f217"}.ion-pound:before{content:"\f219"}.ion-power:before{content:"\f2a9"}.ion-pricetag:before{content:"\f2aa"}.ion-pricetags:before{content:"\f2ab"}.ion-printer:before{content:"\f21a"}.ion-radio-waves:before{content:"\f2ac"}.ion-record:before{content:"\f21b"}.ion-refresh:before,.ion-refreshing:before{content:"\f21c"}.ion-reply:before{content:"\f21e"}.ion-reply-all:before{content:"\f21d"}.ion-search:before{content:"\f21f"}.ion-settings:before{content:"\f2ad"}.ion-share:before{content:"\f220"}.ion-shuffle:before{content:"\f221"}.ion-skip-backward:before{content:"\f222"}.ion-skip-forward:before{content:"\f223"}.ion-social-android:before{content:"\f225"}.ion-social-android-outline:before{content:"\f224"}.ion-social-apple:before{content:"\f227"}.ion-social-apple-outline:before{content:"\f226"}.ion-social-bitcoin:before{content:"\f2af"}.ion-social-bitcoin-outline:before{content:"\f2ae"}.ion-social-buffer:before{content:"\f229"}.ion-social-buffer-outline:before{content:"\f228"}.ion-social-designernews:before{content:"\f22b"}.ion-social-designernews-outline:before{content:"\f22a"}.ion-social-dribbble:before{content:"\f22d"}.ion-social-dribbble-outline:before{content:"\f22c"}.ion-social-dropbox:before{content:"\f22f"}.ion-social-dropbox-outline:before{content:"\f22e"}.ion-social-facebook:before{content:"\f231"}.ion-social-facebook-outline:before{content:"\f230"}.ion-social-freebsd-devil:before{content:"\f2c4"}.ion-social-github:before{content:"\f233"}.ion-social-github-outline:before{content:"\f232"}.ion-social-googleplus:before{content:"\f235"}.ion-social-googleplus-outline:before{content:"\f234"}.ion-social-hackernews:before{content:"\f237"}.ion-social-hackernews-outline:before{content:"\f236"}.ion-social-linkedin:before{content:"\f239"}.ion-social-linkedin-outline:before{content:"\f238"}.ion-social-pinterest:before{content:"\f2b1"}.ion-social-pinterest-outline:before{content:"\f2b0"}.ion-social-reddit:before{content:"\f23b"}.ion-social-reddit-outline:before{content:"\f23a"}.ion-social-rss:before{content:"\f23d"}.ion-social-rss-outline:before{content:"\f23c"}.ion-social-skype:before{content:"\f23f"}.ion-social-skype-outline:before{content:"\f23e"}.ion-social-tumblr:before{content:"\f241"}.ion-social-tumblr-outline:before{content:"\f240"}.ion-social-tux:before{content:"\f2c5"}.ion-social-twitter:before{content:"\f243"}.ion-social-twitter-outline:before{content:"\f242"}.ion-social-vimeo:before{content:"\f245"}.ion-social-vimeo-outline:before{content:"\f244"}.ion-social-windows:before{content:"\f247"}.ion-social-windows-outline:before{content:"\f246"}.ion-social-wordpress:before{content:"\f249"}.ion-social-wordpress-outline:before{content:"\f248"}.ion-social-yahoo:before{content:"\f24b"}.ion-social-yahoo-outline:before{content:"\f24a"}.ion-social-youtube:before{content:"\f24d"}.ion-social-youtube-outline:before{content:"\f24c"}.ion-speakerphone:before{content:"\f2b2"}.ion-speedometer:before{content:"\f2b3"}.ion-spoon:before{content:"\f2b4"}.ion-star:before{content:"\f24e"}.ion-stats-bars:before{content:"\f2b5"}.ion-steam:before{content:"\f30b"}.ion-stop:before{content:"\f24f"}.ion-thermometer:before{content:"\f2b6"}.ion-thumbsdown:before{content:"\f250"}.ion-thumbsup:before{content:"\f251"}.ion-trash-a:before{content:"\f252"}.ion-trash-b:before{content:"\f253"}.ion-umbrella:before{content:"\f2b7"}.ion-unlocked:before{content:"\f254"}.ion-upload:before{content:"\f255"}.ion-usb:before{content:"\f2b8"}.ion-videocamera:before{content:"\f256"}.ion-volume-high:before{content:"\f257"}.ion-volume-low:before{content:"\f258"}.ion-volume-medium:before{content:"\f259"}.ion-volume-mute:before{content:"\f25a"}.ion-waterdrop:before{content:"\f25b"}.ion-wifi:before{content:"\f25c"}.ion-wineglass:before{content:"\f2b9"}.ion-woman:before{content:"\f25d"}.ion-wrench:before{content:"\f2ba"}.ion-xbox:before{content:"\f30c"} diff --git a/css/ionslider/ion.rangeSlider.css b/css/ionslider/ion.rangeSlider.css deleted file mode 100644 index 052d477ed..000000000 --- a/css/ionslider/ion.rangeSlider.css +++ /dev/null @@ -1,126 +0,0 @@ -/* Ion.RangeSlider -// css version 1.8.5 -// by Denis Ineshin | ionden.com -// ===================================================================================================================*/ - -/* ===================================================================================================================== -// RangeSlider */ - -.irs { - position: relative; display: block; -} - .irs-line { - position: relative; display: block; - overflow: hidden; - } - .irs-line-left, .irs-line-mid, .irs-line-right { - position: absolute; display: block; - top: 0; - } - .irs-line-left { - left: 0; width: 10%; - } - .irs-line-mid { - left: 10%; width: 80%; - } - .irs-line-right { - right: 0; width: 10%; - } - - .irs-diapason { - position: absolute; display: block; - left: 0; width: 100%; - } - .irs-slider { - position: absolute; display: block; - cursor: default; - z-index: 1; - } - .irs-slider.single { - left: 10px; - } - .irs-slider.single:before { - position: absolute; display: block; content: ""; - top: -30%; left: -30%; - width: 160%; height: 160%; - background: rgba(0,0,0,0.0); - } - .irs-slider.from { - left: 100px; - } - .irs-slider.from:before { - position: absolute; display: block; content: ""; - top: -30%; left: -30%; - width: 130%; height: 160%; - background: rgba(0,0,0,0.0); - } - .irs-slider.to { - left: 300px; - } - .irs-slider.to:before { - position: absolute; display: block; content: ""; - top: -30%; left: 0; - width: 130%; height: 160%; - background: rgba(0,0,0,0.0); - } - .irs-slider.last { - z-index: 2; - } - - .irs-min { - position: absolute; display: block; - left: 0; - cursor: default; - } - .irs-max { - position: absolute; display: block; - right: 0; - cursor: default; - } - - .irs-from, .irs-to, .irs-single { - position: absolute; display: block; - top: 0; left: 0; - cursor: default; - white-space: nowrap; - } - - -.irs-grid { - position: absolute; display: none; - bottom: 0; left: 0; - width: 100%; height: 20px; -} -.irs-with-grid .irs-grid { - display: block; -} - .irs-grid-pol { - position: absolute; - top: 0; left: 0; - width: 1px; height: 8px; - background: #000; - } - .irs-grid-pol.small { - height: 4px; - } - .irs-grid-text { - position: absolute; - bottom: 0; left: 0; - width: 100px; - white-space: nowrap; - text-align: center; - font-size: 9px; line-height: 9px; - color: #000; - } - -.irs-disable-mask { - position: absolute; display: block; - top: 0; left: 0; - width: 100%; height: 100%; - cursor: default; - background: rgba(0,0,0,0.0); - z-index: 2; -} -.irs-disabled { - opacity: 0.4; -} \ No newline at end of file diff --git a/css/ionslider/ion.rangeSlider.skinFlat.css b/css/ionslider/ion.rangeSlider.skinFlat.css deleted file mode 100644 index 8618e1bc3..000000000 --- a/css/ionslider/ion.rangeSlider.skinFlat.css +++ /dev/null @@ -1,89 +0,0 @@ -/* Ion.RangeSlider, Flat UI Skin -// css version 1.8.5 -// by Denis Ineshin | ionden.com -// ===================================================================================================================*/ - -/* ===================================================================================================================== -// Skin details */ - -.irs-line-mid, -.irs-line-left, -.irs-line-right, -.irs-diapason, -.irs-slider { - background: url(../../img/sprite-skin-flat.png) repeat-x; -} - -.irs { - height: 40px; -} -.irs-with-grid { - height: 60px; -} -.irs-line { - height: 12px; top: 25px; -} - .irs-line-left { - height: 12px; - background-position: 0 -30px; - } - .irs-line-mid { - height: 12px; - background-position: 0 0; - } - .irs-line-right { - height: 12px; - background-position: 100% -30px; - } - -.irs-diapason { - height: 12px; top: 25px; - background-position: 0 -60px; -} - -.irs-slider { - width: 16px; height: 18px; - top: 22px; - background-position: 0 -90px; -} -#irs-active-slider, .irs-slider:hover { - background-position: 0 -120px; -} - -.irs-min, .irs-max { - color: #999; - font-size: 10px; line-height: 1.333; - text-shadow: none; - top: 0; padding: 1px 3px; - background: #e1e4e9; - border-radius: 4px; -} - -.irs-from, .irs-to, .irs-single { - color: #fff; - font-size: 10px; line-height: 1.333; - text-shadow: none; - padding: 1px 5px; - background: #ed5565; - border-radius: 4px; -} -.irs-from:after, .irs-to:after, .irs-single:after { - position: absolute; display: block; content: ""; - bottom: -6px; left: 50%; - width: 0; height: 0; - margin-left: -3px; - overflow: hidden; - border: 3px solid transparent; - border-top-color: #ed5565; -} - - -.irs-grid-pol { - background: #e1e4e9; -} -.irs-grid-text { - color: #999; -} - -.irs-disabled { -} \ No newline at end of file diff --git a/css/ionslider/ion.rangeSlider.skinNice.css b/css/ionslider/ion.rangeSlider.skinNice.css deleted file mode 100644 index 51063a75e..000000000 --- a/css/ionslider/ion.rangeSlider.skinNice.css +++ /dev/null @@ -1,85 +0,0 @@ -/* Ion.RangeSlider, Nice Skin -// css version 1.8.5 -// by Denis Ineshin | ionden.com -// ===================================================================================================================*/ - -/* ===================================================================================================================== -// Skin details */ - -.irs-line-mid, -.irs-line-left, -.irs-line-right, -.irs-diapason, -.irs-slider { - background: url(../../img/sprite-skin-nice.png) repeat-x; -} - -.irs { - height: 40px; -} -.irs-with-grid { - height: 60px; -} -.irs-line { - height: 8px; top: 25px; -} - .irs-line-left { - height: 8px; - background-position: 0 -30px; - } - .irs-line-mid { - height: 8px; - background-position: 0 0; - } - .irs-line-right { - height: 8px; - background-position: 100% -30px; - } - -.irs-diapason { - height: 8px; top: 25px; - background-position: 0 -60px; -} - -.irs-slider { - width: 22px; height: 22px; - top: 17px; - background-position: 0 -90px; -} -#irs-active-slider, .irs-slider:hover { - background-position: 0 -120px; -} - -.irs-min, .irs-max { - color: #999; - font-size: 10px; line-height: 1.333; - text-shadow: none; - top: 0; padding: 1px 3px; - background: rgba(0,0,0,0.1); - border-radius: 3px; -} -.lt-ie9 .irs-min, .lt-ie9 .irs-max { - background: #ccc; -} - -.irs-from, .irs-to, .irs-single { - color: #fff; - font-size: 10px; line-height: 1.333; - text-shadow: none; - padding: 1px 5px; - background: rgba(0,0,0,0.3); - border-radius: 3px; -} -.lt-ie9 .irs-from, .lt-ie9 .irs-to, .lt-ie9 .irs-single { - background: #999; -} - -.irs-grid-pol { - background: #99a4ac; -} -.irs-grid-text { - color: #99a4ac; -} - -.irs-disabled { -} \ No newline at end of file diff --git a/css/jQueryUI/images/animated-overlay.gif b/css/jQueryUI/images/animated-overlay.gif deleted file mode 100644 index d441f75ebfbdf26a265dfccd670120d25c0a341c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738 zcmZ|OX;ji_6b5ixNYt8>l?gOuO)6lU%W(mxn(`>1S(XO;u`D+P%xqBvMr|w-Vyr1s z7R|Cn0b8|Hu<=Zmv1mFqh9Fj!NuZfKB2MP$e75`XJ@>=!y!Ux9xR3x;EW!q1^V>X| znVFuRUN`NqJ2)ybXh%e__h!!pv(M|S3+?9F%(K}zyE40MGyhWF5-IDgL&=%2-9`Nk z!1@8uk4t%_{(K~>N;sK&dzJbwJ=$kYTlL=$%#0Pfh>U{%i@~wWbvYsD_K-D`&+u1( z#Ma`>%q<^UhzGvi(hyE`zCD{-=2|zL5>wnB=DE!U?(CZG%q4@lDnCq_%&3DCla#(X zmBhDD+RN$aMWWHm?ig*>1Onn6~r?Ma~N2JKAxN>H%UtRyRqS)6Um!-Tz%-r=& zQmTb^JFIe3W^-kAm`}`2P|niMh>RYyd)S^f(dbrx965?rzbhP|XeP}o&&DSZ4|oYQ z)I{f!SfycYw?3=9W;o-B%U5xs(pP267X~9-7L|4WzaYexC0GtG8wWygm63rF{llCEraxzkc=IxvFQ-y37=_;e5 zJLq^gsSO0Ayz?a>E_?{dmUc+t#qv$)XN8$<<}rQ#)lsiw+pmL&J>~+hgpo>i$m+;l zZIa_ZRIfSeT$~v5d`EBV&*k`apPgjv&B|+d`Q!nyu{L4rs%ZfoF0*Kq8I%ByOcFpL zK=>wzofZo<+0GZLCnWM3oQ^pb(gRSf02;~cEn@LJ>~XB9IkEX{$N#Z`m%>S!U{uPx zloI%bLdo$Adxlh(Uv^yX7s5G&C zLwNRG>~T?G{kzupp8EcyLGPoPf)@&9Wqfw_l&uU-6cexk%5;uQg%wb=0k_733{i#& z1a2p)gV3S2+QG1-K9tZ}E~I<(P0r2aFFY-c{o?TUOz3Xjod#TLE2A_c?*T7t z=1>~%YW450{Qqno4t`}gvLnuMrcu8+#xEBoY%2_+Mb#Z6S38+r*M4O`-+!zl(@m`D zQsi|GA2l3gEy}LFe<#Hv8?$_L#u8E|3-bP$*La*E>B{X!Sy4i6?TKam!49aXCAW4S*P_O^H4^*DpiA40o}Uqw~Eo&veh1`|8i zD2$x+>_b^bXE4N;AW=5>iYak2%!JAh0j1*k1{p#iRCjbB7!cSws~U{1IA@acLII$t z$>X#A+^s6iJ5~DFG!xa?>z{=lxtdi1rzbM-(nqAu3D8h-&64xo6|E!p?pK0xT;qoK z`6%+SpBk+~M?nO}>2mTw!A{yZ6O>Z@kwSd4;8aWU5z!P~tQl?u==^+R`{OmOS}oZh zOXQ3{6kuz?Is^n^L7;9ieB9C+8B{>t+pDrlq4xGDDn#T#3T5$l1g`FTQkU;b-981j zNm{zC`$wn7etklM#qHI4=3m5gwa6DNS{?Z!vSObi_od{4eUo=_S2BKNpkSdiqe(k9WtkeM79;2-%CFbb)aB=&H1?i1}uwFzoZQ(38Kn1zBP ORn*B%u*Wk|4g3!*Rv{Mv diff --git a/css/jQueryUI/images/ui-bg_flat_0_aaaaaa_40x100.png b/css/jQueryUI/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100644 index a678ba5990effcbf1a5a9966f91ce3e794f9097b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F1SA+{?>A)!QcOwS?k)_>#w|r1Kptm-M`SUO z_5fqIli7AahM1>|V~EA+ zRdP`(kYX@0Ff`FMFw`}$3^6pYGBC69nO2EggQ;O_JkSOP MPgg&ebxsLQ0CT=FoB#j- diff --git a/css/jQueryUI/images/ui-bg_flat_100_e6e7e8_40x100.png b/css/jQueryUI/images/ui-bg_flat_100_e6e7e8_40x100.png deleted file mode 100644 index fd7c7cb1888297dcfe0df893c7a5bbf7877b45fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F$P6UUt$JVyq?iMILR_Ccf3fxVyp=#MXMsm# zF_88EW4Dvpc0dNdr;B5V#`)v~3D(68zZe*pA{ZD;&DzR=QmQ4c5hW>!C8<`)MX5lF z!N|bSMAyJj*U&J;z|zXVz{=E8*T4eEnD}MR3lt5x`6-!cmAExLSg8^M)WG2B>gTe~ HDWM4f>Vh@^ diff --git a/css/jQueryUI/images/ui-bg_flat_100_f56954_40x100.png b/css/jQueryUI/images/ui-bg_flat_100_f56954_40x100.png deleted file mode 100644 index b9a7432f989dbfe21f4a6f2c5cb04cadc258af44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F$P6UUt$JVyq?iMILR`OQhMe&^`3T76Ebxdd z2GSm2>~=ES4#?p5ba4#PIG>y#!MeEN7Xt%R1OsEKSz9?!O0~o_q9i4;B-JXpC>2OC z7#SFv=o%R68XATeSXh}_S{WPY0vQGdldkt|MA49&pOTqYiCe?tE;C-B1_n=8KbLh* G2~7YA2s9f2 diff --git a/css/jQueryUI/images/ui-bg_flat_55_f39c12_40x100.png b/css/jQueryUI/images/ui-bg_flat_55_f39c12_40x100.png deleted file mode 100644 index 6a1ee616fb9393a2c095d684cd160512d53e8839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F$P6UUt$JVyq?iMILR>%35whFr!VBbb7I;J! z18EO1b~~AE2W0Sjx;TbtoKH@WU|rnsi-CbDf`PHrtgRd@)lu$14Gf;HelF{r G5}E)|95b~5 diff --git a/css/jQueryUI/images/ui-bg_flat_65_ffffff_40x100.png b/css/jQueryUI/images/ui-bg_flat_65_ffffff_40x100.png deleted file mode 100644 index ffbb1c5b8724c83cfe8196701bca8467e18c0eab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F2qYNp$opRhQcOwS?k)_Bce{j_0C}7R9+AaB z+5?Q;PG;Ky8A6^ejv*T7lYj6t@hpC#;TbB#aBAWwna#KLs)4eqC9V-ADTyViR>?)F zK#IZ0z|ch3z);t~GQ`lp%D~9V0LZnlGB5~|obwn(LvDUbW?Cg~4azPm@jwj>p00i_ I>zopr0LDKvGynhq diff --git a/css/jQueryUI/images/ui-bg_flat_75_dadada_40x100.png b/css/jQueryUI/images/ui-bg_flat_75_dadada_40x100.png deleted file mode 100644 index 4abd8163347146a71933e8777a5867e3ca536eea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F0VEhM^6M@GQcOwS?k)`f+xyS#2l6-zJR*yM zvUftDnm{r-UW|Qn@{L diff --git a/css/jQueryUI/images/ui-bg_flat_75_e6e6e6_40x100.png b/css/jQueryUI/images/ui-bg_flat_75_e6e6e6_40x100.png deleted file mode 100644 index 772c07f49571e588ba1272302f82dbb97a4d6dc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F0VEhM^6M@GQcOwS?k)`f+xyS#2l6-zJR*yM zvsD<1{PKZ25M!;Em1V& b=BH$)RpQnVu3g^>)WG2B>gTe~DWM4fs!=;u diff --git a/css/jQueryUI/images/ui-bg_flat_75_ffffff_40x100.png b/css/jQueryUI/images/ui-bg_flat_75_ffffff_40x100.png deleted file mode 100644 index 4e665275b5f8d1d1796b6000fb5762f950fda53e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F2qYNp$opRhQcOwS?k)_Bce{j_0C}7R9+AaB z+5?Q;PG;Ky8A6^ejv*T7lYj6t@hpC#;TbB#aBAWwna#KLs)4eqC9V-ADTyViR>?)F zK#IZ0z|ch3z);t~GQ`lp%D~Xd&`j6B!pgwlk+fMjiiX_$l+3hB+!`jk^}PmaVDNPH Kb6Mw<&;$U*4KzRi diff --git a/css/jQueryUI/images/ui-icons_222222_256x240.png b/css/jQueryUI/images/ui-icons_222222_256x240.png deleted file mode 100644 index c1cb1170c8b3795835b8831ab81fa9ae63b606b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6922 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 QJ~;stWz}Trq%1=J3#jBGg8%>k diff --git a/css/jQueryUI/images/ui-icons_454545_256x240.png b/css/jQueryUI/images/ui-icons_454545_256x240.png deleted file mode 100644 index b6db1acdd433be80a472b045018f25c7f2cf7e08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6992 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 diff --git a/css/jQueryUI/images/ui-icons_ffffff_256x240.png b/css/jQueryUI/images/ui-icons_ffffff_256x240.png deleted file mode 100644 index 4f624bb2b193750f1a5b36c8c307168c6681a861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6299 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 diff --git a/js/AdminLTE/app.js b/js/AdminLTE/app.js index 8257cda94..e1c868508 100644 --- a/js/AdminLTE/app.js +++ b/js/AdminLTE/app.js @@ -6,7 +6,7 @@ !**/ /* - * Global variables. If you change any of these vars, don't forget + * Global variables. If you change any of these vars, don't forget * to change the values in the less files! */ var left_side_width = 220; //Sidebar width in pixels @@ -41,11 +41,11 @@ $(function() { //Activate tooltips $("[data-toggle='tooltip']").tooltip(); - /* + /* * Add collapse and remove events to boxes */ $("[data-widget='collapse']").click(function() { - //Find the box parent + //Find the box parent var box = $(this).parents(".box").first(); //Find the body and the footer var bf = box.find(".box-body, .box-footer"); @@ -83,7 +83,7 @@ $(function() { }); $("[data-widget='remove']").click(function() { - //Find the box parent + //Find the box parent var box = $(this).parents(".box").first(); box.slideUp(); }); @@ -91,13 +91,13 @@ $(function() { /* Sidebar tree view */ $(".sidebar .treeview").tree(); - /* + /* * Make sure that the sidebar is streched full height * --------------------------------------------- * We are gonna assign a min-height value every time the * wrapper gets resized and upon page load. We will use * Ben Alman's method for detecting the resize event. - * + * **/ function _fix() { //Get window height and the wrapper height @@ -125,8 +125,8 @@ $(function() { fix_sidebar(); /* - * We are gonna initialize all checkbox and radio inputs to - * iCheck plugin in. + * We are gonna initialize all checkbox and radio inputs to + * ckck plugin in. * You can find the documentation at http://fronteed.com/iCheck/ */ $("input[type='checkbox']:not(.simple), input[type='radio']:not(.simple)").iCheck({ @@ -469,12 +469,12 @@ $(window).load(function() { }).call(this); }); -/* - * BOX REFRESH BUTTON +/* + * BOX REFRESH BUTTON * ------------------ * This is a custom plugin to use with the compenet BOX. It allows you to add * a refresh button to the box. It converts the box's state to a loading state. - * + * * USAGE: * $("#box-widget").boxRefresh( options ); * */ @@ -551,13 +551,13 @@ $(window).load(function() { * SIDEBAR MENU * ------------ * This is a custom plugin for the sidebar menu. It provides a tree view. - * + * * Usage: * $(".sidebar).tree(); - * + * * Note: This plugin does not accept any options. Instead, it only requires a class * added to the element that contains a sub-menu. - * + * * When used with the sidebar, for example, it would look something like this: * * * - * + * * Add .active class to
  • ', { - 'class': classes.sPageButton+' '+btnClass, - 'aria-controls': settings.sTableId, - 'tabindex': settings.iTabIndex, - 'id': idx === 0 && typeof button === 'string' ? - settings.sTableId +'_'+ button : - null - } ) - .append( $('', { - 'href': '#' - } ) - .html( btnDisplay ) - ) - .appendTo( container ); - - settings.oApi._fnBindAction( - node, {action: button}, clickHandler - ); - } - } - } - }; - - attach( - $(host).empty().html('
      ').children('ul'), - buttons - ); - } -} -else { - // Integration for 1.9- - $.fn.dataTable.defaults.sPaginationType = 'bootstrap'; - - /* API method to get paging information */ - $.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) - { - return { - "iStart": oSettings._iDisplayStart, - "iEnd": oSettings.fnDisplayEnd(), - "iLength": oSettings._iDisplayLength, - "iTotal": oSettings.fnRecordsTotal(), - "iFilteredTotal": oSettings.fnRecordsDisplay(), - "iPage": oSettings._iDisplayLength === -1 ? - 0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), - "iTotalPages": oSettings._iDisplayLength === -1 ? - 0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) - }; - }; - - /* Bootstrap style pagination control */ - $.extend( $.fn.dataTableExt.oPagination, { - "bootstrap": { - "fnInit": function( oSettings, nPaging, fnDraw ) { - var oLang = oSettings.oLanguage.oPaginate; - var fnClickHandler = function ( e ) { - e.preventDefault(); - if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { - fnDraw( oSettings ); - } - }; - - $(nPaging).append( - '' - ); - var els = $('a', nPaging); - $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); - $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler ); - }, - - "fnUpdate": function ( oSettings, fnDraw ) { - var iListLength = 5; - var oPaging = oSettings.oInstance.fnPagingInfo(); - var an = oSettings.aanFeatures.p; - var i, ien, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); - - if ( oPaging.iTotalPages < iListLength) { - iStart = 1; - iEnd = oPaging.iTotalPages; - } - else if ( oPaging.iPage <= iHalf ) { - iStart = 1; - iEnd = iListLength; - } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { - iStart = oPaging.iTotalPages - iListLength + 1; - iEnd = oPaging.iTotalPages; - } else { - iStart = oPaging.iPage - iHalf + 1; - iEnd = iStart + iListLength - 1; - } - - for ( i=0, ien=an.length ; i'+j+'') - .insertBefore( $('li:last', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('li:first', an[i]).addClass('disabled'); - } else { - $('li:first', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('li:last', an[i]).addClass('disabled'); - } else { - $('li:last', an[i]).removeClass('disabled'); - } - } - } - } - } ); -} - - -/* - * TableTools Bootstrap compatibility - * Required TableTools 2.1+ - */ -if ( $.fn.DataTable.TableTools ) { - // Set the classes that TableTools uses to something suitable for Bootstrap - $.extend( true, $.fn.DataTable.TableTools.classes, { - "container": "DTTT btn-group", - "buttons": { - "normal": "btn btn-default", - "disabled": "disabled" - }, - "collection": { - "container": "DTTT_dropdown dropdown-menu", - "buttons": { - "normal": "", - "disabled": "disabled" - } - }, - "print": { - "info": "DTTT_print_info modal" - }, - "select": { - "row": "active" - } - } ); - - // Have the collection use a bootstrap compatible dropdown - $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, { - "collection": { - "container": "ul", - "button": "li", - "liner": "a" - } - } ); -} \ No newline at end of file diff --git a/js/plugins/datatables/jquery.dataTables.js b/js/plugins/datatables/jquery.dataTables.js deleted file mode 100644 index 1d8a220ba..000000000 --- a/js/plugins/datatables/jquery.dataTables.js +++ /dev/null @@ -1,12099 +0,0 @@ -/** - * @summary DataTables - * @description Paginate, search and sort HTML tables - * @version 1.9.4 - * @file jquery.dataTables.js - * @author Allan Jardine (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * - * @copyright Copyright 2008-2012 Allan Jardine, all rights reserved. - * - * This source file is free software, under either the GPL v2 license or a - * BSD style license, available at: - * http://datatables.net/license_gpl2 - * http://datatables.net/license_bsd - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -/*jslint evil: true, undef: true, browser: true */ -/*globals $, jQuery,define,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros,_fnBrowserDetect,_fnGetColumns*/ - -(/** @lends */function( window, document, undefined ) { - -(function( factory ) { - "use strict"; - - // Define as an AMD module if possible - if ( typeof define === 'function' && define.amd ) - { - define( ['jquery'], factory ); - } - /* Define using browser globals otherwise - * Prevent multiple instantiations if the script is loaded twice - */ - else if ( jQuery && !jQuery.fn.dataTable ) - { - factory( jQuery ); - } -} -(/** @lends */function( $ ) { - "use strict"; - /** - * DataTables is a plug-in for the jQuery Javascript library. It is a - * highly flexible tool, based upon the foundations of progressive - * enhancement, which will add advanced interaction controls to any - * HTML table. For a full list of features please refer to - * DataTables.net. - * - * Note that the DataTable object is not a global variable but is - * aliased to jQuery.fn.DataTable and jQuery.fn.dataTable through which - * it may be accessed. - * - * @class - * @param {object} [oInit={}] Configuration object for DataTables. Options - * are defined by {@link DataTable.defaults} - * @requires jQuery 1.3+ - * - * @example - * // Basic initialisation - * $(document).ready( function { - * $('#example').dataTable(); - * } ); - * - * @example - * // Initialisation with configuration options - in this case, disable - * // pagination and sorting. - * $(document).ready( function { - * $('#example').dataTable( { - * "bPaginate": false, - * "bSort": false - * } ); - * } ); - */ - var DataTable = function( oInit ) - { - - - /** - * Add a column to the list used for the table with default values - * @param {object} oSettings dataTables settings object - * @param {node} nTh The th element for this column - * @memberof DataTable#oApi - */ - function _fnAddColumn( oSettings, nTh ) - { - var oDefaults = DataTable.defaults.columns; - var iCol = oSettings.aoColumns.length; - var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { - "sSortingClass": oSettings.oClasses.sSortable, - "sSortingClassJUI": oSettings.oClasses.sSortJUI, - "nTh": nTh ? nTh : document.createElement('th'), - "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', - "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], - "mData": oDefaults.mData ? oDefaults.oDefaults : iCol - } ); - oSettings.aoColumns.push( oCol ); - - /* Add a column specific filter */ - if ( oSettings.aoPreSearchCols[ iCol ] === undefined || oSettings.aoPreSearchCols[ iCol ] === null ) - { - oSettings.aoPreSearchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch ); - } - else - { - var oPre = oSettings.aoPreSearchCols[ iCol ]; - - /* Don't require that the user must specify bRegex, bSmart or bCaseInsensitive */ - if ( oPre.bRegex === undefined ) - { - oPre.bRegex = true; - } - - if ( oPre.bSmart === undefined ) - { - oPre.bSmart = true; - } - - if ( oPre.bCaseInsensitive === undefined ) - { - oPre.bCaseInsensitive = true; - } - } - - /* Use the column options function to initialise classes etc */ - _fnColumnOptions( oSettings, iCol, null ); - } - - - /** - * Apply options for a column - * @param {object} oSettings dataTables settings object - * @param {int} iCol column index to consider - * @param {object} oOptions object with sType, bVisible and bSearchable etc - * @memberof DataTable#oApi - */ - function _fnColumnOptions( oSettings, iCol, oOptions ) - { - var oCol = oSettings.aoColumns[ iCol ]; - - /* User specified column options */ - if ( oOptions !== undefined && oOptions !== null ) - { - /* Backwards compatibility for mDataProp */ - if ( oOptions.mDataProp && !oOptions.mData ) - { - oOptions.mData = oOptions.mDataProp; - } - - if ( oOptions.sType !== undefined ) - { - oCol.sType = oOptions.sType; - oCol._bAutoType = false; - } - - $.extend( oCol, oOptions ); - _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); - - /* iDataSort to be applied (backwards compatibility), but aDataSort will take - * priority if defined - */ - if ( oOptions.iDataSort !== undefined ) - { - oCol.aDataSort = [ oOptions.iDataSort ]; - } - _fnMap( oCol, oOptions, "aDataSort" ); - } - - /* Cache the data get and set functions for speed */ - var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; - var mData = _fnGetObjectDataFn( oCol.mData ); - - oCol.fnGetData = function (oData, sSpecific) { - var innerData = mData( oData, sSpecific ); - - if ( oCol.mRender && (sSpecific && sSpecific !== '') ) - { - return mRender( innerData, sSpecific, oData ); - } - return innerData; - }; - oCol.fnSetData = _fnSetObjectDataFn( oCol.mData ); - - /* Feature sorting overrides column specific when off */ - if ( !oSettings.oFeatures.bSort ) - { - oCol.bSortable = false; - } - - /* Check that the class assignment is correct for sorting */ - if ( !oCol.bSortable || - ($.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1) ) - { - oCol.sSortingClass = oSettings.oClasses.sSortableNone; - oCol.sSortingClassJUI = ""; - } - else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1 ) - { - oCol.sSortingClass = oSettings.oClasses.sSortable; - oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI; - } - else if ( $.inArray('asc', oCol.asSorting) != -1 && $.inArray('desc', oCol.asSorting) == -1 ) - { - oCol.sSortingClass = oSettings.oClasses.sSortableAsc; - oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIAscAllowed; - } - else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) != -1 ) - { - oCol.sSortingClass = oSettings.oClasses.sSortableDesc; - oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIDescAllowed; - } - } - - - /** - * Adjust the table column widths for new data. Note: you would probably want to - * do a redraw after calling this function! - * @param {object} oSettings dataTables settings object - * @memberof DataTable#oApi - */ - function _fnAdjustColumnSizing ( oSettings ) - { - /* Not interested in doing column width calculation if auto-width is disabled */ - if ( oSettings.oFeatures.bAutoWidth === false ) - { - return false; - } - - _fnCalculateColumnWidths( oSettings ); - for ( var i=0 , iLen=oSettings.aoColumns.length ; i
    - * @param {bool} [bRedraw=true] redraw the table or not - * @returns {array} An array of integers, representing the list of indexes in - * aoData ({@link DataTable.models.oSettings}) that have been added to - * the table. - * @dtopt API - * - * @example - * // Global var for counter - * var giCount = 2; - * - * $(document).ready(function() { - * $('#example').dataTable(); - * } ); - * - * function fnClickAddRow() { - * $('#example').dataTable().fnAddData( [ - * giCount+".1", - * giCount+".2", - * giCount+".3", - * giCount+".4" ] - * ); - * - * giCount++; - * } - */ - this.fnAddData = function( mData, bRedraw ) - { - if ( mData.length === 0 ) - { - return []; - } - - var aiReturn = []; - var iTest; - - /* Find settings from table node */ - var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); - - /* Check if we want to add multiple rows or not */ - if ( typeof mData[0] === "object" && mData[0] !== null ) - { - for ( var i=0 ; i= oSettings.fnRecordsDisplay() ) - { - oSettings._iDisplayStart -= oSettings._iDisplayLength; - if ( oSettings._iDisplayStart < 0 ) - { - oSettings._iDisplayStart = 0; - } - } - - if ( bRedraw === undefined || bRedraw ) - { - _fnCalculateEnd( oSettings ); - _fnDraw( oSettings ); - } - - return oData; - }; - - - /** - * Restore the table to it's original state in the DOM by removing all of DataTables - * enhancements, alterations to the DOM structure of the table and event listeners. - * @param {boolean} [bRemove=false] Completely remove the table from the DOM - * @dtopt API - * - * @example - * $(document).ready(function() { - * // This example is fairly pointless in reality, but shows how fnDestroy can be used - * var oTable = $('#example').dataTable(); - * oTable.fnDestroy(); - * } ); - */ - this.fnDestroy = function ( bRemove ) - { - var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); - var nOrig = oSettings.nTableWrapper.parentNode; - var nBody = oSettings.nTBody; - var i, iLen; - - bRemove = (bRemove===undefined) ? false : bRemove; - - /* Flag to note that the table is currently being destroyed - no action should be taken */ - oSettings.bDestroying = true; - - /* Fire off the destroy callbacks for plug-ins etc */ - _fnCallbackFire( oSettings, "aoDestroyCallback", "destroy", [oSettings] ); - - /* If the table is not being removed, restore the hidden columns */ - if ( !bRemove ) - { - for ( i=0, iLen=oSettings.aoColumns.length ; itr>td.'+oSettings.oClasses.sRowEmpty, oSettings.nTable).parent().remove(); - - /* When scrolling we had to break the table up - restore it */ - if ( oSettings.nTable != oSettings.nTHead.parentNode ) - { - $(oSettings.nTable).children('thead').remove(); - oSettings.nTable.appendChild( oSettings.nTHead ); - } - - if ( oSettings.nTFoot && oSettings.nTable != oSettings.nTFoot.parentNode ) - { - $(oSettings.nTable).children('tfoot').remove(); - oSettings.nTable.appendChild( oSettings.nTFoot ); - } - - /* Remove the DataTables generated nodes, events and classes */ - oSettings.nTable.parentNode.removeChild( oSettings.nTable ); - $(oSettings.nTableWrapper).remove(); - - oSettings.aaSorting = []; - oSettings.aaSortingFixed = []; - _fnSortingClasses( oSettings ); - - $(_fnGetTrNodes( oSettings )).removeClass( oSettings.asStripeClasses.join(' ') ); - - $('th, td', oSettings.nTHead).removeClass( [ - oSettings.oClasses.sSortable, - oSettings.oClasses.sSortableAsc, - oSettings.oClasses.sSortableDesc, - oSettings.oClasses.sSortableNone ].join(' ') - ); - if ( oSettings.bJUI ) - { - $('th span.'+oSettings.oClasses.sSortIcon - + ', td span.'+oSettings.oClasses.sSortIcon, oSettings.nTHead).remove(); - - $('th, td', oSettings.nTHead).each( function () { - var jqWrapper = $('div.'+oSettings.oClasses.sSortJUIWrapper, this); - var kids = jqWrapper.contents(); - $(this).append( kids ); - jqWrapper.remove(); - } ); - } - - /* Add the TR elements back into the table in their original order */ - if ( !bRemove && oSettings.nTableReinsertBefore ) - { - nOrig.insertBefore( oSettings.nTable, oSettings.nTableReinsertBefore ); - } - else if ( !bRemove ) - { - nOrig.appendChild( oSettings.nTable ); - } - - for ( i=0, iLen=oSettings.aoData.length ; i
  • - * Function input parameters: - *
      - *
    • {*} Data to compare to the second parameter
    • - *
    • {*} Data to compare to the first parameter
    • - *
    - *
  • - *
  • - * Function return: - *
      - *
    • {int} Sorting match: <0 if first parameter should be sorted lower than - * the second parameter, ===0 if the two parameters are equal and >0 if - * the first parameter should be sorted height than the second parameter.
    • - *
    - * - * - * @type object - * @default {} - * - * @example - * // Case-sensitive string sorting, with no pre-formatting method - * $.extend( $.fn.dataTableExt.oSort, { - * "string-case-asc": function(x,y) { - * return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - * }, - * "string-case-desc": function(x,y) { - * return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - * } - * } ); - * - * @example - * // Case-insensitive string sorting, with pre-formatting - * $.extend( $.fn.dataTableExt.oSort, { - * "string-pre": function(x) { - * return x.toLowerCase(); - * }, - * "string-asc": function(x,y) { - * return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - * }, - * "string-desc": function(x,y) { - * return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - * } - * } ); - */ - "oSort": {}, - - - /** - * Version string for plug-ins to check compatibility. Allowed format is - * a.b.c.d.e where: a:int, b:int, c:int, d:string(dev|beta), e:int. d and - * e are optional - * @type string - * @default Version number - */ - "sVersion": DataTable.version, - - - /** - * How should DataTables report an error. Can take the value 'alert' or 'throw' - * @type string - * @default alert - */ - "sErrMode": "alert", - - - /** - * Store information for DataTables to access globally about other instances - * @namespace - * @private - */ - "_oExternConfig": { - /* int:iNextUnique - next unique number for an instance */ - "iNextUnique": 0 - } - }; - - - - - /** - * Template object for the way in which DataTables holds information about - * search information for the global filter and individual column filters. - * @namespace - */ - DataTable.models.oSearch = { - /** - * Flag to indicate if the filtering should be case insensitive or not - * @type boolean - * @default true - */ - "bCaseInsensitive": true, - - /** - * Applied search term - * @type string - * @default Empty string - */ - "sSearch": "", - - /** - * Flag to indicate if the search term should be interpreted as a - * regular expression (true) or not (false) and therefore and special - * regex characters escaped. - * @type boolean - * @default false - */ - "bRegex": false, - - /** - * Flag to indicate if DataTables is to use its smart filtering or not. - * @type boolean - * @default true - */ - "bSmart": true - }; - - - - - /** - * Template object for the way in which DataTables holds information about - * each individual row. This is the object format used for the settings - * aoData array. - * @namespace - */ - DataTable.models.oRow = { - /** - * TR element for the row - * @type node - * @default null - */ - "nTr": null, - - /** - * Data object from the original data source for the row. This is either - * an array if using the traditional form of DataTables, or an object if - * using mData options. The exact type will depend on the passed in - * data from the data source, or will be an array if using DOM a data - * source. - * @type array|object - * @default [] - */ - "_aData": [], - - /** - * Sorting data cache - this array is ostensibly the same length as the - * number of columns (although each index is generated only as it is - * needed), and holds the data that is used for sorting each column in the - * row. We do this cache generation at the start of the sort in order that - * the formatting of the sort data need be done only once for each cell - * per sort. This array should not be read from or written to by anything - * other than the master sorting methods. - * @type array - * @default [] - * @private - */ - "_aSortData": [], - - /** - * Array of TD elements that are cached for hidden rows, so they can be - * reinserted into the table if a column is made visible again (or to act - * as a store if a column is made hidden). Only hidden columns have a - * reference in the array. For non-hidden columns the value is either - * undefined or null. - * @type array nodes - * @default [] - * @private - */ - "_anHidden": [], - - /** - * Cache of the class name that DataTables has applied to the row, so we - * can quickly look at this variable rather than needing to do a DOM check - * on className for the nTr property. - * @type string - * @default Empty string - * @private - */ - "_sRowStripe": "" - }; - - - - /** - * Template object for the column information object in DataTables. This object - * is held in the settings aoColumns array and contains all the information that - * DataTables needs about each individual column. - * - * Note that this object is related to {@link DataTable.defaults.columns} - * but this one is the internal data store for DataTables's cache of columns. - * It should NOT be manipulated outside of DataTables. Any configuration should - * be done through the initialisation options. - * @namespace - */ - DataTable.models.oColumn = { - /** - * A list of the columns that sorting should occur on when this column - * is sorted. That this property is an array allows multi-column sorting - * to be defined for a column (for example first name / last name columns - * would benefit from this). The values are integers pointing to the - * columns to be sorted on (typically it will be a single integer pointing - * at itself, but that doesn't need to be the case). - * @type array - */ - "aDataSort": null, - - /** - * Define the sorting directions that are applied to the column, in sequence - * as the column is repeatedly sorted upon - i.e. the first value is used - * as the sorting direction when the column if first sorted (clicked on). - * Sort it again (click again) and it will move on to the next index. - * Repeat until loop. - * @type array - */ - "asSorting": null, - - /** - * Flag to indicate if the column is searchable, and thus should be included - * in the filtering or not. - * @type boolean - */ - "bSearchable": null, - - /** - * Flag to indicate if the column is sortable or not. - * @type boolean - */ - "bSortable": null, - - /** - * Deprecated When using fnRender, you have two options for what - * to do with the data, and this property serves as the switch. Firstly, you - * can have the sorting and filtering use the rendered value (true - default), - * or you can have the sorting and filtering us the original value (false). - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type boolean - * @deprecated - */ - "bUseRendered": null, - - /** - * Flag to indicate if the column is currently visible in the table or not - * @type boolean - */ - "bVisible": null, - - /** - * Flag to indicate to the type detection method if the automatic type - * detection should be used, or if a column type (sType) has been specified - * @type boolean - * @default true - * @private - */ - "_bAutoType": true, - - /** - * Developer definable function that is called whenever a cell is created (Ajax source, - * etc) or processed for input (DOM source). This can be used as a compliment to mRender - * allowing you to modify the DOM element (add background colour for example) when the - * element is available. - * @type function - * @param {element} nTd The TD node that has been created - * @param {*} sData The Data for the cell - * @param {array|object} oData The data for the whole row - * @param {int} iRow The row index for the aoData data store - * @default null - */ - "fnCreatedCell": null, - - /** - * Function to get data from a cell in a column. You should never - * access data directly through _aData internally in DataTables - always use - * the method attached to this property. It allows mData to function as - * required. This function is automatically assigned by the column - * initialisation method - * @type function - * @param {array|object} oData The data array/object for the array - * (i.e. aoData[]._aData) - * @param {string} sSpecific The specific data type you want to get - - * 'display', 'type' 'filter' 'sort' - * @returns {*} The data for the cell from the given row's data - * @default null - */ - "fnGetData": null, - - /** - * Deprecated Custom display function that will be called for the - * display of each cell in this column. - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type function - * @param {object} o Object with the following parameters: - * @param {int} o.iDataRow The row in aoData - * @param {int} o.iDataColumn The column in question - * @param {array} o.aData The data for the row in question - * @param {object} o.oSettings The settings object for this DataTables instance - * @returns {string} The string you which to use in the display - * @default null - * @deprecated - */ - "fnRender": null, - - /** - * Function to set data for a cell in the column. You should never - * set the data directly to _aData internally in DataTables - always use - * this method. It allows mData to function as required. This function - * is automatically assigned by the column initialisation method - * @type function - * @param {array|object} oData The data array/object for the array - * (i.e. aoData[]._aData) - * @param {*} sValue Value to set - * @default null - */ - "fnSetData": null, - - /** - * Property to read the value for the cells in the column from the data - * source array / object. If null, then the default content is used, if a - * function is given then the return from the function is used. - * @type function|int|string|null - * @default null - */ - "mData": null, - - /** - * Partner property to mData which is used (only when defined) to get - * the data - i.e. it is basically the same as mData, but without the - * 'set' option, and also the data fed to it is the result from mData. - * This is the rendering method to match the data method of mData. - * @type function|int|string|null - * @default null - */ - "mRender": null, - - /** - * Unique header TH/TD element for this column - this is what the sorting - * listener is attached to (if sorting is enabled.) - * @type node - * @default null - */ - "nTh": null, - - /** - * Unique footer TH/TD element for this column (if there is one). Not used - * in DataTables as such, but can be used for plug-ins to reference the - * footer for each column. - * @type node - * @default null - */ - "nTf": null, - - /** - * The class to apply to all TD elements in the table's TBODY for the column - * @type string - * @default null - */ - "sClass": null, - - /** - * When DataTables calculates the column widths to assign to each column, - * it finds the longest string in each column and then constructs a - * temporary table and reads the widths from that. The problem with this - * is that "mmm" is much wider then "iiii", but the latter is a longer - * string - thus the calculation can go wrong (doing it properly and putting - * it into an DOM object and measuring that is horribly(!) slow). Thus as - * a "work around" we provide this option. It will append its value to the - * text that is found to be the longest string for the column - i.e. padding. - * @type string - */ - "sContentPadding": null, - - /** - * Allows a default value to be given for a column's data, and will be used - * whenever a null data source is encountered (this can be because mData - * is set to null, or because the data source itself is null). - * @type string - * @default null - */ - "sDefaultContent": null, - - /** - * Name for the column, allowing reference to the column by name as well as - * by index (needs a lookup to work by name). - * @type string - */ - "sName": null, - - /** - * Custom sorting data type - defines which of the available plug-ins in - * afnSortData the custom sorting will use - if any is defined. - * @type string - * @default std - */ - "sSortDataType": 'std', - - /** - * Class to be applied to the header element when sorting on this column - * @type string - * @default null - */ - "sSortingClass": null, - - /** - * Class to be applied to the header element when sorting on this column - - * when jQuery UI theming is used. - * @type string - * @default null - */ - "sSortingClassJUI": null, - - /** - * Title of the column - what is seen in the TH element (nTh). - * @type string - */ - "sTitle": null, - - /** - * Column sorting and filtering type - * @type string - * @default null - */ - "sType": null, - - /** - * Width of the column - * @type string - * @default null - */ - "sWidth": null, - - /** - * Width of the column when it was first "encountered" - * @type string - * @default null - */ - "sWidthOrig": null - }; - - - - /** - * Initialisation options that can be given to DataTables at initialisation - * time. - * @namespace - */ - DataTable.defaults = { - /** - * An array of data to use for the table, passed in at initialisation which - * will be used in preference to any data which is already in the DOM. This is - * particularly useful for constructing tables purely in Javascript, for - * example with a custom Ajax call. - * @type array - * @default null - * @dtopt Option - * - * @example - * // Using a 2D array data source - * $(document).ready( function () { - * $('#example').dataTable( { - * "aaData": [ - * ['Trident', 'Internet Explorer 4.0', 'Win 95+', 4, 'X'], - * ['Trident', 'Internet Explorer 5.0', 'Win 95+', 5, 'C'], - * ], - * "aoColumns": [ - * { "sTitle": "Engine" }, - * { "sTitle": "Browser" }, - * { "sTitle": "Platform" }, - * { "sTitle": "Version" }, - * { "sTitle": "Grade" } - * ] - * } ); - * } ); - * - * @example - * // Using an array of objects as a data source (mData) - * $(document).ready( function () { - * $('#example').dataTable( { - * "aaData": [ - * { - * "engine": "Trident", - * "browser": "Internet Explorer 4.0", - * "platform": "Win 95+", - * "version": 4, - * "grade": "X" - * }, - * { - * "engine": "Trident", - * "browser": "Internet Explorer 5.0", - * "platform": "Win 95+", - * "version": 5, - * "grade": "C" - * } - * ], - * "aoColumns": [ - * { "sTitle": "Engine", "mData": "engine" }, - * { "sTitle": "Browser", "mData": "browser" }, - * { "sTitle": "Platform", "mData": "platform" }, - * { "sTitle": "Version", "mData": "version" }, - * { "sTitle": "Grade", "mData": "grade" } - * ] - * } ); - * } ); - */ - "aaData": null, - - - /** - * If sorting is enabled, then DataTables will perform a first pass sort on - * initialisation. You can define which column(s) the sort is performed upon, - * and the sorting direction, with this variable. The aaSorting array should - * contain an array for each column to be sorted initially containing the - * column's index and a direction string ('asc' or 'desc'). - * @type array - * @default [[0,'asc']] - * @dtopt Option - * - * @example - * // Sort by 3rd column first, and then 4th column - * $(document).ready( function() { - * $('#example').dataTable( { - * "aaSorting": [[2,'asc'], [3,'desc']] - * } ); - * } ); - * - * // No initial sorting - * $(document).ready( function() { - * $('#example').dataTable( { - * "aaSorting": [] - * } ); - * } ); - */ - "aaSorting": [[0,'asc']], - - - /** - * This parameter is basically identical to the aaSorting parameter, but - * cannot be overridden by user interaction with the table. What this means - * is that you could have a column (visible or hidden) which the sorting will - * always be forced on first - any sorting after that (from the user) will - * then be performed as required. This can be useful for grouping rows - * together. - * @type array - * @default null - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aaSortingFixed": [[0,'asc']] - * } ); - * } ) - */ - "aaSortingFixed": null, - - - /** - * This parameter allows you to readily specify the entries in the length drop - * down menu that DataTables shows when pagination is enabled. It can be - * either a 1D array of options which will be used for both the displayed - * option and the value, or a 2D array which will use the array in the first - * position as the value, and the array in the second position as the - * displayed options (useful for language strings such as 'All'). - * @type array - * @default [ 10, 25, 50, 100 ] - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]] - * } ); - * } ); - * - * @example - * // Setting the default display length as well as length menu - * // This is likely to be wanted if you remove the '10' option which - * // is the iDisplayLength default. - * $(document).ready( function() { - * $('#example').dataTable( { - * "iDisplayLength": 25, - * "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]] - * } ); - * } ); - */ - "aLengthMenu": [ 10, 25, 50, 100 ], - - - /** - * The aoColumns option in the initialisation parameter allows you to define - * details about the way individual columns behave. For a full list of - * column options that can be set, please see - * {@link DataTable.defaults.columns}. Note that if you use aoColumns to - * define your columns, you must have an entry in the array for every single - * column that you have in your table (these can be null if you don't which - * to specify any options). - * @member - */ - "aoColumns": null, - - /** - * Very similar to aoColumns, aoColumnDefs allows you to target a specific - * column, multiple columns, or all columns, using the aTargets property of - * each object in the array. This allows great flexibility when creating - * tables, as the aoColumnDefs arrays can be of any length, targeting the - * columns you specifically want. aoColumnDefs may use any of the column - * options available: {@link DataTable.defaults.columns}, but it _must_ - * have aTargets defined in each object in the array. Values in the aTargets - * array may be: - *
      - *
    • a string - class name will be matched on the TH for the column
    • - *
    • 0 or a positive integer - column index counting from the left
    • - *
    • a negative integer - column index counting from the right
    • - *
    • the string "_all" - all columns (i.e. assign a default)
    • - *
    - * @member - */ - "aoColumnDefs": null, - - - /** - * Basically the same as oSearch, this parameter defines the individual column - * filtering state at initialisation time. The array must be of the same size - * as the number of columns, and each element be an object with the parameters - * "sSearch" and "bEscapeRegex" (the latter is optional). 'null' is also - * accepted and the default will be used. - * @type array - * @default [] - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoSearchCols": [ - * null, - * { "sSearch": "My filter" }, - * null, - * { "sSearch": "^[0-9]", "bEscapeRegex": false } - * ] - * } ); - * } ) - */ - "aoSearchCols": [], - - - /** - * An array of CSS classes that should be applied to displayed rows. This - * array may be of any length, and DataTables will apply each class - * sequentially, looping when required. - * @type array - * @default null Will take the values determined by the oClasses.sStripe* - * options - * @dtopt Option - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "asStripeClasses": [ 'strip1', 'strip2', 'strip3' ] - * } ); - * } ) - */ - "asStripeClasses": null, - - - /** - * Enable or disable automatic column width calculation. This can be disabled - * as an optimisation (it takes some time to calculate the widths) if the - * tables widths are passed in using aoColumns. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bAutoWidth": false - * } ); - * } ); - */ - "bAutoWidth": true, - - - /** - * Deferred rendering can provide DataTables with a huge speed boost when you - * are using an Ajax or JS data source for the table. This option, when set to - * true, will cause DataTables to defer the creation of the table elements for - * each row until they are needed for a draw - saving a significant amount of - * time. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/arrays.txt", - * "bDeferRender": true - * } ); - * } ); - */ - "bDeferRender": false, - - - /** - * Replace a DataTable which matches the given selector and replace it with - * one which has the properties of the new initialisation object passed. If no - * table matches the selector, then the new DataTable will be constructed as - * per normal. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollY": "200px", - * "bPaginate": false - * } ); - * - * // Some time later.... - * $('#example').dataTable( { - * "bFilter": false, - * "bDestroy": true - * } ); - * } ); - */ - "bDestroy": false, - - - /** - * Enable or disable filtering of data. Filtering in DataTables is "smart" in - * that it allows the end user to input multiple words (space separated) and - * will match a row containing those words, even if not in the order that was - * specified (this allow matching across multiple columns). Note that if you - * wish to use filtering in DataTables this must remain 'true' - to remove the - * default filtering input box and retain filtering abilities, please use - * {@link DataTable.defaults.sDom}. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bFilter": false - * } ); - * } ); - */ - "bFilter": true, - - - /** - * Enable or disable the table information display. This shows information - * about the data that is currently visible on the page, including information - * about filtered data if that action is being performed. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bInfo": false - * } ); - * } ); - */ - "bInfo": true, - - - /** - * Enable jQuery UI ThemeRoller support (required as ThemeRoller requires some - * slightly different and additional mark-up from what DataTables has - * traditionally used). - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bJQueryUI": true - * } ); - * } ); - */ - "bJQueryUI": false, - - - /** - * Allows the end user to select the size of a formatted page from a select - * menu (sizes are 10, 25, 50 and 100). Requires pagination (bPaginate). - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bLengthChange": false - * } ); - * } ); - */ - "bLengthChange": true, - - - /** - * Enable or disable pagination. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bPaginate": false - * } ); - * } ); - */ - "bPaginate": true, - - - /** - * Enable or disable the display of a 'processing' indicator when the table is - * being processed (e.g. a sort). This is particularly useful for tables with - * large amounts of data where it can take a noticeable amount of time to sort - * the entries. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bProcessing": true - * } ); - * } ); - */ - "bProcessing": false, - - - /** - * Retrieve the DataTables object for the given selector. Note that if the - * table has already been initialised, this parameter will cause DataTables - * to simply return the object that has already been set up - it will not take - * account of any changes you might have made to the initialisation object - * passed to DataTables (setting this parameter to true is an acknowledgement - * that you understand this). bDestroy can be used to reinitialise a table if - * you need. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * initTable(); - * tableActions(); - * } ); - * - * function initTable () - * { - * return $('#example').dataTable( { - * "sScrollY": "200px", - * "bPaginate": false, - * "bRetrieve": true - * } ); - * } - * - * function tableActions () - * { - * var oTable = initTable(); - * // perform API operations with oTable - * } - */ - "bRetrieve": false, - - - /** - * Indicate if DataTables should be allowed to set the padding / margin - * etc for the scrolling header elements or not. Typically you will want - * this. - * @type boolean - * @default true - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bScrollAutoCss": false, - * "sScrollY": "200px" - * } ); - * } ); - */ - "bScrollAutoCss": true, - - - /** - * When vertical (y) scrolling is enabled, DataTables will force the height of - * the table's viewport to the given height at all times (useful for layout). - * However, this can look odd when filtering data down to a small data set, - * and the footer is left "floating" further down. This parameter (when - * enabled) will cause DataTables to collapse the table's viewport down when - * the result set will fit within the given Y height. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollY": "200", - * "bScrollCollapse": true - * } ); - * } ); - */ - "bScrollCollapse": false, - - - /** - * Enable infinite scrolling for DataTables (to be used in combination with - * sScrollY). Infinite scrolling means that DataTables will continually load - * data as a user scrolls through a table, which is very useful for large - * dataset. This cannot be used with pagination, which is automatically - * disabled. Note - the Scroller extra for DataTables is recommended in - * in preference to this option. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bScrollInfinite": true, - * "bScrollCollapse": true, - * "sScrollY": "200px" - * } ); - * } ); - */ - "bScrollInfinite": false, - - - /** - * Configure DataTables to use server-side processing. Note that the - * sAjaxSource parameter must also be given in order to give DataTables a - * source to obtain the required data for each draw. - * @type boolean - * @default false - * @dtopt Features - * @dtopt Server-side - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "xhr.php" - * } ); - * } ); - */ - "bServerSide": false, - - - /** - * Enable or disable sorting of columns. Sorting of individual columns can be - * disabled by the "bSortable" option for each column. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bSort": false - * } ); - * } ); - */ - "bSort": true, - - - /** - * Allows control over whether DataTables should use the top (true) unique - * cell that is found for a single column, or the bottom (false - default). - * This is useful when using complex headers. - * @type boolean - * @default false - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bSortCellsTop": true - * } ); - * } ); - */ - "bSortCellsTop": false, - - - /** - * Enable or disable the addition of the classes 'sorting_1', 'sorting_2' and - * 'sorting_3' to the columns which are currently being sorted on. This is - * presented as a feature switch as it can increase processing time (while - * classes are removed and added) so for large data sets you might want to - * turn this off. - * @type boolean - * @default true - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bSortClasses": false - * } ); - * } ); - */ - "bSortClasses": true, - - - /** - * Enable or disable state saving. When enabled a cookie will be used to save - * table display information such as pagination information, display length, - * filtering and sorting. As such when the end user reloads the page the - * display display will match what thy had previously set up. - * @type boolean - * @default false - * @dtopt Features - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "bStateSave": true - * } ); - * } ); - */ - "bStateSave": false, - - - /** - * Customise the cookie and / or the parameters being stored when using - * DataTables with state saving enabled. This function is called whenever - * the cookie is modified, and it expects a fully formed cookie string to be - * returned. Note that the data object passed in is a Javascript object which - * must be converted to a string (JSON.stringify for example). - * @type function - * @param {string} sName Name of the cookie defined by DataTables - * @param {object} oData Data to be stored in the cookie - * @param {string} sExpires Cookie expires string - * @param {string} sPath Path of the cookie to set - * @returns {string} Cookie formatted string (which should be encoded by - * using encodeURIComponent()) - * @dtopt Callbacks - * - * @example - * $(document).ready( function () { - * $('#example').dataTable( { - * "fnCookieCallback": function (sName, oData, sExpires, sPath) { - * // Customise oData or sName or whatever else here - * return sName + "="+JSON.stringify(oData)+"; expires=" + sExpires +"; path=" + sPath; - * } - * } ); - * } ); - */ - "fnCookieCallback": null, - - - /** - * This function is called when a TR element is created (and all TD child - * elements have been inserted), or registered if using a DOM source, allowing - * manipulation of the TR element (adding classes etc). - * @type function - * @param {node} nRow "TR" element for the current row - * @param {array} aData Raw data array for this row - * @param {int} iDataIndex The index of this row in aoData - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnCreatedRow": function( nRow, aData, iDataIndex ) { - * // Bold the grade for all 'A' grade browsers - * if ( aData[4] == "A" ) - * { - * $('td:eq(4)', nRow).html( 'A' ); - * } - * } - * } ); - * } ); - */ - "fnCreatedRow": null, - - - /** - * This function is called on every 'draw' event, and allows you to - * dynamically modify any aspect you want about the created DOM. - * @type function - * @param {object} oSettings DataTables settings object - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnDrawCallback": function( oSettings ) { - * alert( 'DataTables has redrawn the table' ); - * } - * } ); - * } ); - */ - "fnDrawCallback": null, - - - /** - * Identical to fnHeaderCallback() but for the table footer this function - * allows you to modify the table footer on every 'draw' even. - * @type function - * @param {node} nFoot "TR" element for the footer - * @param {array} aData Full table data (as derived from the original HTML) - * @param {int} iStart Index for the current display starting point in the - * display array - * @param {int} iEnd Index for the current display ending point in the - * display array - * @param {array int} aiDisplay Index array to translate the visual position - * to the full data array - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnFooterCallback": function( nFoot, aData, iStart, iEnd, aiDisplay ) { - * nFoot.getElementsByTagName('th')[0].innerHTML = "Starting index is "+iStart; - * } - * } ); - * } ) - */ - "fnFooterCallback": null, - - - /** - * When rendering large numbers in the information element for the table - * (i.e. "Showing 1 to 10 of 57 entries") DataTables will render large numbers - * to have a comma separator for the 'thousands' units (e.g. 1 million is - * rendered as "1,000,000") to help readability for the end user. This - * function will override the default method DataTables uses. - * @type function - * @member - * @param {int} iIn number to be formatted - * @returns {string} formatted string for DataTables to show the number - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "fnFormatNumber": function ( iIn ) { - * if ( iIn < 1000 ) { - * return iIn; - * } else { - * var - * s=(iIn+""), - * a=s.split(""), out="", - * iLen=s.length; - * - * for ( var i=0 ; i<iLen ; i++ ) { - * if ( i%3 === 0 && i !== 0 ) { - * out = "'"+out; - * } - * out = a[iLen-i-1]+out; - * } - * } - * return out; - * }; - * } ); - * } ); - */ - "fnFormatNumber": function ( iIn ) { - if ( iIn < 1000 ) - { - // A small optimisation for what is likely to be the majority of use cases - return iIn; - } - - var s=(iIn+""), a=s.split(""), out="", iLen=s.length; - - for ( var i=0 ; iA
    ' ); - * } - * } - * } ); - * } ); - */ - "fnRowCallback": null, - - - /** - * This parameter allows you to override the default function which obtains - * the data from the server ($.getJSON) so something more suitable for your - * application. For example you could use POST data, or pull information from - * a Gears or AIR database. - * @type function - * @member - * @param {string} sSource HTTP source to obtain the data from (sAjaxSource) - * @param {array} aoData A key/value pair object containing the data to send - * to the server - * @param {function} fnCallback to be called on completion of the data get - * process that will draw the data on the page. - * @param {object} oSettings DataTables settings object - * @dtopt Callbacks - * @dtopt Server-side - * - * @example - * // POST data to server - * $(document).ready( function() { - * $('#example').dataTable( { - * "bProcessing": true, - * "bServerSide": true, - * "sAjaxSource": "xhr.php", - * "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { - * oSettings.jqXHR = $.ajax( { - * "dataType": 'json', - * "type": "POST", - * "url": sSource, - * "data": aoData, - * "success": fnCallback - * } ); - * } - * } ); - * } ); - */ - "fnServerData": function ( sUrl, aoData, fnCallback, oSettings ) { - oSettings.jqXHR = $.ajax( { - "url": sUrl, - "data": aoData, - "success": function (json) { - if ( json.sError ) { - oSettings.oApi._fnLog( oSettings, 0, json.sError ); - } - - $(oSettings.oInstance).trigger('xhr', [oSettings, json]); - fnCallback( json ); - }, - "dataType": "json", - "cache": false, - "type": oSettings.sServerMethod, - "error": function (xhr, error, thrown) { - if ( error == "parsererror" ) { - oSettings.oApi._fnLog( oSettings, 0, "DataTables warning: JSON data from "+ - "server could not be parsed. This is caused by a JSON formatting error." ); - } - } - } ); - }, - - - /** - * It is often useful to send extra data to the server when making an Ajax - * request - for example custom filtering information, and this callback - * function makes it trivial to send extra information to the server. The - * passed in parameter is the data set that has been constructed by - * DataTables, and you can add to this or modify it as you require. - * @type function - * @param {array} aoData Data array (array of objects which are name/value - * pairs) that has been constructed by DataTables and will be sent to the - * server. In the case of Ajax sourced data with server-side processing - * this will be an empty array, for server-side processing there will be a - * significant number of parameters! - * @returns {undefined} Ensure that you modify the aoData array passed in, - * as this is passed by reference. - * @dtopt Callbacks - * @dtopt Server-side - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bProcessing": true, - * "bServerSide": true, - * "sAjaxSource": "scripts/server_processing.php", - * "fnServerParams": function ( aoData ) { - * aoData.push( { "name": "more_data", "value": "my_value" } ); - * } - * } ); - * } ); - */ - "fnServerParams": null, - - - /** - * Load the table state. With this function you can define from where, and how, the - * state of a table is loaded. By default DataTables will load from its state saving - * cookie, but you might wish to use local storage (HTML5) or a server-side database. - * @type function - * @member - * @param {object} oSettings DataTables settings object - * @return {object} The DataTables state object to be loaded - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoad": function (oSettings) { - * var o; - * - * // Send an Ajax request to the server to get the data. Note that - * // this is a synchronous request. - * $.ajax( { - * "url": "/state_load", - * "async": false, - * "dataType": "json", - * "success": function (json) { - * o = json; - * } - * } ); - * - * return o; - * } - * } ); - * } ); - */ - "fnStateLoad": function ( oSettings ) { - var sData = this.oApi._fnReadCookie( oSettings.sCookiePrefix+oSettings.sInstance ); - var oData; - - try { - oData = (typeof $.parseJSON === 'function') ? - $.parseJSON(sData) : eval( '('+sData+')' ); - } catch (e) { - oData = null; - } - - return oData; - }, - - - /** - * Callback which allows modification of the saved state prior to loading that state. - * This callback is called when the table is loading state from the stored data, but - * prior to the settings object being modified by the saved state. Note that for - * plug-in authors, you should use the 'stateLoadParams' event to load parameters for - * a plug-in. - * @type function - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object that is to be loaded - * @dtopt Callbacks - * - * @example - * // Remove a saved filter, so filtering is never loaded - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoadParams": function (oSettings, oData) { - * oData.oSearch.sSearch = ""; - * } - * } ); - * } ); - * - * @example - * // Disallow state loading by returning false - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoadParams": function (oSettings, oData) { - * return false; - * } - * } ); - * } ); - */ - "fnStateLoadParams": null, - - - /** - * Callback that is called when the state has been loaded from the state saving method - * and the DataTables settings object has been modified as a result of the loaded state. - * @type function - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object that was loaded - * @dtopt Callbacks - * - * @example - * // Show an alert with the filtering value that was saved - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateLoaded": function (oSettings, oData) { - * alert( 'Saved filter was: '+oData.oSearch.sSearch ); - * } - * } ); - * } ); - */ - "fnStateLoaded": null, - - - /** - * Save the table state. This function allows you to define where and how the state - * information for the table is stored - by default it will use a cookie, but you - * might want to use local storage (HTML5) or a server-side database. - * @type function - * @member - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object to be saved - * @dtopt Callbacks - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateSave": function (oSettings, oData) { - * // Send an Ajax request to the server with the state object - * $.ajax( { - * "url": "/state_save", - * "data": oData, - * "dataType": "json", - * "method": "POST" - * "success": function () {} - * } ); - * } - * } ); - * } ); - */ - "fnStateSave": function ( oSettings, oData ) { - this.oApi._fnCreateCookie( - oSettings.sCookiePrefix+oSettings.sInstance, - this.oApi._fnJsonString(oData), - oSettings.iCookieDuration, - oSettings.sCookiePrefix, - oSettings.fnCookieCallback - ); - }, - - - /** - * Callback which allows modification of the state to be saved. Called when the table - * has changed state a new state save is required. This method allows modification of - * the state saving object prior to actually doing the save, including addition or - * other state properties or modification. Note that for plug-in authors, you should - * use the 'stateSaveParams' event to save parameters for a plug-in. - * @type function - * @param {object} oSettings DataTables settings object - * @param {object} oData The state object to be saved - * @dtopt Callbacks - * - * @example - * // Remove a saved filter, so filtering is never saved - * $(document).ready( function() { - * $('#example').dataTable( { - * "bStateSave": true, - * "fnStateSaveParams": function (oSettings, oData) { - * oData.oSearch.sSearch = ""; - * } - * } ); - * } ); - */ - "fnStateSaveParams": null, - - - /** - * Duration of the cookie which is used for storing session information. This - * value is given in seconds. - * @type int - * @default 7200 (2 hours) - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iCookieDuration": 60*60*24; // 1 day - * } ); - * } ) - */ - "iCookieDuration": 7200, - - - /** - * When enabled DataTables will not make a request to the server for the first - * page draw - rather it will use the data already on the page (no sorting etc - * will be applied to it), thus saving on an XHR at load time. iDeferLoading - * is used to indicate that deferred loading is required, but it is also used - * to tell DataTables how many records there are in the full table (allowing - * the information element and pagination to be displayed correctly). In the case - * where a filtering is applied to the table on initial load, this can be - * indicated by giving the parameter as an array, where the first element is - * the number of records available after filtering and the second element is the - * number of records without filtering (allowing the table information element - * to be shown correctly). - * @type int | array - * @default null - * @dtopt Options - * - * @example - * // 57 records available in the table, no filtering applied - * $(document).ready( function() { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "scripts/server_processing.php", - * "iDeferLoading": 57 - * } ); - * } ); - * - * @example - * // 57 records after filtering, 100 without filtering (an initial filter applied) - * $(document).ready( function() { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "scripts/server_processing.php", - * "iDeferLoading": [ 57, 100 ], - * "oSearch": { - * "sSearch": "my_filter" - * } - * } ); - * } ); - */ - "iDeferLoading": null, - - - /** - * Number of rows to display on a single page when using pagination. If - * feature enabled (bLengthChange) then the end user will be able to override - * this to a custom setting using a pop-up menu. - * @type int - * @default 10 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iDisplayLength": 50 - * } ); - * } ) - */ - "iDisplayLength": 10, - - - /** - * Define the starting point for data display when using DataTables with - * pagination. Note that this parameter is the number of records, rather than - * the page number, so if you have 10 records per page and want to start on - * the third page, it should be "20". - * @type int - * @default 0 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iDisplayStart": 20 - * } ); - * } ) - */ - "iDisplayStart": 0, - - - /** - * The scroll gap is the amount of scrolling that is left to go before - * DataTables will load the next 'page' of data automatically. You typically - * want a gap which is big enough that the scrolling will be smooth for the - * user, while not so large that it will load more data than need. - * @type int - * @default 100 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bScrollInfinite": true, - * "bScrollCollapse": true, - * "sScrollY": "200px", - * "iScrollLoadGap": 50 - * } ); - * } ); - */ - "iScrollLoadGap": 100, - - - /** - * By default DataTables allows keyboard navigation of the table (sorting, paging, - * and filtering) by adding a tabindex attribute to the required elements. This - * allows you to tab through the controls and press the enter key to activate them. - * The tabindex is default 0, meaning that the tab follows the flow of the document. - * You can overrule this using this parameter if you wish. Use a value of -1 to - * disable built-in keyboard navigation. - * @type int - * @default 0 - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "iTabIndex": 1 - * } ); - * } ); - */ - "iTabIndex": 0, - - - /** - * All strings that DataTables uses in the user interface that it creates - * are defined in this object, allowing you to modified them individually or - * completely replace them all as required. - * @namespace - */ - "oLanguage": { - /** - * Strings that are used for WAI-ARIA labels and controls only (these are not - * actually visible on the page, but will be read by screenreaders, and thus - * must be internationalised as well). - * @namespace - */ - "oAria": { - /** - * ARIA label that is added to the table headers when the column may be - * sorted ascending by activing the column (click or return when focused). - * Note that the column header is prefixed to this string. - * @type string - * @default : activate to sort column ascending - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oAria": { - * "sSortAscending": " - click/return to sort ascending" - * } - * } - * } ); - * } ); - */ - "sSortAscending": ": activate to sort column ascending", - - /** - * ARIA label that is added to the table headers when the column may be - * sorted descending by activing the column (click or return when focused). - * Note that the column header is prefixed to this string. - * @type string - * @default : activate to sort column ascending - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oAria": { - * "sSortDescending": " - click/return to sort descending" - * } - * } - * } ); - * } ); - */ - "sSortDescending": ": activate to sort column descending" - }, - - /** - * Pagination string used by DataTables for the two built-in pagination - * control types ("two_button" and "full_numbers") - * @namespace - */ - "oPaginate": { - /** - * Text to use when using the 'full_numbers' type of pagination for the - * button to take the user to the first page. - * @type string - * @default First - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sFirst": "First page" - * } - * } - * } ); - * } ); - */ - "sFirst": "First", - - - /** - * Text to use when using the 'full_numbers' type of pagination for the - * button to take the user to the last page. - * @type string - * @default Last - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sLast": "Last page" - * } - * } - * } ); - * } ); - */ - "sLast": "Last", - - - /** - * Text to use for the 'next' pagination button (to take the user to the - * next page). - * @type string - * @default Next - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sNext": "Next page" - * } - * } - * } ); - * } ); - */ - "sNext": "Next", - - - /** - * Text to use for the 'previous' pagination button (to take the user to - * the previous page). - * @type string - * @default Previous - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "oPaginate": { - * "sPrevious": "Previous page" - * } - * } - * } ); - * } ); - */ - "sPrevious": "Previous" - }, - - /** - * This string is shown in preference to sZeroRecords when the table is - * empty of data (regardless of filtering). Note that this is an optional - * parameter - if it is not given, the value of sZeroRecords will be used - * instead (either the default or given value). - * @type string - * @default No data available in table - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sEmptyTable": "No data available in table" - * } - * } ); - * } ); - */ - "sEmptyTable": "No data available in table", - - - /** - * This string gives information to the end user about the information that - * is current on display on the page. The _START_, _END_ and _TOTAL_ - * variables are all dynamically replaced as the table display updates, and - * can be freely moved or removed as the language requirements change. - * @type string - * @default Showing _START_ to _END_ of _TOTAL_ entries - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfo": "Got a total of _TOTAL_ entries to show (_START_ to _END_)" - * } - * } ); - * } ); - */ - "sInfo": "Showing _START_ to _END_ of _TOTAL_ entries", - - - /** - * Display information string for when the table is empty. Typically the - * format of this string should match sInfo. - * @type string - * @default Showing 0 to 0 of 0 entries - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoEmpty": "No entries to show" - * } - * } ); - * } ); - */ - "sInfoEmpty": "Showing 0 to 0 of 0 entries", - - - /** - * When a user filters the information in a table, this string is appended - * to the information (sInfo) to give an idea of how strong the filtering - * is. The variable _MAX_ is dynamically updated. - * @type string - * @default (filtered from _MAX_ total entries) - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoFiltered": " - filtering from _MAX_ records" - * } - * } ); - * } ); - */ - "sInfoFiltered": "(filtered from _MAX_ total entries)", - - - /** - * If can be useful to append extra information to the info string at times, - * and this variable does exactly that. This information will be appended to - * the sInfo (sInfoEmpty and sInfoFiltered in whatever combination they are - * being used) at all times. - * @type string - * @default Empty string - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoPostFix": "All records shown are derived from real information." - * } - * } ); - * } ); - */ - "sInfoPostFix": "", - - - /** - * DataTables has a build in number formatter (fnFormatNumber) which is used - * to format large numbers that are used in the table information. By - * default a comma is used, but this can be trivially changed to any - * character you wish with this parameter. - * @type string - * @default , - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sInfoThousands": "'" - * } - * } ); - * } ); - */ - "sInfoThousands": ",", - - - /** - * Detail the action that will be taken when the drop down menu for the - * pagination length option is changed. The '_MENU_' variable is replaced - * with a default select list of 10, 25, 50 and 100, and can be replaced - * with a custom select box if required. - * @type string - * @default Show _MENU_ entries - * @dtopt Language - * - * @example - * // Language change only - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sLengthMenu": "Display _MENU_ records" - * } - * } ); - * } ); - * - * @example - * // Language and options change - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sLengthMenu": 'Display records' - * } - * } ); - * } ); - */ - "sLengthMenu": "Show _MENU_ entries", - - - /** - * When using Ajax sourced data and during the first draw when DataTables is - * gathering the data, this message is shown in an empty row in the table to - * indicate to the end user the the data is being loaded. Note that this - * parameter is not used when loading data by server-side processing, just - * Ajax sourced data with client-side processing. - * @type string - * @default Loading... - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sLoadingRecords": "Please wait - loading..." - * } - * } ); - * } ); - */ - "sLoadingRecords": "Loading...", - - - /** - * Text which is displayed when the table is processing a user action - * (usually a sort command or similar). - * @type string - * @default Processing... - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sProcessing": "DataTables is currently busy" - * } - * } ); - * } ); - */ - "sProcessing": "Processing...", - - - /** - * Details the actions that will be taken when the user types into the - * filtering input text box. The variable "_INPUT_", if used in the string, - * is replaced with the HTML text box for the filtering input allowing - * control over where it appears in the string. If "_INPUT_" is not given - * then the input box is appended to the string automatically. - * @type string - * @default Search: - * @dtopt Language - * - * @example - * // Input text box will be appended at the end automatically - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sSearch": "Filter records:" - * } - * } ); - * } ); - * - * @example - * // Specify where the filter should appear - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sSearch": "Apply filter _INPUT_ to table" - * } - * } ); - * } ); - */ - "sSearch": "Search:", - - - /** - * All of the language information can be stored in a file on the - * server-side, which DataTables will look up if this parameter is passed. - * It must store the URL of the language file, which is in a JSON format, - * and the object has the same properties as the oLanguage object in the - * initialiser object (i.e. the above parameters). Please refer to one of - * the example language files to see how this works in action. - * @type string - * @default Empty string - i.e. disabled - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sUrl": "http://www.sprymedia.co.uk/dataTables/lang.txt" - * } - * } ); - * } ); - */ - "sUrl": "", - - - /** - * Text shown inside the table records when the is no information to be - * displayed after filtering. sEmptyTable is shown when there is simply no - * information in the table at all (regardless of filtering). - * @type string - * @default No matching records found - * @dtopt Language - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oLanguage": { - * "sZeroRecords": "No records to display" - * } - * } ); - * } ); - */ - "sZeroRecords": "No matching records found" - }, - - - /** - * This parameter allows you to have define the global filtering state at - * initialisation time. As an object the "sSearch" parameter must be - * defined, but all other parameters are optional. When "bRegex" is true, - * the search string will be treated as a regular expression, when false - * (default) it will be treated as a straight string. When "bSmart" - * DataTables will use it's smart filtering methods (to word match at - * any point in the data), when false this will not be done. - * @namespace - * @extends DataTable.models.oSearch - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "oSearch": {"sSearch": "Initial search"} - * } ); - * } ) - */ - "oSearch": $.extend( {}, DataTable.models.oSearch ), - - - /** - * By default DataTables will look for the property 'aaData' when obtaining - * data from an Ajax source or for server-side processing - this parameter - * allows that property to be changed. You can use Javascript dotted object - * notation to get a data source for multiple levels of nesting. - * @type string - * @default aaData - * @dtopt Options - * @dtopt Server-side - * - * @example - * // Get data from { "data": [...] } - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/data.txt", - * "sAjaxDataProp": "data" - * } ); - * } ); - * - * @example - * // Get data from { "data": { "inner": [...] } } - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/data.txt", - * "sAjaxDataProp": "data.inner" - * } ); - * } ); - */ - "sAjaxDataProp": "aaData", - - - /** - * You can instruct DataTables to load data from an external source using this - * parameter (use aData if you want to pass data in you already have). Simply - * provide a url a JSON object can be obtained from. This object must include - * the parameter 'aaData' which is the data source for the table. - * @type string - * @default null - * @dtopt Options - * @dtopt Server-side - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sAjaxSource": "http://www.sprymedia.co.uk/dataTables/json.php" - * } ); - * } ) - */ - "sAjaxSource": null, - - - /** - * This parameter can be used to override the default prefix that DataTables - * assigns to a cookie when state saving is enabled. - * @type string - * @default SpryMedia_DataTables_ - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sCookiePrefix": "my_datatable_", - * } ); - * } ); - */ - "sCookiePrefix": "SpryMedia_DataTables_", - - - /** - * This initialisation variable allows you to specify exactly where in the - * DOM you want DataTables to inject the various controls it adds to the page - * (for example you might want the pagination controls at the top of the - * table). DIV elements (with or without a custom class) can also be added to - * aid styling. The follow syntax is used: - *
      - *
    • The following options are allowed: - *
        - *
      • 'l' - Length changing
      • 'f' - Filtering input - *
      • 't' - The table!
      • - *
      • 'i' - Information
      • - *
      • 'p' - Pagination
      • - *
      • 'r' - pRocessing
      • - *
      - *
    • - *
    • The following constants are allowed: - *
        - *
      • 'H' - jQueryUI theme "header" classes ('fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix')
      • - *
      • 'F' - jQueryUI theme "footer" classes ('fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix')
      • - *
      - *
    • - *
    • The following syntax is expected: - *
        - *
      • '<' and '>' - div elements
      • - *
      • '<"class" and '>' - div with a class
      • - *
      • '<"#id" and '>' - div with an ID
      • - *
      - *
    • - *
    • Examples: - *
        - *
      • '<"wrapper"flipt>'
      • - *
      • '<lf<t>ip>'
      • - *
      - *
    • - *
    - * @type string - * @default lfrtip (when bJQueryUI is false) or - * <"H"lfr>t<"F"ip> (when bJQueryUI is true) - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sDom": '<"top"i>rt<"bottom"flp><"clear">' - * } ); - * } ); - */ - "sDom": "lfrtip", - - - /** - * DataTables features two different built-in pagination interaction methods - * ('two_button' or 'full_numbers') which present different page controls to - * the end user. Further methods can be added using the API (see below). - * @type string - * @default two_button - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sPaginationType": "full_numbers" - * } ); - * } ) - */ - "sPaginationType": "two_button", - - - /** - * Enable horizontal scrolling. When a table is too wide to fit into a certain - * layout, or you have a large number of columns in the table, you can enable - * x-scrolling to show the table in a viewport, which can be scrolled. This - * property can be any CSS unit, or a number (in which case it will be treated - * as a pixel measurement). - * @type string - * @default blank string - i.e. disabled - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollX": "100%", - * "bScrollCollapse": true - * } ); - * } ); - */ - "sScrollX": "", - - - /** - * This property can be used to force a DataTable to use more width than it - * might otherwise do when x-scrolling is enabled. For example if you have a - * table which requires to be well spaced, this parameter is useful for - * "over-sizing" the table, and thus forcing scrolling. This property can by - * any CSS unit, or a number (in which case it will be treated as a pixel - * measurement). - * @type string - * @default blank string - i.e. disabled - * @dtopt Options - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollX": "100%", - * "sScrollXInner": "110%" - * } ); - * } ); - */ - "sScrollXInner": "", - - - /** - * Enable vertical scrolling. Vertical scrolling will constrain the DataTable - * to the given height, and enable scrolling for any data which overflows the - * current viewport. This can be used as an alternative to paging to display - * a lot of data in a small area (although paging and scrolling can both be - * enabled at the same time). This property can be any CSS unit, or a number - * (in which case it will be treated as a pixel measurement). - * @type string - * @default blank string - i.e. disabled - * @dtopt Features - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "sScrollY": "200px", - * "bPaginate": false - * } ); - * } ); - */ - "sScrollY": "", - - - /** - * Set the HTTP method that is used to make the Ajax call for server-side - * processing or Ajax sourced data. - * @type string - * @default GET - * @dtopt Options - * @dtopt Server-side - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "bServerSide": true, - * "sAjaxSource": "scripts/post.php", - * "sServerMethod": "POST" - * } ); - * } ); - */ - "sServerMethod": "GET" - }; - - - - /** - * Column options that can be given to DataTables at initialisation time. - * @namespace - */ - DataTable.defaults.columns = { - /** - * Allows a column's sorting to take multiple columns into account when - * doing a sort. For example first name / last name columns make sense to - * do a multi-column sort over the two columns. - * @type array - * @default null Takes the value of the column index automatically - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "aDataSort": [ 0, 1 ], "aTargets": [ 0 ] }, - * { "aDataSort": [ 1, 0 ], "aTargets": [ 1 ] }, - * { "aDataSort": [ 2, 3, 4 ], "aTargets": [ 2 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "aDataSort": [ 0, 1 ] }, - * { "aDataSort": [ 1, 0 ] }, - * { "aDataSort": [ 2, 3, 4 ] }, - * null, - * null - * ] - * } ); - * } ); - */ - "aDataSort": null, - - - /** - * You can control the default sorting direction, and even alter the behaviour - * of the sort handler (i.e. only allow ascending sorting etc) using this - * parameter. - * @type array - * @default [ 'asc', 'desc' ] - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "asSorting": [ "asc" ], "aTargets": [ 1 ] }, - * { "asSorting": [ "desc", "asc", "asc" ], "aTargets": [ 2 ] }, - * { "asSorting": [ "desc" ], "aTargets": [ 3 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * { "asSorting": [ "asc" ] }, - * { "asSorting": [ "desc", "asc", "asc" ] }, - * { "asSorting": [ "desc" ] }, - * null - * ] - * } ); - * } ); - */ - "asSorting": [ 'asc', 'desc' ], - - - /** - * Enable or disable filtering on the data in this column. - * @type boolean - * @default true - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "bSearchable": false, "aTargets": [ 0 ] } - * ] } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "bSearchable": false }, - * null, - * null, - * null, - * null - * ] } ); - * } ); - */ - "bSearchable": true, - - - /** - * Enable or disable sorting on this column. - * @type boolean - * @default true - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "bSortable": false, "aTargets": [ 0 ] } - * ] } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "bSortable": false }, - * null, - * null, - * null, - * null - * ] } ); - * } ); - */ - "bSortable": true, - - - /** - * Deprecated When using fnRender() for a column, you may wish - * to use the original data (before rendering) for sorting and filtering - * (the default is to used the rendered data that the user can see). This - * may be useful for dates etc. - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type boolean - * @default true - * @dtopt Columns - * @deprecated - */ - "bUseRendered": true, - - - /** - * Enable or disable the display of this column. - * @type boolean - * @default true - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "bVisible": false, "aTargets": [ 0 ] } - * ] } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "bVisible": false }, - * null, - * null, - * null, - * null - * ] } ); - * } ); - */ - "bVisible": true, - - - /** - * Developer definable function that is called whenever a cell is created (Ajax source, - * etc) or processed for input (DOM source). This can be used as a compliment to mRender - * allowing you to modify the DOM element (add background colour for example) when the - * element is available. - * @type function - * @param {element} nTd The TD node that has been created - * @param {*} sData The Data for the cell - * @param {array|object} oData The data for the whole row - * @param {int} iRow The row index for the aoData data store - * @param {int} iCol The column index for aoColumns - * @dtopt Columns - * - * @example - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ { - * "aTargets": [3], - * "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { - * if ( sData == "1.7" ) { - * $(nTd).css('color', 'blue') - * } - * } - * } ] - * }); - * } ); - */ - "fnCreatedCell": null, - - - /** - * Deprecated Custom display function that will be called for the - * display of each cell in this column. - * - * Please note that this option has now been deprecated and will be removed - * in the next version of DataTables. Please use mRender / mData rather than - * fnRender. - * @type function - * @param {object} o Object with the following parameters: - * @param {int} o.iDataRow The row in aoData - * @param {int} o.iDataColumn The column in question - * @param {array} o.aData The data for the row in question - * @param {object} o.oSettings The settings object for this DataTables instance - * @param {object} o.mDataProp The data property used for this column - * @param {*} val The current cell value - * @returns {string} The string you which to use in the display - * @dtopt Columns - * @deprecated - */ - "fnRender": null, - - - /** - * The column index (starting from 0!) that you wish a sort to be performed - * upon when this column is selected for sorting. This can be used for sorting - * on hidden columns for example. - * @type int - * @default -1 Use automatically calculated column index - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "iDataSort": 1, "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "iDataSort": 1 }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "iDataSort": -1, - - - /** - * This parameter has been replaced by mData in DataTables to ensure naming - * consistency. mDataProp can still be used, as there is backwards compatibility - * in DataTables for this option, but it is strongly recommended that you use - * mData in preference to mDataProp. - * @name DataTable.defaults.columns.mDataProp - */ - - - /** - * This property can be used to read data from any JSON data source property, - * including deeply nested objects / properties. mData can be given in a - * number of different ways which effect its behaviour: - *
      - *
    • integer - treated as an array index for the data source. This is the - * default that DataTables uses (incrementally increased for each column).
    • - *
    • string - read an object property from the data source. Note that you can - * use Javascript dotted notation to read deep properties / arrays from the - * data source.
    • - *
    • null - the sDefaultContent option will be used for the cell (null - * by default, so you will need to specify the default content you want - - * typically an empty string). This can be useful on generated columns such - * as edit / delete action columns.
    • - *
    • function - the function given will be executed whenever DataTables - * needs to set or get the data for a cell in the column. The function - * takes three parameters: - *
        - *
      • {array|object} The data source for the row
      • - *
      • {string} The type call data requested - this will be 'set' when - * setting data or 'filter', 'display', 'type', 'sort' or undefined when - * gathering data. Note that when undefined is given for the type - * DataTables expects to get the raw data for the object back
      • - *
      • {*} Data to set when the second parameter is 'set'.
      • - *
      - * The return value from the function is not required when 'set' is the type - * of call, but otherwise the return is what will be used for the data - * requested.
    • - *
    - * - * Note that prior to DataTables 1.9.2 mData was called mDataProp. The name change - * reflects the flexibility of this property and is consistent with the naming of - * mRender. If 'mDataProp' is given, then it will still be used by DataTables, as - * it automatically maps the old name to the new if required. - * @type string|int|function|null - * @default null Use automatically calculated column index - * @dtopt Columns - * - * @example - * // Read table data from objects - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/deep.txt", - * "aoColumns": [ - * { "mData": "engine" }, - * { "mData": "browser" }, - * { "mData": "platform.inner" }, - * { "mData": "platform.details.0" }, - * { "mData": "platform.details.1" } - * ] - * } ); - * } ); - * - * @example - * // Using mData as a function to provide different information for - * // sorting, filtering and display. In this case, currency (price) - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ { - * "aTargets": [ 0 ], - * "mData": function ( source, type, val ) { - * if (type === 'set') { - * source.price = val; - * // Store the computed dislay and filter values for efficiency - * source.price_display = val=="" ? "" : "$"+numberFormat(val); - * source.price_filter = val=="" ? "" : "$"+numberFormat(val)+" "+val; - * return; - * } - * else if (type === 'display') { - * return source.price_display; - * } - * else if (type === 'filter') { - * return source.price_filter; - * } - * // 'sort', 'type' and undefined all just use the integer - * return source.price; - * } - * } ] - * } ); - * } ); - */ - "mData": null, - - - /** - * This property is the rendering partner to mData and it is suggested that - * when you want to manipulate data for display (including filtering, sorting etc) - * but not altering the underlying data for the table, use this property. mData - * can actually do everything this property can and more, but this parameter is - * easier to use since there is no 'set' option. Like mData is can be given - * in a number of different ways to effect its behaviour, with the addition of - * supporting array syntax for easy outputting of arrays (including arrays of - * objects): - *
      - *
    • integer - treated as an array index for the data source. This is the - * default that DataTables uses (incrementally increased for each column).
    • - *
    • string - read an object property from the data source. Note that you can - * use Javascript dotted notation to read deep properties / arrays from the - * data source and also array brackets to indicate that the data reader should - * loop over the data source array. When characters are given between the array - * brackets, these characters are used to join the data source array together. - * For example: "accounts[, ].name" would result in a comma separated list with - * the 'name' value from the 'accounts' array of objects.
    • - *
    • function - the function given will be executed whenever DataTables - * needs to set or get the data for a cell in the column. The function - * takes three parameters: - *
        - *
      • {array|object} The data source for the row (based on mData)
      • - *
      • {string} The type call data requested - this will be 'filter', 'display', - * 'type' or 'sort'.
      • - *
      • {array|object} The full data source for the row (not based on mData)
      • - *
      - * The return value from the function is what will be used for the data - * requested.
    • - *
    - * @type string|int|function|null - * @default null Use mData - * @dtopt Columns - * - * @example - * // Create a comma separated list from an array of objects - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "sAjaxSource": "sources/deep.txt", - * "aoColumns": [ - * { "mData": "engine" }, - * { "mData": "browser" }, - * { - * "mData": "platform", - * "mRender": "[, ].name" - * } - * ] - * } ); - * } ); - * - * @example - * // Use as a function to create a link from the data source - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ - * { - * "aTargets": [ 0 ], - * "mData": "download_link", - * "mRender": function ( data, type, full ) { - * return 'Download'; - * } - * ] - * } ); - * } ); - */ - "mRender": null, - - - /** - * Change the cell type created for the column - either TD cells or TH cells. This - * can be useful as TH cells have semantic meaning in the table body, allowing them - * to act as a header for a row (you may wish to add scope='row' to the TH elements). - * @type string - * @default td - * @dtopt Columns - * - * @example - * // Make the first column use TH cells - * $(document).ready( function() { - * var oTable = $('#example').dataTable( { - * "aoColumnDefs": [ { - * "aTargets": [ 0 ], - * "sCellType": "th" - * } ] - * } ); - * } ); - */ - "sCellType": "td", - - - /** - * Class to give to each cell in this column. - * @type string - * @default Empty string - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sClass": "my_class", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sClass": "my_class" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sClass": "", - - /** - * When DataTables calculates the column widths to assign to each column, - * it finds the longest string in each column and then constructs a - * temporary table and reads the widths from that. The problem with this - * is that "mmm" is much wider then "iiii", but the latter is a longer - * string - thus the calculation can go wrong (doing it properly and putting - * it into an DOM object and measuring that is horribly(!) slow). Thus as - * a "work around" we provide this option. It will append its value to the - * text that is found to be the longest string for the column - i.e. padding. - * Generally you shouldn't need this, and it is not documented on the - * general DataTables.net documentation - * @type string - * @default Empty string - * @dtopt Columns - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * null, - * null, - * { - * "sContentPadding": "mmm" - * } - * ] - * } ); - * } ); - */ - "sContentPadding": "", - - - /** - * Allows a default value to be given for a column's data, and will be used - * whenever a null data source is encountered (this can be because mData - * is set to null, or because the data source itself is null). - * @type string - * @default null - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { - * "mData": null, - * "sDefaultContent": "Edit", - * "aTargets": [ -1 ] - * } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * null, - * null, - * { - * "mData": null, - * "sDefaultContent": "Edit" - * } - * ] - * } ); - * } ); - */ - "sDefaultContent": null, - - - /** - * This parameter is only used in DataTables' server-side processing. It can - * be exceptionally useful to know what columns are being displayed on the - * client side, and to map these to database fields. When defined, the names - * also allow DataTables to reorder information from the server if it comes - * back in an unexpected order (i.e. if you switch your columns around on the - * client-side, your server-side code does not also need updating). - * @type string - * @default Empty string - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sName": "engine", "aTargets": [ 0 ] }, - * { "sName": "browser", "aTargets": [ 1 ] }, - * { "sName": "platform", "aTargets": [ 2 ] }, - * { "sName": "version", "aTargets": [ 3 ] }, - * { "sName": "grade", "aTargets": [ 4 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sName": "engine" }, - * { "sName": "browser" }, - * { "sName": "platform" }, - * { "sName": "version" }, - * { "sName": "grade" } - * ] - * } ); - * } ); - */ - "sName": "", - - - /** - * Defines a data source type for the sorting which can be used to read - * real-time information from the table (updating the internally cached - * version) prior to sorting. This allows sorting to occur on user editable - * elements such as form inputs. - * @type string - * @default std - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sSortDataType": "dom-text", "aTargets": [ 2, 3 ] }, - * { "sType": "numeric", "aTargets": [ 3 ] }, - * { "sSortDataType": "dom-select", "aTargets": [ 4 ] }, - * { "sSortDataType": "dom-checkbox", "aTargets": [ 5 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * null, - * null, - * { "sSortDataType": "dom-text" }, - * { "sSortDataType": "dom-text", "sType": "numeric" }, - * { "sSortDataType": "dom-select" }, - * { "sSortDataType": "dom-checkbox" } - * ] - * } ); - * } ); - */ - "sSortDataType": "std", - - - /** - * The title of this column. - * @type string - * @default null Derived from the 'TH' value for this column in the - * original HTML table. - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sTitle": "My column title", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sTitle": "My column title" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sTitle": null, - - - /** - * The type allows you to specify how the data for this column will be sorted. - * Four types (string, numeric, date and html (which will strip HTML tags - * before sorting)) are currently available. Note that only date formats - * understood by Javascript's Date() object will be accepted as type date. For - * example: "Mar 26, 2008 5:03 PM". May take the values: 'string', 'numeric', - * 'date' or 'html' (by default). Further types can be adding through - * plug-ins. - * @type string - * @default null Auto-detected from raw data - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sType": "html", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sType": "html" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sType": null, - - - /** - * Defining the width of the column, this parameter may take any CSS value - * (3em, 20px etc). DataTables apples 'smart' widths to columns which have not - * been given a specific width through this interface ensuring that the table - * remains readable. - * @type string - * @default null Automatic - * @dtopt Columns - * - * @example - * // Using aoColumnDefs - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumnDefs": [ - * { "sWidth": "20%", "aTargets": [ 0 ] } - * ] - * } ); - * } ); - * - * @example - * // Using aoColumns - * $(document).ready( function() { - * $('#example').dataTable( { - * "aoColumns": [ - * { "sWidth": "20%" }, - * null, - * null, - * null, - * null - * ] - * } ); - * } ); - */ - "sWidth": null - }; - - - - /** - * DataTables settings object - this holds all the information needed for a - * given table, including configuration, data and current application of the - * table options. DataTables does not have a single instance for each DataTable - * with the settings attached to that instance, but rather instances of the - * DataTable "class" are created on-the-fly as needed (typically by a - * $().dataTable() call) and the settings object is then applied to that - * instance. - * - * Note that this object is related to {@link DataTable.defaults} but this - * one is the internal data store for DataTables's cache of columns. It should - * NOT be manipulated outside of DataTables. Any configuration should be done - * through the initialisation options. - * @namespace - * @todo Really should attach the settings object to individual instances so we - * don't need to create new instances on each $().dataTable() call (if the - * table already exists). It would also save passing oSettings around and - * into every single function. However, this is a very significant - * architecture change for DataTables and will almost certainly break - * backwards compatibility with older installations. This is something that - * will be done in 2.0. - */ - DataTable.models.oSettings = { - /** - * Primary features of DataTables and their enablement state. - * @namespace - */ - "oFeatures": { - - /** - * Flag to say if DataTables should automatically try to calculate the - * optimum table and columns widths (true) or not (false). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bAutoWidth": null, - - /** - * Delay the creation of TR and TD elements until they are actually - * needed by a driven page draw. This can give a significant speed - * increase for Ajax source and Javascript source data, but makes no - * difference at all fro DOM and server-side processing tables. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bDeferRender": null, - - /** - * Enable filtering on the table or not. Note that if this is disabled - * then there is no filtering at all on the table, including fnFilter. - * To just remove the filtering input use sDom and remove the 'f' option. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bFilter": null, - - /** - * Table information element (the 'Showing x of y records' div) enable - * flag. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bInfo": null, - - /** - * Present a user control allowing the end user to change the page size - * when pagination is enabled. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bLengthChange": null, - - /** - * Pagination enabled or not. Note that if this is disabled then length - * changing must also be disabled. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bPaginate": null, - - /** - * Processing indicator enable flag whenever DataTables is enacting a - * user request - typically an Ajax request for server-side processing. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bProcessing": null, - - /** - * Server-side processing enabled flag - when enabled DataTables will - * get all data from the server for every draw - there is no filtering, - * sorting or paging done on the client-side. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bServerSide": null, - - /** - * Sorting enablement flag. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bSort": null, - - /** - * Apply a class to the columns which are being sorted to provide a - * visual highlight or not. This can slow things down when enabled since - * there is a lot of DOM interaction. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bSortClasses": null, - - /** - * State saving enablement flag. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bStateSave": null - }, - - - /** - * Scrolling settings for a table. - * @namespace - */ - "oScroll": { - /** - * Indicate if DataTables should be allowed to set the padding / margin - * etc for the scrolling header elements or not. Typically you will want - * this. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bAutoCss": null, - - /** - * When the table is shorter in height than sScrollY, collapse the - * table container down to the height of the table (when true). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bCollapse": null, - - /** - * Infinite scrolling enablement flag. Now deprecated in favour of - * using the Scroller plug-in. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bInfinite": null, - - /** - * Width of the scrollbar for the web-browser's platform. Calculated - * during table initialisation. - * @type int - * @default 0 - */ - "iBarWidth": 0, - - /** - * Space (in pixels) between the bottom of the scrolling container and - * the bottom of the scrolling viewport before the next page is loaded - * when using infinite scrolling. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type int - */ - "iLoadGap": null, - - /** - * Viewport width for horizontal scrolling. Horizontal scrolling is - * disabled if an empty string. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sX": null, - - /** - * Width to expand the table to when using x-scrolling. Typically you - * should not need to use this. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @deprecated - */ - "sXInner": null, - - /** - * Viewport height for vertical scrolling. Vertical scrolling is disabled - * if an empty string. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sY": null - }, - - /** - * Language information for the table. - * @namespace - * @extends DataTable.defaults.oLanguage - */ - "oLanguage": { - /** - * Information callback function. See - * {@link DataTable.defaults.fnInfoCallback} - * @type function - * @default null - */ - "fnInfoCallback": null - }, - - /** - * Browser support parameters - * @namespace - */ - "oBrowser": { - /** - * Indicate if the browser incorrectly calculates width:100% inside a - * scrolling element (IE6/7) - * @type boolean - * @default false - */ - "bScrollOversize": false - }, - - /** - * Array referencing the nodes which are used for the features. The - * parameters of this object match what is allowed by sDom - i.e. - *
      - *
    • 'l' - Length changing
    • - *
    • 'f' - Filtering input
    • - *
    • 't' - The table!
    • - *
    • 'i' - Information
    • - *
    • 'p' - Pagination
    • - *
    • 'r' - pRocessing
    • - *
    - * @type array - * @default [] - */ - "aanFeatures": [], - - /** - * Store data information - see {@link DataTable.models.oRow} for detailed - * information. - * @type array - * @default [] - */ - "aoData": [], - - /** - * Array of indexes which are in the current display (after filtering etc) - * @type array - * @default [] - */ - "aiDisplay": [], - - /** - * Array of indexes for display - no filtering - * @type array - * @default [] - */ - "aiDisplayMaster": [], - - /** - * Store information about each column that is in use - * @type array - * @default [] - */ - "aoColumns": [], - - /** - * Store information about the table's header - * @type array - * @default [] - */ - "aoHeader": [], - - /** - * Store information about the table's footer - * @type array - * @default [] - */ - "aoFooter": [], - - /** - * Search data array for regular expression searching - * @type array - * @default [] - */ - "asDataSearch": [], - - /** - * Store the applied global search information in case we want to force a - * research or compare the old search to a new one. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @namespace - * @extends DataTable.models.oSearch - */ - "oPreviousSearch": {}, - - /** - * Store the applied search for each column - see - * {@link DataTable.models.oSearch} for the format that is used for the - * filtering information for each column. - * @type array - * @default [] - */ - "aoPreSearchCols": [], - - /** - * Sorting that is applied to the table. Note that the inner arrays are - * used in the following manner: - *
      - *
    • Index 0 - column number
    • - *
    • Index 1 - current sorting direction
    • - *
    • Index 2 - index of asSorting for this column
    • - *
    - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array - * @todo These inner arrays should really be objects - */ - "aaSorting": null, - - /** - * Sorting that is always applied to the table (i.e. prefixed in front of - * aaSorting). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array|null - * @default null - */ - "aaSortingFixed": null, - - /** - * Classes to use for the striping of a table. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array - * @default [] - */ - "asStripeClasses": null, - - /** - * If restoring a table - we should restore its striping classes as well - * @type array - * @default [] - */ - "asDestroyStripes": [], - - /** - * If restoring a table - we should restore its width - * @type int - * @default 0 - */ - "sDestroyWidth": 0, - - /** - * Callback functions array for every time a row is inserted (i.e. on a draw). - * @type array - * @default [] - */ - "aoRowCallback": [], - - /** - * Callback functions for the header on each draw. - * @type array - * @default [] - */ - "aoHeaderCallback": [], - - /** - * Callback function for the footer on each draw. - * @type array - * @default [] - */ - "aoFooterCallback": [], - - /** - * Array of callback functions for draw callback functions - * @type array - * @default [] - */ - "aoDrawCallback": [], - - /** - * Array of callback functions for row created function - * @type array - * @default [] - */ - "aoRowCreatedCallback": [], - - /** - * Callback functions for just before the table is redrawn. A return of - * false will be used to cancel the draw. - * @type array - * @default [] - */ - "aoPreDrawCallback": [], - - /** - * Callback functions for when the table has been initialised. - * @type array - * @default [] - */ - "aoInitComplete": [], - - - /** - * Callbacks for modifying the settings to be stored for state saving, prior to - * saving state. - * @type array - * @default [] - */ - "aoStateSaveParams": [], - - /** - * Callbacks for modifying the settings that have been stored for state saving - * prior to using the stored values to restore the state. - * @type array - * @default [] - */ - "aoStateLoadParams": [], - - /** - * Callbacks for operating on the settings object once the saved state has been - * loaded - * @type array - * @default [] - */ - "aoStateLoaded": [], - - /** - * Cache the table ID for quick access - * @type string - * @default Empty string - */ - "sTableId": "", - - /** - * The TABLE node for the main table - * @type node - * @default null - */ - "nTable": null, - - /** - * Permanent ref to the thead element - * @type node - * @default null - */ - "nTHead": null, - - /** - * Permanent ref to the tfoot element - if it exists - * @type node - * @default null - */ - "nTFoot": null, - - /** - * Permanent ref to the tbody element - * @type node - * @default null - */ - "nTBody": null, - - /** - * Cache the wrapper node (contains all DataTables controlled elements) - * @type node - * @default null - */ - "nTableWrapper": null, - - /** - * Indicate if when using server-side processing the loading of data - * should be deferred until the second draw. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - * @default false - */ - "bDeferLoading": false, - - /** - * Indicate if all required information has been read in - * @type boolean - * @default false - */ - "bInitialised": false, - - /** - * Information about open rows. Each object in the array has the parameters - * 'nTr' and 'nParent' - * @type array - * @default [] - */ - "aoOpenRows": [], - - /** - * Dictate the positioning of DataTables' control elements - see - * {@link DataTable.model.oInit.sDom}. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default null - */ - "sDom": null, - - /** - * Which type of pagination should be used. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default two_button - */ - "sPaginationType": "two_button", - - /** - * The cookie duration (for bStateSave) in seconds. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type int - * @default 0 - */ - "iCookieDuration": 0, - - /** - * The cookie name prefix. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default Empty string - */ - "sCookiePrefix": "", - - /** - * Callback function for cookie creation. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type function - * @default null - */ - "fnCookieCallback": null, - - /** - * Array of callback functions for state saving. Each array element is an - * object with the following parameters: - *
      - *
    • function:fn - function to call. Takes two parameters, oSettings - * and the JSON string to save that has been thus far created. Returns - * a JSON string to be inserted into a json object - * (i.e. '"param": [ 0, 1, 2]')
    • - *
    • string:sName - name of callback
    • - *
    - * @type array - * @default [] - */ - "aoStateSave": [], - - /** - * Array of callback functions for state loading. Each array element is an - * object with the following parameters: - *
      - *
    • function:fn - function to call. Takes two parameters, oSettings - * and the object stored. May return false to cancel state loading
    • - *
    • string:sName - name of callback
    • - *
    - * @type array - * @default [] - */ - "aoStateLoad": [], - - /** - * State that was loaded from the cookie. Useful for back reference - * @type object - * @default null - */ - "oLoadedState": null, - - /** - * Source url for AJAX data for the table. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - * @default null - */ - "sAjaxSource": null, - - /** - * Property from a given object from which to read the table data from. This - * can be an empty string (when not server-side processing), in which case - * it is assumed an an array is given directly. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sAjaxDataProp": null, - - /** - * Note if draw should be blocked while getting data - * @type boolean - * @default true - */ - "bAjaxDataGet": true, - - /** - * The last jQuery XHR object that was used for server-side data gathering. - * This can be used for working with the XHR information in one of the - * callbacks - * @type object - * @default null - */ - "jqXHR": null, - - /** - * Function to get the server-side data. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type function - */ - "fnServerData": null, - - /** - * Functions which are called prior to sending an Ajax request so extra - * parameters can easily be sent to the server - * @type array - * @default [] - */ - "aoServerParams": [], - - /** - * Send the XHR HTTP method - GET or POST (could be PUT or DELETE if - * required). - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type string - */ - "sServerMethod": null, - - /** - * Format numbers for display. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type function - */ - "fnFormatNumber": null, - - /** - * List of options that can be used for the user selectable length menu. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type array - * @default [] - */ - "aLengthMenu": null, - - /** - * Counter for the draws that the table does. Also used as a tracker for - * server-side processing - * @type int - * @default 0 - */ - "iDraw": 0, - - /** - * Indicate if a redraw is being done - useful for Ajax - * @type boolean - * @default false - */ - "bDrawing": false, - - /** - * Draw index (iDraw) of the last error when parsing the returned data - * @type int - * @default -1 - */ - "iDrawError": -1, - - /** - * Paging display length - * @type int - * @default 10 - */ - "_iDisplayLength": 10, - - /** - * Paging start point - aiDisplay index - * @type int - * @default 0 - */ - "_iDisplayStart": 0, - - /** - * Paging end point - aiDisplay index. Use fnDisplayEnd rather than - * this property to get the end point - * @type int - * @default 10 - * @private - */ - "_iDisplayEnd": 10, - - /** - * Server-side processing - number of records in the result set - * (i.e. before filtering), Use fnRecordsTotal rather than - * this property to get the value of the number of records, regardless of - * the server-side processing setting. - * @type int - * @default 0 - * @private - */ - "_iRecordsTotal": 0, - - /** - * Server-side processing - number of records in the current display set - * (i.e. after filtering). Use fnRecordsDisplay rather than - * this property to get the value of the number of records, regardless of - * the server-side processing setting. - * @type boolean - * @default 0 - * @private - */ - "_iRecordsDisplay": 0, - - /** - * Flag to indicate if jQuery UI marking and classes should be used. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bJUI": null, - - /** - * The classes to use for the table - * @type object - * @default {} - */ - "oClasses": {}, - - /** - * Flag attached to the settings object so you can check in the draw - * callback if filtering has been done in the draw. Deprecated in favour of - * events. - * @type boolean - * @default false - * @deprecated - */ - "bFiltered": false, - - /** - * Flag attached to the settings object so you can check in the draw - * callback if sorting has been done in the draw. Deprecated in favour of - * events. - * @type boolean - * @default false - * @deprecated - */ - "bSorted": false, - - /** - * Indicate that if multiple rows are in the header and there is more than - * one unique cell per column, if the top one (true) or bottom one (false) - * should be used for sorting / title by DataTables. - * Note that this parameter will be set by the initialisation routine. To - * set a default use {@link DataTable.defaults}. - * @type boolean - */ - "bSortCellsTop": null, - - /** - * Initialisation object that is used for the table - * @type object - * @default null - */ - "oInit": null, - - /** - * Destroy callback functions - for plug-ins to attach themselves to the - * destroy so they can clean up markup and events. - * @type array - * @default [] - */ - "aoDestroyCallback": [], - - - /** - * Get the number of records in the current record set, before filtering - * @type function - */ - "fnRecordsTotal": function () - { - if ( this.oFeatures.bServerSide ) { - return parseInt(this._iRecordsTotal, 10); - } else { - return this.aiDisplayMaster.length; - } - }, - - /** - * Get the number of records in the current record set, after filtering - * @type function - */ - "fnRecordsDisplay": function () - { - if ( this.oFeatures.bServerSide ) { - return parseInt(this._iRecordsDisplay, 10); - } else { - return this.aiDisplay.length; - } - }, - - /** - * Set the display end point - aiDisplay index - * @type function - * @todo Should do away with _iDisplayEnd and calculate it on-the-fly here - */ - "fnDisplayEnd": function () - { - if ( this.oFeatures.bServerSide ) { - if ( this.oFeatures.bPaginate === false || this._iDisplayLength == -1 ) { - return this._iDisplayStart+this.aiDisplay.length; - } else { - return Math.min( this._iDisplayStart+this._iDisplayLength, - this._iRecordsDisplay ); - } - } else { - return this._iDisplayEnd; - } - }, - - /** - * The DataTables object for this table - * @type object - * @default null - */ - "oInstance": null, - - /** - * Unique identifier for each instance of the DataTables object. If there - * is an ID on the table node, then it takes that value, otherwise an - * incrementing internal counter is used. - * @type string - * @default null - */ - "sInstance": null, - - /** - * tabindex attribute value that is added to DataTables control elements, allowing - * keyboard navigation of the table and its controls. - */ - "iTabIndex": 0, - - /** - * DIV container for the footer scrolling table if scrolling - */ - "nScrollHead": null, - - /** - * DIV container for the footer scrolling table if scrolling - */ - "nScrollFoot": null - }; - - /** - * Extension object for DataTables that is used to provide all extension options. - * - * Note that the DataTable.ext object is available through - * jQuery.fn.dataTable.ext where it may be accessed and manipulated. It is - * also aliased to jQuery.fn.dataTableExt for historic reasons. - * @namespace - * @extends DataTable.models.ext - */ - DataTable.ext = $.extend( true, {}, DataTable.models.ext ); - - $.extend( DataTable.ext.oStdClasses, { - "sTable": "dataTable", - - /* Two buttons buttons */ - "sPagePrevEnabled": "paginate_enabled_previous", - "sPagePrevDisabled": "paginate_disabled_previous", - "sPageNextEnabled": "paginate_enabled_next", - "sPageNextDisabled": "paginate_disabled_next", - "sPageJUINext": "", - "sPageJUIPrev": "", - - /* Full numbers paging buttons */ - "sPageButton": "paginate_button", - "sPageButtonActive": "paginate_active", - "sPageButtonStaticDisabled": "paginate_button paginate_button_disabled", - "sPageFirst": "first", - "sPagePrevious": "previous", - "sPageNext": "next", - "sPageLast": "last", - - /* Striping classes */ - "sStripeOdd": "odd", - "sStripeEven": "even", - - /* Empty row */ - "sRowEmpty": "dataTables_empty", - - /* Features */ - "sWrapper": "dataTables_wrapper", - "sFilter": "dataTables_filter", - "sInfo": "dataTables_info", - "sPaging": "dataTables_paginate paging_", /* Note that the type is postfixed */ - "sLength": "dataTables_length", - "sProcessing": "dataTables_processing", - - /* Sorting */ - "sSortAsc": "sorting_asc", - "sSortDesc": "sorting_desc", - "sSortable": "sorting", /* Sortable in both directions */ - "sSortableAsc": "sorting_asc_disabled", - "sSortableDesc": "sorting_desc_disabled", - "sSortableNone": "sorting_disabled", - "sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */ - "sSortJUIAsc": "", - "sSortJUIDesc": "", - "sSortJUI": "", - "sSortJUIAscAllowed": "", - "sSortJUIDescAllowed": "", - "sSortJUIWrapper": "", - "sSortIcon": "", - - /* Scrolling */ - "sScrollWrapper": "dataTables_scroll", - "sScrollHead": "dataTables_scrollHead", - "sScrollHeadInner": "dataTables_scrollHeadInner", - "sScrollBody": "dataTables_scrollBody", - "sScrollFoot": "dataTables_scrollFoot", - "sScrollFootInner": "dataTables_scrollFootInner", - - /* Misc */ - "sFooterTH": "", - "sJUIHeader": "", - "sJUIFooter": "" - } ); - - - $.extend( DataTable.ext.oJUIClasses, DataTable.ext.oStdClasses, { - /* Two buttons buttons */ - "sPagePrevEnabled": "fg-button ui-button ui-state-default ui-corner-left", - "sPagePrevDisabled": "fg-button ui-button ui-state-default ui-corner-left ui-state-disabled", - "sPageNextEnabled": "fg-button ui-button ui-state-default ui-corner-right", - "sPageNextDisabled": "fg-button ui-button ui-state-default ui-corner-right ui-state-disabled", - "sPageJUINext": "ui-icon ui-icon-circle-arrow-e", - "sPageJUIPrev": "ui-icon ui-icon-circle-arrow-w", - - /* Full numbers paging buttons */ - "sPageButton": "fg-button ui-button ui-state-default", - "sPageButtonActive": "fg-button ui-button ui-state-default ui-state-disabled", - "sPageButtonStaticDisabled": "fg-button ui-button ui-state-default ui-state-disabled", - "sPageFirst": "first ui-corner-tl ui-corner-bl", - "sPageLast": "last ui-corner-tr ui-corner-br", - - /* Features */ - "sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+ - "ui-buttonset-multi paging_", /* Note that the type is postfixed */ - - /* Sorting */ - "sSortAsc": "ui-state-default", - "sSortDesc": "ui-state-default", - "sSortable": "ui-state-default", - "sSortableAsc": "ui-state-default", - "sSortableDesc": "ui-state-default", - "sSortableNone": "ui-state-default", - "sSortJUIAsc": "css_right ui-icon ui-icon-triangle-1-n", - "sSortJUIDesc": "css_right ui-icon ui-icon-triangle-1-s", - "sSortJUI": "css_right ui-icon ui-icon-carat-2-n-s", - "sSortJUIAscAllowed": "css_right ui-icon ui-icon-carat-1-n", - "sSortJUIDescAllowed": "css_right ui-icon ui-icon-carat-1-s", - "sSortJUIWrapper": "DataTables_sort_wrapper", - "sSortIcon": "DataTables_sort_icon", - - /* Scrolling */ - "sScrollHead": "dataTables_scrollHead ui-state-default", - "sScrollFoot": "dataTables_scrollFoot ui-state-default", - - /* Misc */ - "sFooterTH": "ui-state-default", - "sJUIHeader": "fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix", - "sJUIFooter": "fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix" - } ); - - /* - * Variable: oPagination - * Purpose: - * Scope: jQuery.fn.dataTableExt - */ - $.extend( DataTable.ext.oPagination, { - /* - * Variable: two_button - * Purpose: Standard two button (forward/back) pagination - * Scope: jQuery.fn.dataTableExt.oPagination - */ - "two_button": { - /* - * Function: oPagination.two_button.fnInit - * Purpose: Initialise dom elements required for pagination with forward/back buttons only - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * node:nPaging - the DIV which contains this pagination control - * function:fnCallbackDraw - draw function which must be called on update - */ - "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) - { - var oLang = oSettings.oLanguage.oPaginate; - var oClasses = oSettings.oClasses; - var fnClickHandler = function ( e ) { - if ( oSettings.oApi._fnPageChange( oSettings, e.data.action ) ) - { - fnCallbackDraw( oSettings ); - } - }; - - var sAppend = (!oSettings.bJUI) ? - ''+oLang.sPrevious+''+ - ''+oLang.sNext+'' - : - ''+ - ''; - $(nPaging).append( sAppend ); - - var els = $('a', nPaging); - var nPrevious = els[0], - nNext = els[1]; - - oSettings.oApi._fnBindAction( nPrevious, {action: "previous"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); - - /* ID the first elements only */ - if ( !oSettings.aanFeatures.p ) - { - nPaging.id = oSettings.sTableId+'_paginate'; - nPrevious.id = oSettings.sTableId+'_previous'; - nNext.id = oSettings.sTableId+'_next'; - - nPrevious.setAttribute('aria-controls', oSettings.sTableId); - nNext.setAttribute('aria-controls', oSettings.sTableId); - } - }, - - /* - * Function: oPagination.two_button.fnUpdate - * Purpose: Update the two button pagination at the end of the draw - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * function:fnCallbackDraw - draw function to call on page change - */ - "fnUpdate": function ( oSettings, fnCallbackDraw ) - { - if ( !oSettings.aanFeatures.p ) - { - return; - } - - var oClasses = oSettings.oClasses; - var an = oSettings.aanFeatures.p; - var nNode; - - /* Loop over each instance of the pager */ - for ( var i=0, iLen=an.length ; i'+oLang.sFirst+''+ - ''+oLang.sPrevious+''+ - ''+ - ''+oLang.sNext+''+ - ''+oLang.sLast+'' - ); - var els = $('a', nPaging); - var nFirst = els[0], - nPrev = els[1], - nNext = els[2], - nLast = els[3]; - - oSettings.oApi._fnBindAction( nFirst, {action: "first"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nPrev, {action: "previous"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); - oSettings.oApi._fnBindAction( nLast, {action: "last"}, fnClickHandler ); - - /* ID the first elements only */ - if ( !oSettings.aanFeatures.p ) - { - nPaging.id = oSettings.sTableId+'_paginate'; - nFirst.id =oSettings.sTableId+'_first'; - nPrev.id =oSettings.sTableId+'_previous'; - nNext.id =oSettings.sTableId+'_next'; - nLast.id =oSettings.sTableId+'_last'; - } - }, - - /* - * Function: oPagination.full_numbers.fnUpdate - * Purpose: Update the list of page buttons shows - * Returns: - - * Inputs: object:oSettings - dataTables settings object - * function:fnCallbackDraw - draw function to call on page change - */ - "fnUpdate": function ( oSettings, fnCallbackDraw ) - { - if ( !oSettings.aanFeatures.p ) - { - return; - } - - var iPageCount = DataTable.ext.oPagination.iFullNumbersShowPages; - var iPageCountHalf = Math.floor(iPageCount / 2); - var iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength); - var iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1; - var sList = ""; - var iStartButton, iEndButton, i, iLen; - var oClasses = oSettings.oClasses; - var anButtons, anStatic, nPaginateList, nNode; - var an = oSettings.aanFeatures.p; - var fnBind = function (j) { - oSettings.oApi._fnBindAction( this, {"page": j+iStartButton-1}, function(e) { - /* Use the information in the element to jump to the required page */ - oSettings.oApi._fnPageChange( oSettings, e.data.page ); - fnCallbackDraw( oSettings ); - e.preventDefault(); - } ); - }; - - /* Pages calculation */ - if ( oSettings._iDisplayLength === -1 ) - { - iStartButton = 1; - iEndButton = 1; - iCurrentPage = 1; - } - else if (iPages < iPageCount) - { - iStartButton = 1; - iEndButton = iPages; - } - else if (iCurrentPage <= iPageCountHalf) - { - iStartButton = 1; - iEndButton = iPageCount; - } - else if (iCurrentPage >= (iPages - iPageCountHalf)) - { - iStartButton = iPages - iPageCount + 1; - iEndButton = iPages; - } - else - { - iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1; - iEndButton = iStartButton + iPageCount - 1; - } - - - /* Build the dynamic list */ - for ( i=iStartButton ; i<=iEndButton ; i++ ) - { - sList += (iCurrentPage !== i) ? - ''+oSettings.fnFormatNumber(i)+'' : - ''+oSettings.fnFormatNumber(i)+''; - } - - /* Loop over each instance of the pager */ - for ( i=0, iLen=an.length ; i y) ? 1 : 0)); - }, - - "string-desc": function ( x, y ) - { - return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - }, - - - /* - * html sorting (ignore html tags) - */ - "html-pre": function ( a ) - { - return a.replace( /<.*?>/g, "" ).toLowerCase(); - }, - - "html-asc": function ( x, y ) - { - return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - }, - - "html-desc": function ( x, y ) - { - return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - }, - - - /* - * date sorting - */ - "date-pre": function ( a ) - { - var x = Date.parse( a ); - - if ( isNaN(x) || x==="" ) - { - x = Date.parse( "01/01/1970 00:00:00" ); - } - return x; - }, - - "date-asc": function ( x, y ) - { - return x - y; - }, - - "date-desc": function ( x, y ) - { - return y - x; - }, - - - /* - * numerical sorting - */ - "numeric-pre": function ( a ) - { - return (a=="-" || a==="") ? 0 : a*1; - }, - - "numeric-asc": function ( x, y ) - { - return x - y; - }, - - "numeric-desc": function ( x, y ) - { - return y - x; - } - } ); - - - $.extend( DataTable.ext.aTypes, [ - /* - * Function: - - * Purpose: Check to see if a string is numeric - * Returns: string:'numeric' or null - * Inputs: mixed:sText - string to check - */ - function ( sData ) - { - /* Allow zero length strings as a number */ - if ( typeof sData === 'number' ) - { - return 'numeric'; - } - else if ( typeof sData !== 'string' ) - { - return null; - } - - var sValidFirstChars = "0123456789-"; - var sValidChars = "0123456789."; - var Char; - var bDecimal = false; - - /* Check for a valid first char (no period and allow negatives) */ - Char = sData.charAt(0); - if (sValidFirstChars.indexOf(Char) == -1) - { - return null; - } - - /* Check all the other characters are valid */ - for ( var i=1 ; i') != -1 ) - { - return 'html'; - } - return null; - } - ] ); - - - // jQuery aliases - $.fn.DataTable = DataTable; - $.fn.dataTable = DataTable; - $.fn.dataTableSettings = DataTable.settings; - $.fn.dataTableExt = DataTable.ext; - - - // Information about events fired by DataTables - for documentation. - /** - * Draw event, fired whenever the table is redrawn on the page, at the same point as - * fnDrawCallback. This may be useful for binding events or performing calculations when - * the table is altered at all. - * @name DataTable#draw - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * Filter event, fired when the filtering applied to the table (using the build in global - * global filter, or column filters) is altered. - * @name DataTable#filter - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * Page change event, fired when the paging of the table is altered. - * @name DataTable#page - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * Sort event, fired when the sorting applied to the table is altered. - * @name DataTable#sort - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ - - /** - * DataTables initialisation complete event, fired when the table is fully drawn, - * including Ajax data loaded, if Ajax data is required. - * @name DataTable#init - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The JSON object request from the server - only - * present if client-side Ajax sourced data is used
  • - */ - - /** - * State save event, fired when the table has changed state a new state save is required. - * This method allows modification of the state saving object prior to actually doing the - * save, including addition or other state properties (for plug-ins) or modification - * of a DataTables core property. - * @name DataTable#stateSaveParams - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The state information to be saved - */ - - /** - * State load event, fired when the table is loading state from the stored data, but - * prior to the settings object being modified by the saved state - allowing modification - * of the saved state is required or loading of state for a plug-in. - * @name DataTable#stateLoadParams - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The saved state information - */ - - /** - * State loaded event, fired when state has been loaded from stored data and the settings - * object has been modified by the loaded data. - * @name DataTable#stateLoaded - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {object} json The saved state information - */ - - /** - * Processing event, fired when DataTables is doing some kind of processing (be it, - * sort, filter or anything else). Can be used to indicate to the end user that - * there is something happening, or that something has finished. - * @name DataTable#processing - * @event - * @param {event} e jQuery event object - * @param {object} oSettings DataTables settings object - * @param {boolean} bShow Flag for if DataTables is doing processing or not - */ - - /** - * Ajax (XHR) event, fired whenever an Ajax request is completed from a request to - * made to the server for new data (note that this trigger is called in fnServerData, - * if you override fnServerData and which to use this event, you need to trigger it in - * you success function). - * @name DataTable#xhr - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - * @param {object} json JSON returned from the server - */ - - /** - * Destroy event, fired when the DataTable is destroyed by calling fnDestroy or passing - * the bDestroy:true parameter in the initialisation object. This can be used to remove - * bound events, added DOM nodes, etc. - * @name DataTable#destroy - * @event - * @param {event} e jQuery event object - * @param {object} o DataTables settings object {@link DataTable.models.oSettings} - */ -})); - -}(window, document)); - diff --git a/js/plugins/daterangepicker/daterangepicker.js b/js/plugins/daterangepicker/daterangepicker.js deleted file mode 100644 index 11a00fa36..000000000 --- a/js/plugins/daterangepicker/daterangepicker.js +++ /dev/null @@ -1,883 +0,0 @@ -// moment.js -// version : 2.1.0 -// author : Tim Wood -// license : MIT -// momentjs.com -!function(t){function e(t,e){return function(n){return u(t.call(this,n),e)}}function n(t,e){return function(n){return this.lang().ordinal(t.call(this,n),e)}}function s(){}function i(t){a(this,t)}function r(t){var e=t.years||t.year||t.y||0,n=t.months||t.month||t.M||0,s=t.weeks||t.week||t.w||0,i=t.days||t.day||t.d||0,r=t.hours||t.hour||t.h||0,a=t.minutes||t.minute||t.m||0,o=t.seconds||t.second||t.s||0,u=t.milliseconds||t.millisecond||t.ms||0;this._input=t,this._milliseconds=u+1e3*o+6e4*a+36e5*r,this._days=i+7*s,this._months=n+12*e,this._data={},this._bubble()}function a(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function o(t){return 0>t?Math.ceil(t):Math.floor(t)}function u(t,e){for(var n=t+"";n.lengthn;n++)~~t[n]!==~~e[n]&&r++;return r+i}function f(t){return t?ie[t]||t.toLowerCase().replace(/(.)s$/,"$1"):t}function l(t,e){return e.abbr=t,x[t]||(x[t]=new s),x[t].set(e),x[t]}function _(t){if(!t)return H.fn._lang;if(!x[t]&&A)try{require("./lang/"+t)}catch(e){return H.fn._lang}return x[t]}function m(t){return t.match(/\[.*\]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function y(t){var e,n,s=t.match(E);for(e=0,n=s.length;n>e;e++)s[e]=ue[s[e]]?ue[s[e]]:m(s[e]);return function(i){var r="";for(e=0;n>e;e++)r+=s[e]instanceof Function?s[e].call(i,t):s[e];return r}}function M(t,e){function n(e){return t.lang().longDateFormat(e)||e}for(var s=5;s--&&N.test(e);)e=e.replace(N,n);return re[e]||(re[e]=y(e)),re[e](t)}function g(t,e){switch(t){case"DDDD":return V;case"YYYY":return X;case"YYYYY":return $;case"S":case"SS":case"SSS":case"DDD":return I;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return R;case"a":case"A":return _(e._l)._meridiemParse;case"X":return B;case"Z":case"ZZ":return j;case"T":return q;case"MM":case"DD":case"YY":case"HH":case"hh":case"mm":case"ss":case"M":case"D":case"d":case"H":case"h":case"m":case"s":return J;default:return new RegExp(t.replace("\\",""))}}function p(t){var e=(j.exec(t)||[])[0],n=(e+"").match(ee)||["-",0,0],s=+(60*n[1])+~~n[2];return"+"===n[0]?-s:s}function D(t,e,n){var s,i=n._a;switch(t){case"M":case"MM":i[1]=null==e?0:~~e-1;break;case"MMM":case"MMMM":s=_(n._l).monthsParse(e),null!=s?i[1]=s:n._isValid=!1;break;case"D":case"DD":case"DDD":case"DDDD":null!=e&&(i[2]=~~e);break;case"YY":i[0]=~~e+(~~e>68?1900:2e3);break;case"YYYY":case"YYYYY":i[0]=~~e;break;case"a":case"A":n._isPm=_(n._l).isPM(e);break;case"H":case"HH":case"h":case"hh":i[3]=~~e;break;case"m":case"mm":i[4]=~~e;break;case"s":case"ss":i[5]=~~e;break;case"S":case"SS":case"SSS":i[6]=~~(1e3*("0."+e));break;case"X":n._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":n._useUTC=!0,n._tzm=p(e)}null==e&&(n._isValid=!1)}function Y(t){var e,n,s=[];if(!t._d){for(e=0;7>e;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];s[3]+=~~((t._tzm||0)/60),s[4]+=~~((t._tzm||0)%60),n=new Date(0),t._useUTC?(n.setUTCFullYear(s[0],s[1],s[2]),n.setUTCHours(s[3],s[4],s[5],s[6])):(n.setFullYear(s[0],s[1],s[2]),n.setHours(s[3],s[4],s[5],s[6])),t._d=n}}function w(t){var e,n,s=t._f.match(E),i=t._i;for(t._a=[],e=0;eo&&(u=o,s=n);a(t,s)}function v(t){var e,n=t._i,s=K.exec(n);if(s){for(t._f="YYYY-MM-DD"+(s[2]||" "),e=0;4>e;e++)if(te[e][1].exec(n)){t._f+=te[e][0];break}j.exec(n)&&(t._f+=" Z"),w(t)}else t._d=new Date(n)}function T(e){var n=e._i,s=G.exec(n);n===t?e._d=new Date:s?e._d=new Date(+s[1]):"string"==typeof n?v(e):d(n)?(e._a=n.slice(0),Y(e)):e._d=n instanceof Date?new Date(+n):new Date(n)}function b(t,e,n,s,i){return i.relativeTime(e||1,!!n,t,s)}function S(t,e,n){var s=W(Math.abs(t)/1e3),i=W(s/60),r=W(i/60),a=W(r/24),o=W(a/365),u=45>s&&["s",s]||1===i&&["m"]||45>i&&["mm",i]||1===r&&["h"]||22>r&&["hh",r]||1===a&&["d"]||25>=a&&["dd",a]||45>=a&&["M"]||345>a&&["MM",W(a/30)]||1===o&&["y"]||["yy",o];return u[2]=e,u[3]=t>0,u[4]=n,b.apply({},u)}function F(t,e,n){var s,i=n-e,r=n-t.day();return r>i&&(r-=7),i-7>r&&(r+=7),s=H(t).add("d",r),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function O(t){var e=t._i,n=t._f;return null===e||""===e?null:("string"==typeof e&&(t._i=e=_().preparse(e)),H.isMoment(e)?(t=a({},e),t._d=new Date(+e._d)):n?d(n)?k(t):w(t):T(t),new i(t))}function z(t,e){H.fn[t]=H.fn[t+"s"]=function(t){var n=this._isUTC?"UTC":"";return null!=t?(this._d["set"+n+e](t),H.updateOffset(this),this):this._d["get"+n+e]()}}function C(t){H.duration.fn[t]=function(){return this._data[t]}}function L(t,e){H.duration.fn["as"+t]=function(){return+this/e}}for(var H,P,U="2.1.0",W=Math.round,x={},A="undefined"!=typeof module&&module.exports,G=/^\/?Date\((\-?\d+)/i,Z=/(\-)?(\d*)?\.?(\d+)\:(\d+)\:(\d+)\.?(\d{3})?/,E=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|SS?S?|X|zz?|ZZ?|.)/g,N=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,J=/\d\d?/,I=/\d{1,3}/,V=/\d{3}/,X=/\d{1,4}/,$=/[+\-]?\d{1,6}/,R=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,j=/Z|[\+\-]\d\d:?\d\d/i,q=/T/i,B=/[\+\-]?\d+(\.\d{1,3})?/,K=/^\s*\d{4}-\d\d-\d\d((T| )(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/,Q="YYYY-MM-DDTHH:mm:ssZ",te=[["HH:mm:ss.S",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],ee=/([\+\-]|\d\d)/gi,ne="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),se={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},ie={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",w:"week",M:"month",y:"year"},re={},ae="DDD w W M D d".split(" "),oe="M D H h m s w W".split(" "),ue={M:function(){return this.month()+1},MMM:function(t){return this.lang().monthsShort(this,t)},MMMM:function(t){return this.lang().months(this,t)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(t){return this.lang().weekdaysMin(this,t)},ddd:function(t){return this.lang().weekdaysShort(this,t)},dddd:function(t){return this.lang().weekdays(this,t)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return u(this.year()%100,2)},YYYY:function(){return u(this.year(),4)},YYYYY:function(){return u(this.year(),5)},gg:function(){return u(this.weekYear()%100,2)},gggg:function(){return this.weekYear()},ggggg:function(){return u(this.weekYear(),5)},GG:function(){return u(this.isoWeekYear()%100,2)},GGGG:function(){return this.isoWeekYear()},GGGGG:function(){return u(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return~~(this.milliseconds()/100)},SS:function(){return u(~~(this.milliseconds()/10),2)},SSS:function(){return u(this.milliseconds(),3)},Z:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+u(~~(t/60),2)+":"+u(~~t%60,2)},ZZ:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+u(~~(10*t/6),4)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()}};ae.length;)P=ae.pop(),ue[P+"o"]=n(ue[P],P);for(;oe.length;)P=oe.pop(),ue[P+P]=e(ue[P],2);for(ue.DDDD=e(ue.DDD,3),s.prototype={set:function(t){var e,n;for(n in t)e=t[n],"function"==typeof e?this[n]=e:this["_"+n]=e},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(t){return this._months[t.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(t){return this._monthsShort[t.month()]},monthsParse:function(t){var e,n,s;for(this._monthsParse||(this._monthsParse=[]),e=0;12>e;e++)if(this._monthsParse[e]||(n=H([2e3,e]),s="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[e]=new RegExp(s.replace(".",""),"i")),this._monthsParse[e].test(t))return e},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(t){return this._weekdays[t.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(t){return this._weekdaysShort[t.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(t){return this._weekdaysMin[t.day()]},weekdaysParse:function(t){var e,n,s;for(this._weekdaysParse||(this._weekdaysParse=[]),e=0;7>e;e++)if(this._weekdaysParse[e]||(n=H([2e3,1]).day(e),s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[e]=new RegExp(s.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(t){var e=this._longDateFormat[t];return!e&&this._longDateFormat[t.toUpperCase()]&&(e=this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t]=e),e},isPM:function(t){return"p"===(t+"").toLowerCase()[0]},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(t,e){var n=this._calendar[t];return"function"==typeof n?n.apply(e):n},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(t,e,n,s){var i=this._relativeTime[n];return"function"==typeof i?i(t,e,n,s):i.replace(/%d/i,t)},pastFuture:function(t,e){var n=this._relativeTime[t>0?"future":"past"];return"function"==typeof n?n(e):n.replace(/%s/i,e)},ordinal:function(t){return this._ordinal.replace("%d",t)},_ordinal:"%d",preparse:function(t){return t},postformat:function(t){return t},week:function(t){return F(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6}},H=function(t,e,n){return O({_i:t,_f:e,_l:n,_isUTC:!1})},H.utc=function(t,e,n){return O({_useUTC:!0,_isUTC:!0,_l:n,_i:t,_f:e})},H.unix=function(t){return H(1e3*t)},H.duration=function(t,e){var n,s,i=H.isDuration(t),a="number"==typeof t,o=i?t._input:a?{}:t,u=Z.exec(t);return a?e?o[e]=t:o.milliseconds=t:u&&(n="-"===u[1]?-1:1,o={y:0,d:~~u[2]*n,h:~~u[3]*n,m:~~u[4]*n,s:~~u[5]*n,ms:~~u[6]*n}),s=new r(o),i&&t.hasOwnProperty("_lang")&&(s._lang=t._lang),s},H.version=U,H.defaultFormat=Q,H.updateOffset=function(){},H.lang=function(t,e){return t?(e?l(t,e):x[t]||_(t),H.duration.fn._lang=H.fn._lang=_(t),void 0):H.fn._lang._abbr},H.langData=function(t){return t&&t._lang&&t._lang._abbr&&(t=t._lang._abbr),_(t)},H.isMoment=function(t){return t instanceof i},H.isDuration=function(t){return t instanceof r},H.fn=i.prototype={clone:function(){return H(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){return M(H(this).utc(),"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var t=this;return[t.year(),t.month(),t.date(),t.hours(),t.minutes(),t.seconds(),t.milliseconds()]},isValid:function(){return null==this._isValid&&(this._isValid=this._a?!c(this._a,(this._isUTC?H.utc(this._a):H(this._a)).toArray()):!isNaN(this._d.getTime())),!!this._isValid},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(t){var e=M(this,t||H.defaultFormat);return this.lang().postformat(e)},add:function(t,e){var n;return n="string"==typeof t?H.duration(+e,t):H.duration(t,e),h(this,n,1),this},subtract:function(t,e){var n;return n="string"==typeof t?H.duration(+e,t):H.duration(t,e),h(this,n,-1),this},diff:function(t,e,n){var s,i,r=this._isUTC?H(t).zone(this._offset||0):H(t).local(),a=6e4*(this.zone()-r.zone());return e=f(e),"year"===e||"month"===e?(s=432e5*(this.daysInMonth()+r.daysInMonth()),i=12*(this.year()-r.year())+(this.month()-r.month()),i+=(this-H(this).startOf("month")-(r-H(r).startOf("month")))/s,i-=6e4*(this.zone()-H(this).startOf("month").zone()-(r.zone()-H(r).startOf("month").zone()))/s,"year"===e&&(i/=12)):(s=this-r,i="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-a)/864e5:"week"===e?(s-a)/6048e5:s),n?i:o(i)},from:function(t,e){return H.duration(this.diff(t)).lang(this.lang()._abbr).humanize(!e)},fromNow:function(t){return this.from(H(),t)},calendar:function(){var t=this.diff(H().startOf("day"),"days",!0),e=-6>t?"sameElse":-1>t?"lastWeek":0>t?"lastDay":1>t?"sameDay":2>t?"nextDay":7>t?"nextWeek":"sameElse";return this.format(this.lang().calendar(e,this))},isLeapYear:function(){var t=this.year();return 0===t%4&&0!==t%100||0===t%400},isDST:function(){return this.zone()+H(t).startOf(e)},isBefore:function(t,e){return e="undefined"!=typeof e?e:"millisecond",+this.clone().startOf(e)<+H(t).startOf(e)},isSame:function(t,e){return e="undefined"!=typeof e?e:"millisecond",+this.clone().startOf(e)===+H(t).startOf(e)},min:function(t){return t=H.apply(null,arguments),this>t?this:t},max:function(t){return t=H.apply(null,arguments),t>this?this:t},zone:function(t){var e=this._offset||0;return null==t?this._isUTC?e:this._d.getTimezoneOffset():("string"==typeof t&&(t=p(t)),Math.abs(t)<16&&(t=60*t),this._offset=t,this._isUTC=!0,e!==t&&h(this,H.duration(e-t,"m"),1,!0),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},daysInMonth:function(){return H.utc([this.year(),this.month()+1,0]).date()},dayOfYear:function(t){var e=W((H(this).startOf("day")-H(this).startOf("year"))/864e5)+1;return null==t?e:this.add("d",t-e)},weekYear:function(t){var e=F(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==t?e:this.add("y",t-e)},isoWeekYear:function(t){var e=F(this,1,4).year;return null==t?e:this.add("y",t-e)},week:function(t){var e=this.lang().week(this);return null==t?e:this.add("d",7*(t-e))},isoWeek:function(t){var e=F(this,1,4).week;return null==t?e:this.add("d",7*(t-e))},weekday:function(t){var e=(this._d.getDay()+7-this.lang()._week.dow)%7;return null==t?e:this.add("d",t-e)},isoWeekday:function(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)},lang:function(e){return e===t?this._lang:(this._lang=_(e),this)}},P=0;P' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '' + - '' + - '
    ' + - '
    ' + - '' + - '' + - '
    ' + - ' ' + - '' + - '
    ' + - '
    ' + - ''; - - this.parentEl = (hasOptions && options.parentEl && $(options.parentEl)) || $(this.parentEl); - //the date range picker - this.container = $(DRPTemplate).appendTo(this.parentEl); - - if (hasOptions) { - - if (typeof options.format == 'string') - this.format = options.format; - - if (typeof options.separator == 'string') - this.separator = options.separator; - - if (typeof options.startDate == 'string') - this.startDate = moment(options.startDate, this.format); - - if (typeof options.endDate == 'string') - this.endDate = moment(options.endDate, this.format); - - if (typeof options.minDate == 'string') - this.minDate = moment(options.minDate, this.format); - - if (typeof options.maxDate == 'string') - this.maxDate = moment(options.maxDate, this.format); - - if (typeof options.startDate == 'object') - this.startDate = moment(options.startDate); - - if (typeof options.endDate == 'object') - this.endDate = moment(options.endDate); - - if (typeof options.minDate == 'object') - this.minDate = moment(options.minDate); - - if (typeof options.maxDate == 'object') - this.maxDate = moment(options.maxDate); - - if (typeof options.ranges == 'object') { - for (var range in options.ranges) { - - var start = moment(options.ranges[range][0]); - var end = moment(options.ranges[range][1]); - - // If we have a min/max date set, bound this range - // to it, but only if it would otherwise fall - // outside of the min/max. - if (this.minDate && start.isBefore(this.minDate)) - start = moment(this.minDate); - - if (this.maxDate && end.isAfter(this.maxDate)) - end = moment(this.maxDate); - - // If the end of the range is before the minimum (if min is set) OR - // the start of the range is after the max (also if set) don't display this - // range option. - if ((this.minDate && end.isBefore(this.minDate)) || (this.maxDate && start.isAfter(this.maxDate))) { - continue; - } - - this.ranges[range] = [start, end]; - } - - var list = '
      '; - for (var range in this.ranges) { - list += '
    • ' + range + '
    • '; - } - list += '
    • ' + this.locale.customRangeLabel + '
    • '; - list += '
    '; - this.container.find('.ranges').prepend(list); - } - - if (typeof options.dateLimit == 'object') - this.dateLimit = options.dateLimit; - - // update day names order to firstDay - if (typeof options.locale == 'object') { - - if (typeof options.locale.daysOfWeek == 'object') { - - // Create a copy of daysOfWeek to avoid modification of original - // options object for reusability in multiple daterangepicker instances - this.locale.daysOfWeek = options.locale.daysOfWeek.slice(); - } - - if (typeof options.locale.firstDay == 'number') { - this.locale.firstDay = options.locale.firstDay; - var iterator = options.locale.firstDay; - while (iterator > 0) { - this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()); - iterator--; - } - } - } - - if (typeof options.opens == 'string') - this.opens = options.opens; - - if (typeof options.showWeekNumbers == 'boolean') { - this.showWeekNumbers = options.showWeekNumbers; - } - - if (typeof options.buttonClasses == 'string') { - this.buttonClasses = [options.buttonClasses]; - } - - if (typeof options.buttonClasses == 'object') { - this.buttonClasses = options.buttonClasses; - } - - if (typeof options.showDropdowns == 'boolean') { - this.showDropdowns = options.showDropdowns; - } - - if (typeof options.timePicker == 'boolean') { - this.timePicker = options.timePicker; - } - - if (typeof options.timePickerIncrement == 'number') { - this.timePickerIncrement = options.timePickerIncrement; - } - - if (typeof options.timePicker12Hour == 'boolean') { - this.timePicker12Hour = options.timePicker12Hour; - } - - } - - if (!this.timePicker) { - this.startDate = this.startDate.startOf('day'); - this.endDate = this.endDate.startOf('day'); - } - - //apply CSS classes to buttons - var c = this.container; - $.each(this.buttonClasses, function (idx, val) { - c.find('button').addClass(val); - }); - - if (this.opens == 'right') { - //swap calendar positions - var left = this.container.find('.calendar.left'); - var right = this.container.find('.calendar.right'); - left.removeClass('left').addClass('right'); - right.removeClass('right').addClass('left'); - } - - if (typeof options == 'undefined' || typeof options.ranges == 'undefined') { - this.container.find('.calendar').show(); - this.move(); - } - - if (typeof cb == 'function') - this.cb = cb; - - this.container.addClass('opens' + this.opens); - - //try parse date if in text input - if (!hasOptions || (typeof options.startDate == 'undefined' && typeof options.endDate == 'undefined')) { - if ($(this.element).is('input[type=text]')) { - var val = $(this.element).val(); - var split = val.split(this.separator); - var start, end; - if (split.length == 2) { - start = moment(split[0], this.format); - end = moment(split[1], this.format); - } - if (start != null && end != null) { - this.startDate = start; - this.endDate = end; - } - } - } - - //state - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - - this.leftCalendar = { - month: moment([this.startDate.year(), this.startDate.month(), 1, this.startDate.hour(), this.startDate.minute()]), - calendar: [] - }; - - this.rightCalendar = { - month: moment([this.endDate.year(), this.endDate.month(), 1, this.endDate.hour(), this.endDate.minute()]), - calendar: [] - }; - - //event listeners - this.container.on('mousedown', $.proxy(this.mousedown, this)); - - this.container.find('.calendar') - .on('click', '.prev', $.proxy(this.clickPrev, this)) - .on('click', '.next', $.proxy(this.clickNext, this)) - .on('click', 'td.available', $.proxy(this.clickDate, this)) - .on('mouseenter', 'td.available', $.proxy(this.enterDate, this)) - .on('mouseleave', 'td.available', $.proxy(this.updateFormInputs, this)) - .on('change', 'select.yearselect', $.proxy(this.updateMonthYear, this)) - .on('change', 'select.monthselect', $.proxy(this.updateMonthYear, this)) - .on('change', 'select.hourselect,select.minuteselect,select.ampmselect', $.proxy(this.updateTime, this)); - - this.container.find('.ranges') - .on('click', 'button.applyBtn', $.proxy(this.clickApply, this)) - .on('click', 'button.cancelBtn', $.proxy(this.clickCancel, this)) - .on('click', '.daterangepicker_start_input,.daterangepicker_end_input', $.proxy(this.showCalendars, this)) - .on('click', 'li', $.proxy(this.clickRange, this)) - .on('mouseenter', 'li', $.proxy(this.enterRange, this)) - .on('mouseleave', 'li', $.proxy(this.updateFormInputs, this)); - - this.element.on('keyup', $.proxy(this.updateFromControl, this)); - - this.updateView(); - this.updateCalendars(); - - }; - - DateRangePicker.prototype = { - - constructor: DateRangePicker, - - mousedown: function (e) { - e.stopPropagation(); - }, - - updateView: function () { - this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()); - this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()); - this.updateFormInputs(); - }, - - updateFormInputs: function () { - this.container.find('input[name=daterangepicker_start]').val(this.startDate.format(this.format)); - this.container.find('input[name=daterangepicker_end]').val(this.endDate.format(this.format)); - - if (this.startDate.isSame(this.endDate) || this.startDate.isBefore(this.endDate)) { - this.container.find('button.applyBtn').removeAttr('disabled'); - } else { - this.container.find('button.applyBtn').attr('disabled', 'disabled'); - } - }, - - updateFromControl: function () { - if (!this.element.is('input')) return; - if (!this.element.val().length) return; - - var dateString = this.element.val().split(this.separator); - var start = moment(dateString[0], this.format); - var end = moment(dateString[1], this.format); - - if (start == null || end == null) return; - if (end.isBefore(start)) return; - - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - - this.startDate = start; - this.endDate = end; - - if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) - this.notify(); - - this.updateCalendars(); - }, - - notify: function () { - this.updateView(); - this.cb(this.startDate, this.endDate); - }, - - move: function () { - var parentOffset = { - top: this.parentEl.offset().top - (this.parentEl.is('body') ? 0 : this.parentEl.scrollTop()), - left: this.parentEl.offset().left - (this.parentEl.is('body') ? 0 : this.parentEl.scrollLeft()) - }; - if (this.opens == 'left') { - this.container.css({ - top: this.element.offset().top + this.element.outerHeight() - parentOffset.top, - right: $(window).width() - this.element.offset().left - this.element.outerWidth() - parentOffset.left, - left: 'auto' - }); - if (this.container.offset().left < 0) { - this.container.css({ - right: 'auto', - left: 9 - }); - } - } else { - this.container.css({ - top: this.element.offset().top + this.element.outerHeight() - parentOffset.top, - left: this.element.offset().left - parentOffset.left, - right: 'auto' - }); - if (this.container.offset().left + this.container.outerWidth() > $(window).width()) { - this.container.css({ - left: 'auto', - right: 0 - }); - } - } - }, - - show: function (e) { - this.container.show(); - this.move(); - - if (e) { - e.stopPropagation(); - e.preventDefault(); - } - - $(document).on('mousedown', $.proxy(this.hide, this)); - this.element.trigger('shown', {target: e.target, picker: this}); - }, - - hide: function (e) { - this.container.hide(); - - if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) - this.notify(); - - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - - $(document).off('mousedown', this.hide); - this.element.trigger('hidden', { picker: this }); - }, - - enterRange: function (e) { - var label = e.target.innerHTML; - if (label == this.locale.customRangeLabel) { - this.updateView(); - } else { - var dates = this.ranges[label]; - this.container.find('input[name=daterangepicker_start]').val(dates[0].format(this.format)); - this.container.find('input[name=daterangepicker_end]').val(dates[1].format(this.format)); - } - }, - - showCalendars: function() { - this.container.find('.calendar').show(); - this.move(); - }, - - updateInputText: function() { - if (this.element.is('input')) - this.element.val(this.startDate.format(this.format) + this.separator + this.endDate.format(this.format)); - }, - - clickRange: function (e) { - var label = e.target.innerHTML; - if (label == this.locale.customRangeLabel) { - this.showCalendars(); - } else { - var dates = this.ranges[label]; - - this.startDate = dates[0]; - this.endDate = dates[1]; - - if (!this.timePicker) { - this.startDate.startOf('day'); - this.endDate.startOf('day'); - } - - this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()); - this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()); - this.updateCalendars(); - - this.updateInputText(); - - this.container.find('.calendar').hide(); - this.hide(); - } - }, - - clickPrev: function (e) { - var cal = $(e.target).parents('.calendar'); - if (cal.hasClass('left')) { - this.leftCalendar.month.subtract('month', 1); - } else { - this.rightCalendar.month.subtract('month', 1); - } - this.updateCalendars(); - }, - - clickNext: function (e) { - var cal = $(e.target).parents('.calendar'); - if (cal.hasClass('left')) { - this.leftCalendar.month.add('month', 1); - } else { - this.rightCalendar.month.add('month', 1); - } - this.updateCalendars(); - }, - - enterDate: function (e) { - - var title = $(e.target).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(e.target).parents('.calendar'); - - if (cal.hasClass('left')) { - this.container.find('input[name=daterangepicker_start]').val(this.leftCalendar.calendar[row][col].format(this.format)); - } else { - this.container.find('input[name=daterangepicker_end]').val(this.rightCalendar.calendar[row][col].format(this.format)); - } - - }, - - clickDate: function (e) { - var title = $(e.target).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(e.target).parents('.calendar'); - - if (cal.hasClass('left')) { - var startDate = this.leftCalendar.calendar[row][col]; - var endDate = this.endDate; - if (typeof this.dateLimit == 'object') { - var maxDate = moment(startDate).add(this.dateLimit).startOf('day'); - if (endDate.isAfter(maxDate)) { - endDate = maxDate; - } - } - } else { - var startDate = this.startDate; - var endDate = this.rightCalendar.calendar[row][col]; - if (typeof this.dateLimit == 'object') { - var minDate = moment(endDate).subtract(this.dateLimit).startOf('day'); - if (startDate.isBefore(minDate)) { - startDate = minDate; - } - } - } - - cal.find('td').removeClass('active'); - - if (startDate.isSame(endDate) || startDate.isBefore(endDate)) { - $(e.target).addClass('active'); - this.startDate = startDate; - this.endDate = endDate; - } else if (startDate.isAfter(endDate)) { - $(e.target).addClass('active'); - this.startDate = startDate; - this.endDate = moment(startDate).add('day', 1).startOf('day'); - } - - this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()); - this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()); - this.updateCalendars(); - }, - - clickApply: function (e) { - this.updateInputText(); - this.hide(); - }, - - clickCancel: function (e) { - this.startDate = this.oldStartDate; - this.endDate = this.oldEndDate; - this.updateView(); - this.updateCalendars(); - this.hide(); - }, - - updateMonthYear: function (e) { - - var isLeft = $(e.target).closest('.calendar').hasClass('left'); - var cal = this.container.find('.calendar.left'); - if (!isLeft) - cal = this.container.find('.calendar.right'); - - // Month must be Number for new moment versions - var month = parseInt(cal.find('.monthselect').val(), 10); - var year = cal.find('.yearselect').val(); - - if (isLeft) { - this.leftCalendar.month.month(month).year(year); - } else { - this.rightCalendar.month.month(month).year(year); - } - - this.updateCalendars(); - - }, - - updateTime: function(e) { - - var isLeft = $(e.target).closest('.calendar').hasClass('left'); - var cal = this.container.find('.calendar.left'); - if (!isLeft) - cal = this.container.find('.calendar.right'); - - var hour = parseInt(cal.find('.hourselect').val()); - var minute = parseInt(cal.find('.minuteselect').val()); - - if (this.timePicker12Hour) { - var ampm = cal.find('.ampmselect').val(); - if (ampm == 'PM' && hour < 12) - hour += 12; - if (ampm == 'AM' && hour == 12) - hour = 0; - } - - if (isLeft) { - var start = this.startDate.clone(); - start.hour(hour); - start.minute(minute); - this.startDate = start; - this.leftCalendar.month.hour(hour).minute(minute); - } else { - var end = this.endDate.clone(); - end.hour(hour); - end.minute(minute); - this.endDate = end; - this.rightCalendar.month.hour(hour).minute(minute); - } - - this.updateCalendars(); - - }, - - updateCalendars: function () { - this.leftCalendar.calendar = this.buildCalendar(this.leftCalendar.month.month(), this.leftCalendar.month.year(), this.leftCalendar.month.hour(), this.leftCalendar.month.minute(), 'left'); - this.rightCalendar.calendar = this.buildCalendar(this.rightCalendar.month.month(), this.rightCalendar.month.year(), this.rightCalendar.month.hour(), this.rightCalendar.month.minute(), 'right'); - this.container.find('.calendar.left').html(this.renderCalendar(this.leftCalendar.calendar, this.startDate, this.minDate, this.maxDate)); - this.container.find('.calendar.right').html(this.renderCalendar(this.rightCalendar.calendar, this.endDate, this.startDate, this.maxDate)); - - this.container.find('.ranges li').removeClass('active'); - var customRange = true; - var i = 0; - for (var range in this.ranges) { - if (this.timePicker) { - if (this.startDate.isSame(this.ranges[range][0]) && this.endDate.isSame(this.ranges[range][1])) { - customRange = false; - this.container.find('.ranges li:eq(' + i + ')').addClass('active'); - } - } else { - //ignore times when comparing dates if time picker is not enabled - if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) { - customRange = false; - this.container.find('.ranges li:eq(' + i + ')').addClass('active'); - } - } - i++; - } - if (customRange) - this.container.find('.ranges li:last').addClass('active'); - }, - - buildCalendar: function (month, year, hour, minute, side) { - - var firstDay = moment([year, month, 1]); - var lastMonth = moment(firstDay).subtract('month', 1).month(); - var lastYear = moment(firstDay).subtract('month', 1).year(); - - var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth(); - - var dayOfWeek = firstDay.day(); - - //initialize a 6 rows x 7 columns array for the calendar - var calendar = []; - for (var i = 0; i < 6; i++) { - calendar[i] = []; - } - - //populate the calendar with date objects - var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1; - if (startDay > daysInLastMonth) - startDay -= 7; - - if (dayOfWeek == this.locale.firstDay) - startDay = daysInLastMonth - 6; - - var curDate = moment([lastYear, lastMonth, startDay, 12, minute]); - for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add('hour', 24)) { - if (i > 0 && col % 7 == 0) { - col = 0; - row++; - } - calendar[row][col] = curDate.clone().hour(hour); - curDate.hour(12); - } - - return calendar; - - }, - - renderDropdowns: function (selected, minDate, maxDate) { - var currentMonth = selected.month(); - var monthHtml = '"; - - var currentYear = selected.year(); - var maxYear = (maxDate && maxDate.year()) || (currentYear + 5); - var minYear = (minDate && minDate.year()) || (currentYear - 50); - var yearHtml = ''; - - return monthHtml + yearHtml; - }, - - renderCalendar: function (calendar, selected, minDate, maxDate) { - - var html = '
    '; - html += ''; - html += ''; - html += ''; - - // add empty cell for week number - if (this.showWeekNumbers) - html += ''; - - if (!minDate || minDate.isBefore(calendar[1][1])) { - html += ''; - } else { - html += ''; - } - - var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY"); - - if (this.showDropdowns) { - dateHtml = this.renderDropdowns(calendar[1][1], minDate, maxDate); - } - - html += ''; - if (!maxDate || maxDate.isAfter(calendar[1][1])) { - html += ''; - } else { - html += ''; - } - - html += ''; - html += ''; - - // add week number label - if (this.showWeekNumbers) - html += ''; - - $.each(this.locale.daysOfWeek, function (index, dayOfWeek) { - html += ''; - }); - - html += ''; - html += ''; - html += ''; - - for (var row = 0; row < 6; row++) { - html += ''; - - // add week number - if (this.showWeekNumbers) - html += ''; - - for (var col = 0; col < 7; col++) { - var cname = 'available '; - cname += (calendar[row][col].month() == calendar[1][1].month()) ? '' : 'off'; - - if ((minDate && calendar[row][col].isBefore(minDate)) || (maxDate && calendar[row][col].isAfter(maxDate))) { - cname = ' off disabled '; - } else if (calendar[row][col].format('YYYY-MM-DD') == selected.format('YYYY-MM-DD')) { - cname += ' active '; - if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) { - cname += ' start-date '; - } - if (calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) { - cname += ' end-date '; - } - } else if (calendar[row][col] >= this.startDate && calendar[row][col] <= this.endDate) { - cname += ' in-range '; - if (calendar[row][col].isSame(this.startDate)) { cname += ' start-date '; } - if (calendar[row][col].isSame(this.endDate)) { cname += ' end-date '; } - } - - var title = 'r' + row + 'c' + col; - html += ''; - } - html += ''; - } - - html += ''; - html += '
    ' + dateHtml + '
    ' + this.locale.weekLabel + '' + dayOfWeek + '
    ' + calendar[row][0].week() + '' + calendar[row][col].date() + '
    '; - html += '
    '; - - if (this.timePicker) { - - html += '
    '; - html += ' : '; - - html += ' '; - - if (this.timePicker12Hour) { - html += ''; - } - - html += '
    '; - - } - - return html; - - } - - }; - - $.fn.daterangepicker = function (options, cb) { - this.each(function () { - var el = $(this); - if (!el.data('daterangepicker')) - el.data('daterangepicker', new DateRangePicker(el, options, cb)); - }); - return this; - }; - -}(window.jQuery); diff --git a/js/plugins/flot/excanvas.js b/js/plugins/flot/excanvas.js deleted file mode 100644 index 70a8f25ca..000000000 --- a/js/plugins/flot/excanvas.js +++ /dev/null @@ -1,1428 +0,0 @@ -// Copyright 2006 Google Inc. -// -// 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. - - -// Known Issues: -// -// * Patterns only support repeat. -// * Radial gradient are not implemented. The VML version of these look very -// different from the canvas one. -// * Clipping paths are not implemented. -// * Coordsize. The width and height attribute have higher priority than the -// width and height style values which isn't correct. -// * Painting mode isn't implemented. -// * Canvas width/height should is using content-box by default. IE in -// Quirks mode will draw the canvas using border-box. Either change your -// doctype to HTML5 -// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype) -// or use Box Sizing Behavior from WebFX -// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html) -// * Non uniform scaling does not correctly scale strokes. -// * Filling very large shapes (above 5000 points) is buggy. -// * Optimize. There is always room for speed improvements. - -// Only add this code if we do not already have a canvas implementation -if (!document.createElement('canvas').getContext) { - -(function() { - - // alias some functions to make (compiled) code shorter - var m = Math; - var mr = m.round; - var ms = m.sin; - var mc = m.cos; - var abs = m.abs; - var sqrt = m.sqrt; - - // this is used for sub pixel precision - var Z = 10; - var Z2 = Z / 2; - - var IE_VERSION = +navigator.userAgent.match(/MSIE ([\d.]+)?/)[1]; - - /** - * This funtion is assigned to the elements as element.getContext(). - * @this {HTMLElement} - * @return {CanvasRenderingContext2D_} - */ - function getContext() { - return this.context_ || - (this.context_ = new CanvasRenderingContext2D_(this)); - } - - var slice = Array.prototype.slice; - - /** - * Binds a function to an object. The returned function will always use the - * passed in {@code obj} as {@code this}. - * - * Example: - * - * g = bind(f, obj, a, b) - * g(c, d) // will do f.call(obj, a, b, c, d) - * - * @param {Function} f The function to bind the object to - * @param {Object} obj The object that should act as this when the function - * is called - * @param {*} var_args Rest arguments that will be used as the initial - * arguments when the function is called - * @return {Function} A new function that has bound this - */ - function bind(f, obj, var_args) { - var a = slice.call(arguments, 2); - return function() { - return f.apply(obj, a.concat(slice.call(arguments))); - }; - } - - function encodeHtmlAttribute(s) { - return String(s).replace(/&/g, '&').replace(/"/g, '"'); - } - - function addNamespace(doc, prefix, urn) { - if (!doc.namespaces[prefix]) { - doc.namespaces.add(prefix, urn, '#default#VML'); - } - } - - function addNamespacesAndStylesheet(doc) { - addNamespace(doc, 'g_vml_', 'urn:schemas-microsoft-com:vml'); - addNamespace(doc, 'g_o_', 'urn:schemas-microsoft-com:office:office'); - - // Setup default CSS. Only add one style sheet per document - if (!doc.styleSheets['ex_canvas_']) { - var ss = doc.createStyleSheet(); - ss.owningElement.id = 'ex_canvas_'; - ss.cssText = 'canvas{display:inline-block;overflow:hidden;' + - // default size is 300x150 in Gecko and Opera - 'text-align:left;width:300px;height:150px}'; - } - } - - // Add namespaces and stylesheet at startup. - addNamespacesAndStylesheet(document); - - var G_vmlCanvasManager_ = { - init: function(opt_doc) { - var doc = opt_doc || document; - // Create a dummy element so that IE will allow canvas elements to be - // recognized. - doc.createElement('canvas'); - doc.attachEvent('onreadystatechange', bind(this.init_, this, doc)); - }, - - init_: function(doc) { - // find all canvas elements - var els = doc.getElementsByTagName('canvas'); - for (var i = 0; i < els.length; i++) { - this.initElement(els[i]); - } - }, - - /** - * Public initializes a canvas element so that it can be used as canvas - * element from now on. This is called automatically before the page is - * loaded but if you are creating elements using createElement you need to - * make sure this is called on the element. - * @param {HTMLElement} el The canvas element to initialize. - * @return {HTMLElement} the element that was created. - */ - initElement: function(el) { - if (!el.getContext) { - el.getContext = getContext; - - // Add namespaces and stylesheet to document of the element. - addNamespacesAndStylesheet(el.ownerDocument); - - // Remove fallback content. There is no way to hide text nodes so we - // just remove all childNodes. We could hide all elements and remove - // text nodes but who really cares about the fallback content. - el.innerHTML = ''; - - // do not use inline function because that will leak memory - el.attachEvent('onpropertychange', onPropertyChange); - el.attachEvent('onresize', onResize); - - var attrs = el.attributes; - if (attrs.width && attrs.width.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setWidth_(attrs.width.nodeValue); - el.style.width = attrs.width.nodeValue + 'px'; - } else { - el.width = el.clientWidth; - } - if (attrs.height && attrs.height.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setHeight_(attrs.height.nodeValue); - el.style.height = attrs.height.nodeValue + 'px'; - } else { - el.height = el.clientHeight; - } - //el.getContext().setCoordsize_() - } - return el; - } - }; - - function onPropertyChange(e) { - var el = e.srcElement; - - switch (e.propertyName) { - case 'width': - el.getContext().clearRect(); - el.style.width = el.attributes.width.nodeValue + 'px'; - // In IE8 this does not trigger onresize. - el.firstChild.style.width = el.clientWidth + 'px'; - break; - case 'height': - el.getContext().clearRect(); - el.style.height = el.attributes.height.nodeValue + 'px'; - el.firstChild.style.height = el.clientHeight + 'px'; - break; - } - } - - function onResize(e) { - var el = e.srcElement; - if (el.firstChild) { - el.firstChild.style.width = el.clientWidth + 'px'; - el.firstChild.style.height = el.clientHeight + 'px'; - } - } - - G_vmlCanvasManager_.init(); - - // precompute "00" to "FF" - var decToHex = []; - for (var i = 0; i < 16; i++) { - for (var j = 0; j < 16; j++) { - decToHex[i * 16 + j] = i.toString(16) + j.toString(16); - } - } - - function createMatrixIdentity() { - return [ - [1, 0, 0], - [0, 1, 0], - [0, 0, 1] - ]; - } - - function matrixMultiply(m1, m2) { - var result = createMatrixIdentity(); - - for (var x = 0; x < 3; x++) { - for (var y = 0; y < 3; y++) { - var sum = 0; - - for (var z = 0; z < 3; z++) { - sum += m1[x][z] * m2[z][y]; - } - - result[x][y] = sum; - } - } - return result; - } - - function copyState(o1, o2) { - o2.fillStyle = o1.fillStyle; - o2.lineCap = o1.lineCap; - o2.lineJoin = o1.lineJoin; - o2.lineWidth = o1.lineWidth; - o2.miterLimit = o1.miterLimit; - o2.shadowBlur = o1.shadowBlur; - o2.shadowColor = o1.shadowColor; - o2.shadowOffsetX = o1.shadowOffsetX; - o2.shadowOffsetY = o1.shadowOffsetY; - o2.strokeStyle = o1.strokeStyle; - o2.globalAlpha = o1.globalAlpha; - o2.font = o1.font; - o2.textAlign = o1.textAlign; - o2.textBaseline = o1.textBaseline; - o2.arcScaleX_ = o1.arcScaleX_; - o2.arcScaleY_ = o1.arcScaleY_; - o2.lineScale_ = o1.lineScale_; - } - - var colorData = { - aliceblue: '#F0F8FF', - antiquewhite: '#FAEBD7', - aquamarine: '#7FFFD4', - azure: '#F0FFFF', - beige: '#F5F5DC', - bisque: '#FFE4C4', - black: '#000000', - blanchedalmond: '#FFEBCD', - blueviolet: '#8A2BE2', - brown: '#A52A2A', - burlywood: '#DEB887', - cadetblue: '#5F9EA0', - chartreuse: '#7FFF00', - chocolate: '#D2691E', - coral: '#FF7F50', - cornflowerblue: '#6495ED', - cornsilk: '#FFF8DC', - crimson: '#DC143C', - cyan: '#00FFFF', - darkblue: '#00008B', - darkcyan: '#008B8B', - darkgoldenrod: '#B8860B', - darkgray: '#A9A9A9', - darkgreen: '#006400', - darkgrey: '#A9A9A9', - darkkhaki: '#BDB76B', - darkmagenta: '#8B008B', - darkolivegreen: '#556B2F', - darkorange: '#FF8C00', - darkorchid: '#9932CC', - darkred: '#8B0000', - darksalmon: '#E9967A', - darkseagreen: '#8FBC8F', - darkslateblue: '#483D8B', - darkslategray: '#2F4F4F', - darkslategrey: '#2F4F4F', - darkturquoise: '#00CED1', - darkviolet: '#9400D3', - deeppink: '#FF1493', - deepskyblue: '#00BFFF', - dimgray: '#696969', - dimgrey: '#696969', - dodgerblue: '#1E90FF', - firebrick: '#B22222', - floralwhite: '#FFFAF0', - forestgreen: '#228B22', - gainsboro: '#DCDCDC', - ghostwhite: '#F8F8FF', - gold: '#FFD700', - goldenrod: '#DAA520', - grey: '#808080', - greenyellow: '#ADFF2F', - honeydew: '#F0FFF0', - hotpink: '#FF69B4', - indianred: '#CD5C5C', - indigo: '#4B0082', - ivory: '#FFFFF0', - khaki: '#F0E68C', - lavender: '#E6E6FA', - lavenderblush: '#FFF0F5', - lawngreen: '#7CFC00', - lemonchiffon: '#FFFACD', - lightblue: '#ADD8E6', - lightcoral: '#F08080', - lightcyan: '#E0FFFF', - lightgoldenrodyellow: '#FAFAD2', - lightgreen: '#90EE90', - lightgrey: '#D3D3D3', - lightpink: '#FFB6C1', - lightsalmon: '#FFA07A', - lightseagreen: '#20B2AA', - lightskyblue: '#87CEFA', - lightslategray: '#778899', - lightslategrey: '#778899', - lightsteelblue: '#B0C4DE', - lightyellow: '#FFFFE0', - limegreen: '#32CD32', - linen: '#FAF0E6', - magenta: '#FF00FF', - mediumaquamarine: '#66CDAA', - mediumblue: '#0000CD', - mediumorchid: '#BA55D3', - mediumpurple: '#9370DB', - mediumseagreen: '#3CB371', - mediumslateblue: '#7B68EE', - mediumspringgreen: '#00FA9A', - mediumturquoise: '#48D1CC', - mediumvioletred: '#C71585', - midnightblue: '#191970', - mintcream: '#F5FFFA', - mistyrose: '#FFE4E1', - moccasin: '#FFE4B5', - navajowhite: '#FFDEAD', - oldlace: '#FDF5E6', - olivedrab: '#6B8E23', - orange: '#FFA500', - orangered: '#FF4500', - orchid: '#DA70D6', - palegoldenrod: '#EEE8AA', - palegreen: '#98FB98', - paleturquoise: '#AFEEEE', - palevioletred: '#DB7093', - papayawhip: '#FFEFD5', - peachpuff: '#FFDAB9', - peru: '#CD853F', - pink: '#FFC0CB', - plum: '#DDA0DD', - powderblue: '#B0E0E6', - rosybrown: '#BC8F8F', - royalblue: '#4169E1', - saddlebrown: '#8B4513', - salmon: '#FA8072', - sandybrown: '#F4A460', - seagreen: '#2E8B57', - seashell: '#FFF5EE', - sienna: '#A0522D', - skyblue: '#87CEEB', - slateblue: '#6A5ACD', - slategray: '#708090', - slategrey: '#708090', - snow: '#FFFAFA', - springgreen: '#00FF7F', - steelblue: '#4682B4', - tan: '#D2B48C', - thistle: '#D8BFD8', - tomato: '#FF6347', - turquoise: '#40E0D0', - violet: '#EE82EE', - wheat: '#F5DEB3', - whitesmoke: '#F5F5F5', - yellowgreen: '#9ACD32' - }; - - - function getRgbHslContent(styleString) { - var start = styleString.indexOf('(', 3); - var end = styleString.indexOf(')', start + 1); - var parts = styleString.substring(start + 1, end).split(','); - // add alpha if needed - if (parts.length != 4 || styleString.charAt(3) != 'a') { - parts[3] = 1; - } - return parts; - } - - function percent(s) { - return parseFloat(s) / 100; - } - - function clamp(v, min, max) { - return Math.min(max, Math.max(min, v)); - } - - function hslToRgb(parts){ - var r, g, b, h, s, l; - h = parseFloat(parts[0]) / 360 % 360; - if (h < 0) - h++; - s = clamp(percent(parts[1]), 0, 1); - l = clamp(percent(parts[2]), 0, 1); - if (s == 0) { - r = g = b = l; // achromatic - } else { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hueToRgb(p, q, h + 1 / 3); - g = hueToRgb(p, q, h); - b = hueToRgb(p, q, h - 1 / 3); - } - - return '#' + decToHex[Math.floor(r * 255)] + - decToHex[Math.floor(g * 255)] + - decToHex[Math.floor(b * 255)]; - } - - function hueToRgb(m1, m2, h) { - if (h < 0) - h++; - if (h > 1) - h--; - - if (6 * h < 1) - return m1 + (m2 - m1) * 6 * h; - else if (2 * h < 1) - return m2; - else if (3 * h < 2) - return m1 + (m2 - m1) * (2 / 3 - h) * 6; - else - return m1; - } - - var processStyleCache = {}; - - function processStyle(styleString) { - if (styleString in processStyleCache) { - return processStyleCache[styleString]; - } - - var str, alpha = 1; - - styleString = String(styleString); - if (styleString.charAt(0) == '#') { - str = styleString; - } else if (/^rgb/.test(styleString)) { - var parts = getRgbHslContent(styleString); - var str = '#', n; - for (var i = 0; i < 3; i++) { - if (parts[i].indexOf('%') != -1) { - n = Math.floor(percent(parts[i]) * 255); - } else { - n = +parts[i]; - } - str += decToHex[clamp(n, 0, 255)]; - } - alpha = +parts[3]; - } else if (/^hsl/.test(styleString)) { - var parts = getRgbHslContent(styleString); - str = hslToRgb(parts); - alpha = parts[3]; - } else { - str = colorData[styleString] || styleString; - } - return processStyleCache[styleString] = {color: str, alpha: alpha}; - } - - var DEFAULT_STYLE = { - style: 'normal', - variant: 'normal', - weight: 'normal', - size: 10, - family: 'sans-serif' - }; - - // Internal text style cache - var fontStyleCache = {}; - - function processFontStyle(styleString) { - if (fontStyleCache[styleString]) { - return fontStyleCache[styleString]; - } - - var el = document.createElement('div'); - var style = el.style; - try { - style.font = styleString; - } catch (ex) { - // Ignore failures to set to invalid font. - } - - return fontStyleCache[styleString] = { - style: style.fontStyle || DEFAULT_STYLE.style, - variant: style.fontVariant || DEFAULT_STYLE.variant, - weight: style.fontWeight || DEFAULT_STYLE.weight, - size: style.fontSize || DEFAULT_STYLE.size, - family: style.fontFamily || DEFAULT_STYLE.family - }; - } - - function getComputedStyle(style, element) { - var computedStyle = {}; - - for (var p in style) { - computedStyle[p] = style[p]; - } - - // Compute the size - var canvasFontSize = parseFloat(element.currentStyle.fontSize), - fontSize = parseFloat(style.size); - - if (typeof style.size == 'number') { - computedStyle.size = style.size; - } else if (style.size.indexOf('px') != -1) { - computedStyle.size = fontSize; - } else if (style.size.indexOf('em') != -1) { - computedStyle.size = canvasFontSize * fontSize; - } else if(style.size.indexOf('%') != -1) { - computedStyle.size = (canvasFontSize / 100) * fontSize; - } else if (style.size.indexOf('pt') != -1) { - computedStyle.size = fontSize / .75; - } else { - computedStyle.size = canvasFontSize; - } - - // Different scaling between normal text and VML text. This was found using - // trial and error to get the same size as non VML text. - computedStyle.size *= 0.981; - - return computedStyle; - } - - function buildStyle(style) { - return style.style + ' ' + style.variant + ' ' + style.weight + ' ' + - style.size + 'px ' + style.family; - } - - var lineCapMap = { - 'butt': 'flat', - 'round': 'round' - }; - - function processLineCap(lineCap) { - return lineCapMap[lineCap] || 'square'; - } - - /** - * This class implements CanvasRenderingContext2D interface as described by - * the WHATWG. - * @param {HTMLElement} canvasElement The element that the 2D context should - * be associated with - */ - function CanvasRenderingContext2D_(canvasElement) { - this.m_ = createMatrixIdentity(); - - this.mStack_ = []; - this.aStack_ = []; - this.currentPath_ = []; - - // Canvas context properties - this.strokeStyle = '#000'; - this.fillStyle = '#000'; - - this.lineWidth = 1; - this.lineJoin = 'miter'; - this.lineCap = 'butt'; - this.miterLimit = Z * 1; - this.globalAlpha = 1; - this.font = '10px sans-serif'; - this.textAlign = 'left'; - this.textBaseline = 'alphabetic'; - this.canvas = canvasElement; - - var cssText = 'width:' + canvasElement.clientWidth + 'px;height:' + - canvasElement.clientHeight + 'px;overflow:hidden;position:absolute'; - var el = canvasElement.ownerDocument.createElement('div'); - el.style.cssText = cssText; - canvasElement.appendChild(el); - - var overlayEl = el.cloneNode(false); - // Use a non transparent background. - overlayEl.style.backgroundColor = 'red'; - overlayEl.style.filter = 'alpha(opacity=0)'; - canvasElement.appendChild(overlayEl); - - this.element_ = el; - this.arcScaleX_ = 1; - this.arcScaleY_ = 1; - this.lineScale_ = 1; - } - - var contextPrototype = CanvasRenderingContext2D_.prototype; - contextPrototype.clearRect = function() { - if (this.textMeasureEl_) { - this.textMeasureEl_.removeNode(true); - this.textMeasureEl_ = null; - } - this.element_.innerHTML = ''; - }; - - contextPrototype.beginPath = function() { - // TODO: Branch current matrix so that save/restore has no effect - // as per safari docs. - this.currentPath_ = []; - }; - - contextPrototype.moveTo = function(aX, aY) { - var p = getCoords(this, aX, aY); - this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y}); - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - - contextPrototype.lineTo = function(aX, aY) { - var p = getCoords(this, aX, aY); - this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y}); - - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - - contextPrototype.bezierCurveTo = function(aCP1x, aCP1y, - aCP2x, aCP2y, - aX, aY) { - var p = getCoords(this, aX, aY); - var cp1 = getCoords(this, aCP1x, aCP1y); - var cp2 = getCoords(this, aCP2x, aCP2y); - bezierCurveTo(this, cp1, cp2, p); - }; - - // Helper function that takes the already fixed cordinates. - function bezierCurveTo(self, cp1, cp2, p) { - self.currentPath_.push({ - type: 'bezierCurveTo', - cp1x: cp1.x, - cp1y: cp1.y, - cp2x: cp2.x, - cp2y: cp2.y, - x: p.x, - y: p.y - }); - self.currentX_ = p.x; - self.currentY_ = p.y; - } - - contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) { - // the following is lifted almost directly from - // http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes - - var cp = getCoords(this, aCPx, aCPy); - var p = getCoords(this, aX, aY); - - var cp1 = { - x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_), - y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_) - }; - var cp2 = { - x: cp1.x + (p.x - this.currentX_) / 3.0, - y: cp1.y + (p.y - this.currentY_) / 3.0 - }; - - bezierCurveTo(this, cp1, cp2, p); - }; - - contextPrototype.arc = function(aX, aY, aRadius, - aStartAngle, aEndAngle, aClockwise) { - aRadius *= Z; - var arcType = aClockwise ? 'at' : 'wa'; - - var xStart = aX + mc(aStartAngle) * aRadius - Z2; - var yStart = aY + ms(aStartAngle) * aRadius - Z2; - - var xEnd = aX + mc(aEndAngle) * aRadius - Z2; - var yEnd = aY + ms(aEndAngle) * aRadius - Z2; - - // IE won't render arches drawn counter clockwise if xStart == xEnd. - if (xStart == xEnd && !aClockwise) { - xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something - // that can be represented in binary - } - - var p = getCoords(this, aX, aY); - var pStart = getCoords(this, xStart, yStart); - var pEnd = getCoords(this, xEnd, yEnd); - - this.currentPath_.push({type: arcType, - x: p.x, - y: p.y, - radius: aRadius, - xStart: pStart.x, - yStart: pStart.y, - xEnd: pEnd.x, - yEnd: pEnd.y}); - - }; - - contextPrototype.rect = function(aX, aY, aWidth, aHeight) { - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - }; - - contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.stroke(); - - this.currentPath_ = oldPath; - }; - - contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.fill(); - - this.currentPath_ = oldPath; - }; - - contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) { - var gradient = new CanvasGradient_('gradient'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - return gradient; - }; - - contextPrototype.createRadialGradient = function(aX0, aY0, aR0, - aX1, aY1, aR1) { - var gradient = new CanvasGradient_('gradientradial'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.r0_ = aR0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - gradient.r1_ = aR1; - return gradient; - }; - - contextPrototype.drawImage = function(image, var_args) { - var dx, dy, dw, dh, sx, sy, sw, sh; - - // to find the original width we overide the width and height - var oldRuntimeWidth = image.runtimeStyle.width; - var oldRuntimeHeight = image.runtimeStyle.height; - image.runtimeStyle.width = 'auto'; - image.runtimeStyle.height = 'auto'; - - // get the original size - var w = image.width; - var h = image.height; - - // and remove overides - image.runtimeStyle.width = oldRuntimeWidth; - image.runtimeStyle.height = oldRuntimeHeight; - - if (arguments.length == 3) { - dx = arguments[1]; - dy = arguments[2]; - sx = sy = 0; - sw = dw = w; - sh = dh = h; - } else if (arguments.length == 5) { - dx = arguments[1]; - dy = arguments[2]; - dw = arguments[3]; - dh = arguments[4]; - sx = sy = 0; - sw = w; - sh = h; - } else if (arguments.length == 9) { - sx = arguments[1]; - sy = arguments[2]; - sw = arguments[3]; - sh = arguments[4]; - dx = arguments[5]; - dy = arguments[6]; - dw = arguments[7]; - dh = arguments[8]; - } else { - throw Error('Invalid number of arguments'); - } - - var d = getCoords(this, dx, dy); - - var w2 = sw / 2; - var h2 = sh / 2; - - var vmlStr = []; - - var W = 10; - var H = 10; - - // For some reason that I've now forgotten, using divs didn't work - vmlStr.push(' ' , - '', - ''); - - this.element_.insertAdjacentHTML('BeforeEnd', vmlStr.join('')); - }; - - contextPrototype.stroke = function(aFill) { - var W = 10; - var H = 10; - // Divide the shape into chunks if it's too long because IE has a limit - // somewhere for how long a VML shape can be. This simple division does - // not work with fills, only strokes, unfortunately. - var chunkSize = 5000; - - var min = {x: null, y: null}; - var max = {x: null, y: null}; - - for (var j = 0; j < this.currentPath_.length; j += chunkSize) { - var lineStr = []; - var lineOpen = false; - - lineStr.push(''); - - if (!aFill) { - appendStroke(this, lineStr); - } else { - appendFill(this, lineStr, min, max); - } - - lineStr.push(''); - - this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); - } - }; - - function appendStroke(ctx, lineStr) { - var a = processStyle(ctx.strokeStyle); - var color = a.color; - var opacity = a.alpha * ctx.globalAlpha; - var lineWidth = ctx.lineScale_ * ctx.lineWidth; - - // VML cannot correctly render a line if the width is less than 1px. - // In that case, we dilute the color to make the line look thinner. - if (lineWidth < 1) { - opacity *= lineWidth; - } - - lineStr.push( - '' - ); - } - - function appendFill(ctx, lineStr, min, max) { - var fillStyle = ctx.fillStyle; - var arcScaleX = ctx.arcScaleX_; - var arcScaleY = ctx.arcScaleY_; - var width = max.x - min.x; - var height = max.y - min.y; - if (fillStyle instanceof CanvasGradient_) { - // TODO: Gradients transformed with the transformation matrix. - var angle = 0; - var focus = {x: 0, y: 0}; - - // additional offset - var shift = 0; - // scale factor for offset - var expansion = 1; - - if (fillStyle.type_ == 'gradient') { - var x0 = fillStyle.x0_ / arcScaleX; - var y0 = fillStyle.y0_ / arcScaleY; - var x1 = fillStyle.x1_ / arcScaleX; - var y1 = fillStyle.y1_ / arcScaleY; - var p0 = getCoords(ctx, x0, y0); - var p1 = getCoords(ctx, x1, y1); - var dx = p1.x - p0.x; - var dy = p1.y - p0.y; - angle = Math.atan2(dx, dy) * 180 / Math.PI; - - // The angle should be a non-negative number. - if (angle < 0) { - angle += 360; - } - - // Very small angles produce an unexpected result because they are - // converted to a scientific notation string. - if (angle < 1e-6) { - angle = 0; - } - } else { - var p0 = getCoords(ctx, fillStyle.x0_, fillStyle.y0_); - focus = { - x: (p0.x - min.x) / width, - y: (p0.y - min.y) / height - }; - - width /= arcScaleX * Z; - height /= arcScaleY * Z; - var dimension = m.max(width, height); - shift = 2 * fillStyle.r0_ / dimension; - expansion = 2 * fillStyle.r1_ / dimension - shift; - } - - // We need to sort the color stops in ascending order by offset, - // otherwise IE won't interpret it correctly. - var stops = fillStyle.colors_; - stops.sort(function(cs1, cs2) { - return cs1.offset - cs2.offset; - }); - - var length = stops.length; - var color1 = stops[0].color; - var color2 = stops[length - 1].color; - var opacity1 = stops[0].alpha * ctx.globalAlpha; - var opacity2 = stops[length - 1].alpha * ctx.globalAlpha; - - var colors = []; - for (var i = 0; i < length; i++) { - var stop = stops[i]; - colors.push(stop.offset * expansion + shift + ' ' + stop.color); - } - - // When colors attribute is used, the meanings of opacity and o:opacity2 - // are reversed. - lineStr.push(''); - } else if (fillStyle instanceof CanvasPattern_) { - if (width && height) { - var deltaLeft = -min.x; - var deltaTop = -min.y; - lineStr.push(''); - } - } else { - var a = processStyle(ctx.fillStyle); - var color = a.color; - var opacity = a.alpha * ctx.globalAlpha; - lineStr.push(''); - } - } - - contextPrototype.fill = function() { - this.stroke(true); - }; - - contextPrototype.closePath = function() { - this.currentPath_.push({type: 'close'}); - }; - - function getCoords(ctx, aX, aY) { - var m = ctx.m_; - return { - x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2, - y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2 - }; - }; - - contextPrototype.save = function() { - var o = {}; - copyState(this, o); - this.aStack_.push(o); - this.mStack_.push(this.m_); - this.m_ = matrixMultiply(createMatrixIdentity(), this.m_); - }; - - contextPrototype.restore = function() { - if (this.aStack_.length) { - copyState(this.aStack_.pop(), this); - this.m_ = this.mStack_.pop(); - } - }; - - function matrixIsFinite(m) { - return isFinite(m[0][0]) && isFinite(m[0][1]) && - isFinite(m[1][0]) && isFinite(m[1][1]) && - isFinite(m[2][0]) && isFinite(m[2][1]); - } - - function setM(ctx, m, updateLineScale) { - if (!matrixIsFinite(m)) { - return; - } - ctx.m_ = m; - - if (updateLineScale) { - // Get the line scale. - // Determinant of this.m_ means how much the area is enlarged by the - // transformation. So its square root can be used as a scale factor - // for width. - var det = m[0][0] * m[1][1] - m[0][1] * m[1][0]; - ctx.lineScale_ = sqrt(abs(det)); - } - } - - contextPrototype.translate = function(aX, aY) { - var m1 = [ - [1, 0, 0], - [0, 1, 0], - [aX, aY, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), false); - }; - - contextPrototype.rotate = function(aRot) { - var c = mc(aRot); - var s = ms(aRot); - - var m1 = [ - [c, s, 0], - [-s, c, 0], - [0, 0, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), false); - }; - - contextPrototype.scale = function(aX, aY) { - this.arcScaleX_ *= aX; - this.arcScaleY_ *= aY; - var m1 = [ - [aX, 0, 0], - [0, aY, 0], - [0, 0, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), true); - }; - - contextPrototype.transform = function(m11, m12, m21, m22, dx, dy) { - var m1 = [ - [m11, m12, 0], - [m21, m22, 0], - [dx, dy, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), true); - }; - - contextPrototype.setTransform = function(m11, m12, m21, m22, dx, dy) { - var m = [ - [m11, m12, 0], - [m21, m22, 0], - [dx, dy, 1] - ]; - - setM(this, m, true); - }; - - /** - * The text drawing function. - * The maxWidth argument isn't taken in account, since no browser supports - * it yet. - */ - contextPrototype.drawText_ = function(text, x, y, maxWidth, stroke) { - var m = this.m_, - delta = 1000, - left = 0, - right = delta, - offset = {x: 0, y: 0}, - lineStr = []; - - var fontStyle = getComputedStyle(processFontStyle(this.font), - this.element_); - - var fontStyleString = buildStyle(fontStyle); - - var elementStyle = this.element_.currentStyle; - var textAlign = this.textAlign.toLowerCase(); - switch (textAlign) { - case 'left': - case 'center': - case 'right': - break; - case 'end': - textAlign = elementStyle.direction == 'ltr' ? 'right' : 'left'; - break; - case 'start': - textAlign = elementStyle.direction == 'rtl' ? 'right' : 'left'; - break; - default: - textAlign = 'left'; - } - - // 1.75 is an arbitrary number, as there is no info about the text baseline - switch (this.textBaseline) { - case 'hanging': - case 'top': - offset.y = fontStyle.size / 1.75; - break; - case 'middle': - break; - default: - case null: - case 'alphabetic': - case 'ideographic': - case 'bottom': - offset.y = -fontStyle.size / 2.25; - break; - } - - switch(textAlign) { - case 'right': - left = delta; - right = 0.05; - break; - case 'center': - left = right = delta / 2; - break; - } - - var d = getCoords(this, x + offset.x, y + offset.y); - - lineStr.push(''); - - if (stroke) { - appendStroke(this, lineStr); - } else { - // TODO: Fix the min and max params. - appendFill(this, lineStr, {x: -left, y: 0}, - {x: right, y: fontStyle.size}); - } - - var skewM = m[0][0].toFixed(3) + ',' + m[1][0].toFixed(3) + ',' + - m[0][1].toFixed(3) + ',' + m[1][1].toFixed(3) + ',0,0'; - - var skewOffset = mr(d.x / Z) + ',' + mr(d.y / Z); - - lineStr.push('', - '', - ''); - - this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); - }; - - contextPrototype.fillText = function(text, x, y, maxWidth) { - this.drawText_(text, x, y, maxWidth, false); - }; - - contextPrototype.strokeText = function(text, x, y, maxWidth) { - this.drawText_(text, x, y, maxWidth, true); - }; - - contextPrototype.measureText = function(text) { - if (!this.textMeasureEl_) { - var s = ''; - this.element_.insertAdjacentHTML('beforeEnd', s); - this.textMeasureEl_ = this.element_.lastChild; - } - var doc = this.element_.ownerDocument; - this.textMeasureEl_.innerHTML = ''; - this.textMeasureEl_.style.font = this.font; - // Don't use innerHTML or innerText because they allow markup/whitespace. - this.textMeasureEl_.appendChild(doc.createTextNode(text)); - return {width: this.textMeasureEl_.offsetWidth}; - }; - - /******** STUBS ********/ - contextPrototype.clip = function() { - // TODO: Implement - }; - - contextPrototype.arcTo = function() { - // TODO: Implement - }; - - contextPrototype.createPattern = function(image, repetition) { - return new CanvasPattern_(image, repetition); - }; - - // Gradient / Pattern Stubs - function CanvasGradient_(aType) { - this.type_ = aType; - this.x0_ = 0; - this.y0_ = 0; - this.r0_ = 0; - this.x1_ = 0; - this.y1_ = 0; - this.r1_ = 0; - this.colors_ = []; - } - - CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) { - aColor = processStyle(aColor); - this.colors_.push({offset: aOffset, - color: aColor.color, - alpha: aColor.alpha}); - }; - - function CanvasPattern_(image, repetition) { - assertImageIsValid(image); - switch (repetition) { - case 'repeat': - case null: - case '': - this.repetition_ = 'repeat'; - break - case 'repeat-x': - case 'repeat-y': - case 'no-repeat': - this.repetition_ = repetition; - break; - default: - throwException('SYNTAX_ERR'); - } - - this.src_ = image.src; - this.width_ = image.width; - this.height_ = image.height; - } - - function throwException(s) { - throw new DOMException_(s); - } - - function assertImageIsValid(img) { - if (!img || img.nodeType != 1 || img.tagName != 'IMG') { - throwException('TYPE_MISMATCH_ERR'); - } - if (img.readyState != 'complete') { - throwException('INVALID_STATE_ERR'); - } - } - - function DOMException_(s) { - this.code = this[s]; - this.message = s +': DOM Exception ' + this.code; - } - var p = DOMException_.prototype = new Error; - p.INDEX_SIZE_ERR = 1; - p.DOMSTRING_SIZE_ERR = 2; - p.HIERARCHY_REQUEST_ERR = 3; - p.WRONG_DOCUMENT_ERR = 4; - p.INVALID_CHARACTER_ERR = 5; - p.NO_DATA_ALLOWED_ERR = 6; - p.NO_MODIFICATION_ALLOWED_ERR = 7; - p.NOT_FOUND_ERR = 8; - p.NOT_SUPPORTED_ERR = 9; - p.INUSE_ATTRIBUTE_ERR = 10; - p.INVALID_STATE_ERR = 11; - p.SYNTAX_ERR = 12; - p.INVALID_MODIFICATION_ERR = 13; - p.NAMESPACE_ERR = 14; - p.INVALID_ACCESS_ERR = 15; - p.VALIDATION_ERR = 16; - p.TYPE_MISMATCH_ERR = 17; - - // set up externs - G_vmlCanvasManager = G_vmlCanvasManager_; - CanvasRenderingContext2D = CanvasRenderingContext2D_; - CanvasGradient = CanvasGradient_; - CanvasPattern = CanvasPattern_; - DOMException = DOMException_; -})(); - -} // if diff --git a/js/plugins/flot/excanvas.min.js b/js/plugins/flot/excanvas.min.js deleted file mode 100644 index fcf876c74..000000000 --- a/js/plugins/flot/excanvas.min.js +++ /dev/null @@ -1 +0,0 @@ -if(!document.createElement("canvas").getContext){(function(){var ab=Math;var n=ab.round;var l=ab.sin;var A=ab.cos;var H=ab.abs;var N=ab.sqrt;var d=10;var f=d/2;var z=+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1];function y(){return this.context_||(this.context_=new D(this))}var t=Array.prototype.slice;function g(j,m,p){var i=t.call(arguments,2);return function(){return j.apply(m,i.concat(t.call(arguments)))}}function af(i){return String(i).replace(/&/g,"&").replace(/"/g,""")}function Y(m,j,i){if(!m.namespaces[j]){m.namespaces.add(j,i,"#default#VML")}}function R(j){Y(j,"g_vml_","urn:schemas-microsoft-com:vml");Y(j,"g_o_","urn:schemas-microsoft-com:office:office");if(!j.styleSheets.ex_canvas_){var i=j.createStyleSheet();i.owningElement.id="ex_canvas_";i.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}R(document);var e={init:function(i){var j=i||document;j.createElement("canvas");j.attachEvent("onreadystatechange",g(this.init_,this,j))},init_:function(p){var m=p.getElementsByTagName("canvas");for(var j=0;j1){m--}if(6*m<1){return j+(i-j)*6*m}else{if(2*m<1){return i}else{if(3*m<2){return j+(i-j)*(2/3-m)*6}else{return j}}}}var C={};function F(j){if(j in C){return C[j]}var ag,Z=1;j=String(j);if(j.charAt(0)=="#"){ag=j}else{if(/^rgb/.test(j)){var p=M(j);var ag="#",ah;for(var m=0;m<3;m++){if(p[m].indexOf("%")!=-1){ah=Math.floor(c(p[m])*255)}else{ah=+p[m]}ag+=k[r(ah,0,255)]}Z=+p[3]}else{if(/^hsl/.test(j)){var p=M(j);ag=I(p);Z=p[3]}else{ag=b[j]||j}}}return C[j]={color:ag,alpha:Z}}var o={style:"normal",variant:"normal",weight:"normal",size:10,family:"sans-serif"};var L={};function E(i){if(L[i]){return L[i]}var p=document.createElement("div");var m=p.style;try{m.font=i}catch(j){}return L[i]={style:m.fontStyle||o.style,variant:m.fontVariant||o.variant,weight:m.fontWeight||o.weight,size:m.fontSize||o.size,family:m.fontFamily||o.family}}function u(m,j){var i={};for(var ah in m){i[ah]=m[ah]}var ag=parseFloat(j.currentStyle.fontSize),Z=parseFloat(m.size);if(typeof m.size=="number"){i.size=m.size}else{if(m.size.indexOf("px")!=-1){i.size=Z}else{if(m.size.indexOf("em")!=-1){i.size=ag*Z}else{if(m.size.indexOf("%")!=-1){i.size=(ag/100)*Z}else{if(m.size.indexOf("pt")!=-1){i.size=Z/0.75}else{i.size=ag}}}}}i.size*=0.981;return i}function ac(i){return i.style+" "+i.variant+" "+i.weight+" "+i.size+"px "+i.family}var s={butt:"flat",round:"round"};function S(i){return s[i]||"square"}function D(i){this.m_=B();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=d*1;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=i;var m="width:"+i.clientWidth+"px;height:"+i.clientHeight+"px;overflow:hidden;position:absolute";var j=i.ownerDocument.createElement("div");j.style.cssText=m;i.appendChild(j);var p=j.cloneNode(false);p.style.backgroundColor="red";p.style.filter="alpha(opacity=0)";i.appendChild(p);this.element_=j;this.arcScaleX_=1;this.arcScaleY_=1;this.lineScale_=1}var q=D.prototype;q.clearRect=function(){if(this.textMeasureEl_){this.textMeasureEl_.removeNode(true);this.textMeasureEl_=null}this.element_.innerHTML=""};q.beginPath=function(){this.currentPath_=[]};q.moveTo=function(j,i){var m=V(this,j,i);this.currentPath_.push({type:"moveTo",x:m.x,y:m.y});this.currentX_=m.x;this.currentY_=m.y};q.lineTo=function(j,i){var m=V(this,j,i);this.currentPath_.push({type:"lineTo",x:m.x,y:m.y});this.currentX_=m.x;this.currentY_=m.y};q.bezierCurveTo=function(m,j,ak,aj,ai,ag){var i=V(this,ai,ag);var ah=V(this,m,j);var Z=V(this,ak,aj);K(this,ah,Z,i)};function K(i,Z,m,j){i.currentPath_.push({type:"bezierCurveTo",cp1x:Z.x,cp1y:Z.y,cp2x:m.x,cp2y:m.y,x:j.x,y:j.y});i.currentX_=j.x;i.currentY_=j.y}q.quadraticCurveTo=function(ai,m,j,i){var ah=V(this,ai,m);var ag=V(this,j,i);var aj={x:this.currentX_+2/3*(ah.x-this.currentX_),y:this.currentY_+2/3*(ah.y-this.currentY_)};var Z={x:aj.x+(ag.x-this.currentX_)/3,y:aj.y+(ag.y-this.currentY_)/3};K(this,aj,Z,ag)};q.arc=function(al,aj,ak,ag,j,m){ak*=d;var ap=m?"at":"wa";var am=al+A(ag)*ak-f;var ao=aj+l(ag)*ak-f;var i=al+A(j)*ak-f;var an=aj+l(j)*ak-f;if(am==i&&!m){am+=0.125}var Z=V(this,al,aj);var ai=V(this,am,ao);var ah=V(this,i,an);this.currentPath_.push({type:ap,x:Z.x,y:Z.y,radius:ak,xStart:ai.x,yStart:ai.y,xEnd:ah.x,yEnd:ah.y})};q.rect=function(m,j,i,p){this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath()};q.strokeRect=function(m,j,i,p){var Z=this.currentPath_;this.beginPath();this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath();this.stroke();this.currentPath_=Z};q.fillRect=function(m,j,i,p){var Z=this.currentPath_;this.beginPath();this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath();this.fill();this.currentPath_=Z};q.createLinearGradient=function(j,p,i,m){var Z=new U("gradient");Z.x0_=j;Z.y0_=p;Z.x1_=i;Z.y1_=m;return Z};q.createRadialGradient=function(p,ag,m,j,Z,i){var ah=new U("gradientradial");ah.x0_=p;ah.y0_=ag;ah.r0_=m;ah.x1_=j;ah.y1_=Z;ah.r1_=i;return ah};q.drawImage=function(aq,m){var aj,ah,al,ay,ao,am,at,aA;var ak=aq.runtimeStyle.width;var ap=aq.runtimeStyle.height;aq.runtimeStyle.width="auto";aq.runtimeStyle.height="auto";var ai=aq.width;var aw=aq.height;aq.runtimeStyle.width=ak;aq.runtimeStyle.height=ap;if(arguments.length==3){aj=arguments[1];ah=arguments[2];ao=am=0;at=al=ai;aA=ay=aw}else{if(arguments.length==5){aj=arguments[1];ah=arguments[2];al=arguments[3];ay=arguments[4];ao=am=0;at=ai;aA=aw}else{if(arguments.length==9){ao=arguments[1];am=arguments[2];at=arguments[3];aA=arguments[4];aj=arguments[5];ah=arguments[6];al=arguments[7];ay=arguments[8]}else{throw Error("Invalid number of arguments")}}}var az=V(this,aj,ah);var p=at/2;var j=aA/2;var ax=[];var i=10;var ag=10;ax.push(" ','","");this.element_.insertAdjacentHTML("BeforeEnd",ax.join(""))};q.stroke=function(ao){var Z=10;var ap=10;var ag=5000;var ai={x:null,y:null};var an={x:null,y:null};for(var aj=0;ajan.x){an.x=m.x}if(ai.y==null||m.yan.y){an.y=m.y}}}am.push(' ">');if(!ao){w(this,am)}else{G(this,am,ai,an)}am.push("");this.element_.insertAdjacentHTML("beforeEnd",am.join(""))}};function w(m,ag){var j=F(m.strokeStyle);var p=j.color;var Z=j.alpha*m.globalAlpha;var i=m.lineScale_*m.lineWidth;if(i<1){Z*=i}ag.push("')}function G(aq,ai,aK,ar){var aj=aq.fillStyle;var aB=aq.arcScaleX_;var aA=aq.arcScaleY_;var j=ar.x-aK.x;var p=ar.y-aK.y;if(aj instanceof U){var an=0;var aF={x:0,y:0};var ax=0;var am=1;if(aj.type_=="gradient"){var al=aj.x0_/aB;var m=aj.y0_/aA;var ak=aj.x1_/aB;var aM=aj.y1_/aA;var aJ=V(aq,al,m);var aI=V(aq,ak,aM);var ag=aI.x-aJ.x;var Z=aI.y-aJ.y;an=Math.atan2(ag,Z)*180/Math.PI;if(an<0){an+=360}if(an<0.000001){an=0}}else{var aJ=V(aq,aj.x0_,aj.y0_);aF={x:(aJ.x-aK.x)/j,y:(aJ.y-aK.y)/p};j/=aB*d;p/=aA*d;var aD=ab.max(j,p);ax=2*aj.r0_/aD;am=2*aj.r1_/aD-ax}var av=aj.colors_;av.sort(function(aN,i){return aN.offset-i.offset});var ap=av.length;var au=av[0].color;var at=av[ap-1].color;var az=av[0].alpha*aq.globalAlpha;var ay=av[ap-1].alpha*aq.globalAlpha;var aE=[];for(var aH=0;aH')}else{if(aj instanceof T){if(j&&p){var ah=-aK.x;var aC=-aK.y;ai.push("')}}else{var aL=F(aq.fillStyle);var aw=aL.color;var aG=aL.alpha*aq.globalAlpha;ai.push('')}}}q.fill=function(){this.stroke(true)};q.closePath=function(){this.currentPath_.push({type:"close"})};function V(j,Z,p){var i=j.m_;return{x:d*(Z*i[0][0]+p*i[1][0]+i[2][0])-f,y:d*(Z*i[0][1]+p*i[1][1]+i[2][1])-f}}q.save=function(){var i={};v(this,i);this.aStack_.push(i);this.mStack_.push(this.m_);this.m_=J(B(),this.m_)};q.restore=function(){if(this.aStack_.length){v(this.aStack_.pop(),this);this.m_=this.mStack_.pop()}};function h(i){return isFinite(i[0][0])&&isFinite(i[0][1])&&isFinite(i[1][0])&&isFinite(i[1][1])&&isFinite(i[2][0])&&isFinite(i[2][1])}function aa(j,i,p){if(!h(i)){return}j.m_=i;if(p){var Z=i[0][0]*i[1][1]-i[0][1]*i[1][0];j.lineScale_=N(H(Z))}}q.translate=function(m,j){var i=[[1,0,0],[0,1,0],[m,j,1]];aa(this,J(i,this.m_),false)};q.rotate=function(j){var p=A(j);var m=l(j);var i=[[p,m,0],[-m,p,0],[0,0,1]];aa(this,J(i,this.m_),false)};q.scale=function(m,j){this.arcScaleX_*=m;this.arcScaleY_*=j;var i=[[m,0,0],[0,j,0],[0,0,1]];aa(this,J(i,this.m_),true)};q.transform=function(Z,p,ah,ag,j,i){var m=[[Z,p,0],[ah,ag,0],[j,i,1]];aa(this,J(m,this.m_),true)};q.setTransform=function(ag,Z,ai,ah,p,j){var i=[[ag,Z,0],[ai,ah,0],[p,j,1]];aa(this,i,true)};q.drawText_=function(am,ak,aj,ap,ai){var ao=this.m_,at=1000,j=0,ar=at,ah={x:0,y:0},ag=[];var i=u(E(this.font),this.element_);var p=ac(i);var au=this.element_.currentStyle;var Z=this.textAlign.toLowerCase();switch(Z){case"left":case"center":case"right":break;case"end":Z=au.direction=="ltr"?"right":"left";break;case"start":Z=au.direction=="rtl"?"right":"left";break;default:Z="left"}switch(this.textBaseline){case"hanging":case"top":ah.y=i.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":ah.y=-i.size/2.25;break}switch(Z){case"right":j=at;ar=0.05;break;case"center":j=ar=at/2;break}var aq=V(this,ak+ah.x,aj+ah.y);ag.push('');if(ai){w(this,ag)}else{G(this,ag,{x:-j,y:0},{x:ar,y:i.size})}var an=ao[0][0].toFixed(3)+","+ao[1][0].toFixed(3)+","+ao[0][1].toFixed(3)+","+ao[1][1].toFixed(3)+",0,0";var al=n(aq.x/d)+","+n(aq.y/d);ag.push('','','');this.element_.insertAdjacentHTML("beforeEnd",ag.join(""))};q.fillText=function(m,i,p,j){this.drawText_(m,i,p,j,false)};q.strokeText=function(m,i,p,j){this.drawText_(m,i,p,j,true)};q.measureText=function(m){if(!this.textMeasureEl_){var i='';this.element_.insertAdjacentHTML("beforeEnd",i);this.textMeasureEl_=this.element_.lastChild}var j=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(j.createTextNode(m));return{width:this.textMeasureEl_.offsetWidth}};q.clip=function(){};q.arcTo=function(){};q.createPattern=function(j,i){return new T(j,i)};function U(i){this.type_=i;this.x0_=0;this.y0_=0;this.r0_=0;this.x1_=0;this.y1_=0;this.r1_=0;this.colors_=[]}U.prototype.addColorStop=function(j,i){i=F(i);this.colors_.push({offset:j,color:i.color,alpha:i.alpha})};function T(j,i){Q(j);switch(i){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=i;break;default:O("SYNTAX_ERR")}this.src_=j.src;this.width_=j.width;this.height_=j.height}function O(i){throw new P(i)}function Q(i){if(!i||i.nodeType!=1||i.tagName!="IMG"){O("TYPE_MISMATCH_ERR")}if(i.readyState!="complete"){O("INVALID_STATE_ERR")}}function P(i){this.code=this[i];this.message=i+": DOM Exception "+this.code}var X=P.prototype=new Error;X.INDEX_SIZE_ERR=1;X.DOMSTRING_SIZE_ERR=2;X.HIERARCHY_REQUEST_ERR=3;X.WRONG_DOCUMENT_ERR=4;X.INVALID_CHARACTER_ERR=5;X.NO_DATA_ALLOWED_ERR=6;X.NO_MODIFICATION_ALLOWED_ERR=7;X.NOT_FOUND_ERR=8;X.NOT_SUPPORTED_ERR=9;X.INUSE_ATTRIBUTE_ERR=10;X.INVALID_STATE_ERR=11;X.SYNTAX_ERR=12;X.INVALID_MODIFICATION_ERR=13;X.NAMESPACE_ERR=14;X.INVALID_ACCESS_ERR=15;X.VALIDATION_ERR=16;X.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=e;CanvasRenderingContext2D=D;CanvasGradient=U;CanvasPattern=T;DOMException=P})()}; \ No newline at end of file diff --git a/js/plugins/flot/jquery.colorhelpers.js b/js/plugins/flot/jquery.colorhelpers.js deleted file mode 100644 index b2f6dc4e4..000000000 --- a/js/plugins/flot/jquery.colorhelpers.js +++ /dev/null @@ -1,180 +0,0 @@ -/* Plugin for jQuery for working with colors. - * - * Version 1.1. - * - * Inspiration from jQuery color animation plugin by John Resig. - * - * Released under the MIT license by Ole Laursen, October 2009. - * - * Examples: - * - * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString() - * var c = $.color.extract($("#mydiv"), 'background-color'); - * console.log(c.r, c.g, c.b, c.a); - * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)" - * - * Note that .scale() and .add() return the same modified object - * instead of making a new one. - * - * V. 1.1: Fix error handling so e.g. parsing an empty string does - * produce a color rather than just crashing. - */ - -(function($) { - $.color = {}; - - // construct color object with some convenient chainable helpers - $.color.make = function (r, g, b, a) { - var o = {}; - o.r = r || 0; - o.g = g || 0; - o.b = b || 0; - o.a = a != null ? a : 1; - - o.add = function (c, d) { - for (var i = 0; i < c.length; ++i) - o[c.charAt(i)] += d; - return o.normalize(); - }; - - o.scale = function (c, f) { - for (var i = 0; i < c.length; ++i) - o[c.charAt(i)] *= f; - return o.normalize(); - }; - - o.toString = function () { - if (o.a >= 1.0) { - return "rgb("+[o.r, o.g, o.b].join(",")+")"; - } else { - return "rgba("+[o.r, o.g, o.b, o.a].join(",")+")"; - } - }; - - o.normalize = function () { - function clamp(min, value, max) { - return value < min ? min: (value > max ? max: value); - } - - o.r = clamp(0, parseInt(o.r), 255); - o.g = clamp(0, parseInt(o.g), 255); - o.b = clamp(0, parseInt(o.b), 255); - o.a = clamp(0, o.a, 1); - return o; - }; - - o.clone = function () { - return $.color.make(o.r, o.b, o.g, o.a); - }; - - return o.normalize(); - } - - // extract CSS color property from element, going up in the DOM - // if it's "transparent" - $.color.extract = function (elem, css) { - var c; - - do { - c = elem.css(css).toLowerCase(); - // keep going until we find an element that has color, or - // we hit the body or root (have no parent) - if (c != '' && c != 'transparent') - break; - elem = elem.parent(); - } while (elem.length && !$.nodeName(elem.get(0), "body")); - - // catch Safari's way of signalling transparent - if (c == "rgba(0, 0, 0, 0)") - c = "transparent"; - - return $.color.parse(c); - } - - // parse CSS color string (like "rgb(10, 32, 43)" or "#fff"), - // returns color object, if parsing failed, you get black (0, 0, - // 0) out - $.color.parse = function (str) { - var res, m = $.color.make; - - // Look for rgb(num,num,num) - if (res = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str)) - return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10)); - - // Look for rgba(num,num,num,num) - if (res = /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str)) - return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10), parseFloat(res[4])); - - // Look for rgb(num%,num%,num%) - if (res = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str)) - return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55); - - // Look for rgba(num%,num%,num%,num) - if (res = /rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str)) - return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55, parseFloat(res[4])); - - // Look for #a0b1c2 - if (res = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str)) - return m(parseInt(res[1], 16), parseInt(res[2], 16), parseInt(res[3], 16)); - - // Look for #fff - if (res = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str)) - return m(parseInt(res[1]+res[1], 16), parseInt(res[2]+res[2], 16), parseInt(res[3]+res[3], 16)); - - // Otherwise, we're most likely dealing with a named color - var name = $.trim(str).toLowerCase(); - if (name == "transparent") - return m(255, 255, 255, 0); - else { - // default to black - res = lookupColors[name] || [0, 0, 0]; - return m(res[0], res[1], res[2]); - } - } - - var lookupColors = { - aqua:[0,255,255], - azure:[240,255,255], - beige:[245,245,220], - black:[0,0,0], - blue:[0,0,255], - brown:[165,42,42], - cyan:[0,255,255], - darkblue:[0,0,139], - darkcyan:[0,139,139], - darkgrey:[169,169,169], - darkgreen:[0,100,0], - darkkhaki:[189,183,107], - darkmagenta:[139,0,139], - darkolivegreen:[85,107,47], - darkorange:[255,140,0], - darkorchid:[153,50,204], - darkred:[139,0,0], - darksalmon:[233,150,122], - darkviolet:[148,0,211], - fuchsia:[255,0,255], - gold:[255,215,0], - green:[0,128,0], - indigo:[75,0,130], - khaki:[240,230,140], - lightblue:[173,216,230], - lightcyan:[224,255,255], - lightgreen:[144,238,144], - lightgrey:[211,211,211], - lightpink:[255,182,193], - lightyellow:[255,255,224], - lime:[0,255,0], - magenta:[255,0,255], - maroon:[128,0,0], - navy:[0,0,128], - olive:[128,128,0], - orange:[255,165,0], - pink:[255,192,203], - purple:[128,0,128], - violet:[128,0,128], - red:[255,0,0], - silver:[192,192,192], - white:[255,255,255], - yellow:[255,255,0] - }; -})(jQuery); diff --git a/js/plugins/flot/jquery.colorhelpers.min.js b/js/plugins/flot/jquery.colorhelpers.min.js deleted file mode 100644 index 7f4265964..000000000 --- a/js/plugins/flot/jquery.colorhelpers.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){$.color={};$.color.make=function(r,g,b,a){var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d){for(var i=0;i=1){return"rgb("+[o.r,o.g,o.b].join(",")+")"}else{return"rgba("+[o.r,o.g,o.b,o.a].join(",")+")"}};o.normalize=function(){function clamp(min,value,max){return valuemax?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=""&&c!="transparent")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),"body"));if(c=="rgba(0, 0, 0, 0)")c="transparent";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery); \ No newline at end of file diff --git a/js/plugins/flot/jquery.flot.canvas.js b/js/plugins/flot/jquery.flot.canvas.js deleted file mode 100644 index d94b9611a..000000000 --- a/js/plugins/flot/jquery.flot.canvas.js +++ /dev/null @@ -1,345 +0,0 @@ -/* Flot plugin for drawing all elements of a plot on the canvas. - -Copyright (c) 2007-2013 IOLA and Ole Laursen. -Licensed under the MIT license. - -Flot normally produces certain elements, like axis labels and the legend, using -HTML elements. This permits greater interactivity and customization, and often -looks better, due to cross-browser canvas text inconsistencies and limitations. - -It can also be desirable to render the plot entirely in canvas, particularly -if the goal is to save it as an image, or if Flot is being used in a context -where the HTML DOM does not exist, as is the case within Node.js. This plugin -switches out Flot's standard drawing operations for canvas-only replacements. - -Currently the plugin supports only axis labels, but it will eventually allow -every element of the plot to be rendered directly to canvas. - -The plugin supports these options: - -{ - canvas: boolean -} - -The "canvas" option controls whether full canvas drawing is enabled, making it -possible to toggle on and off. This is useful when a plot uses HTML text in the -browser, but needs to redraw with canvas text when exporting as an image. - -*/ - -(function($) { - - var options = { - canvas: true - }; - - var render, getTextInfo, addText; - - // Cache the prototype hasOwnProperty for faster access - - var hasOwnProperty = Object.prototype.hasOwnProperty; - - function init(plot, classes) { - - var Canvas = classes.Canvas; - - // We only want to replace the functions once; the second time around - // we would just get our new function back. This whole replacing of - // prototype functions is a disaster, and needs to be changed ASAP. - - if (render == null) { - getTextInfo = Canvas.prototype.getTextInfo, - addText = Canvas.prototype.addText, - render = Canvas.prototype.render; - } - - // Finishes rendering the canvas, including overlaid text - - Canvas.prototype.render = function() { - - if (!plot.getOptions().canvas) { - return render.call(this); - } - - var context = this.context, - cache = this._textCache; - - // For each text layer, render elements marked as active - - context.save(); - context.textBaseline = "middle"; - - for (var layerKey in cache) { - if (hasOwnProperty.call(cache, layerKey)) { - var layerCache = cache[layerKey]; - for (var styleKey in layerCache) { - if (hasOwnProperty.call(layerCache, styleKey)) { - var styleCache = layerCache[styleKey], - updateStyles = true; - for (var key in styleCache) { - if (hasOwnProperty.call(styleCache, key)) { - - var info = styleCache[key], - positions = info.positions, - lines = info.lines; - - // Since every element at this level of the cache have the - // same font and fill styles, we can just change them once - // using the values from the first element. - - if (updateStyles) { - context.fillStyle = info.font.color; - context.font = info.font.definition; - updateStyles = false; - } - - for (var i = 0, position; position = positions[i]; i++) { - if (position.active) { - for (var j = 0, line; line = position.lines[j]; j++) { - context.fillText(lines[j].text, line[0], line[1]); - } - } else { - positions.splice(i--, 1); - } - } - - if (positions.length == 0) { - delete styleCache[key]; - } - } - } - } - } - } - } - - context.restore(); - }; - - // Creates (if necessary) and returns a text info object. - // - // When the canvas option is set, the object looks like this: - // - // { - // width: Width of the text's bounding box. - // height: Height of the text's bounding box. - // positions: Array of positions at which this text is drawn. - // lines: [{ - // height: Height of this line. - // widths: Width of this line. - // text: Text on this line. - // }], - // font: { - // definition: Canvas font property string. - // color: Color of the text. - // }, - // } - // - // The positions array contains objects that look like this: - // - // { - // active: Flag indicating whether the text should be visible. - // lines: Array of [x, y] coordinates at which to draw the line. - // x: X coordinate at which to draw the text. - // y: Y coordinate at which to draw the text. - // } - - Canvas.prototype.getTextInfo = function(layer, text, font, angle, width) { - - if (!plot.getOptions().canvas) { - return getTextInfo.call(this, layer, text, font, angle, width); - } - - var textStyle, layerCache, styleCache, info; - - // Cast the value to a string, in case we were given a number - - text = "" + text; - - // If the font is a font-spec object, generate a CSS definition - - if (typeof font === "object") { - textStyle = font.style + " " + font.variant + " " + font.weight + " " + font.size + "px " + font.family; - } else { - textStyle = font; - } - - // Retrieve (or create) the cache for the text's layer and styles - - layerCache = this._textCache[layer]; - - if (layerCache == null) { - layerCache = this._textCache[layer] = {}; - } - - styleCache = layerCache[textStyle]; - - if (styleCache == null) { - styleCache = layerCache[textStyle] = {}; - } - - info = styleCache[text]; - - if (info == null) { - - var context = this.context; - - // If the font was provided as CSS, create a div with those - // classes and examine it to generate a canvas font spec. - - if (typeof font !== "object") { - - var element = $("
     
    ") - .css("position", "absolute") - .addClass(typeof font === "string" ? font : null) - .appendTo(this.getTextLayer(layer)); - - font = { - lineHeight: element.height(), - style: element.css("font-style"), - variant: element.css("font-variant"), - weight: element.css("font-weight"), - family: element.css("font-family"), - color: element.css("color") - }; - - // Setting line-height to 1, without units, sets it equal - // to the font-size, even if the font-size is abstract, - // like 'smaller'. This enables us to read the real size - // via the element's height, working around browsers that - // return the literal 'smaller' value. - - font.size = element.css("line-height", 1).height(); - - element.remove(); - } - - textStyle = font.style + " " + font.variant + " " + font.weight + " " + font.size + "px " + font.family; - - // Create a new info object, initializing the dimensions to - // zero so we can count them up line-by-line. - - info = styleCache[text] = { - width: 0, - height: 0, - positions: [], - lines: [], - font: { - definition: textStyle, - color: font.color - } - }; - - context.save(); - context.font = textStyle; - - // Canvas can't handle multi-line strings; break on various - // newlines, including HTML brs, to build a list of lines. - // Note that we could split directly on regexps, but IE < 9 is - // broken; revisit when we drop IE 7/8 support. - - var lines = (text + "").replace(/
    |\r\n|\r/g, "\n").split("\n"); - - for (var i = 0; i < lines.length; ++i) { - - var lineText = lines[i], - measured = context.measureText(lineText); - - info.width = Math.max(measured.width, info.width); - info.height += font.lineHeight; - - info.lines.push({ - text: lineText, - width: measured.width, - height: font.lineHeight - }); - } - - context.restore(); - } - - return info; - }; - - // Adds a text string to the canvas text overlay. - - Canvas.prototype.addText = function(layer, x, y, text, font, angle, width, halign, valign) { - - if (!plot.getOptions().canvas) { - return addText.call(this, layer, x, y, text, font, angle, width, halign, valign); - } - - var info = this.getTextInfo(layer, text, font, angle, width), - positions = info.positions, - lines = info.lines; - - // Text is drawn with baseline 'middle', which we need to account - // for by adding half a line's height to the y position. - - y += info.height / lines.length / 2; - - // Tweak the initial y-position to match vertical alignment - - if (valign == "middle") { - y = Math.round(y - info.height / 2); - } else if (valign == "bottom") { - y = Math.round(y - info.height); - } else { - y = Math.round(y); - } - - // FIXME: LEGACY BROWSER FIX - // AFFECTS: Opera < 12.00 - - // Offset the y coordinate, since Opera is off pretty - // consistently compared to the other browsers. - - if (!!(window.opera && window.opera.version().split(".")[0] < 12)) { - y -= 2; - } - - // Determine whether this text already exists at this position. - // If so, mark it for inclusion in the next render pass. - - for (var i = 0, position; position = positions[i]; i++) { - if (position.x == x && position.y == y) { - position.active = true; - return; - } - } - - // If the text doesn't exist at this position, create a new entry - - position = { - active: true, - lines: [], - x: x, - y: y - }; - - positions.push(position); - - // Fill in the x & y positions of each line, adjusting them - // individually for horizontal alignment. - - for (var i = 0, line; line = lines[i]; i++) { - if (halign == "center") { - position.lines.push([Math.round(x - line.width / 2), y]); - } else if (halign == "right") { - position.lines.push([Math.round(x - line.width), y]); - } else { - position.lines.push([Math.round(x), y]); - } - y += line.height; - } - }; - } - - $.plot.plugins.push({ - init: init, - options: options, - name: "canvas", - version: "1.0" - }); - -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.canvas.min.js b/js/plugins/flot/jquery.flot.canvas.min.js deleted file mode 100644 index 826d21776..000000000 --- a/js/plugins/flot/jquery.flot.canvas.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){var options={canvas:true};var render,getTextInfo,addText;var hasOwnProperty=Object.prototype.hasOwnProperty;function init(plot,classes){var Canvas=classes.Canvas;if(render==null){getTextInfo=Canvas.prototype.getTextInfo,addText=Canvas.prototype.addText,render=Canvas.prototype.render}Canvas.prototype.render=function(){if(!plot.getOptions().canvas){return render.call(this)}var context=this.context,cache=this._textCache;context.save();context.textBaseline="middle";for(var layerKey in cache){if(hasOwnProperty.call(cache,layerKey)){var layerCache=cache[layerKey];for(var styleKey in layerCache){if(hasOwnProperty.call(layerCache,styleKey)){var styleCache=layerCache[styleKey],updateStyles=true;for(var key in styleCache){if(hasOwnProperty.call(styleCache,key)){var info=styleCache[key],positions=info.positions,lines=info.lines;if(updateStyles){context.fillStyle=info.font.color;context.font=info.font.definition;updateStyles=false}for(var i=0,position;position=positions[i];i++){if(position.active){for(var j=0,line;line=position.lines[j];j++){context.fillText(lines[j].text,line[0],line[1])}}else{positions.splice(i--,1)}}if(positions.length==0){delete styleCache[key]}}}}}}}context.restore()};Canvas.prototype.getTextInfo=function(layer,text,font,angle,width){if(!plot.getOptions().canvas){return getTextInfo.call(this,layer,text,font,angle,width)}var textStyle,layerCache,styleCache,info;text=""+text;if(typeof font==="object"){textStyle=font.style+" "+font.variant+" "+font.weight+" "+font.size+"px "+font.family}else{textStyle=font}layerCache=this._textCache[layer];if(layerCache==null){layerCache=this._textCache[layer]={}}styleCache=layerCache[textStyle];if(styleCache==null){styleCache=layerCache[textStyle]={}}info=styleCache[text];if(info==null){var context=this.context;if(typeof font!=="object"){var element=$("
     
    ").css("position","absolute").addClass(typeof font==="string"?font:null).appendTo(this.getTextLayer(layer));font={lineHeight:element.height(),style:element.css("font-style"),variant:element.css("font-variant"),weight:element.css("font-weight"),family:element.css("font-family"),color:element.css("color")};font.size=element.css("line-height",1).height();element.remove()}textStyle=font.style+" "+font.variant+" "+font.weight+" "+font.size+"px "+font.family;info=styleCache[text]={width:0,height:0,positions:[],lines:[],font:{definition:textStyle,color:font.color}};context.save();context.font=textStyle;var lines=(text+"").replace(/
    |\r\n|\r/g,"\n").split("\n");for(var i=0;i index) - index = categories[v]; - - return index + 1; - } - - function categoriesTickGenerator(axis) { - var res = []; - for (var label in axis.categories) { - var v = axis.categories[label]; - if (v >= axis.min && v <= axis.max) - res.push([v, label]); - } - - res.sort(function (a, b) { return a[0] - b[0]; }); - - return res; - } - - function setupCategoriesForAxis(series, axis, datapoints) { - if (series[axis].options.mode != "categories") - return; - - if (!series[axis].categories) { - // parse options - var c = {}, o = series[axis].options.categories || {}; - if ($.isArray(o)) { - for (var i = 0; i < o.length; ++i) - c[o[i]] = i; - } - else { - for (var v in o) - c[v] = o[v]; - } - - series[axis].categories = c; - } - - // fix ticks - if (!series[axis].options.ticks) - series[axis].options.ticks = categoriesTickGenerator; - - transformPointsOnAxis(datapoints, axis, series[axis].categories); - } - - function transformPointsOnAxis(datapoints, axis, categories) { - // go through the points, transforming them - var points = datapoints.points, - ps = datapoints.pointsize, - format = datapoints.format, - formatColumn = axis.charAt(0), - index = getNextIndex(categories); - - for (var i = 0; i < points.length; i += ps) { - if (points[i] == null) - continue; - - for (var m = 0; m < ps; ++m) { - var val = points[i + m]; - - if (val == null || !format[m][formatColumn]) - continue; - - if (!(val in categories)) { - categories[val] = index; - ++index; - } - - points[i + m] = categories[val]; - } - } - } - - function processDatapoints(plot, series, datapoints) { - setupCategoriesForAxis(series, "xaxis", datapoints); - setupCategoriesForAxis(series, "yaxis", datapoints); - } - - function init(plot) { - plot.hooks.processRawData.push(processRawData); - plot.hooks.processDatapoints.push(processDatapoints); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: 'categories', - version: '1.0' - }); -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.categories.min.js b/js/plugins/flot/jquery.flot.categories.min.js deleted file mode 100644 index 552dd90a6..000000000 --- a/js/plugins/flot/jquery.flot.categories.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){var options={xaxis:{categories:null},yaxis:{categories:null}};function processRawData(plot,series,data,datapoints){var xCategories=series.xaxis.options.mode=="categories",yCategories=series.yaxis.options.mode=="categories";if(!(xCategories||yCategories))return;var format=datapoints.format;if(!format){var s=series;format=[];format.push({x:true,number:true,required:true});format.push({y:true,number:true,required:true});if(s.bars.show||s.lines.show&&s.lines.fill){var autoscale=!!(s.bars.show&&s.bars.zero||s.lines.show&&s.lines.zero);format.push({y:true,number:true,required:false,defaultValue:0,autoscale:autoscale});if(s.bars.horizontal){delete format[format.length-1].y;format[format.length-1].x=true}}datapoints.format=format}for(var m=0;mindex)index=categories[v];return index+1}function categoriesTickGenerator(axis){var res=[];for(var label in axis.categories){var v=axis.categories[label];if(v>=axis.min&&v<=axis.max)res.push([v,label])}res.sort(function(a,b){return a[0]-b[0]});return res}function setupCategoriesForAxis(series,axis,datapoints){if(series[axis].options.mode!="categories")return;if(!series[axis].categories){var c={},o=series[axis].options.categories||{};if($.isArray(o)){for(var i=0;i ax[1].max || y < ax[1].min || upper < ax[0].min || lower > ax[0].max) - continue; - if (err[e].err == 'y') - if (x > ax[0].max || x < ax[0].min || upper < ax[1].min || lower > ax[1].max) - continue; - - // prevent errorbars getting out of the canvas - var drawUpper = true, - drawLower = true; - - if (upper > minmax[1]) { - drawUpper = false; - upper = minmax[1]; - } - if (lower < minmax[0]) { - drawLower = false; - lower = minmax[0]; - } - - //sanity check, in case some inverted axis hack is applied to flot - if ((err[e].err == 'x' && invertX) || (err[e].err == 'y' && invertY)) { - //swap coordinates - var tmp = lower; - lower = upper; - upper = tmp; - tmp = drawLower; - drawLower = drawUpper; - drawUpper = tmp; - tmp = minmax[0]; - minmax[0] = minmax[1]; - minmax[1] = tmp; - } - - // convert to pixels - x = ax[0].p2c(x), - y = ax[1].p2c(y), - upper = ax[e].p2c(upper); - lower = ax[e].p2c(lower); - minmax[0] = ax[e].p2c(minmax[0]); - minmax[1] = ax[e].p2c(minmax[1]); - - //same style as points by default - var lw = err[e].lineWidth ? err[e].lineWidth : s.points.lineWidth, - sw = s.points.shadowSize != null ? s.points.shadowSize : s.shadowSize; - - //shadow as for points - if (lw > 0 && sw > 0) { - var w = sw / 2; - ctx.lineWidth = w; - ctx.strokeStyle = "rgba(0,0,0,0.1)"; - drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, w + w/2, minmax); - - ctx.strokeStyle = "rgba(0,0,0,0.2)"; - drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, w/2, minmax); - } - - ctx.strokeStyle = err[e].color? err[e].color: s.color; - ctx.lineWidth = lw; - //draw it - drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, 0, minmax); - } - } - } - } - - function drawError(ctx,err,x,y,upper,lower,drawUpper,drawLower,radius,offset,minmax){ - - //shadow offset - y += offset; - upper += offset; - lower += offset; - - // error bar - avoid plotting over circles - if (err.err == 'x'){ - if (upper > x + radius) drawPath(ctx, [[upper,y],[Math.max(x + radius,minmax[0]),y]]); - else drawUpper = false; - if (lower < x - radius) drawPath(ctx, [[Math.min(x - radius,minmax[1]),y],[lower,y]] ); - else drawLower = false; - } - else { - if (upper < y - radius) drawPath(ctx, [[x,upper],[x,Math.min(y - radius,minmax[0])]] ); - else drawUpper = false; - if (lower > y + radius) drawPath(ctx, [[x,Math.max(y + radius,minmax[1])],[x,lower]] ); - else drawLower = false; - } - - //internal radius value in errorbar, allows to plot radius 0 points and still keep proper sized caps - //this is a way to get errorbars on lines without visible connecting dots - radius = err.radius != null? err.radius: radius; - - // upper cap - if (drawUpper) { - if (err.upperCap == '-'){ - if (err.err=='x') drawPath(ctx, [[upper,y - radius],[upper,y + radius]] ); - else drawPath(ctx, [[x - radius,upper],[x + radius,upper]] ); - } else if ($.isFunction(err.upperCap)){ - if (err.err=='x') err.upperCap(ctx, upper, y, radius); - else err.upperCap(ctx, x, upper, radius); - } - } - // lower cap - if (drawLower) { - if (err.lowerCap == '-'){ - if (err.err=='x') drawPath(ctx, [[lower,y - radius],[lower,y + radius]] ); - else drawPath(ctx, [[x - radius,lower],[x + radius,lower]] ); - } else if ($.isFunction(err.lowerCap)){ - if (err.err=='x') err.lowerCap(ctx, lower, y, radius); - else err.lowerCap(ctx, x, lower, radius); - } - } - } - - function drawPath(ctx, pts){ - ctx.beginPath(); - ctx.moveTo(pts[0][0], pts[0][1]); - for (var p=1; p < pts.length; p++) - ctx.lineTo(pts[p][0], pts[p][1]); - ctx.stroke(); - } - - function draw(plot, ctx){ - var plotOffset = plot.getPlotOffset(); - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - $.each(plot.getData(), function (i, s) { - if (s.points.errorbars && (s.points.xerr.show || s.points.yerr.show)) - drawSeriesErrors(plot, ctx, s); - }); - ctx.restore(); - } - - function init(plot) { - plot.hooks.processRawData.push(processRawData); - plot.hooks.draw.push(draw); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: 'errorbars', - version: '1.0' - }); -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.errorbars.min.js b/js/plugins/flot/jquery.flot.errorbars.min.js deleted file mode 100644 index a7bd0422c..000000000 --- a/js/plugins/flot/jquery.flot.errorbars.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){var options={series:{points:{errorbars:null,xerr:{err:"x",show:null,asymmetric:null,upperCap:null,lowerCap:null,color:null,radius:null},yerr:{err:"y",show:null,asymmetric:null,upperCap:null,lowerCap:null,color:null,radius:null}}}};function processRawData(plot,series,data,datapoints){if(!series.points.errorbars)return;var format=[{x:true,number:true,required:true},{y:true,number:true,required:true}];var errors=series.points.errorbars;if(errors=="x"||errors=="xy"){if(series.points.xerr.asymmetric){format.push({x:true,number:true,required:true});format.push({x:true,number:true,required:true})}else format.push({x:true,number:true,required:true})}if(errors=="y"||errors=="xy"){if(series.points.yerr.asymmetric){format.push({y:true,number:true,required:true});format.push({y:true,number:true,required:true})}else format.push({y:true,number:true,required:true})}datapoints.format=format}function parseErrors(series,i){var points=series.datapoints.points;var exl=null,exu=null,eyl=null,eyu=null;var xerr=series.points.xerr,yerr=series.points.yerr;var eb=series.points.errorbars;if(eb=="x"||eb=="xy"){if(xerr.asymmetric){exl=points[i+2];exu=points[i+3];if(eb=="xy")if(yerr.asymmetric){eyl=points[i+4];eyu=points[i+5]}else eyl=points[i+4]}else{exl=points[i+2];if(eb=="xy")if(yerr.asymmetric){eyl=points[i+3];eyu=points[i+4]}else eyl=points[i+3]}}else if(eb=="y")if(yerr.asymmetric){eyl=points[i+2];eyu=points[i+3]}else eyl=points[i+2];if(exu==null)exu=exl;if(eyu==null)eyu=eyl;var errRanges=[exl,exu,eyl,eyu];if(!xerr.show){errRanges[0]=null;errRanges[1]=null}if(!yerr.show){errRanges[2]=null;errRanges[3]=null}return errRanges}function drawSeriesErrors(plot,ctx,s){var points=s.datapoints.points,ps=s.datapoints.pointsize,ax=[s.xaxis,s.yaxis],radius=s.points.radius,err=[s.points.xerr,s.points.yerr];var invertX=false;if(ax[0].p2c(ax[0].max)ax[1].max||yax[0].max)continue;if(err[e].err=="y")if(x>ax[0].max||xax[1].max)continue;var drawUpper=true,drawLower=true;if(upper>minmax[1]){drawUpper=false;upper=minmax[1]}if(lower0&&sw>0){var w=sw/2;ctx.lineWidth=w;ctx.strokeStyle="rgba(0,0,0,0.1)";drawError(ctx,err[e],x,y,upper,lower,drawUpper,drawLower,radius,w+w/2,minmax);ctx.strokeStyle="rgba(0,0,0,0.2)";drawError(ctx,err[e],x,y,upper,lower,drawUpper,drawLower,radius,w/2,minmax)}ctx.strokeStyle=err[e].color?err[e].color:s.color;ctx.lineWidth=lw;drawError(ctx,err[e],x,y,upper,lower,drawUpper,drawLower,radius,0,minmax)}}}}function drawError(ctx,err,x,y,upper,lower,drawUpper,drawLower,radius,offset,minmax){y+=offset;upper+=offset;lower+=offset;if(err.err=="x"){if(upper>x+radius)drawPath(ctx,[[upper,y],[Math.max(x+radius,minmax[0]),y]]);else drawUpper=false;if(lowery+radius)drawPath(ctx,[[x,Math.max(y+radius,minmax[1])],[x,lower]]);else drawLower=false}radius=err.radius!=null?err.radius:radius;if(drawUpper){if(err.upperCap=="-"){if(err.err=="x")drawPath(ctx,[[upper,y-radius],[upper,y+radius]]);else drawPath(ctx,[[x-radius,upper],[x+radius,upper]])}else if($.isFunction(err.upperCap)){if(err.err=="x")err.upperCap(ctx,upper,y,radius);else err.upperCap(ctx,x,upper,radius)}}if(drawLower){if(err.lowerCap=="-"){if(err.err=="x")drawPath(ctx,[[lower,y-radius],[lower,y+radius]]);else drawPath(ctx,[[x-radius,lower],[x+radius,lower]])}else if($.isFunction(err.lowerCap)){if(err.err=="x")err.lowerCap(ctx,lower,y,radius);else err.lowerCap(ctx,x,lower,radius)}}}function drawPath(ctx,pts){ctx.beginPath();ctx.moveTo(pts[0][0],pts[0][1]);for(var p=1;p= allseries.length ) { - return null; - } - return allseries[ s.fillBetween ]; - } - - return null; - } - - function computeFillBottoms( plot, s, datapoints ) { - - if ( s.fillBetween == null ) { - return; - } - - var other = findBottomSeries( s, plot.getData() ); - - if ( !other ) { - return; - } - - var ps = datapoints.pointsize, - points = datapoints.points, - otherps = other.datapoints.pointsize, - otherpoints = other.datapoints.points, - newpoints = [], - px, py, intery, qx, qy, bottom, - withlines = s.lines.show, - withbottom = ps > 2 && datapoints.format[2].y, - withsteps = withlines && s.lines.steps, - fromgap = true, - i = 0, - j = 0, - l, m; - - while ( true ) { - - if ( i >= points.length ) { - break; - } - - l = newpoints.length; - - if ( points[ i ] == null ) { - - // copy gaps - - for ( m = 0; m < ps; ++m ) { - newpoints.push( points[ i + m ] ); - } - - i += ps; - - } else if ( j >= otherpoints.length ) { - - // for lines, we can't use the rest of the points - - if ( !withlines ) { - for ( m = 0; m < ps; ++m ) { - newpoints.push( points[ i + m ] ); - } - } - - i += ps; - - } else if ( otherpoints[ j ] == null ) { - - // oops, got a gap - - for ( m = 0; m < ps; ++m ) { - newpoints.push( null ); - } - - fromgap = true; - j += otherps; - - } else { - - // cases where we actually got two points - - px = points[ i ]; - py = points[ i + 1 ]; - qx = otherpoints[ j ]; - qy = otherpoints[ j + 1 ]; - bottom = 0; - - if ( px === qx ) { - - for ( m = 0; m < ps; ++m ) { - newpoints.push( points[ i + m ] ); - } - - //newpoints[ l + 1 ] += qy; - bottom = qy; - - i += ps; - j += otherps; - - } else if ( px > qx ) { - - // we got past point below, might need to - // insert interpolated extra point - - if ( withlines && i > 0 && points[ i - ps ] != null ) { - intery = py + ( points[ i - ps + 1 ] - py ) * ( qx - px ) / ( points[ i - ps ] - px ); - newpoints.push( qx ); - newpoints.push( intery ); - for ( m = 2; m < ps; ++m ) { - newpoints.push( points[ i + m ] ); - } - bottom = qy; - } - - j += otherps; - - } else { // px < qx - - // if we come from a gap, we just skip this point - - if ( fromgap && withlines ) { - i += ps; - continue; - } - - for ( m = 0; m < ps; ++m ) { - newpoints.push( points[ i + m ] ); - } - - // we might be able to interpolate a point below, - // this can give us a better y - - if ( withlines && j > 0 && otherpoints[ j - otherps ] != null ) { - bottom = qy + ( otherpoints[ j - otherps + 1 ] - qy ) * ( px - qx ) / ( otherpoints[ j - otherps ] - qx ); - } - - //newpoints[l + 1] += bottom; - - i += ps; - } - - fromgap = false; - - if ( l !== newpoints.length && withbottom ) { - newpoints[ l + 2 ] = bottom; - } - } - - // maintain the line steps invariant - - if ( withsteps && l !== newpoints.length && l > 0 && - newpoints[ l ] !== null && - newpoints[ l ] !== newpoints[ l - ps ] && - newpoints[ l + 1 ] !== newpoints[ l - ps + 1 ] ) { - for (m = 0; m < ps; ++m) { - newpoints[ l + ps + m ] = newpoints[ l + m ]; - } - newpoints[ l + 1 ] = newpoints[ l - ps + 1 ]; - } - } - - datapoints.points = newpoints; - } - - plot.hooks.processDatapoints.push( computeFillBottoms ); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: "fillbetween", - version: "1.0" - }); - -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.fillbetween.min.js b/js/plugins/flot/jquery.flot.fillbetween.min.js deleted file mode 100644 index 5bdad05fb..000000000 --- a/js/plugins/flot/jquery.flot.fillbetween.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){var options={series:{fillBetween:null}};function init(plot){function findBottomSeries(s,allseries){var i;for(i=0;i=allseries.length){return null}return allseries[s.fillBetween]}return null}function computeFillBottoms(plot,s,datapoints){if(s.fillBetween==null){return}var other=findBottomSeries(s,plot.getData());if(!other){return}var ps=datapoints.pointsize,points=datapoints.points,otherps=other.datapoints.pointsize,otherpoints=other.datapoints.points,newpoints=[],px,py,intery,qx,qy,bottom,withlines=s.lines.show,withbottom=ps>2&&datapoints.format[2].y,withsteps=withlines&&s.lines.steps,fromgap=true,i=0,j=0,l,m;while(true){if(i>=points.length){break}l=newpoints.length;if(points[i]==null){for(m=0;m=otherpoints.length){if(!withlines){for(m=0;mqx){if(withlines&&i>0&&points[i-ps]!=null){intery=py+(points[i-ps+1]-py)*(qx-px)/(points[i-ps]-px);newpoints.push(qx);newpoints.push(intery);for(m=2;m0&&otherpoints[j-otherps]!=null){bottom=qy+(otherpoints[j-otherps+1]-qy)*(px-qx)/(otherpoints[j-otherps]-qx)}i+=ps}fromgap=false;if(l!==newpoints.length&&withbottom){newpoints[l+2]=bottom}}if(withsteps&&l!==newpoints.length&&l>0&&newpoints[l]!==null&&newpoints[l]!==newpoints[l-ps]&&newpoints[l+1]!==newpoints[l-ps+1]){for(m=0;m').load(handler).error(handler).attr('src', url); - }); - }; - - function drawSeries(plot, ctx, series) { - var plotOffset = plot.getPlotOffset(); - - if (!series.images || !series.images.show) - return; - - var points = series.datapoints.points, - ps = series.datapoints.pointsize; - - for (var i = 0; i < points.length; i += ps) { - var img = points[i], - x1 = points[i + 1], y1 = points[i + 2], - x2 = points[i + 3], y2 = points[i + 4], - xaxis = series.xaxis, yaxis = series.yaxis, - tmp; - - // actually we should check img.complete, but it - // appears to be a somewhat unreliable indicator in - // IE6 (false even after load event) - if (!img || img.width <= 0 || img.height <= 0) - continue; - - if (x1 > x2) { - tmp = x2; - x2 = x1; - x1 = tmp; - } - if (y1 > y2) { - tmp = y2; - y2 = y1; - y1 = tmp; - } - - // if the anchor is at the center of the pixel, expand the - // image by 1/2 pixel in each direction - if (series.images.anchor == "center") { - tmp = 0.5 * (x2-x1) / (img.width - 1); - x1 -= tmp; - x2 += tmp; - tmp = 0.5 * (y2-y1) / (img.height - 1); - y1 -= tmp; - y2 += tmp; - } - - // clip - if (x1 == x2 || y1 == y2 || - x1 >= xaxis.max || x2 <= xaxis.min || - y1 >= yaxis.max || y2 <= yaxis.min) - continue; - - var sx1 = 0, sy1 = 0, sx2 = img.width, sy2 = img.height; - if (x1 < xaxis.min) { - sx1 += (sx2 - sx1) * (xaxis.min - x1) / (x2 - x1); - x1 = xaxis.min; - } - - if (x2 > xaxis.max) { - sx2 += (sx2 - sx1) * (xaxis.max - x2) / (x2 - x1); - x2 = xaxis.max; - } - - if (y1 < yaxis.min) { - sy2 += (sy1 - sy2) * (yaxis.min - y1) / (y2 - y1); - y1 = yaxis.min; - } - - if (y2 > yaxis.max) { - sy1 += (sy1 - sy2) * (yaxis.max - y2) / (y2 - y1); - y2 = yaxis.max; - } - - x1 = xaxis.p2c(x1); - x2 = xaxis.p2c(x2); - y1 = yaxis.p2c(y1); - y2 = yaxis.p2c(y2); - - // the transformation may have swapped us - if (x1 > x2) { - tmp = x2; - x2 = x1; - x1 = tmp; - } - if (y1 > y2) { - tmp = y2; - y2 = y1; - y1 = tmp; - } - - tmp = ctx.globalAlpha; - ctx.globalAlpha *= series.images.alpha; - ctx.drawImage(img, - sx1, sy1, sx2 - sx1, sy2 - sy1, - x1 + plotOffset.left, y1 + plotOffset.top, - x2 - x1, y2 - y1); - ctx.globalAlpha = tmp; - } - } - - function processRawData(plot, series, data, datapoints) { - if (!series.images.show) - return; - - // format is Image, x1, y1, x2, y2 (opposite corners) - datapoints.format = [ - { required: true }, - { x: true, number: true, required: true }, - { y: true, number: true, required: true }, - { x: true, number: true, required: true }, - { y: true, number: true, required: true } - ]; - } - - function init(plot) { - plot.hooks.processRawData.push(processRawData); - plot.hooks.drawSeries.push(drawSeries); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: 'image', - version: '1.1' - }); -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.image.min.js b/js/plugins/flot/jquery.flot.image.min.js deleted file mode 100644 index 606002417..000000000 --- a/js/plugins/flot/jquery.flot.image.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){var options={series:{images:{show:false,alpha:1,anchor:"corner"}}};$.plot.image={};$.plot.image.loadDataImages=function(series,options,callback){var urls=[],points=[];var defaultShow=options.series.images.show;$.each(series,function(i,s){if(!(defaultShow||s.images.show))return;if(s.data)s=s.data;$.each(s,function(i,p){if(typeof p[0]=="string"){urls.push(p[0]);points.push(p)}})});$.plot.image.load(urls,function(loadedImages){$.each(points,function(i,p){var url=p[0];if(loadedImages[url])p[0]=loadedImages[url]});callback()})};$.plot.image.load=function(urls,callback){var missing=urls.length,loaded={};if(missing==0)callback({});$.each(urls,function(i,url){var handler=function(){--missing;loaded[url]=this;if(missing==0)callback(loaded)};$("").load(handler).error(handler).attr("src",url)})};function drawSeries(plot,ctx,series){var plotOffset=plot.getPlotOffset();if(!series.images||!series.images.show)return;var points=series.datapoints.points,ps=series.datapoints.pointsize;for(var i=0;ix2){tmp=x2;x2=x1;x1=tmp}if(y1>y2){tmp=y2;y2=y1;y1=tmp}if(series.images.anchor=="center"){tmp=.5*(x2-x1)/(img.width-1);x1-=tmp;x2+=tmp;tmp=.5*(y2-y1)/(img.height-1);y1-=tmp;y2+=tmp}if(x1==x2||y1==y2||x1>=xaxis.max||x2<=xaxis.min||y1>=yaxis.max||y2<=yaxis.min)continue;var sx1=0,sy1=0,sx2=img.width,sy2=img.height;if(x1xaxis.max){sx2+=(sx2-sx1)*(xaxis.max-x2)/(x2-x1);x2=xaxis.max}if(y1yaxis.max){sy1+=(sy1-sy2)*(yaxis.max-y2)/(y2-y1);y2=yaxis.max}x1=xaxis.p2c(x1);x2=xaxis.p2c(x2);y1=yaxis.p2c(y1);y2=yaxis.p2c(y2);if(x1>x2){tmp=x2;x2=x1;x1=tmp}if(y1>y2){tmp=y2;y2=y1;y1=tmp}tmp=ctx.globalAlpha;ctx.globalAlpha*=series.images.alpha;ctx.drawImage(img,sx1,sy1,sx2-sx1,sy2-sy1,x1+plotOffset.left,y1+plotOffset.top,x2-x1,y2-y1);ctx.globalAlpha=tmp}}function processRawData(plot,series,data,datapoints){if(!series.images.show)return;datapoints.format=[{required:true},{x:true,number:true,required:true},{y:true,number:true,required:true},{x:true,number:true,required:true},{y:true,number:true,required:true}]}function init(plot){plot.hooks.processRawData.push(processRawData);plot.hooks.drawSeries.push(drawSeries)}$.plot.plugins.push({init:init,options:options,name:"image",version:"1.1"})})(jQuery); \ No newline at end of file diff --git a/js/plugins/flot/jquery.flot.js b/js/plugins/flot/jquery.flot.js deleted file mode 100644 index 965e78efe..000000000 --- a/js/plugins/flot/jquery.flot.js +++ /dev/null @@ -1,3137 +0,0 @@ -/* Javascript plotting library for jQuery, version 0.8.2. - -Copyright (c) 2007-2013 IOLA and Ole Laursen. -Licensed under the MIT license. - -*/ - -// first an inline dependency, jquery.colorhelpers.js, we inline it here -// for convenience - -/* Plugin for jQuery for working with colors. - * - * Version 1.1. - * - * Inspiration from jQuery color animation plugin by John Resig. - * - * Released under the MIT license by Ole Laursen, October 2009. - * - * Examples: - * - * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString() - * var c = $.color.extract($("#mydiv"), 'background-color'); - * console.log(c.r, c.g, c.b, c.a); - * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)" - * - * Note that .scale() and .add() return the same modified object - * instead of making a new one. - * - * V. 1.1: Fix error handling so e.g. parsing an empty string does - * produce a color rather than just crashing. - */ -(function($){$.color={};$.color.make=function(r,g,b,a){var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d){for(var i=0;i=1){return"rgb("+[o.r,o.g,o.b].join(",")+")"}else{return"rgba("+[o.r,o.g,o.b,o.a].join(",")+")"}};o.normalize=function(){function clamp(min,value,max){return valuemax?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=""&&c!="transparent")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),"body"));if(c=="rgba(0, 0, 0, 0)")c="transparent";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery); - -// the actual Flot code -(function($) { - - // Cache the prototype hasOwnProperty for faster access - - var hasOwnProperty = Object.prototype.hasOwnProperty; - - /////////////////////////////////////////////////////////////////////////// - // The Canvas object is a wrapper around an HTML5 tag. - // - // @constructor - // @param {string} cls List of classes to apply to the canvas. - // @param {element} container Element onto which to append the canvas. - // - // Requiring a container is a little iffy, but unfortunately canvas - // operations don't work unless the canvas is attached to the DOM. - - function Canvas(cls, container) { - - var element = container.children("." + cls)[0]; - - if (element == null) { - - element = document.createElement("canvas"); - element.className = cls; - - $(element).css({ direction: "ltr", position: "absolute", left: 0, top: 0 }) - .appendTo(container); - - // If HTML5 Canvas isn't available, fall back to [Ex|Flash]canvas - - if (!element.getContext) { - if (window.G_vmlCanvasManager) { - element = window.G_vmlCanvasManager.initElement(element); - } else { - throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode."); - } - } - } - - this.element = element; - - var context = this.context = element.getContext("2d"); - - // Determine the screen's ratio of physical to device-independent - // pixels. This is the ratio between the canvas width that the browser - // advertises and the number of pixels actually present in that space. - - // The iPhone 4, for example, has a device-independent width of 320px, - // but its screen is actually 640px wide. It therefore has a pixel - // ratio of 2, while most normal devices have a ratio of 1. - - var devicePixelRatio = window.devicePixelRatio || 1, - backingStoreRatio = - context.webkitBackingStorePixelRatio || - context.mozBackingStorePixelRatio || - context.msBackingStorePixelRatio || - context.oBackingStorePixelRatio || - context.backingStorePixelRatio || 1; - - this.pixelRatio = devicePixelRatio / backingStoreRatio; - - // Size the canvas to match the internal dimensions of its container - - this.resize(container.width(), container.height()); - - // Collection of HTML div layers for text overlaid onto the canvas - - this.textContainer = null; - this.text = {}; - - // Cache of text fragments and metrics, so we can avoid expensively - // re-calculating them when the plot is re-rendered in a loop. - - this._textCache = {}; - } - - // Resizes the canvas to the given dimensions. - // - // @param {number} width New width of the canvas, in pixels. - // @param {number} width New height of the canvas, in pixels. - - Canvas.prototype.resize = function(width, height) { - - if (width <= 0 || height <= 0) { - throw new Error("Invalid dimensions for plot, width = " + width + ", height = " + height); - } - - var element = this.element, - context = this.context, - pixelRatio = this.pixelRatio; - - // Resize the canvas, increasing its density based on the display's - // pixel ratio; basically giving it more pixels without increasing the - // size of its element, to take advantage of the fact that retina - // displays have that many more pixels in the same advertised space. - - // Resizing should reset the state (excanvas seems to be buggy though) - - if (this.width != width) { - element.width = width * pixelRatio; - element.style.width = width + "px"; - this.width = width; - } - - if (this.height != height) { - element.height = height * pixelRatio; - element.style.height = height + "px"; - this.height = height; - } - - // Save the context, so we can reset in case we get replotted. The - // restore ensure that we're really back at the initial state, and - // should be safe even if we haven't saved the initial state yet. - - context.restore(); - context.save(); - - // Scale the coordinate space to match the display density; so even though we - // may have twice as many pixels, we still want lines and other drawing to - // appear at the same size; the extra pixels will just make them crisper. - - context.scale(pixelRatio, pixelRatio); - }; - - // Clears the entire canvas area, not including any overlaid HTML text - - Canvas.prototype.clear = function() { - this.context.clearRect(0, 0, this.width, this.height); - }; - - // Finishes rendering the canvas, including managing the text overlay. - - Canvas.prototype.render = function() { - - var cache = this._textCache; - - // For each text layer, add elements marked as active that haven't - // already been rendered, and remove those that are no longer active. - - for (var layerKey in cache) { - if (hasOwnProperty.call(cache, layerKey)) { - - var layer = this.getTextLayer(layerKey), - layerCache = cache[layerKey]; - - layer.hide(); - - for (var styleKey in layerCache) { - if (hasOwnProperty.call(layerCache, styleKey)) { - var styleCache = layerCache[styleKey]; - for (var key in styleCache) { - if (hasOwnProperty.call(styleCache, key)) { - - var positions = styleCache[key].positions; - - for (var i = 0, position; position = positions[i]; i++) { - if (position.active) { - if (!position.rendered) { - layer.append(position.element); - position.rendered = true; - } - } else { - positions.splice(i--, 1); - if (position.rendered) { - position.element.detach(); - } - } - } - - if (positions.length == 0) { - delete styleCache[key]; - } - } - } - } - } - - layer.show(); - } - } - }; - - // Creates (if necessary) and returns the text overlay container. - // - // @param {string} classes String of space-separated CSS classes used to - // uniquely identify the text layer. - // @return {object} The jQuery-wrapped text-layer div. - - Canvas.prototype.getTextLayer = function(classes) { - - var layer = this.text[classes]; - - // Create the text layer if it doesn't exist - - if (layer == null) { - - // Create the text layer container, if it doesn't exist - - if (this.textContainer == null) { - this.textContainer = $("
    ") - .css({ - position: "absolute", - top: 0, - left: 0, - bottom: 0, - right: 0, - 'font-size': "smaller", - color: "#545454" - }) - .insertAfter(this.element); - } - - layer = this.text[classes] = $("
    ") - .addClass(classes) - .css({ - position: "absolute", - top: 0, - left: 0, - bottom: 0, - right: 0 - }) - .appendTo(this.textContainer); - } - - return layer; - }; - - // Creates (if necessary) and returns a text info object. - // - // The object looks like this: - // - // { - // width: Width of the text's wrapper div. - // height: Height of the text's wrapper div. - // element: The jQuery-wrapped HTML div containing the text. - // positions: Array of positions at which this text is drawn. - // } - // - // The positions array contains objects that look like this: - // - // { - // active: Flag indicating whether the text should be visible. - // rendered: Flag indicating whether the text is currently visible. - // element: The jQuery-wrapped HTML div containing the text. - // x: X coordinate at which to draw the text. - // y: Y coordinate at which to draw the text. - // } - // - // Each position after the first receives a clone of the original element. - // - // The idea is that that the width, height, and general 'identity' of the - // text is constant no matter where it is placed; the placements are a - // secondary property. - // - // Canvas maintains a cache of recently-used text info objects; getTextInfo - // either returns the cached element or creates a new entry. - // - // @param {string} layer A string of space-separated CSS classes uniquely - // identifying the layer containing this text. - // @param {string} text Text string to retrieve info for. - // @param {(string|object)=} font Either a string of space-separated CSS - // classes or a font-spec object, defining the text's font and style. - // @param {number=} angle Angle at which to rotate the text, in degrees. - // Angle is currently unused, it will be implemented in the future. - // @param {number=} width Maximum width of the text before it wraps. - // @return {object} a text info object. - - Canvas.prototype.getTextInfo = function(layer, text, font, angle, width) { - - var textStyle, layerCache, styleCache, info; - - // Cast the value to a string, in case we were given a number or such - - text = "" + text; - - // If the font is a font-spec object, generate a CSS font definition - - if (typeof font === "object") { - textStyle = font.style + " " + font.variant + " " + font.weight + " " + font.size + "px/" + font.lineHeight + "px " + font.family; - } else { - textStyle = font; - } - - // Retrieve (or create) the cache for the text's layer and styles - - layerCache = this._textCache[layer]; - - if (layerCache == null) { - layerCache = this._textCache[layer] = {}; - } - - styleCache = layerCache[textStyle]; - - if (styleCache == null) { - styleCache = layerCache[textStyle] = {}; - } - - info = styleCache[text]; - - // If we can't find a matching element in our cache, create a new one - - if (info == null) { - - var element = $("
    ").html(text) - .css({ - position: "absolute", - 'max-width': width, - top: -9999 - }) - .appendTo(this.getTextLayer(layer)); - - if (typeof font === "object") { - element.css({ - font: textStyle, - color: font.color - }); - } else if (typeof font === "string") { - element.addClass(font); - } - - info = styleCache[text] = { - width: element.outerWidth(true), - height: element.outerHeight(true), - element: element, - positions: [] - }; - - element.detach(); - } - - return info; - }; - - // Adds a text string to the canvas text overlay. - // - // The text isn't drawn immediately; it is marked as rendering, which will - // result in its addition to the canvas on the next render pass. - // - // @param {string} layer A string of space-separated CSS classes uniquely - // identifying the layer containing this text. - // @param {number} x X coordinate at which to draw the text. - // @param {number} y Y coordinate at which to draw the text. - // @param {string} text Text string to draw. - // @param {(string|object)=} font Either a string of space-separated CSS - // classes or a font-spec object, defining the text's font and style. - // @param {number=} angle Angle at which to rotate the text, in degrees. - // Angle is currently unused, it will be implemented in the future. - // @param {number=} width Maximum width of the text before it wraps. - // @param {string=} halign Horizontal alignment of the text; either "left", - // "center" or "right". - // @param {string=} valign Vertical alignment of the text; either "top", - // "middle" or "bottom". - - Canvas.prototype.addText = function(layer, x, y, text, font, angle, width, halign, valign) { - - var info = this.getTextInfo(layer, text, font, angle, width), - positions = info.positions; - - // Tweak the div's position to match the text's alignment - - if (halign == "center") { - x -= info.width / 2; - } else if (halign == "right") { - x -= info.width; - } - - if (valign == "middle") { - y -= info.height / 2; - } else if (valign == "bottom") { - y -= info.height; - } - - // Determine whether this text already exists at this position. - // If so, mark it for inclusion in the next render pass. - - for (var i = 0, position; position = positions[i]; i++) { - if (position.x == x && position.y == y) { - position.active = true; - return; - } - } - - // If the text doesn't exist at this position, create a new entry - - // For the very first position we'll re-use the original element, - // while for subsequent ones we'll clone it. - - position = { - active: true, - rendered: false, - element: positions.length ? info.element.clone() : info.element, - x: x, - y: y - }; - - positions.push(position); - - // Move the element to its final position within the container - - position.element.css({ - top: Math.round(y), - left: Math.round(x), - 'text-align': halign // In case the text wraps - }); - }; - - // Removes one or more text strings from the canvas text overlay. - // - // If no parameters are given, all text within the layer is removed. - // - // Note that the text is not immediately removed; it is simply marked as - // inactive, which will result in its removal on the next render pass. - // This avoids the performance penalty for 'clear and redraw' behavior, - // where we potentially get rid of all text on a layer, but will likely - // add back most or all of it later, as when redrawing axes, for example. - // - // @param {string} layer A string of space-separated CSS classes uniquely - // identifying the layer containing this text. - // @param {number=} x X coordinate of the text. - // @param {number=} y Y coordinate of the text. - // @param {string=} text Text string to remove. - // @param {(string|object)=} font Either a string of space-separated CSS - // classes or a font-spec object, defining the text's font and style. - // @param {number=} angle Angle at which the text is rotated, in degrees. - // Angle is currently unused, it will be implemented in the future. - - Canvas.prototype.removeText = function(layer, x, y, text, font, angle) { - if (text == null) { - var layerCache = this._textCache[layer]; - if (layerCache != null) { - for (var styleKey in layerCache) { - if (hasOwnProperty.call(layerCache, styleKey)) { - var styleCache = layerCache[styleKey]; - for (var key in styleCache) { - if (hasOwnProperty.call(styleCache, key)) { - var positions = styleCache[key].positions; - for (var i = 0, position; position = positions[i]; i++) { - position.active = false; - } - } - } - } - } - } - } else { - var positions = this.getTextInfo(layer, text, font, angle).positions; - for (var i = 0, position; position = positions[i]; i++) { - if (position.x == x && position.y == y) { - position.active = false; - } - } - } - }; - - /////////////////////////////////////////////////////////////////////////// - // The top-level container for the entire plot. - - function Plot(placeholder, data_, options_, plugins) { - // data is on the form: - // [ series1, series2 ... ] - // where series is either just the data as [ [x1, y1], [x2, y2], ... ] - // or { data: [ [x1, y1], [x2, y2], ... ], label: "some label", ... } - - var series = [], - options = { - // the color theme used for graphs - colors: ["#edc240", "#afd8f8", "#cb4b4b", "#4da74d", "#9440ed"], - legend: { - show: true, - noColumns: 1, // number of colums in legend table - labelFormatter: null, // fn: string -> string - labelBoxBorderColor: "#ccc", // border color for the little label boxes - container: null, // container (as jQuery object) to put legend in, null means default on top of graph - position: "ne", // position of default legend container within plot - margin: 5, // distance from grid edge to default legend container within plot - backgroundColor: null, // null means auto-detect - backgroundOpacity: 0.85, // set to 0 to avoid background - sorted: null // default to no legend sorting - }, - xaxis: { - show: null, // null = auto-detect, true = always, false = never - position: "bottom", // or "top" - mode: null, // null or "time" - font: null, // null (derived from CSS in placeholder) or object like { size: 11, lineHeight: 13, style: "italic", weight: "bold", family: "sans-serif", variant: "small-caps" } - color: null, // base color, labels, ticks - tickColor: null, // possibly different color of ticks, e.g. "rgba(0,0,0,0.15)" - transform: null, // null or f: number -> number to transform axis - inverseTransform: null, // if transform is set, this should be the inverse function - min: null, // min. value to show, null means set automatically - max: null, // max. value to show, null means set automatically - autoscaleMargin: null, // margin in % to add if auto-setting min/max - ticks: null, // either [1, 3] or [[1, "a"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks - tickFormatter: null, // fn: number -> string - labelWidth: null, // size of tick labels in pixels - labelHeight: null, - reserveSpace: null, // whether to reserve space even if axis isn't shown - tickLength: null, // size in pixels of ticks, or "full" for whole line - alignTicksWithAxis: null, // axis number or null for no sync - tickDecimals: null, // no. of decimals, null means auto - tickSize: null, // number or [number, "unit"] - minTickSize: null // number or [number, "unit"] - }, - yaxis: { - autoscaleMargin: 0.02, - position: "left" // or "right" - }, - xaxes: [], - yaxes: [], - series: { - points: { - show: false, - radius: 3, - lineWidth: 2, // in pixels - fill: true, - fillColor: "#ffffff", - symbol: "circle" // or callback - }, - lines: { - // we don't put in show: false so we can see - // whether lines were actively disabled - lineWidth: 2, // in pixels - fill: false, - fillColor: null, - steps: false - // Omit 'zero', so we can later default its value to - // match that of the 'fill' option. - }, - bars: { - show: false, - lineWidth: 2, // in pixels - barWidth: 1, // in units of the x axis - fill: true, - fillColor: null, - align: "left", // "left", "right", or "center" - horizontal: false, - zero: true - }, - shadowSize: 3, - highlightColor: null - }, - grid: { - show: true, - aboveData: false, - color: "#545454", // primary color used for outline and labels - backgroundColor: null, // null for transparent, else color - borderColor: null, // set if different from the grid color - tickColor: null, // color for the ticks, e.g. "rgba(0,0,0,0.15)" - margin: 0, // distance from the canvas edge to the grid - labelMargin: 5, // in pixels - axisMargin: 8, // in pixels - borderWidth: 2, // in pixels - minBorderMargin: null, // in pixels, null means taken from points radius - markings: null, // array of ranges or fn: axes -> array of ranges - markingsColor: "#f4f4f4", - markingsLineWidth: 2, - // interactive stuff - clickable: false, - hoverable: false, - autoHighlight: true, // highlight in case mouse is near - mouseActiveRadius: 10 // how far the mouse can be away to activate an item - }, - interaction: { - redrawOverlayInterval: 1000/60 // time between updates, -1 means in same flow - }, - hooks: {} - }, - surface = null, // the canvas for the plot itself - overlay = null, // canvas for interactive stuff on top of plot - eventHolder = null, // jQuery object that events should be bound to - ctx = null, octx = null, - xaxes = [], yaxes = [], - plotOffset = { left: 0, right: 0, top: 0, bottom: 0}, - plotWidth = 0, plotHeight = 0, - hooks = { - processOptions: [], - processRawData: [], - processDatapoints: [], - processOffset: [], - drawBackground: [], - drawSeries: [], - draw: [], - bindEvents: [], - drawOverlay: [], - shutdown: [] - }, - plot = this; - - // public functions - plot.setData = setData; - plot.setupGrid = setupGrid; - plot.draw = draw; - plot.getPlaceholder = function() { return placeholder; }; - plot.getCanvas = function() { return surface.element; }; - plot.getPlotOffset = function() { return plotOffset; }; - plot.width = function () { return plotWidth; }; - plot.height = function () { return plotHeight; }; - plot.offset = function () { - var o = eventHolder.offset(); - o.left += plotOffset.left; - o.top += plotOffset.top; - return o; - }; - plot.getData = function () { return series; }; - plot.getAxes = function () { - var res = {}, i; - $.each(xaxes.concat(yaxes), function (_, axis) { - if (axis) - res[axis.direction + (axis.n != 1 ? axis.n : "") + "axis"] = axis; - }); - return res; - }; - plot.getXAxes = function () { return xaxes; }; - plot.getYAxes = function () { return yaxes; }; - plot.c2p = canvasToAxisCoords; - plot.p2c = axisToCanvasCoords; - plot.getOptions = function () { return options; }; - plot.highlight = highlight; - plot.unhighlight = unhighlight; - plot.triggerRedrawOverlay = triggerRedrawOverlay; - plot.pointOffset = function(point) { - return { - left: parseInt(xaxes[axisNumber(point, "x") - 1].p2c(+point.x) + plotOffset.left, 10), - top: parseInt(yaxes[axisNumber(point, "y") - 1].p2c(+point.y) + plotOffset.top, 10) - }; - }; - plot.shutdown = shutdown; - plot.destroy = function () { - shutdown(); - placeholder.removeData("plot").empty(); - - series = []; - options = null; - surface = null; - overlay = null; - eventHolder = null; - ctx = null; - octx = null; - xaxes = []; - yaxes = []; - hooks = null; - highlights = []; - plot = null; - }; - plot.resize = function () { - var width = placeholder.width(), - height = placeholder.height(); - surface.resize(width, height); - overlay.resize(width, height); - }; - - // public attributes - plot.hooks = hooks; - - // initialize - initPlugins(plot); - parseOptions(options_); - setupCanvases(); - setData(data_); - setupGrid(); - draw(); - bindEvents(); - - - function executeHooks(hook, args) { - args = [plot].concat(args); - for (var i = 0; i < hook.length; ++i) - hook[i].apply(this, args); - } - - function initPlugins() { - - // References to key classes, allowing plugins to modify them - - var classes = { - Canvas: Canvas - }; - - for (var i = 0; i < plugins.length; ++i) { - var p = plugins[i]; - p.init(plot, classes); - if (p.options) - $.extend(true, options, p.options); - } - } - - function parseOptions(opts) { - - $.extend(true, options, opts); - - // $.extend merges arrays, rather than replacing them. When less - // colors are provided than the size of the default palette, we - // end up with those colors plus the remaining defaults, which is - // not expected behavior; avoid it by replacing them here. - - if (opts && opts.colors) { - options.colors = opts.colors; - } - - if (options.xaxis.color == null) - options.xaxis.color = $.color.parse(options.grid.color).scale('a', 0.22).toString(); - if (options.yaxis.color == null) - options.yaxis.color = $.color.parse(options.grid.color).scale('a', 0.22).toString(); - - if (options.xaxis.tickColor == null) // grid.tickColor for back-compatibility - options.xaxis.tickColor = options.grid.tickColor || options.xaxis.color; - if (options.yaxis.tickColor == null) // grid.tickColor for back-compatibility - options.yaxis.tickColor = options.grid.tickColor || options.yaxis.color; - - if (options.grid.borderColor == null) - options.grid.borderColor = options.grid.color; - if (options.grid.tickColor == null) - options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString(); - - // Fill in defaults for axis options, including any unspecified - // font-spec fields, if a font-spec was provided. - - // If no x/y axis options were provided, create one of each anyway, - // since the rest of the code assumes that they exist. - - var i, axisOptions, axisCount, - fontSize = placeholder.css("font-size"), - fontSizeDefault = fontSize ? +fontSize.replace("px", "") : 13, - fontDefaults = { - style: placeholder.css("font-style"), - size: Math.round(0.8 * fontSizeDefault), - variant: placeholder.css("font-variant"), - weight: placeholder.css("font-weight"), - family: placeholder.css("font-family") - }; - - axisCount = options.xaxes.length || 1; - for (i = 0; i < axisCount; ++i) { - - axisOptions = options.xaxes[i]; - if (axisOptions && !axisOptions.tickColor) { - axisOptions.tickColor = axisOptions.color; - } - - axisOptions = $.extend(true, {}, options.xaxis, axisOptions); - options.xaxes[i] = axisOptions; - - if (axisOptions.font) { - axisOptions.font = $.extend({}, fontDefaults, axisOptions.font); - if (!axisOptions.font.color) { - axisOptions.font.color = axisOptions.color; - } - if (!axisOptions.font.lineHeight) { - axisOptions.font.lineHeight = Math.round(axisOptions.font.size * 1.15); - } - } - } - - axisCount = options.yaxes.length || 1; - for (i = 0; i < axisCount; ++i) { - - axisOptions = options.yaxes[i]; - if (axisOptions && !axisOptions.tickColor) { - axisOptions.tickColor = axisOptions.color; - } - - axisOptions = $.extend(true, {}, options.yaxis, axisOptions); - options.yaxes[i] = axisOptions; - - if (axisOptions.font) { - axisOptions.font = $.extend({}, fontDefaults, axisOptions.font); - if (!axisOptions.font.color) { - axisOptions.font.color = axisOptions.color; - } - if (!axisOptions.font.lineHeight) { - axisOptions.font.lineHeight = Math.round(axisOptions.font.size * 1.15); - } - } - } - - // backwards compatibility, to be removed in future - if (options.xaxis.noTicks && options.xaxis.ticks == null) - options.xaxis.ticks = options.xaxis.noTicks; - if (options.yaxis.noTicks && options.yaxis.ticks == null) - options.yaxis.ticks = options.yaxis.noTicks; - if (options.x2axis) { - options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis); - options.xaxes[1].position = "top"; - } - if (options.y2axis) { - options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis); - options.yaxes[1].position = "right"; - } - if (options.grid.coloredAreas) - options.grid.markings = options.grid.coloredAreas; - if (options.grid.coloredAreasColor) - options.grid.markingsColor = options.grid.coloredAreasColor; - if (options.lines) - $.extend(true, options.series.lines, options.lines); - if (options.points) - $.extend(true, options.series.points, options.points); - if (options.bars) - $.extend(true, options.series.bars, options.bars); - if (options.shadowSize != null) - options.series.shadowSize = options.shadowSize; - if (options.highlightColor != null) - options.series.highlightColor = options.highlightColor; - - // save options on axes for future reference - for (i = 0; i < options.xaxes.length; ++i) - getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i]; - for (i = 0; i < options.yaxes.length; ++i) - getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i]; - - // add hooks from options - for (var n in hooks) - if (options.hooks[n] && options.hooks[n].length) - hooks[n] = hooks[n].concat(options.hooks[n]); - - executeHooks(hooks.processOptions, [options]); - } - - function setData(d) { - series = parseData(d); - fillInSeriesOptions(); - processData(); - } - - function parseData(d) { - var res = []; - for (var i = 0; i < d.length; ++i) { - var s = $.extend(true, {}, options.series); - - if (d[i].data != null) { - s.data = d[i].data; // move the data instead of deep-copy - delete d[i].data; - - $.extend(true, s, d[i]); - - d[i].data = s.data; - } - else - s.data = d[i]; - res.push(s); - } - - return res; - } - - function axisNumber(obj, coord) { - var a = obj[coord + "axis"]; - if (typeof a == "object") // if we got a real axis, extract number - a = a.n; - if (typeof a != "number") - a = 1; // default to first axis - return a; - } - - function allAxes() { - // return flat array without annoying null entries - return $.grep(xaxes.concat(yaxes), function (a) { return a; }); - } - - function canvasToAxisCoords(pos) { - // return an object with x/y corresponding to all used axes - var res = {}, i, axis; - for (i = 0; i < xaxes.length; ++i) { - axis = xaxes[i]; - if (axis && axis.used) - res["x" + axis.n] = axis.c2p(pos.left); - } - - for (i = 0; i < yaxes.length; ++i) { - axis = yaxes[i]; - if (axis && axis.used) - res["y" + axis.n] = axis.c2p(pos.top); - } - - if (res.x1 !== undefined) - res.x = res.x1; - if (res.y1 !== undefined) - res.y = res.y1; - - return res; - } - - function axisToCanvasCoords(pos) { - // get canvas coords from the first pair of x/y found in pos - var res = {}, i, axis, key; - - for (i = 0; i < xaxes.length; ++i) { - axis = xaxes[i]; - if (axis && axis.used) { - key = "x" + axis.n; - if (pos[key] == null && axis.n == 1) - key = "x"; - - if (pos[key] != null) { - res.left = axis.p2c(pos[key]); - break; - } - } - } - - for (i = 0; i < yaxes.length; ++i) { - axis = yaxes[i]; - if (axis && axis.used) { - key = "y" + axis.n; - if (pos[key] == null && axis.n == 1) - key = "y"; - - if (pos[key] != null) { - res.top = axis.p2c(pos[key]); - break; - } - } - } - - return res; - } - - function getOrCreateAxis(axes, number) { - if (!axes[number - 1]) - axes[number - 1] = { - n: number, // save the number for future reference - direction: axes == xaxes ? "x" : "y", - options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis) - }; - - return axes[number - 1]; - } - - function fillInSeriesOptions() { - - var neededColors = series.length, maxIndex = -1, i; - - // Subtract the number of series that already have fixed colors or - // color indexes from the number that we still need to generate. - - for (i = 0; i < series.length; ++i) { - var sc = series[i].color; - if (sc != null) { - neededColors--; - if (typeof sc == "number" && sc > maxIndex) { - maxIndex = sc; - } - } - } - - // If any of the series have fixed color indexes, then we need to - // generate at least as many colors as the highest index. - - if (neededColors <= maxIndex) { - neededColors = maxIndex + 1; - } - - // Generate all the colors, using first the option colors and then - // variations on those colors once they're exhausted. - - var c, colors = [], colorPool = options.colors, - colorPoolSize = colorPool.length, variation = 0; - - for (i = 0; i < neededColors; i++) { - - c = $.color.parse(colorPool[i % colorPoolSize] || "#666"); - - // Each time we exhaust the colors in the pool we adjust - // a scaling factor used to produce more variations on - // those colors. The factor alternates negative/positive - // to produce lighter/darker colors. - - // Reset the variation after every few cycles, or else - // it will end up producing only white or black colors. - - if (i % colorPoolSize == 0 && i) { - if (variation >= 0) { - if (variation < 0.5) { - variation = -variation - 0.2; - } else variation = 0; - } else variation = -variation; - } - - colors[i] = c.scale('rgb', 1 + variation); - } - - // Finalize the series options, filling in their colors - - var colori = 0, s; - for (i = 0; i < series.length; ++i) { - s = series[i]; - - // assign colors - if (s.color == null) { - s.color = colors[colori].toString(); - ++colori; - } - else if (typeof s.color == "number") - s.color = colors[s.color].toString(); - - // turn on lines automatically in case nothing is set - if (s.lines.show == null) { - var v, show = true; - for (v in s) - if (s[v] && s[v].show) { - show = false; - break; - } - if (show) - s.lines.show = true; - } - - // If nothing was provided for lines.zero, default it to match - // lines.fill, since areas by default should extend to zero. - - if (s.lines.zero == null) { - s.lines.zero = !!s.lines.fill; - } - - // setup axes - s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, "x")); - s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, "y")); - } - } - - function processData() { - var topSentry = Number.POSITIVE_INFINITY, - bottomSentry = Number.NEGATIVE_INFINITY, - fakeInfinity = Number.MAX_VALUE, - i, j, k, m, length, - s, points, ps, x, y, axis, val, f, p, - data, format; - - function updateAxis(axis, min, max) { - if (min < axis.datamin && min != -fakeInfinity) - axis.datamin = min; - if (max > axis.datamax && max != fakeInfinity) - axis.datamax = max; - } - - $.each(allAxes(), function (_, axis) { - // init axis - axis.datamin = topSentry; - axis.datamax = bottomSentry; - axis.used = false; - }); - - for (i = 0; i < series.length; ++i) { - s = series[i]; - s.datapoints = { points: [] }; - - executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]); - } - - // first pass: clean and copy data - for (i = 0; i < series.length; ++i) { - s = series[i]; - - data = s.data; - format = s.datapoints.format; - - if (!format) { - format = []; - // find out how to copy - format.push({ x: true, number: true, required: true }); - format.push({ y: true, number: true, required: true }); - - if (s.bars.show || (s.lines.show && s.lines.fill)) { - var autoscale = !!((s.bars.show && s.bars.zero) || (s.lines.show && s.lines.zero)); - format.push({ y: true, number: true, required: false, defaultValue: 0, autoscale: autoscale }); - if (s.bars.horizontal) { - delete format[format.length - 1].y; - format[format.length - 1].x = true; - } - } - - s.datapoints.format = format; - } - - if (s.datapoints.pointsize != null) - continue; // already filled in - - s.datapoints.pointsize = format.length; - - ps = s.datapoints.pointsize; - points = s.datapoints.points; - - var insertSteps = s.lines.show && s.lines.steps; - s.xaxis.used = s.yaxis.used = true; - - for (j = k = 0; j < data.length; ++j, k += ps) { - p = data[j]; - - var nullify = p == null; - if (!nullify) { - for (m = 0; m < ps; ++m) { - val = p[m]; - f = format[m]; - - if (f) { - if (f.number && val != null) { - val = +val; // convert to number - if (isNaN(val)) - val = null; - else if (val == Infinity) - val = fakeInfinity; - else if (val == -Infinity) - val = -fakeInfinity; - } - - if (val == null) { - if (f.required) - nullify = true; - - if (f.defaultValue != null) - val = f.defaultValue; - } - } - - points[k + m] = val; - } - } - - if (nullify) { - for (m = 0; m < ps; ++m) { - val = points[k + m]; - if (val != null) { - f = format[m]; - // extract min/max info - if (f.autoscale !== false) { - if (f.x) { - updateAxis(s.xaxis, val, val); - } - if (f.y) { - updateAxis(s.yaxis, val, val); - } - } - } - points[k + m] = null; - } - } - else { - // a little bit of line specific stuff that - // perhaps shouldn't be here, but lacking - // better means... - if (insertSteps && k > 0 - && points[k - ps] != null - && points[k - ps] != points[k] - && points[k - ps + 1] != points[k + 1]) { - // copy the point to make room for a middle point - for (m = 0; m < ps; ++m) - points[k + ps + m] = points[k + m]; - - // middle point has same y - points[k + 1] = points[k - ps + 1]; - - // we've added a point, better reflect that - k += ps; - } - } - } - } - - // give the hooks a chance to run - for (i = 0; i < series.length; ++i) { - s = series[i]; - - executeHooks(hooks.processDatapoints, [ s, s.datapoints]); - } - - // second pass: find datamax/datamin for auto-scaling - for (i = 0; i < series.length; ++i) { - s = series[i]; - points = s.datapoints.points; - ps = s.datapoints.pointsize; - format = s.datapoints.format; - - var xmin = topSentry, ymin = topSentry, - xmax = bottomSentry, ymax = bottomSentry; - - for (j = 0; j < points.length; j += ps) { - if (points[j] == null) - continue; - - for (m = 0; m < ps; ++m) { - val = points[j + m]; - f = format[m]; - if (!f || f.autoscale === false || val == fakeInfinity || val == -fakeInfinity) - continue; - - if (f.x) { - if (val < xmin) - xmin = val; - if (val > xmax) - xmax = val; - } - if (f.y) { - if (val < ymin) - ymin = val; - if (val > ymax) - ymax = val; - } - } - } - - if (s.bars.show) { - // make sure we got room for the bar on the dancing floor - var delta; - - switch (s.bars.align) { - case "left": - delta = 0; - break; - case "right": - delta = -s.bars.barWidth; - break; - default: - delta = -s.bars.barWidth / 2; - } - - if (s.bars.horizontal) { - ymin += delta; - ymax += delta + s.bars.barWidth; - } - else { - xmin += delta; - xmax += delta + s.bars.barWidth; - } - } - - updateAxis(s.xaxis, xmin, xmax); - updateAxis(s.yaxis, ymin, ymax); - } - - $.each(allAxes(), function (_, axis) { - if (axis.datamin == topSentry) - axis.datamin = null; - if (axis.datamax == bottomSentry) - axis.datamax = null; - }); - } - - function setupCanvases() { - - // Make sure the placeholder is clear of everything except canvases - // from a previous plot in this container that we'll try to re-use. - - placeholder.css("padding", 0) // padding messes up the positioning - .children().filter(function(){ - return !$(this).hasClass("flot-overlay") && !$(this).hasClass('flot-base'); - }).remove(); - - if (placeholder.css("position") == 'static') - placeholder.css("position", "relative"); // for positioning labels and overlay - - surface = new Canvas("flot-base", placeholder); - overlay = new Canvas("flot-overlay", placeholder); // overlay canvas for interactive features - - ctx = surface.context; - octx = overlay.context; - - // define which element we're listening for events on - eventHolder = $(overlay.element).unbind(); - - // If we're re-using a plot object, shut down the old one - - var existing = placeholder.data("plot"); - - if (existing) { - existing.shutdown(); - overlay.clear(); - } - - // save in case we get replotted - placeholder.data("plot", plot); - } - - function bindEvents() { - // bind events - if (options.grid.hoverable) { - eventHolder.mousemove(onMouseMove); - - // Use bind, rather than .mouseleave, because we officially - // still support jQuery 1.2.6, which doesn't define a shortcut - // for mouseenter or mouseleave. This was a bug/oversight that - // was fixed somewhere around 1.3.x. We can return to using - // .mouseleave when we drop support for 1.2.6. - - eventHolder.bind("mouseleave", onMouseLeave); - } - - if (options.grid.clickable) - eventHolder.click(onClick); - - executeHooks(hooks.bindEvents, [eventHolder]); - } - - function shutdown() { - if (redrawTimeout) - clearTimeout(redrawTimeout); - - eventHolder.unbind("mousemove", onMouseMove); - eventHolder.unbind("mouseleave", onMouseLeave); - eventHolder.unbind("click", onClick); - - executeHooks(hooks.shutdown, [eventHolder]); - } - - function setTransformationHelpers(axis) { - // set helper functions on the axis, assumes plot area - // has been computed already - - function identity(x) { return x; } - - var s, m, t = axis.options.transform || identity, - it = axis.options.inverseTransform; - - // precompute how much the axis is scaling a point - // in canvas space - if (axis.direction == "x") { - s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min)); - m = Math.min(t(axis.max), t(axis.min)); - } - else { - s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min)); - s = -s; - m = Math.max(t(axis.max), t(axis.min)); - } - - // data point to canvas coordinate - if (t == identity) // slight optimization - axis.p2c = function (p) { return (p - m) * s; }; - else - axis.p2c = function (p) { return (t(p) - m) * s; }; - // canvas coordinate to data point - if (!it) - axis.c2p = function (c) { return m + c / s; }; - else - axis.c2p = function (c) { return it(m + c / s); }; - } - - function measureTickLabels(axis) { - - var opts = axis.options, - ticks = axis.ticks || [], - labelWidth = opts.labelWidth || 0, - labelHeight = opts.labelHeight || 0, - maxWidth = labelWidth || (axis.direction == "x" ? Math.floor(surface.width / (ticks.length || 1)) : null), - legacyStyles = axis.direction + "Axis " + axis.direction + axis.n + "Axis", - layer = "flot-" + axis.direction + "-axis flot-" + axis.direction + axis.n + "-axis " + legacyStyles, - font = opts.font || "flot-tick-label tickLabel"; - - for (var i = 0; i < ticks.length; ++i) { - - var t = ticks[i]; - - if (!t.label) - continue; - - var info = surface.getTextInfo(layer, t.label, font, null, maxWidth); - - labelWidth = Math.max(labelWidth, info.width); - labelHeight = Math.max(labelHeight, info.height); - } - - axis.labelWidth = opts.labelWidth || labelWidth; - axis.labelHeight = opts.labelHeight || labelHeight; - } - - function allocateAxisBoxFirstPhase(axis) { - // find the bounding box of the axis by looking at label - // widths/heights and ticks, make room by diminishing the - // plotOffset; this first phase only looks at one - // dimension per axis, the other dimension depends on the - // other axes so will have to wait - - var lw = axis.labelWidth, - lh = axis.labelHeight, - pos = axis.options.position, - isXAxis = axis.direction === "x", - tickLength = axis.options.tickLength, - axisMargin = options.grid.axisMargin, - padding = options.grid.labelMargin, - innermost = true, - outermost = true, - first = true, - found = false; - - // Determine the axis's position in its direction and on its side - - $.each(isXAxis ? xaxes : yaxes, function(i, a) { - if (a && a.reserveSpace) { - if (a === axis) { - found = true; - } else if (a.options.position === pos) { - if (found) { - outermost = false; - } else { - innermost = false; - } - } - if (!found) { - first = false; - } - } - }); - - // The outermost axis on each side has no margin - - if (outermost) { - axisMargin = 0; - } - - // The ticks for the first axis in each direction stretch across - - if (tickLength == null) { - tickLength = first ? "full" : 5; - } - - if (!isNaN(+tickLength)) - padding += +tickLength; - - if (isXAxis) { - lh += padding; - - if (pos == "bottom") { - plotOffset.bottom += lh + axisMargin; - axis.box = { top: surface.height - plotOffset.bottom, height: lh }; - } - else { - axis.box = { top: plotOffset.top + axisMargin, height: lh }; - plotOffset.top += lh + axisMargin; - } - } - else { - lw += padding; - - if (pos == "left") { - axis.box = { left: plotOffset.left + axisMargin, width: lw }; - plotOffset.left += lw + axisMargin; - } - else { - plotOffset.right += lw + axisMargin; - axis.box = { left: surface.width - plotOffset.right, width: lw }; - } - } - - // save for future reference - axis.position = pos; - axis.tickLength = tickLength; - axis.box.padding = padding; - axis.innermost = innermost; - } - - function allocateAxisBoxSecondPhase(axis) { - // now that all axis boxes have been placed in one - // dimension, we can set the remaining dimension coordinates - if (axis.direction == "x") { - axis.box.left = plotOffset.left - axis.labelWidth / 2; - axis.box.width = surface.width - plotOffset.left - plotOffset.right + axis.labelWidth; - } - else { - axis.box.top = plotOffset.top - axis.labelHeight / 2; - axis.box.height = surface.height - plotOffset.bottom - plotOffset.top + axis.labelHeight; - } - } - - function adjustLayoutForThingsStickingOut() { - // possibly adjust plot offset to ensure everything stays - // inside the canvas and isn't clipped off - - var minMargin = options.grid.minBorderMargin, - axis, i; - - // check stuff from the plot (FIXME: this should just read - // a value from the series, otherwise it's impossible to - // customize) - if (minMargin == null) { - minMargin = 0; - for (i = 0; i < series.length; ++i) - minMargin = Math.max(minMargin, 2 * (series[i].points.radius + series[i].points.lineWidth/2)); - } - - var margins = { - left: minMargin, - right: minMargin, - top: minMargin, - bottom: minMargin - }; - - // check axis labels, note we don't check the actual - // labels but instead use the overall width/height to not - // jump as much around with replots - $.each(allAxes(), function (_, axis) { - if (axis.reserveSpace && axis.ticks && axis.ticks.length) { - var lastTick = axis.ticks[axis.ticks.length - 1]; - if (axis.direction === "x") { - margins.left = Math.max(margins.left, axis.labelWidth / 2); - if (lastTick.v <= axis.max) { - margins.right = Math.max(margins.right, axis.labelWidth / 2); - } - } else { - margins.bottom = Math.max(margins.bottom, axis.labelHeight / 2); - if (lastTick.v <= axis.max) { - margins.top = Math.max(margins.top, axis.labelHeight / 2); - } - } - } - }); - - plotOffset.left = Math.ceil(Math.max(margins.left, plotOffset.left)); - plotOffset.right = Math.ceil(Math.max(margins.right, plotOffset.right)); - plotOffset.top = Math.ceil(Math.max(margins.top, plotOffset.top)); - plotOffset.bottom = Math.ceil(Math.max(margins.bottom, plotOffset.bottom)); - } - - function setupGrid() { - var i, axes = allAxes(), showGrid = options.grid.show; - - // Initialize the plot's offset from the edge of the canvas - - for (var a in plotOffset) { - var margin = options.grid.margin || 0; - plotOffset[a] = typeof margin == "number" ? margin : margin[a] || 0; - } - - executeHooks(hooks.processOffset, [plotOffset]); - - // If the grid is visible, add its border width to the offset - - for (var a in plotOffset) { - if(typeof(options.grid.borderWidth) == "object") { - plotOffset[a] += showGrid ? options.grid.borderWidth[a] : 0; - } - else { - plotOffset[a] += showGrid ? options.grid.borderWidth : 0; - } - } - - // init axes - $.each(axes, function (_, axis) { - axis.show = axis.options.show; - if (axis.show == null) - axis.show = axis.used; // by default an axis is visible if it's got data - - axis.reserveSpace = axis.show || axis.options.reserveSpace; - - setRange(axis); - }); - - if (showGrid) { - - var allocatedAxes = $.grep(axes, function (axis) { return axis.reserveSpace; }); - - $.each(allocatedAxes, function (_, axis) { - // make the ticks - setupTickGeneration(axis); - setTicks(axis); - snapRangeToTicks(axis, axis.ticks); - // find labelWidth/Height for axis - measureTickLabels(axis); - }); - - // with all dimensions calculated, we can compute the - // axis bounding boxes, start from the outside - // (reverse order) - for (i = allocatedAxes.length - 1; i >= 0; --i) - allocateAxisBoxFirstPhase(allocatedAxes[i]); - - // make sure we've got enough space for things that - // might stick out - adjustLayoutForThingsStickingOut(); - - $.each(allocatedAxes, function (_, axis) { - allocateAxisBoxSecondPhase(axis); - }); - } - - plotWidth = surface.width - plotOffset.left - plotOffset.right; - plotHeight = surface.height - plotOffset.bottom - plotOffset.top; - - // now we got the proper plot dimensions, we can compute the scaling - $.each(axes, function (_, axis) { - setTransformationHelpers(axis); - }); - - if (showGrid) { - drawAxisLabels(); - } - - insertLegend(); - } - - function setRange(axis) { - var opts = axis.options, - min = +(opts.min != null ? opts.min : axis.datamin), - max = +(opts.max != null ? opts.max : axis.datamax), - delta = max - min; - - if (delta == 0.0) { - // degenerate case - var widen = max == 0 ? 1 : 0.01; - - if (opts.min == null) - min -= widen; - // always widen max if we couldn't widen min to ensure we - // don't fall into min == max which doesn't work - if (opts.max == null || opts.min != null) - max += widen; - } - else { - // consider autoscaling - var margin = opts.autoscaleMargin; - if (margin != null) { - if (opts.min == null) { - min -= delta * margin; - // make sure we don't go below zero if all values - // are positive - if (min < 0 && axis.datamin != null && axis.datamin >= 0) - min = 0; - } - if (opts.max == null) { - max += delta * margin; - if (max > 0 && axis.datamax != null && axis.datamax <= 0) - max = 0; - } - } - } - axis.min = min; - axis.max = max; - } - - function setupTickGeneration(axis) { - var opts = axis.options; - - // estimate number of ticks - var noTicks; - if (typeof opts.ticks == "number" && opts.ticks > 0) - noTicks = opts.ticks; - else - // heuristic based on the model a*sqrt(x) fitted to - // some data points that seemed reasonable - noTicks = 0.3 * Math.sqrt(axis.direction == "x" ? surface.width : surface.height); - - var delta = (axis.max - axis.min) / noTicks, - dec = -Math.floor(Math.log(delta) / Math.LN10), - maxDec = opts.tickDecimals; - - if (maxDec != null && dec > maxDec) { - dec = maxDec; - } - - var magn = Math.pow(10, -dec), - norm = delta / magn, // norm is between 1.0 and 10.0 - size; - - if (norm < 1.5) { - size = 1; - } else if (norm < 3) { - size = 2; - // special case for 2.5, requires an extra decimal - if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) { - size = 2.5; - ++dec; - } - } else if (norm < 7.5) { - size = 5; - } else { - size = 10; - } - - size *= magn; - - if (opts.minTickSize != null && size < opts.minTickSize) { - size = opts.minTickSize; - } - - axis.delta = delta; - axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec); - axis.tickSize = opts.tickSize || size; - - // Time mode was moved to a plug-in in 0.8, but since so many people use this - // we'll add an especially friendly make sure they remembered to include it. - - if (opts.mode == "time" && !axis.tickGenerator) { - throw new Error("Time mode requires the flot.time plugin."); - } - - // Flot supports base-10 axes; any other mode else is handled by a plug-in, - // like flot.time.js. - - if (!axis.tickGenerator) { - - axis.tickGenerator = function (axis) { - - var ticks = [], - start = floorInBase(axis.min, axis.tickSize), - i = 0, - v = Number.NaN, - prev; - - do { - prev = v; - v = start + i * axis.tickSize; - ticks.push(v); - ++i; - } while (v < axis.max && v != prev); - return ticks; - }; - - axis.tickFormatter = function (value, axis) { - - var factor = axis.tickDecimals ? Math.pow(10, axis.tickDecimals) : 1; - var formatted = "" + Math.round(value * factor) / factor; - - // If tickDecimals was specified, ensure that we have exactly that - // much precision; otherwise default to the value's own precision. - - if (axis.tickDecimals != null) { - var decimal = formatted.indexOf("."); - var precision = decimal == -1 ? 0 : formatted.length - decimal - 1; - if (precision < axis.tickDecimals) { - return (precision ? formatted : formatted + ".") + ("" + factor).substr(1, axis.tickDecimals - precision); - } - } - - return formatted; - }; - } - - if ($.isFunction(opts.tickFormatter)) - axis.tickFormatter = function (v, axis) { return "" + opts.tickFormatter(v, axis); }; - - if (opts.alignTicksWithAxis != null) { - var otherAxis = (axis.direction == "x" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1]; - if (otherAxis && otherAxis.used && otherAxis != axis) { - // consider snapping min/max to outermost nice ticks - var niceTicks = axis.tickGenerator(axis); - if (niceTicks.length > 0) { - if (opts.min == null) - axis.min = Math.min(axis.min, niceTicks[0]); - if (opts.max == null && niceTicks.length > 1) - axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]); - } - - axis.tickGenerator = function (axis) { - // copy ticks, scaled to this axis - var ticks = [], v, i; - for (i = 0; i < otherAxis.ticks.length; ++i) { - v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min); - v = axis.min + v * (axis.max - axis.min); - ticks.push(v); - } - return ticks; - }; - - // we might need an extra decimal since forced - // ticks don't necessarily fit naturally - if (!axis.mode && opts.tickDecimals == null) { - var extraDec = Math.max(0, -Math.floor(Math.log(axis.delta) / Math.LN10) + 1), - ts = axis.tickGenerator(axis); - - // only proceed if the tick interval rounded - // with an extra decimal doesn't give us a - // zero at end - if (!(ts.length > 1 && /\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec)))) - axis.tickDecimals = extraDec; - } - } - } - } - - function setTicks(axis) { - var oticks = axis.options.ticks, ticks = []; - if (oticks == null || (typeof oticks == "number" && oticks > 0)) - ticks = axis.tickGenerator(axis); - else if (oticks) { - if ($.isFunction(oticks)) - // generate the ticks - ticks = oticks(axis); - else - ticks = oticks; - } - - // clean up/labelify the supplied ticks, copy them over - var i, v; - axis.ticks = []; - for (i = 0; i < ticks.length; ++i) { - var label = null; - var t = ticks[i]; - if (typeof t == "object") { - v = +t[0]; - if (t.length > 1) - label = t[1]; - } - else - v = +t; - if (label == null) - label = axis.tickFormatter(v, axis); - if (!isNaN(v)) - axis.ticks.push({ v: v, label: label }); - } - } - - function snapRangeToTicks(axis, ticks) { - if (axis.options.autoscaleMargin && ticks.length > 0) { - // snap to ticks - if (axis.options.min == null) - axis.min = Math.min(axis.min, ticks[0].v); - if (axis.options.max == null && ticks.length > 1) - axis.max = Math.max(axis.max, ticks[ticks.length - 1].v); - } - } - - function draw() { - - surface.clear(); - - executeHooks(hooks.drawBackground, [ctx]); - - var grid = options.grid; - - // draw background, if any - if (grid.show && grid.backgroundColor) - drawBackground(); - - if (grid.show && !grid.aboveData) { - drawGrid(); - } - - for (var i = 0; i < series.length; ++i) { - executeHooks(hooks.drawSeries, [ctx, series[i]]); - drawSeries(series[i]); - } - - executeHooks(hooks.draw, [ctx]); - - if (grid.show && grid.aboveData) { - drawGrid(); - } - - surface.render(); - - // A draw implies that either the axes or data have changed, so we - // should probably update the overlay highlights as well. - - triggerRedrawOverlay(); - } - - function extractRange(ranges, coord) { - var axis, from, to, key, axes = allAxes(); - - for (var i = 0; i < axes.length; ++i) { - axis = axes[i]; - if (axis.direction == coord) { - key = coord + axis.n + "axis"; - if (!ranges[key] && axis.n == 1) - key = coord + "axis"; // support x1axis as xaxis - if (ranges[key]) { - from = ranges[key].from; - to = ranges[key].to; - break; - } - } - } - - // backwards-compat stuff - to be removed in future - if (!ranges[key]) { - axis = coord == "x" ? xaxes[0] : yaxes[0]; - from = ranges[coord + "1"]; - to = ranges[coord + "2"]; - } - - // auto-reverse as an added bonus - if (from != null && to != null && from > to) { - var tmp = from; - from = to; - to = tmp; - } - - return { from: from, to: to, axis: axis }; - } - - function drawBackground() { - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - - ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, "rgba(255, 255, 255, 0)"); - ctx.fillRect(0, 0, plotWidth, plotHeight); - ctx.restore(); - } - - function drawGrid() { - var i, axes, bw, bc; - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - - // draw markings - var markings = options.grid.markings; - if (markings) { - if ($.isFunction(markings)) { - axes = plot.getAxes(); - // xmin etc. is backwards compatibility, to be - // removed in the future - axes.xmin = axes.xaxis.min; - axes.xmax = axes.xaxis.max; - axes.ymin = axes.yaxis.min; - axes.ymax = axes.yaxis.max; - - markings = markings(axes); - } - - for (i = 0; i < markings.length; ++i) { - var m = markings[i], - xrange = extractRange(m, "x"), - yrange = extractRange(m, "y"); - - // fill in missing - if (xrange.from == null) - xrange.from = xrange.axis.min; - if (xrange.to == null) - xrange.to = xrange.axis.max; - if (yrange.from == null) - yrange.from = yrange.axis.min; - if (yrange.to == null) - yrange.to = yrange.axis.max; - - // clip - if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max || - yrange.to < yrange.axis.min || yrange.from > yrange.axis.max) - continue; - - xrange.from = Math.max(xrange.from, xrange.axis.min); - xrange.to = Math.min(xrange.to, xrange.axis.max); - yrange.from = Math.max(yrange.from, yrange.axis.min); - yrange.to = Math.min(yrange.to, yrange.axis.max); - - if (xrange.from == xrange.to && yrange.from == yrange.to) - continue; - - // then draw - xrange.from = xrange.axis.p2c(xrange.from); - xrange.to = xrange.axis.p2c(xrange.to); - yrange.from = yrange.axis.p2c(yrange.from); - yrange.to = yrange.axis.p2c(yrange.to); - - if (xrange.from == xrange.to || yrange.from == yrange.to) { - // draw line - ctx.beginPath(); - ctx.strokeStyle = m.color || options.grid.markingsColor; - ctx.lineWidth = m.lineWidth || options.grid.markingsLineWidth; - ctx.moveTo(xrange.from, yrange.from); - ctx.lineTo(xrange.to, yrange.to); - ctx.stroke(); - } - else { - // fill area - ctx.fillStyle = m.color || options.grid.markingsColor; - ctx.fillRect(xrange.from, yrange.to, - xrange.to - xrange.from, - yrange.from - yrange.to); - } - } - } - - // draw the ticks - axes = allAxes(); - bw = options.grid.borderWidth; - - for (var j = 0; j < axes.length; ++j) { - var axis = axes[j], box = axis.box, - t = axis.tickLength, x, y, xoff, yoff; - if (!axis.show || axis.ticks.length == 0) - continue; - - ctx.lineWidth = 1; - - // find the edges - if (axis.direction == "x") { - x = 0; - if (t == "full") - y = (axis.position == "top" ? 0 : plotHeight); - else - y = box.top - plotOffset.top + (axis.position == "top" ? box.height : 0); - } - else { - y = 0; - if (t == "full") - x = (axis.position == "left" ? 0 : plotWidth); - else - x = box.left - plotOffset.left + (axis.position == "left" ? box.width : 0); - } - - // draw tick bar - if (!axis.innermost) { - ctx.strokeStyle = axis.options.color; - ctx.beginPath(); - xoff = yoff = 0; - if (axis.direction == "x") - xoff = plotWidth + 1; - else - yoff = plotHeight + 1; - - if (ctx.lineWidth == 1) { - if (axis.direction == "x") { - y = Math.floor(y) + 0.5; - } else { - x = Math.floor(x) + 0.5; - } - } - - ctx.moveTo(x, y); - ctx.lineTo(x + xoff, y + yoff); - ctx.stroke(); - } - - // draw ticks - - ctx.strokeStyle = axis.options.tickColor; - - ctx.beginPath(); - for (i = 0; i < axis.ticks.length; ++i) { - var v = axis.ticks[i].v; - - xoff = yoff = 0; - - if (isNaN(v) || v < axis.min || v > axis.max - // skip those lying on the axes if we got a border - || (t == "full" - && ((typeof bw == "object" && bw[axis.position] > 0) || bw > 0) - && (v == axis.min || v == axis.max))) - continue; - - if (axis.direction == "x") { - x = axis.p2c(v); - yoff = t == "full" ? -plotHeight : t; - - if (axis.position == "top") - yoff = -yoff; - } - else { - y = axis.p2c(v); - xoff = t == "full" ? -plotWidth : t; - - if (axis.position == "left") - xoff = -xoff; - } - - if (ctx.lineWidth == 1) { - if (axis.direction == "x") - x = Math.floor(x) + 0.5; - else - y = Math.floor(y) + 0.5; - } - - ctx.moveTo(x, y); - ctx.lineTo(x + xoff, y + yoff); - } - - ctx.stroke(); - } - - - // draw border - if (bw) { - // If either borderWidth or borderColor is an object, then draw the border - // line by line instead of as one rectangle - bc = options.grid.borderColor; - if(typeof bw == "object" || typeof bc == "object") { - if (typeof bw !== "object") { - bw = {top: bw, right: bw, bottom: bw, left: bw}; - } - if (typeof bc !== "object") { - bc = {top: bc, right: bc, bottom: bc, left: bc}; - } - - if (bw.top > 0) { - ctx.strokeStyle = bc.top; - ctx.lineWidth = bw.top; - ctx.beginPath(); - ctx.moveTo(0 - bw.left, 0 - bw.top/2); - ctx.lineTo(plotWidth, 0 - bw.top/2); - ctx.stroke(); - } - - if (bw.right > 0) { - ctx.strokeStyle = bc.right; - ctx.lineWidth = bw.right; - ctx.beginPath(); - ctx.moveTo(plotWidth + bw.right / 2, 0 - bw.top); - ctx.lineTo(plotWidth + bw.right / 2, plotHeight); - ctx.stroke(); - } - - if (bw.bottom > 0) { - ctx.strokeStyle = bc.bottom; - ctx.lineWidth = bw.bottom; - ctx.beginPath(); - ctx.moveTo(plotWidth + bw.right, plotHeight + bw.bottom / 2); - ctx.lineTo(0, plotHeight + bw.bottom / 2); - ctx.stroke(); - } - - if (bw.left > 0) { - ctx.strokeStyle = bc.left; - ctx.lineWidth = bw.left; - ctx.beginPath(); - ctx.moveTo(0 - bw.left/2, plotHeight + bw.bottom); - ctx.lineTo(0- bw.left/2, 0); - ctx.stroke(); - } - } - else { - ctx.lineWidth = bw; - ctx.strokeStyle = options.grid.borderColor; - ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw); - } - } - - ctx.restore(); - } - - function drawAxisLabels() { - - $.each(allAxes(), function (_, axis) { - var box = axis.box, - legacyStyles = axis.direction + "Axis " + axis.direction + axis.n + "Axis", - layer = "flot-" + axis.direction + "-axis flot-" + axis.direction + axis.n + "-axis " + legacyStyles, - font = axis.options.font || "flot-tick-label tickLabel", - tick, x, y, halign, valign; - - // Remove text before checking for axis.show and ticks.length; - // otherwise plugins, like flot-tickrotor, that draw their own - // tick labels will end up with both theirs and the defaults. - - surface.removeText(layer); - - if (!axis.show || axis.ticks.length == 0) - return; - - for (var i = 0; i < axis.ticks.length; ++i) { - - tick = axis.ticks[i]; - if (!tick.label || tick.v < axis.min || tick.v > axis.max) - continue; - - if (axis.direction == "x") { - halign = "center"; - x = plotOffset.left + axis.p2c(tick.v); - if (axis.position == "bottom") { - y = box.top + box.padding; - } else { - y = box.top + box.height - box.padding; - valign = "bottom"; - } - } else { - valign = "middle"; - y = plotOffset.top + axis.p2c(tick.v); - if (axis.position == "left") { - x = box.left + box.width - box.padding; - halign = "right"; - } else { - x = box.left + box.padding; - } - } - - surface.addText(layer, x, y, tick.label, font, null, null, halign, valign); - } - }); - } - - function drawSeries(series) { - if (series.lines.show) - drawSeriesLines(series); - if (series.bars.show) - drawSeriesBars(series); - if (series.points.show) - drawSeriesPoints(series); - } - - function drawSeriesLines(series) { - function plotLine(datapoints, xoffset, yoffset, axisx, axisy) { - var points = datapoints.points, - ps = datapoints.pointsize, - prevx = null, prevy = null; - - ctx.beginPath(); - for (var i = ps; i < points.length; i += ps) { - var x1 = points[i - ps], y1 = points[i - ps + 1], - x2 = points[i], y2 = points[i + 1]; - - if (x1 == null || x2 == null) - continue; - - // clip with ymin - if (y1 <= y2 && y1 < axisy.min) { - if (y2 < axisy.min) - continue; // line segment is outside - // compute new intersection point - x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; - y1 = axisy.min; - } - else if (y2 <= y1 && y2 < axisy.min) { - if (y1 < axisy.min) - continue; - x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; - y2 = axisy.min; - } - - // clip with ymax - if (y1 >= y2 && y1 > axisy.max) { - if (y2 > axisy.max) - continue; - x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; - y1 = axisy.max; - } - else if (y2 >= y1 && y2 > axisy.max) { - if (y1 > axisy.max) - continue; - x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; - y2 = axisy.max; - } - - // clip with xmin - if (x1 <= x2 && x1 < axisx.min) { - if (x2 < axisx.min) - continue; - y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; - x1 = axisx.min; - } - else if (x2 <= x1 && x2 < axisx.min) { - if (x1 < axisx.min) - continue; - y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; - x2 = axisx.min; - } - - // clip with xmax - if (x1 >= x2 && x1 > axisx.max) { - if (x2 > axisx.max) - continue; - y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; - x1 = axisx.max; - } - else if (x2 >= x1 && x2 > axisx.max) { - if (x1 > axisx.max) - continue; - y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; - x2 = axisx.max; - } - - if (x1 != prevx || y1 != prevy) - ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset); - - prevx = x2; - prevy = y2; - ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset); - } - ctx.stroke(); - } - - function plotLineArea(datapoints, axisx, axisy) { - var points = datapoints.points, - ps = datapoints.pointsize, - bottom = Math.min(Math.max(0, axisy.min), axisy.max), - i = 0, top, areaOpen = false, - ypos = 1, segmentStart = 0, segmentEnd = 0; - - // we process each segment in two turns, first forward - // direction to sketch out top, then once we hit the - // end we go backwards to sketch the bottom - while (true) { - if (ps > 0 && i > points.length + ps) - break; - - i += ps; // ps is negative if going backwards - - var x1 = points[i - ps], - y1 = points[i - ps + ypos], - x2 = points[i], y2 = points[i + ypos]; - - if (areaOpen) { - if (ps > 0 && x1 != null && x2 == null) { - // at turning point - segmentEnd = i; - ps = -ps; - ypos = 2; - continue; - } - - if (ps < 0 && i == segmentStart + ps) { - // done with the reverse sweep - ctx.fill(); - areaOpen = false; - ps = -ps; - ypos = 1; - i = segmentStart = segmentEnd + ps; - continue; - } - } - - if (x1 == null || x2 == null) - continue; - - // clip x values - - // clip with xmin - if (x1 <= x2 && x1 < axisx.min) { - if (x2 < axisx.min) - continue; - y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; - x1 = axisx.min; - } - else if (x2 <= x1 && x2 < axisx.min) { - if (x1 < axisx.min) - continue; - y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; - x2 = axisx.min; - } - - // clip with xmax - if (x1 >= x2 && x1 > axisx.max) { - if (x2 > axisx.max) - continue; - y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; - x1 = axisx.max; - } - else if (x2 >= x1 && x2 > axisx.max) { - if (x1 > axisx.max) - continue; - y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; - x2 = axisx.max; - } - - if (!areaOpen) { - // open area - ctx.beginPath(); - ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom)); - areaOpen = true; - } - - // now first check the case where both is outside - if (y1 >= axisy.max && y2 >= axisy.max) { - ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max)); - ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max)); - continue; - } - else if (y1 <= axisy.min && y2 <= axisy.min) { - ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min)); - ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min)); - continue; - } - - // else it's a bit more complicated, there might - // be a flat maxed out rectangle first, then a - // triangular cutout or reverse; to find these - // keep track of the current x values - var x1old = x1, x2old = x2; - - // clip the y values, without shortcutting, we - // go through all cases in turn - - // clip with ymin - if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) { - x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; - y1 = axisy.min; - } - else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) { - x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; - y2 = axisy.min; - } - - // clip with ymax - if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) { - x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; - y1 = axisy.max; - } - else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) { - x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; - y2 = axisy.max; - } - - // if the x value was changed we got a rectangle - // to fill - if (x1 != x1old) { - ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1)); - // it goes to (x1, y1), but we fill that below - } - - // fill triangular section, this sometimes result - // in redundant points if (x1, y1) hasn't changed - // from previous line to, but we just ignore that - ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1)); - ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); - - // fill the other rectangle if it's there - if (x2 != x2old) { - ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); - ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2)); - } - } - } - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - ctx.lineJoin = "round"; - - var lw = series.lines.lineWidth, - sw = series.shadowSize; - // FIXME: consider another form of shadow when filling is turned on - if (lw > 0 && sw > 0) { - // draw shadow as a thick and thin line with transparency - ctx.lineWidth = sw; - ctx.strokeStyle = "rgba(0,0,0,0.1)"; - // position shadow at angle from the mid of line - var angle = Math.PI/18; - plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis); - ctx.lineWidth = sw/2; - plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis); - } - - ctx.lineWidth = lw; - ctx.strokeStyle = series.color; - var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight); - if (fillStyle) { - ctx.fillStyle = fillStyle; - plotLineArea(series.datapoints, series.xaxis, series.yaxis); - } - - if (lw > 0) - plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis); - ctx.restore(); - } - - function drawSeriesPoints(series) { - function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) { - var points = datapoints.points, ps = datapoints.pointsize; - - for (var i = 0; i < points.length; i += ps) { - var x = points[i], y = points[i + 1]; - if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) - continue; - - ctx.beginPath(); - x = axisx.p2c(x); - y = axisy.p2c(y) + offset; - if (symbol == "circle") - ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false); - else - symbol(ctx, x, y, radius, shadow); - ctx.closePath(); - - if (fillStyle) { - ctx.fillStyle = fillStyle; - ctx.fill(); - } - ctx.stroke(); - } - } - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - - var lw = series.points.lineWidth, - sw = series.shadowSize, - radius = series.points.radius, - symbol = series.points.symbol; - - // If the user sets the line width to 0, we change it to a very - // small value. A line width of 0 seems to force the default of 1. - // Doing the conditional here allows the shadow setting to still be - // optional even with a lineWidth of 0. - - if( lw == 0 ) - lw = 0.0001; - - if (lw > 0 && sw > 0) { - // draw shadow in two steps - var w = sw / 2; - ctx.lineWidth = w; - ctx.strokeStyle = "rgba(0,0,0,0.1)"; - plotPoints(series.datapoints, radius, null, w + w/2, true, - series.xaxis, series.yaxis, symbol); - - ctx.strokeStyle = "rgba(0,0,0,0.2)"; - plotPoints(series.datapoints, radius, null, w/2, true, - series.xaxis, series.yaxis, symbol); - } - - ctx.lineWidth = lw; - ctx.strokeStyle = series.color; - plotPoints(series.datapoints, radius, - getFillStyle(series.points, series.color), 0, false, - series.xaxis, series.yaxis, symbol); - ctx.restore(); - } - - function drawBar(x, y, b, barLeft, barRight, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) { - var left, right, bottom, top, - drawLeft, drawRight, drawTop, drawBottom, - tmp; - - // in horizontal mode, we start the bar from the left - // instead of from the bottom so it appears to be - // horizontal rather than vertical - if (horizontal) { - drawBottom = drawRight = drawTop = true; - drawLeft = false; - left = b; - right = x; - top = y + barLeft; - bottom = y + barRight; - - // account for negative bars - if (right < left) { - tmp = right; - right = left; - left = tmp; - drawLeft = true; - drawRight = false; - } - } - else { - drawLeft = drawRight = drawTop = true; - drawBottom = false; - left = x + barLeft; - right = x + barRight; - bottom = b; - top = y; - - // account for negative bars - if (top < bottom) { - tmp = top; - top = bottom; - bottom = tmp; - drawBottom = true; - drawTop = false; - } - } - - // clip - if (right < axisx.min || left > axisx.max || - top < axisy.min || bottom > axisy.max) - return; - - if (left < axisx.min) { - left = axisx.min; - drawLeft = false; - } - - if (right > axisx.max) { - right = axisx.max; - drawRight = false; - } - - if (bottom < axisy.min) { - bottom = axisy.min; - drawBottom = false; - } - - if (top > axisy.max) { - top = axisy.max; - drawTop = false; - } - - left = axisx.p2c(left); - bottom = axisy.p2c(bottom); - right = axisx.p2c(right); - top = axisy.p2c(top); - - // fill the bar - if (fillStyleCallback) { - c.fillStyle = fillStyleCallback(bottom, top); - c.fillRect(left, top, right - left, bottom - top) - } - - // draw outline - if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) { - c.beginPath(); - - // FIXME: inline moveTo is buggy with excanvas - c.moveTo(left, bottom); - if (drawLeft) - c.lineTo(left, top); - else - c.moveTo(left, top); - if (drawTop) - c.lineTo(right, top); - else - c.moveTo(right, top); - if (drawRight) - c.lineTo(right, bottom); - else - c.moveTo(right, bottom); - if (drawBottom) - c.lineTo(left, bottom); - else - c.moveTo(left, bottom); - c.stroke(); - } - } - - function drawSeriesBars(series) { - function plotBars(datapoints, barLeft, barRight, fillStyleCallback, axisx, axisy) { - var points = datapoints.points, ps = datapoints.pointsize; - - for (var i = 0; i < points.length; i += ps) { - if (points[i] == null) - continue; - drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth); - } - } - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - - // FIXME: figure out a way to add shadows (for instance along the right edge) - ctx.lineWidth = series.bars.lineWidth; - ctx.strokeStyle = series.color; - - var barLeft; - - switch (series.bars.align) { - case "left": - barLeft = 0; - break; - case "right": - barLeft = -series.bars.barWidth; - break; - default: - barLeft = -series.bars.barWidth / 2; - } - - var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null; - plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, fillStyleCallback, series.xaxis, series.yaxis); - ctx.restore(); - } - - function getFillStyle(filloptions, seriesColor, bottom, top) { - var fill = filloptions.fill; - if (!fill) - return null; - - if (filloptions.fillColor) - return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor); - - var c = $.color.parse(seriesColor); - c.a = typeof fill == "number" ? fill : 0.4; - c.normalize(); - return c.toString(); - } - - function insertLegend() { - - if (options.legend.container != null) { - $(options.legend.container).html(""); - } else { - placeholder.find(".legend").remove(); - } - - if (!options.legend.show) { - return; - } - - var fragments = [], entries = [], rowStarted = false, - lf = options.legend.labelFormatter, s, label; - - // Build a list of legend entries, with each having a label and a color - - for (var i = 0; i < series.length; ++i) { - s = series[i]; - if (s.label) { - label = lf ? lf(s.label, s) : s.label; - if (label) { - entries.push({ - label: label, - color: s.color - }); - } - } - } - - // Sort the legend using either the default or a custom comparator - - if (options.legend.sorted) { - if ($.isFunction(options.legend.sorted)) { - entries.sort(options.legend.sorted); - } else if (options.legend.sorted == "reverse") { - entries.reverse(); - } else { - var ascending = options.legend.sorted != "descending"; - entries.sort(function(a, b) { - return a.label == b.label ? 0 : ( - (a.label < b.label) != ascending ? 1 : -1 // Logical XOR - ); - }); - } - } - - // Generate markup for the list of entries, in their final order - - for (var i = 0; i < entries.length; ++i) { - - var entry = entries[i]; - - if (i % options.legend.noColumns == 0) { - if (rowStarted) - fragments.push(''); - fragments.push(''); - rowStarted = true; - } - - fragments.push( - '
    ' + - '' + entry.label + '' - ); - } - - if (rowStarted) - fragments.push(''); - - if (fragments.length == 0) - return; - - var table = '' + fragments.join("") + '
    '; - if (options.legend.container != null) - $(options.legend.container).html(table); - else { - var pos = "", - p = options.legend.position, - m = options.legend.margin; - if (m[0] == null) - m = [m, m]; - if (p.charAt(0) == "n") - pos += 'top:' + (m[1] + plotOffset.top) + 'px;'; - else if (p.charAt(0) == "s") - pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;'; - if (p.charAt(1) == "e") - pos += 'right:' + (m[0] + plotOffset.right) + 'px;'; - else if (p.charAt(1) == "w") - pos += 'left:' + (m[0] + plotOffset.left) + 'px;'; - var legend = $('
    ' + table.replace('style="', 'style="position:absolute;' + pos +';') + '
    ').appendTo(placeholder); - if (options.legend.backgroundOpacity != 0.0) { - // put in the transparent background - // separately to avoid blended labels and - // label boxes - var c = options.legend.backgroundColor; - if (c == null) { - c = options.grid.backgroundColor; - if (c && typeof c == "string") - c = $.color.parse(c); - else - c = $.color.extract(legend, 'background-color'); - c.a = 1; - c = c.toString(); - } - var div = legend.children(); - $('
    ').prependTo(legend).css('opacity', options.legend.backgroundOpacity); - } - } - } - - - // interactive features - - var highlights = [], - redrawTimeout = null; - - // returns the data item the mouse is over, or null if none is found - function findNearbyItem(mouseX, mouseY, seriesFilter) { - var maxDistance = options.grid.mouseActiveRadius, - smallestDistance = maxDistance * maxDistance + 1, - item = null, foundPoint = false, i, j, ps; - - for (i = series.length - 1; i >= 0; --i) { - if (!seriesFilter(series[i])) - continue; - - var s = series[i], - axisx = s.xaxis, - axisy = s.yaxis, - points = s.datapoints.points, - mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster - my = axisy.c2p(mouseY), - maxx = maxDistance / axisx.scale, - maxy = maxDistance / axisy.scale; - - ps = s.datapoints.pointsize; - // with inverse transforms, we can't use the maxx/maxy - // optimization, sadly - if (axisx.options.inverseTransform) - maxx = Number.MAX_VALUE; - if (axisy.options.inverseTransform) - maxy = Number.MAX_VALUE; - - if (s.lines.show || s.points.show) { - for (j = 0; j < points.length; j += ps) { - var x = points[j], y = points[j + 1]; - if (x == null) - continue; - - // For points and lines, the cursor must be within a - // certain distance to the data point - if (x - mx > maxx || x - mx < -maxx || - y - my > maxy || y - my < -maxy) - continue; - - // We have to calculate distances in pixels, not in - // data units, because the scales of the axes may be different - var dx = Math.abs(axisx.p2c(x) - mouseX), - dy = Math.abs(axisy.p2c(y) - mouseY), - dist = dx * dx + dy * dy; // we save the sqrt - - // use <= to ensure last point takes precedence - // (last generally means on top of) - if (dist < smallestDistance) { - smallestDistance = dist; - item = [i, j / ps]; - } - } - } - - if (s.bars.show && !item) { // no other point can be nearby - - var barLeft, barRight; - - switch (s.bars.align) { - case "left": - barLeft = 0; - break; - case "right": - barLeft = -s.bars.barWidth; - break; - default: - barLeft = -s.bars.barWidth / 2; - } - - barRight = barLeft + s.bars.barWidth; - - for (j = 0; j < points.length; j += ps) { - var x = points[j], y = points[j + 1], b = points[j + 2]; - if (x == null) - continue; - - // for a bar graph, the cursor must be inside the bar - if (series[i].bars.horizontal ? - (mx <= Math.max(b, x) && mx >= Math.min(b, x) && - my >= y + barLeft && my <= y + barRight) : - (mx >= x + barLeft && mx <= x + barRight && - my >= Math.min(b, y) && my <= Math.max(b, y))) - item = [i, j / ps]; - } - } - } - - if (item) { - i = item[0]; - j = item[1]; - ps = series[i].datapoints.pointsize; - - return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps), - dataIndex: j, - series: series[i], - seriesIndex: i }; - } - - return null; - } - - function onMouseMove(e) { - if (options.grid.hoverable) - triggerClickHoverEvent("plothover", e, - function (s) { return s["hoverable"] != false; }); - } - - function onMouseLeave(e) { - if (options.grid.hoverable) - triggerClickHoverEvent("plothover", e, - function (s) { return false; }); - } - - function onClick(e) { - triggerClickHoverEvent("plotclick", e, - function (s) { return s["clickable"] != false; }); - } - - // trigger click or hover event (they send the same parameters - // so we share their code) - function triggerClickHoverEvent(eventname, event, seriesFilter) { - var offset = eventHolder.offset(), - canvasX = event.pageX - offset.left - plotOffset.left, - canvasY = event.pageY - offset.top - plotOffset.top, - pos = canvasToAxisCoords({ left: canvasX, top: canvasY }); - - pos.pageX = event.pageX; - pos.pageY = event.pageY; - - var item = findNearbyItem(canvasX, canvasY, seriesFilter); - - if (item) { - // fill in mouse pos for any listeners out there - item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left, 10); - item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top, 10); - } - - if (options.grid.autoHighlight) { - // clear auto-highlights - for (var i = 0; i < highlights.length; ++i) { - var h = highlights[i]; - if (h.auto == eventname && - !(item && h.series == item.series && - h.point[0] == item.datapoint[0] && - h.point[1] == item.datapoint[1])) - unhighlight(h.series, h.point); - } - - if (item) - highlight(item.series, item.datapoint, eventname); - } - - placeholder.trigger(eventname, [ pos, item ]); - } - - function triggerRedrawOverlay() { - var t = options.interaction.redrawOverlayInterval; - if (t == -1) { // skip event queue - drawOverlay(); - return; - } - - if (!redrawTimeout) - redrawTimeout = setTimeout(drawOverlay, t); - } - - function drawOverlay() { - redrawTimeout = null; - - // draw highlights - octx.save(); - overlay.clear(); - octx.translate(plotOffset.left, plotOffset.top); - - var i, hi; - for (i = 0; i < highlights.length; ++i) { - hi = highlights[i]; - - if (hi.series.bars.show) - drawBarHighlight(hi.series, hi.point); - else - drawPointHighlight(hi.series, hi.point); - } - octx.restore(); - - executeHooks(hooks.drawOverlay, [octx]); - } - - function highlight(s, point, auto) { - if (typeof s == "number") - s = series[s]; - - if (typeof point == "number") { - var ps = s.datapoints.pointsize; - point = s.datapoints.points.slice(ps * point, ps * (point + 1)); - } - - var i = indexOfHighlight(s, point); - if (i == -1) { - highlights.push({ series: s, point: point, auto: auto }); - - triggerRedrawOverlay(); - } - else if (!auto) - highlights[i].auto = false; - } - - function unhighlight(s, point) { - if (s == null && point == null) { - highlights = []; - triggerRedrawOverlay(); - return; - } - - if (typeof s == "number") - s = series[s]; - - if (typeof point == "number") { - var ps = s.datapoints.pointsize; - point = s.datapoints.points.slice(ps * point, ps * (point + 1)); - } - - var i = indexOfHighlight(s, point); - if (i != -1) { - highlights.splice(i, 1); - - triggerRedrawOverlay(); - } - } - - function indexOfHighlight(s, p) { - for (var i = 0; i < highlights.length; ++i) { - var h = highlights[i]; - if (h.series == s && h.point[0] == p[0] - && h.point[1] == p[1]) - return i; - } - return -1; - } - - function drawPointHighlight(series, point) { - var x = point[0], y = point[1], - axisx = series.xaxis, axisy = series.yaxis, - highlightColor = (typeof series.highlightColor === "string") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString(); - - if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) - return; - - var pointRadius = series.points.radius + series.points.lineWidth / 2; - octx.lineWidth = pointRadius; - octx.strokeStyle = highlightColor; - var radius = 1.5 * pointRadius; - x = axisx.p2c(x); - y = axisy.p2c(y); - - octx.beginPath(); - if (series.points.symbol == "circle") - octx.arc(x, y, radius, 0, 2 * Math.PI, false); - else - series.points.symbol(octx, x, y, radius, false); - octx.closePath(); - octx.stroke(); - } - - function drawBarHighlight(series, point) { - var highlightColor = (typeof series.highlightColor === "string") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString(), - fillStyle = highlightColor, - barLeft; - - switch (series.bars.align) { - case "left": - barLeft = 0; - break; - case "right": - barLeft = -series.bars.barWidth; - break; - default: - barLeft = -series.bars.barWidth / 2; - } - - octx.lineWidth = series.bars.lineWidth; - octx.strokeStyle = highlightColor; - - drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth, - function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth); - } - - function getColorOrGradient(spec, bottom, top, defaultColor) { - if (typeof spec == "string") - return spec; - else { - // assume this is a gradient spec; IE currently only - // supports a simple vertical gradient properly, so that's - // what we support too - var gradient = ctx.createLinearGradient(0, top, 0, bottom); - - for (var i = 0, l = spec.colors.length; i < l; ++i) { - var c = spec.colors[i]; - if (typeof c != "string") { - var co = $.color.parse(defaultColor); - if (c.brightness != null) - co = co.scale('rgb', c.brightness); - if (c.opacity != null) - co.a *= c.opacity; - c = co.toString(); - } - gradient.addColorStop(i / (l - 1), c); - } - - return gradient; - } - } - } - - // Add the plot function to the top level of the jQuery object - - $.plot = function(placeholder, data, options) { - //var t0 = new Date(); - var plot = new Plot($(placeholder), data, options, $.plot.plugins); - //(window.console ? console.log : alert)("time used (msecs): " + ((new Date()).getTime() - t0.getTime())); - return plot; - }; - - $.plot.version = "0.8.2"; - - $.plot.plugins = []; - - // Also add the plot function as a chainable property - - $.fn.plot = function(data, options) { - return this.each(function() { - $.plot(this, data, options); - }); - }; - - // round to nearby lower multiple of base - function floorInBase(n, base) { - return base * Math.floor(n / base); - } - -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.min.js b/js/plugins/flot/jquery.flot.min.js deleted file mode 100644 index 9620fc00d..000000000 --- a/js/plugins/flot/jquery.flot.min.js +++ /dev/null @@ -1,2 +0,0 @@ -(function($){$.color={};$.color.make=function(r,g,b,a){var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d){for(var i=0;i=1){return"rgb("+[o.r,o.g,o.b].join(",")+")"}else{return"rgba("+[o.r,o.g,o.b,o.a].join(",")+")"}};o.normalize=function(){function clamp(min,value,max){return valuemax?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=""&&c!="transparent")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),"body"));if(c=="rgba(0, 0, 0, 0)")c="transparent";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);(function($){var hasOwnProperty=Object.prototype.hasOwnProperty;function Canvas(cls,container){var element=container.children("."+cls)[0];if(element==null){element=document.createElement("canvas");element.className=cls;$(element).css({direction:"ltr",position:"absolute",left:0,top:0}).appendTo(container);if(!element.getContext){if(window.G_vmlCanvasManager){element=window.G_vmlCanvasManager.initElement(element)}else{throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.")}}}this.element=element;var context=this.context=element.getContext("2d");var devicePixelRatio=window.devicePixelRatio||1,backingStoreRatio=context.webkitBackingStorePixelRatio||context.mozBackingStorePixelRatio||context.msBackingStorePixelRatio||context.oBackingStorePixelRatio||context.backingStorePixelRatio||1;this.pixelRatio=devicePixelRatio/backingStoreRatio;this.resize(container.width(),container.height());this.textContainer=null;this.text={};this._textCache={}}Canvas.prototype.resize=function(width,height){if(width<=0||height<=0){throw new Error("Invalid dimensions for plot, width = "+width+", height = "+height)}var element=this.element,context=this.context,pixelRatio=this.pixelRatio;if(this.width!=width){element.width=width*pixelRatio;element.style.width=width+"px";this.width=width}if(this.height!=height){element.height=height*pixelRatio;element.style.height=height+"px";this.height=height}context.restore();context.save();context.scale(pixelRatio,pixelRatio)};Canvas.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)};Canvas.prototype.render=function(){var cache=this._textCache;for(var layerKey in cache){if(hasOwnProperty.call(cache,layerKey)){var layer=this.getTextLayer(layerKey),layerCache=cache[layerKey];layer.hide();for(var styleKey in layerCache){if(hasOwnProperty.call(layerCache,styleKey)){var styleCache=layerCache[styleKey];for(var key in styleCache){if(hasOwnProperty.call(styleCache,key)){var positions=styleCache[key].positions;for(var i=0,position;position=positions[i];i++){if(position.active){if(!position.rendered){layer.append(position.element);position.rendered=true}}else{positions.splice(i--,1);if(position.rendered){position.element.detach()}}}if(positions.length==0){delete styleCache[key]}}}}}layer.show()}}};Canvas.prototype.getTextLayer=function(classes){var layer=this.text[classes];if(layer==null){if(this.textContainer==null){this.textContainer=$("
    ").css({position:"absolute",top:0,left:0,bottom:0,right:0,"font-size":"smaller",color:"#545454"}).insertAfter(this.element)}layer=this.text[classes]=$("
    ").addClass(classes).css({position:"absolute",top:0,left:0,bottom:0,right:0}).appendTo(this.textContainer)}return layer};Canvas.prototype.getTextInfo=function(layer,text,font,angle,width){var textStyle,layerCache,styleCache,info;text=""+text;if(typeof font==="object"){textStyle=font.style+" "+font.variant+" "+font.weight+" "+font.size+"px/"+font.lineHeight+"px "+font.family}else{textStyle=font}layerCache=this._textCache[layer];if(layerCache==null){layerCache=this._textCache[layer]={}}styleCache=layerCache[textStyle];if(styleCache==null){styleCache=layerCache[textStyle]={}}info=styleCache[text];if(info==null){var element=$("
    ").html(text).css({position:"absolute","max-width":width,top:-9999}).appendTo(this.getTextLayer(layer));if(typeof font==="object"){element.css({font:textStyle,color:font.color})}else if(typeof font==="string"){element.addClass(font)}info=styleCache[text]={width:element.outerWidth(true),height:element.outerHeight(true),element:element,positions:[]};element.detach()}return info};Canvas.prototype.addText=function(layer,x,y,text,font,angle,width,halign,valign){var info=this.getTextInfo(layer,text,font,angle,width),positions=info.positions;if(halign=="center"){x-=info.width/2}else if(halign=="right"){x-=info.width}if(valign=="middle"){y-=info.height/2}else if(valign=="bottom"){y-=info.height}for(var i=0,position;position=positions[i];i++){if(position.x==x&&position.y==y){position.active=true;return}}position={active:true,rendered:false,element:positions.length?info.element.clone():info.element,x:x,y:y};positions.push(position);position.element.css({top:Math.round(y),left:Math.round(x),"text-align":halign})};Canvas.prototype.removeText=function(layer,x,y,text,font,angle){if(text==null){var layerCache=this._textCache[layer];if(layerCache!=null){for(var styleKey in layerCache){if(hasOwnProperty.call(layerCache,styleKey)){var styleCache=layerCache[styleKey];for(var key in styleCache){if(hasOwnProperty.call(styleCache,key)){var positions=styleCache[key].positions;for(var i=0,position;position=positions[i];i++){position.active=false}}}}}}}else{var positions=this.getTextInfo(layer,text,font,angle).positions;for(var i=0,position;position=positions[i];i++){if(position.x==x&&position.y==y){position.active=false}}}};function Plot(placeholder,data_,options_,plugins){var series=[],options={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:.85,sorted:null},xaxis:{show:null,position:"bottom",mode:null,font:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null},yaxis:{autoscaleMargin:.02,position:"left"},xaxes:[],yaxes:[],series:{points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left",horizontal:false,zero:true},shadowSize:3,highlightColor:null},grid:{show:true,aboveData:false,color:"#545454",backgroundColor:null,borderColor:null,tickColor:null,margin:0,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},interaction:{redrawOverlayInterval:1e3/60},hooks:{}},surface=null,overlay=null,eventHolder=null,ctx=null,octx=null,xaxes=[],yaxes=[],plotOffset={left:0,right:0,top:0,bottom:0},plotWidth=0,plotHeight=0,hooks={processOptions:[],processRawData:[],processDatapoints:[],processOffset:[],drawBackground:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},plot=this;plot.setData=setData;plot.setupGrid=setupGrid;plot.draw=draw;plot.getPlaceholder=function(){return placeholder};plot.getCanvas=function(){return surface.element};plot.getPlotOffset=function(){return plotOffset};plot.width=function(){return plotWidth};plot.height=function(){return plotHeight};plot.offset=function(){var o=eventHolder.offset();o.left+=plotOffset.left;o.top+=plotOffset.top;return o};plot.getData=function(){return series};plot.getAxes=function(){var res={},i;$.each(xaxes.concat(yaxes),function(_,axis){if(axis)res[axis.direction+(axis.n!=1?axis.n:"")+"axis"]=axis});return res};plot.getXAxes=function(){return xaxes};plot.getYAxes=function(){return yaxes};plot.c2p=canvasToAxisCoords;plot.p2c=axisToCanvasCoords;plot.getOptions=function(){return options};plot.highlight=highlight;plot.unhighlight=unhighlight;plot.triggerRedrawOverlay=triggerRedrawOverlay;plot.pointOffset=function(point){return{left:parseInt(xaxes[axisNumber(point,"x")-1].p2c(+point.x)+plotOffset.left,10),top:parseInt(yaxes[axisNumber(point,"y")-1].p2c(+point.y)+plotOffset.top,10)}};plot.shutdown=shutdown;plot.destroy=function(){shutdown();placeholder.removeData("plot").empty();series=[];options=null;surface=null;overlay=null;eventHolder=null;ctx=null;octx=null;xaxes=[];yaxes=[];hooks=null;highlights=[];plot=null};plot.resize=function(){var width=placeholder.width(),height=placeholder.height();surface.resize(width,height);overlay.resize(width,height)};plot.hooks=hooks;initPlugins(plot);parseOptions(options_);setupCanvases();setData(data_);setupGrid();draw();bindEvents();function executeHooks(hook,args){args=[plot].concat(args);for(var i=0;imaxIndex){maxIndex=sc}}}if(neededColors<=maxIndex){neededColors=maxIndex+1}var c,colors=[],colorPool=options.colors,colorPoolSize=colorPool.length,variation=0;for(i=0;i=0){if(variation<.5){variation=-variation-.2}else variation=0}else variation=-variation}colors[i]=c.scale("rgb",1+variation)}var colori=0,s;for(i=0;iaxis.datamax&&max!=fakeInfinity)axis.datamax=max}$.each(allAxes(),function(_,axis){axis.datamin=topSentry;axis.datamax=bottomSentry;axis.used=false});for(i=0;i0&&points[k-ps]!=null&&points[k-ps]!=points[k]&&points[k-ps+1]!=points[k+1]){for(m=0;mxmax)xmax=val}if(f.y){if(valymax)ymax=val}}}if(s.bars.show){var delta;switch(s.bars.align){case"left":delta=0;break;case"right":delta=-s.bars.barWidth;break;default:delta=-s.bars.barWidth/2}if(s.bars.horizontal){ymin+=delta;ymax+=delta+s.bars.barWidth}else{xmin+=delta;xmax+=delta+s.bars.barWidth}}updateAxis(s.xaxis,xmin,xmax);updateAxis(s.yaxis,ymin,ymax)}$.each(allAxes(),function(_,axis){if(axis.datamin==topSentry)axis.datamin=null;if(axis.datamax==bottomSentry)axis.datamax=null})}function setupCanvases(){placeholder.css("padding",0).children().filter(function(){return!$(this).hasClass("flot-overlay")&&!$(this).hasClass("flot-base")}).remove();if(placeholder.css("position")=="static")placeholder.css("position","relative");surface=new Canvas("flot-base",placeholder);overlay=new Canvas("flot-overlay",placeholder);ctx=surface.context;octx=overlay.context;eventHolder=$(overlay.element).unbind();var existing=placeholder.data("plot");if(existing){existing.shutdown();overlay.clear()}placeholder.data("plot",plot)}function bindEvents(){if(options.grid.hoverable){eventHolder.mousemove(onMouseMove);eventHolder.bind("mouseleave",onMouseLeave)}if(options.grid.clickable)eventHolder.click(onClick);executeHooks(hooks.bindEvents,[eventHolder])}function shutdown(){if(redrawTimeout)clearTimeout(redrawTimeout);eventHolder.unbind("mousemove",onMouseMove);eventHolder.unbind("mouseleave",onMouseLeave);eventHolder.unbind("click",onClick);executeHooks(hooks.shutdown,[eventHolder])}function setTransformationHelpers(axis){function identity(x){return x}var s,m,t=axis.options.transform||identity,it=axis.options.inverseTransform;if(axis.direction=="x"){s=axis.scale=plotWidth/Math.abs(t(axis.max)-t(axis.min));m=Math.min(t(axis.max),t(axis.min))}else{s=axis.scale=plotHeight/Math.abs(t(axis.max)-t(axis.min));s=-s;m=Math.max(t(axis.max),t(axis.min))}if(t==identity)axis.p2c=function(p){return(p-m)*s};else axis.p2c=function(p){return(t(p)-m)*s};if(!it)axis.c2p=function(c){return m+c/s};else axis.c2p=function(c){return it(m+c/s)}}function measureTickLabels(axis){var opts=axis.options,ticks=axis.ticks||[],labelWidth=opts.labelWidth||0,labelHeight=opts.labelHeight||0,maxWidth=labelWidth||(axis.direction=="x"?Math.floor(surface.width/(ticks.length||1)):null),legacyStyles=axis.direction+"Axis "+axis.direction+axis.n+"Axis",layer="flot-"+axis.direction+"-axis flot-"+axis.direction+axis.n+"-axis "+legacyStyles,font=opts.font||"flot-tick-label tickLabel";for(var i=0;i=0;--i)allocateAxisBoxFirstPhase(allocatedAxes[i]);adjustLayoutForThingsStickingOut();$.each(allocatedAxes,function(_,axis){allocateAxisBoxSecondPhase(axis)})}plotWidth=surface.width-plotOffset.left-plotOffset.right;plotHeight=surface.height-plotOffset.bottom-plotOffset.top;$.each(axes,function(_,axis){setTransformationHelpers(axis)});if(showGrid){drawAxisLabels()}insertLegend()}function setRange(axis){var opts=axis.options,min=+(opts.min!=null?opts.min:axis.datamin),max=+(opts.max!=null?opts.max:axis.datamax),delta=max-min;if(delta==0){var widen=max==0?1:.01;if(opts.min==null)min-=widen;if(opts.max==null||opts.min!=null)max+=widen}else{var margin=opts.autoscaleMargin;if(margin!=null){if(opts.min==null){min-=delta*margin;if(min<0&&axis.datamin!=null&&axis.datamin>=0)min=0}if(opts.max==null){max+=delta*margin;if(max>0&&axis.datamax!=null&&axis.datamax<=0)max=0}}}axis.min=min;axis.max=max}function setupTickGeneration(axis){var opts=axis.options;var noTicks;if(typeof opts.ticks=="number"&&opts.ticks>0)noTicks=opts.ticks;else noTicks=.3*Math.sqrt(axis.direction=="x"?surface.width:surface.height);var delta=(axis.max-axis.min)/noTicks,dec=-Math.floor(Math.log(delta)/Math.LN10),maxDec=opts.tickDecimals;if(maxDec!=null&&dec>maxDec){dec=maxDec}var magn=Math.pow(10,-dec),norm=delta/magn,size;if(norm<1.5){size=1}else if(norm<3){size=2;if(norm>2.25&&(maxDec==null||dec+1<=maxDec)){size=2.5;++dec}}else if(norm<7.5){size=5}else{size=10}size*=magn;if(opts.minTickSize!=null&&size0){if(opts.min==null)axis.min=Math.min(axis.min,niceTicks[0]);if(opts.max==null&&niceTicks.length>1)axis.max=Math.max(axis.max,niceTicks[niceTicks.length-1])}axis.tickGenerator=function(axis){var ticks=[],v,i;for(i=0;i1&&/\..*0$/.test((ts[1]-ts[0]).toFixed(extraDec))))axis.tickDecimals=extraDec}}}}function setTicks(axis){var oticks=axis.options.ticks,ticks=[];if(oticks==null||typeof oticks=="number"&&oticks>0)ticks=axis.tickGenerator(axis);else if(oticks){if($.isFunction(oticks))ticks=oticks(axis);else ticks=oticks}var i,v;axis.ticks=[];for(i=0;i1)label=t[1]}else v=+t;if(label==null)label=axis.tickFormatter(v,axis);if(!isNaN(v))axis.ticks.push({v:v,label:label})}}function snapRangeToTicks(axis,ticks){if(axis.options.autoscaleMargin&&ticks.length>0){if(axis.options.min==null)axis.min=Math.min(axis.min,ticks[0].v);if(axis.options.max==null&&ticks.length>1)axis.max=Math.max(axis.max,ticks[ticks.length-1].v)}}function draw(){surface.clear();executeHooks(hooks.drawBackground,[ctx]);var grid=options.grid;if(grid.show&&grid.backgroundColor)drawBackground();if(grid.show&&!grid.aboveData){drawGrid()}for(var i=0;ito){var tmp=from;from=to;to=tmp}return{from:from,to:to,axis:axis}}function drawBackground(){ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.fillStyle=getColorOrGradient(options.grid.backgroundColor,plotHeight,0,"rgba(255, 255, 255, 0)");ctx.fillRect(0,0,plotWidth,plotHeight);ctx.restore()}function drawGrid(){var i,axes,bw,bc;ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var markings=options.grid.markings;if(markings){if($.isFunction(markings)){axes=plot.getAxes();axes.xmin=axes.xaxis.min;axes.xmax=axes.xaxis.max;axes.ymin=axes.yaxis.min;axes.ymax=axes.yaxis.max;markings=markings(axes)}for(i=0;ixrange.axis.max||yrange.toyrange.axis.max)continue;xrange.from=Math.max(xrange.from,xrange.axis.min);xrange.to=Math.min(xrange.to,xrange.axis.max); -yrange.from=Math.max(yrange.from,yrange.axis.min);yrange.to=Math.min(yrange.to,yrange.axis.max);if(xrange.from==xrange.to&&yrange.from==yrange.to)continue;xrange.from=xrange.axis.p2c(xrange.from);xrange.to=xrange.axis.p2c(xrange.to);yrange.from=yrange.axis.p2c(yrange.from);yrange.to=yrange.axis.p2c(yrange.to);if(xrange.from==xrange.to||yrange.from==yrange.to){ctx.beginPath();ctx.strokeStyle=m.color||options.grid.markingsColor;ctx.lineWidth=m.lineWidth||options.grid.markingsLineWidth;ctx.moveTo(xrange.from,yrange.from);ctx.lineTo(xrange.to,yrange.to);ctx.stroke()}else{ctx.fillStyle=m.color||options.grid.markingsColor;ctx.fillRect(xrange.from,yrange.to,xrange.to-xrange.from,yrange.from-yrange.to)}}}axes=allAxes();bw=options.grid.borderWidth;for(var j=0;jaxis.max||t=="full"&&(typeof bw=="object"&&bw[axis.position]>0||bw>0)&&(v==axis.min||v==axis.max))continue;if(axis.direction=="x"){x=axis.p2c(v);yoff=t=="full"?-plotHeight:t;if(axis.position=="top")yoff=-yoff}else{y=axis.p2c(v);xoff=t=="full"?-plotWidth:t;if(axis.position=="left")xoff=-xoff}if(ctx.lineWidth==1){if(axis.direction=="x")x=Math.floor(x)+.5;else y=Math.floor(y)+.5}ctx.moveTo(x,y);ctx.lineTo(x+xoff,y+yoff)}ctx.stroke()}if(bw){bc=options.grid.borderColor;if(typeof bw=="object"||typeof bc=="object"){if(typeof bw!=="object"){bw={top:bw,right:bw,bottom:bw,left:bw}}if(typeof bc!=="object"){bc={top:bc,right:bc,bottom:bc,left:bc}}if(bw.top>0){ctx.strokeStyle=bc.top;ctx.lineWidth=bw.top;ctx.beginPath();ctx.moveTo(0-bw.left,0-bw.top/2);ctx.lineTo(plotWidth,0-bw.top/2);ctx.stroke()}if(bw.right>0){ctx.strokeStyle=bc.right;ctx.lineWidth=bw.right;ctx.beginPath();ctx.moveTo(plotWidth+bw.right/2,0-bw.top);ctx.lineTo(plotWidth+bw.right/2,plotHeight);ctx.stroke()}if(bw.bottom>0){ctx.strokeStyle=bc.bottom;ctx.lineWidth=bw.bottom;ctx.beginPath();ctx.moveTo(plotWidth+bw.right,plotHeight+bw.bottom/2);ctx.lineTo(0,plotHeight+bw.bottom/2);ctx.stroke()}if(bw.left>0){ctx.strokeStyle=bc.left;ctx.lineWidth=bw.left;ctx.beginPath();ctx.moveTo(0-bw.left/2,plotHeight+bw.bottom);ctx.lineTo(0-bw.left/2,0);ctx.stroke()}}else{ctx.lineWidth=bw;ctx.strokeStyle=options.grid.borderColor;ctx.strokeRect(-bw/2,-bw/2,plotWidth+bw,plotHeight+bw)}}ctx.restore()}function drawAxisLabels(){$.each(allAxes(),function(_,axis){var box=axis.box,legacyStyles=axis.direction+"Axis "+axis.direction+axis.n+"Axis",layer="flot-"+axis.direction+"-axis flot-"+axis.direction+axis.n+"-axis "+legacyStyles,font=axis.options.font||"flot-tick-label tickLabel",tick,x,y,halign,valign;surface.removeText(layer);if(!axis.show||axis.ticks.length==0)return;for(var i=0;iaxis.max)continue;if(axis.direction=="x"){halign="center";x=plotOffset.left+axis.p2c(tick.v);if(axis.position=="bottom"){y=box.top+box.padding}else{y=box.top+box.height-box.padding;valign="bottom"}}else{valign="middle";y=plotOffset.top+axis.p2c(tick.v);if(axis.position=="left"){x=box.left+box.width-box.padding;halign="right"}else{x=box.left+box.padding}}surface.addText(layer,x,y,tick.label,font,null,null,halign,valign)}})}function drawSeries(series){if(series.lines.show)drawSeriesLines(series);if(series.bars.show)drawSeriesBars(series);if(series.points.show)drawSeriesPoints(series)}function drawSeriesLines(series){function plotLine(datapoints,xoffset,yoffset,axisx,axisy){var points=datapoints.points,ps=datapoints.pointsize,prevx=null,prevy=null;ctx.beginPath();for(var i=ps;i=y2&&y1>axisy.max){if(y2>axisy.max)continue;x1=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.max}else if(y2>=y1&&y2>axisy.max){if(y1>axisy.max)continue;x2=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.max}if(x1<=x2&&x1=x2&&x1>axisx.max){if(x2>axisx.max)continue;y1=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.max}else if(x2>=x1&&x2>axisx.max){if(x1>axisx.max)continue;y2=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.max}if(x1!=prevx||y1!=prevy)ctx.moveTo(axisx.p2c(x1)+xoffset,axisy.p2c(y1)+yoffset);prevx=x2;prevy=y2;ctx.lineTo(axisx.p2c(x2)+xoffset,axisy.p2c(y2)+yoffset)}ctx.stroke()}function plotLineArea(datapoints,axisx,axisy){var points=datapoints.points,ps=datapoints.pointsize,bottom=Math.min(Math.max(0,axisy.min),axisy.max),i=0,top,areaOpen=false,ypos=1,segmentStart=0,segmentEnd=0;while(true){if(ps>0&&i>points.length+ps)break;i+=ps;var x1=points[i-ps],y1=points[i-ps+ypos],x2=points[i],y2=points[i+ypos];if(areaOpen){if(ps>0&&x1!=null&&x2==null){segmentEnd=i;ps=-ps;ypos=2;continue}if(ps<0&&i==segmentStart+ps){ctx.fill();areaOpen=false;ps=-ps;ypos=1;i=segmentStart=segmentEnd+ps;continue}}if(x1==null||x2==null)continue;if(x1<=x2&&x1=x2&&x1>axisx.max){if(x2>axisx.max)continue;y1=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.max}else if(x2>=x1&&x2>axisx.max){if(x1>axisx.max)continue;y2=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.max}if(!areaOpen){ctx.beginPath();ctx.moveTo(axisx.p2c(x1),axisy.p2c(bottom));areaOpen=true}if(y1>=axisy.max&&y2>=axisy.max){ctx.lineTo(axisx.p2c(x1),axisy.p2c(axisy.max));ctx.lineTo(axisx.p2c(x2),axisy.p2c(axisy.max));continue}else if(y1<=axisy.min&&y2<=axisy.min){ctx.lineTo(axisx.p2c(x1),axisy.p2c(axisy.min));ctx.lineTo(axisx.p2c(x2),axisy.p2c(axisy.min));continue}var x1old=x1,x2old=x2;if(y1<=y2&&y1=axisy.min){x1=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.min}else if(y2<=y1&&y2=axisy.min){x2=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.min}if(y1>=y2&&y1>axisy.max&&y2<=axisy.max){x1=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.max}else if(y2>=y1&&y2>axisy.max&&y1<=axisy.max){x2=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.max}if(x1!=x1old){ctx.lineTo(axisx.p2c(x1old),axisy.p2c(y1))}ctx.lineTo(axisx.p2c(x1),axisy.p2c(y1));ctx.lineTo(axisx.p2c(x2),axisy.p2c(y2));if(x2!=x2old){ctx.lineTo(axisx.p2c(x2),axisy.p2c(y2));ctx.lineTo(axisx.p2c(x2old),axisy.p2c(y2))}}}ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.lineJoin="round";var lw=series.lines.lineWidth,sw=series.shadowSize;if(lw>0&&sw>0){ctx.lineWidth=sw;ctx.strokeStyle="rgba(0,0,0,0.1)";var angle=Math.PI/18;plotLine(series.datapoints,Math.sin(angle)*(lw/2+sw/2),Math.cos(angle)*(lw/2+sw/2),series.xaxis,series.yaxis);ctx.lineWidth=sw/2;plotLine(series.datapoints,Math.sin(angle)*(lw/2+sw/4),Math.cos(angle)*(lw/2+sw/4),series.xaxis,series.yaxis)}ctx.lineWidth=lw;ctx.strokeStyle=series.color;var fillStyle=getFillStyle(series.lines,series.color,0,plotHeight);if(fillStyle){ctx.fillStyle=fillStyle;plotLineArea(series.datapoints,series.xaxis,series.yaxis)}if(lw>0)plotLine(series.datapoints,0,0,series.xaxis,series.yaxis);ctx.restore()}function drawSeriesPoints(series){function plotPoints(datapoints,radius,fillStyle,offset,shadow,axisx,axisy,symbol){var points=datapoints.points,ps=datapoints.pointsize;for(var i=0;iaxisx.max||yaxisy.max)continue;ctx.beginPath();x=axisx.p2c(x);y=axisy.p2c(y)+offset;if(symbol=="circle")ctx.arc(x,y,radius,0,shadow?Math.PI:Math.PI*2,false);else symbol(ctx,x,y,radius,shadow);ctx.closePath();if(fillStyle){ctx.fillStyle=fillStyle;ctx.fill()}ctx.stroke()}}ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var lw=series.points.lineWidth,sw=series.shadowSize,radius=series.points.radius,symbol=series.points.symbol;if(lw==0)lw=1e-4;if(lw>0&&sw>0){var w=sw/2;ctx.lineWidth=w;ctx.strokeStyle="rgba(0,0,0,0.1)";plotPoints(series.datapoints,radius,null,w+w/2,true,series.xaxis,series.yaxis,symbol);ctx.strokeStyle="rgba(0,0,0,0.2)";plotPoints(series.datapoints,radius,null,w/2,true,series.xaxis,series.yaxis,symbol)}ctx.lineWidth=lw;ctx.strokeStyle=series.color;plotPoints(series.datapoints,radius,getFillStyle(series.points,series.color),0,false,series.xaxis,series.yaxis,symbol);ctx.restore()}function drawBar(x,y,b,barLeft,barRight,fillStyleCallback,axisx,axisy,c,horizontal,lineWidth){var left,right,bottom,top,drawLeft,drawRight,drawTop,drawBottom,tmp;if(horizontal){drawBottom=drawRight=drawTop=true;drawLeft=false;left=b;right=x;top=y+barLeft;bottom=y+barRight;if(rightaxisx.max||topaxisy.max)return;if(leftaxisx.max){right=axisx.max;drawRight=false}if(bottomaxisy.max){top=axisy.max;drawTop=false}left=axisx.p2c(left);bottom=axisy.p2c(bottom);right=axisx.p2c(right);top=axisy.p2c(top);if(fillStyleCallback){c.fillStyle=fillStyleCallback(bottom,top);c.fillRect(left,top,right-left,bottom-top)}if(lineWidth>0&&(drawLeft||drawRight||drawTop||drawBottom)){c.beginPath();c.moveTo(left,bottom);if(drawLeft)c.lineTo(left,top);else c.moveTo(left,top);if(drawTop)c.lineTo(right,top);else c.moveTo(right,top);if(drawRight)c.lineTo(right,bottom);else c.moveTo(right,bottom);if(drawBottom)c.lineTo(left,bottom);else c.moveTo(left,bottom);c.stroke()}}function drawSeriesBars(series){function plotBars(datapoints,barLeft,barRight,fillStyleCallback,axisx,axisy){var points=datapoints.points,ps=datapoints.pointsize;for(var i=0;i");fragments.push("");rowStarted=true}fragments.push('
    '+''+entry.label+"")}if(rowStarted)fragments.push("");if(fragments.length==0)return;var table=''+fragments.join("")+"
    ";if(options.legend.container!=null)$(options.legend.container).html(table);else{var pos="",p=options.legend.position,m=options.legend.margin;if(m[0]==null)m=[m,m];if(p.charAt(0)=="n")pos+="top:"+(m[1]+plotOffset.top)+"px;";else if(p.charAt(0)=="s")pos+="bottom:"+(m[1]+plotOffset.bottom)+"px;";if(p.charAt(1)=="e")pos+="right:"+(m[0]+plotOffset.right)+"px;";else if(p.charAt(1)=="w")pos+="left:"+(m[0]+plotOffset.left)+"px;";var legend=$('
    '+table.replace('style="','style="position:absolute;'+pos+";")+"
    ").appendTo(placeholder);if(options.legend.backgroundOpacity!=0){var c=options.legend.backgroundColor;if(c==null){c=options.grid.backgroundColor;if(c&&typeof c=="string")c=$.color.parse(c);else c=$.color.extract(legend,"background-color");c.a=1;c=c.toString()}var div=legend.children();$('
    ').prependTo(legend).css("opacity",options.legend.backgroundOpacity)}}}var highlights=[],redrawTimeout=null;function findNearbyItem(mouseX,mouseY,seriesFilter){var maxDistance=options.grid.mouseActiveRadius,smallestDistance=maxDistance*maxDistance+1,item=null,foundPoint=false,i,j,ps;for(i=series.length-1;i>=0;--i){if(!seriesFilter(series[i]))continue;var s=series[i],axisx=s.xaxis,axisy=s.yaxis,points=s.datapoints.points,mx=axisx.c2p(mouseX),my=axisy.c2p(mouseY),maxx=maxDistance/axisx.scale,maxy=maxDistance/axisy.scale;ps=s.datapoints.pointsize;if(axisx.options.inverseTransform)maxx=Number.MAX_VALUE;if(axisy.options.inverseTransform)maxy=Number.MAX_VALUE;if(s.lines.show||s.points.show){for(j=0;jmaxx||x-mx<-maxx||y-my>maxy||y-my<-maxy)continue;var dx=Math.abs(axisx.p2c(x)-mouseX),dy=Math.abs(axisy.p2c(y)-mouseY),dist=dx*dx+dy*dy;if(dist=Math.min(b,x)&&my>=y+barLeft&&my<=y+barRight:mx>=x+barLeft&&mx<=x+barRight&&my>=Math.min(b,y)&&my<=Math.max(b,y))item=[i,j/ps]}}}if(item){i=item[0];j=item[1];ps=series[i].datapoints.pointsize;return{datapoint:series[i].datapoints.points.slice(j*ps,(j+1)*ps),dataIndex:j,series:series[i],seriesIndex:i}}return null}function onMouseMove(e){if(options.grid.hoverable)triggerClickHoverEvent("plothover",e,function(s){return s["hoverable"]!=false})}function onMouseLeave(e){if(options.grid.hoverable)triggerClickHoverEvent("plothover",e,function(s){return false})}function onClick(e){triggerClickHoverEvent("plotclick",e,function(s){return s["clickable"]!=false})}function triggerClickHoverEvent(eventname,event,seriesFilter){var offset=eventHolder.offset(),canvasX=event.pageX-offset.left-plotOffset.left,canvasY=event.pageY-offset.top-plotOffset.top,pos=canvasToAxisCoords({left:canvasX,top:canvasY});pos.pageX=event.pageX;pos.pageY=event.pageY;var item=findNearbyItem(canvasX,canvasY,seriesFilter);if(item){item.pageX=parseInt(item.series.xaxis.p2c(item.datapoint[0])+offset.left+plotOffset.left,10);item.pageY=parseInt(item.series.yaxis.p2c(item.datapoint[1])+offset.top+plotOffset.top,10)}if(options.grid.autoHighlight){for(var i=0;iaxisx.max||yaxisy.max)return;var pointRadius=series.points.radius+series.points.lineWidth/2;octx.lineWidth=pointRadius;octx.strokeStyle=highlightColor;var radius=1.5*pointRadius;x=axisx.p2c(x);y=axisy.p2c(y);octx.beginPath();if(series.points.symbol=="circle")octx.arc(x,y,radius,0,2*Math.PI,false);else series.points.symbol(octx,x,y,radius,false);octx.closePath();octx.stroke()}function drawBarHighlight(series,point){var highlightColor=typeof series.highlightColor==="string"?series.highlightColor:$.color.parse(series.color).scale("a",.5).toString(),fillStyle=highlightColor,barLeft;switch(series.bars.align){case"left":barLeft=0;break;case"right":barLeft=-series.bars.barWidth;break;default:barLeft=-series.bars.barWidth/2}octx.lineWidth=series.bars.lineWidth;octx.strokeStyle=highlightColor;drawBar(point[0],point[1],point[2]||0,barLeft,barLeft+series.bars.barWidth,function(){return fillStyle},series.xaxis,series.yaxis,octx,series.bars.horizontal,series.bars.lineWidth)}function getColorOrGradient(spec,bottom,top,defaultColor){if(typeof spec=="string")return spec;else{var gradient=ctx.createLinearGradient(0,top,0,bottom);for(var i=0,l=spec.colors.length;i0&&h.which!=l.which||a(h.target).is(l.not))return;switch(h.type){case"mousedown":return a.extend(l,a(j).offset(),{elem:j,target:h.target,pageX:h.pageX,pageY:h.pageY}),b.add(document,"mousemove mouseup",e,l),i(j,!1),d.dragging=null,!1;case!d.dragging&&"mousemove":if(g(h.pageX-l.pageX)+g(h.pageY-l.pageY) max) { - // make sure min < max - var tmp = min; - min = max; - max = tmp; - } - - //Check that we are in panRange - if (pr) { - if (pr[0] != null && min < pr[0]) { - min = pr[0]; - } - if (pr[1] != null && max > pr[1]) { - max = pr[1]; - } - } - - var range = max - min; - if (zr && - ((zr[0] != null && range < zr[0]) || - (zr[1] != null && range > zr[1]))) - return; - - opts.min = min; - opts.max = max; - }); - - plot.setupGrid(); - plot.draw(); - - if (!args.preventEvent) - plot.getPlaceholder().trigger("plotzoom", [ plot, args ]); - }; - - plot.pan = function (args) { - var delta = { - x: +args.left, - y: +args.top - }; - - if (isNaN(delta.x)) - delta.x = 0; - if (isNaN(delta.y)) - delta.y = 0; - - $.each(plot.getAxes(), function (_, axis) { - var opts = axis.options, - min, max, d = delta[axis.direction]; - - min = axis.c2p(axis.p2c(axis.min) + d), - max = axis.c2p(axis.p2c(axis.max) + d); - - var pr = opts.panRange; - if (pr === false) // no panning on this axis - return; - - if (pr) { - // check whether we hit the wall - if (pr[0] != null && pr[0] > min) { - d = pr[0] - min; - min += d; - max += d; - } - - if (pr[1] != null && pr[1] < max) { - d = pr[1] - max; - min += d; - max += d; - } - } - - opts.min = min; - opts.max = max; - }); - - plot.setupGrid(); - plot.draw(); - - if (!args.preventEvent) - plot.getPlaceholder().trigger("plotpan", [ plot, args ]); - }; - - function shutdown(plot, eventHolder) { - eventHolder.unbind(plot.getOptions().zoom.trigger, onZoomClick); - eventHolder.unbind("mousewheel", onMouseWheel); - eventHolder.unbind("dragstart", onDragStart); - eventHolder.unbind("drag", onDrag); - eventHolder.unbind("dragend", onDragEnd); - if (panTimeout) - clearTimeout(panTimeout); - } - - plot.hooks.bindEvents.push(bindEvents); - plot.hooks.shutdown.push(shutdown); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: 'navigate', - version: '1.3' - }); -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.navigate.min.js b/js/plugins/flot/jquery.flot.navigate.min.js deleted file mode 100644 index a69a93999..000000000 --- a/js/plugins/flot/jquery.flot.navigate.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(a){function e(h){var k,j=this,l=h.data||{};if(l.elem)j=h.dragTarget=l.elem,h.dragProxy=d.proxy||j,h.cursorOffsetX=l.pageX-l.left,h.cursorOffsetY=l.pageY-l.top,h.offsetX=h.pageX-h.cursorOffsetX,h.offsetY=h.pageY-h.cursorOffsetY;else if(d.dragging||l.which>0&&h.which!=l.which||a(h.target).is(l.not))return;switch(h.type){case"mousedown":return a.extend(l,a(j).offset(),{elem:j,target:h.target,pageX:h.pageX,pageY:h.pageY}),b.add(document,"mousemove mouseup",e,l),i(j,!1),d.dragging=null,!1;case!d.dragging&&"mousemove":if(g(h.pageX-l.pageX)+g(h.pageY-l.pageY)max){var tmp=min;min=max;max=tmp}if(pr){if(pr[0]!=null&&minpr[1]){max=pr[1]}}var range=max-min;if(zr&&(zr[0]!=null&&rangezr[1]))return;opts.min=min;opts.max=max});plot.setupGrid();plot.draw();if(!args.preventEvent)plot.getPlaceholder().trigger("plotzoom",[plot,args])};plot.pan=function(args){var delta={x:+args.left,y:+args.top};if(isNaN(delta.x))delta.x=0;if(isNaN(delta.y))delta.y=0;$.each(plot.getAxes(),function(_,axis){var opts=axis.options,min,max,d=delta[axis.direction];min=axis.c2p(axis.p2c(axis.min)+d),max=axis.c2p(axis.p2c(axis.max)+d);var pr=opts.panRange;if(pr===false)return;if(pr){if(pr[0]!=null&&pr[0]>min){d=pr[0]-min;min+=d;max+=d}if(pr[1]!=null&&pr[1] 1) { - options.series.pie.tilt = 1; - } else if (options.series.pie.tilt < 0) { - options.series.pie.tilt = 0; - } - } - }); - - plot.hooks.bindEvents.push(function(plot, eventHolder) { - var options = plot.getOptions(); - if (options.series.pie.show) { - if (options.grid.hoverable) { - eventHolder.unbind("mousemove").mousemove(onMouseMove); - } - if (options.grid.clickable) { - eventHolder.unbind("click").click(onClick); - } - } - }); - - plot.hooks.processDatapoints.push(function(plot, series, data, datapoints) { - var options = plot.getOptions(); - if (options.series.pie.show) { - processDatapoints(plot, series, data, datapoints); - } - }); - - plot.hooks.drawOverlay.push(function(plot, octx) { - var options = plot.getOptions(); - if (options.series.pie.show) { - drawOverlay(plot, octx); - } - }); - - plot.hooks.draw.push(function(plot, newCtx) { - var options = plot.getOptions(); - if (options.series.pie.show) { - draw(plot, newCtx); - } - }); - - function processDatapoints(plot, series, datapoints) { - if (!processed) { - processed = true; - canvas = plot.getCanvas(); - target = $(canvas).parent(); - options = plot.getOptions(); - plot.setData(combine(plot.getData())); - } - } - - function combine(data) { - - var total = 0, - combined = 0, - numCombined = 0, - color = options.series.pie.combine.color, - newdata = []; - - // Fix up the raw data from Flot, ensuring the data is numeric - - for (var i = 0; i < data.length; ++i) { - - var value = data[i].data; - - // If the data is an array, we'll assume that it's a standard - // Flot x-y pair, and are concerned only with the second value. - - // Note how we use the original array, rather than creating a - // new one; this is more efficient and preserves any extra data - // that the user may have stored in higher indexes. - - if ($.isArray(value) && value.length == 1) { - value = value[0]; - } - - if ($.isArray(value)) { - // Equivalent to $.isNumeric() but compatible with jQuery < 1.7 - if (!isNaN(parseFloat(value[1])) && isFinite(value[1])) { - value[1] = +value[1]; - } else { - value[1] = 0; - } - } else if (!isNaN(parseFloat(value)) && isFinite(value)) { - value = [1, +value]; - } else { - value = [1, 0]; - } - - data[i].data = [value]; - } - - // Sum up all the slices, so we can calculate percentages for each - - for (var i = 0; i < data.length; ++i) { - total += data[i].data[0][1]; - } - - // Count the number of slices with percentages below the combine - // threshold; if it turns out to be just one, we won't combine. - - for (var i = 0; i < data.length; ++i) { - var value = data[i].data[0][1]; - if (value / total <= options.series.pie.combine.threshold) { - combined += value; - numCombined++; - if (!color) { - color = data[i].color; - } - } - } - - for (var i = 0; i < data.length; ++i) { - var value = data[i].data[0][1]; - if (numCombined < 2 || value / total > options.series.pie.combine.threshold) { - newdata.push({ - data: [[1, value]], - color: data[i].color, - label: data[i].label, - angle: value * Math.PI * 2 / total, - percent: value / (total / 100) - }); - } - } - - if (numCombined > 1) { - newdata.push({ - data: [[1, combined]], - color: color, - label: options.series.pie.combine.label, - angle: combined * Math.PI * 2 / total, - percent: combined / (total / 100) - }); - } - - return newdata; - } - - function draw(plot, newCtx) { - - if (!target) { - return; // if no series were passed - } - - var canvasWidth = plot.getPlaceholder().width(), - canvasHeight = plot.getPlaceholder().height(), - legendWidth = target.children().filter(".legend").children().width() || 0; - - ctx = newCtx; - - // WARNING: HACK! REWRITE THIS CODE AS SOON AS POSSIBLE! - - // When combining smaller slices into an 'other' slice, we need to - // add a new series. Since Flot gives plugins no way to modify the - // list of series, the pie plugin uses a hack where the first call - // to processDatapoints results in a call to setData with the new - // list of series, then subsequent processDatapoints do nothing. - - // The plugin-global 'processed' flag is used to control this hack; - // it starts out false, and is set to true after the first call to - // processDatapoints. - - // Unfortunately this turns future setData calls into no-ops; they - // call processDatapoints, the flag is true, and nothing happens. - - // To fix this we'll set the flag back to false here in draw, when - // all series have been processed, so the next sequence of calls to - // processDatapoints once again starts out with a slice-combine. - // This is really a hack; in 0.9 we need to give plugins a proper - // way to modify series before any processing begins. - - processed = false; - - // calculate maximum radius and center point - - maxRadius = Math.min(canvasWidth, canvasHeight / options.series.pie.tilt) / 2; - centerTop = canvasHeight / 2 + options.series.pie.offset.top; - centerLeft = canvasWidth / 2; - - if (options.series.pie.offset.left == "auto") { - if (options.legend.position.match("w")) { - centerLeft += legendWidth / 2; - } else { - centerLeft -= legendWidth / 2; - } - if (centerLeft < maxRadius) { - centerLeft = maxRadius; - } else if (centerLeft > canvasWidth - maxRadius) { - centerLeft = canvasWidth - maxRadius; - } - } else { - centerLeft += options.series.pie.offset.left; - } - - var slices = plot.getData(), - attempts = 0; - - // Keep shrinking the pie's radius until drawPie returns true, - // indicating that all the labels fit, or we try too many times. - - do { - if (attempts > 0) { - maxRadius *= REDRAW_SHRINK; - } - attempts += 1; - clear(); - if (options.series.pie.tilt <= 0.8) { - drawShadow(); - } - } while (!drawPie() && attempts < REDRAW_ATTEMPTS) - - if (attempts >= REDRAW_ATTEMPTS) { - clear(); - target.prepend("
    Could not draw pie with labels contained inside canvas
    "); - } - - if (plot.setSeries && plot.insertLegend) { - plot.setSeries(slices); - plot.insertLegend(); - } - - // we're actually done at this point, just defining internal functions at this point - - function clear() { - ctx.clearRect(0, 0, canvasWidth, canvasHeight); - target.children().filter(".pieLabel, .pieLabelBackground").remove(); - } - - function drawShadow() { - - var shadowLeft = options.series.pie.shadow.left; - var shadowTop = options.series.pie.shadow.top; - var edge = 10; - var alpha = options.series.pie.shadow.alpha; - var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; - - if (radius >= canvasWidth / 2 - shadowLeft || radius * options.series.pie.tilt >= canvasHeight / 2 - shadowTop || radius <= edge) { - return; // shadow would be outside canvas, so don't draw it - } - - ctx.save(); - ctx.translate(shadowLeft,shadowTop); - ctx.globalAlpha = alpha; - ctx.fillStyle = "#000"; - - // center and rotate to starting position - - ctx.translate(centerLeft,centerTop); - ctx.scale(1, options.series.pie.tilt); - - //radius -= edge; - - for (var i = 1; i <= edge; i++) { - ctx.beginPath(); - ctx.arc(0, 0, radius, 0, Math.PI * 2, false); - ctx.fill(); - radius -= i; - } - - ctx.restore(); - } - - function drawPie() { - - var startAngle = Math.PI * options.series.pie.startAngle; - var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; - - // center and rotate to starting position - - ctx.save(); - ctx.translate(centerLeft,centerTop); - ctx.scale(1, options.series.pie.tilt); - //ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera - - // draw slices - - ctx.save(); - var currentAngle = startAngle; - for (var i = 0; i < slices.length; ++i) { - slices[i].startAngle = currentAngle; - drawSlice(slices[i].angle, slices[i].color, true); - } - ctx.restore(); - - // draw slice outlines - - if (options.series.pie.stroke.width > 0) { - ctx.save(); - ctx.lineWidth = options.series.pie.stroke.width; - currentAngle = startAngle; - for (var i = 0; i < slices.length; ++i) { - drawSlice(slices[i].angle, options.series.pie.stroke.color, false); - } - ctx.restore(); - } - - // draw donut hole - - drawDonutHole(ctx); - - ctx.restore(); - - // Draw the labels, returning true if they fit within the plot - - if (options.series.pie.label.show) { - return drawLabels(); - } else return true; - - function drawSlice(angle, color, fill) { - - if (angle <= 0 || isNaN(angle)) { - return; - } - - if (fill) { - ctx.fillStyle = color; - } else { - ctx.strokeStyle = color; - ctx.lineJoin = "round"; - } - - ctx.beginPath(); - if (Math.abs(angle - Math.PI * 2) > 0.000000001) { - ctx.moveTo(0, 0); // Center of the pie - } - - //ctx.arc(0, 0, radius, 0, angle, false); // This doesn't work properly in Opera - ctx.arc(0, 0, radius,currentAngle, currentAngle + angle / 2, false); - ctx.arc(0, 0, radius,currentAngle + angle / 2, currentAngle + angle, false); - ctx.closePath(); - //ctx.rotate(angle); // This doesn't work properly in Opera - currentAngle += angle; - - if (fill) { - ctx.fill(); - } else { - ctx.stroke(); - } - } - - function drawLabels() { - - var currentAngle = startAngle; - var radius = options.series.pie.label.radius > 1 ? options.series.pie.label.radius : maxRadius * options.series.pie.label.radius; - - for (var i = 0; i < slices.length; ++i) { - if (slices[i].percent >= options.series.pie.label.threshold * 100) { - if (!drawLabel(slices[i], currentAngle, i)) { - return false; - } - } - currentAngle += slices[i].angle; - } - - return true; - - function drawLabel(slice, startAngle, index) { - - if (slice.data[0][1] == 0) { - return true; - } - - // format label text - - var lf = options.legend.labelFormatter, text, plf = options.series.pie.label.formatter; - - if (lf) { - text = lf(slice.label, slice); - } else { - text = slice.label; - } - - if (plf) { - text = plf(text, slice); - } - - var halfAngle = ((startAngle + slice.angle) + startAngle) / 2; - var x = centerLeft + Math.round(Math.cos(halfAngle) * radius); - var y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt; - - var html = "" + text + ""; - target.append(html); - - var label = target.children("#pieLabel" + index); - var labelTop = (y - label.height() / 2); - var labelLeft = (x - label.width() / 2); - - label.css("top", labelTop); - label.css("left", labelLeft); - - // check to make sure that the label is not outside the canvas - - if (0 - labelTop > 0 || 0 - labelLeft > 0 || canvasHeight - (labelTop + label.height()) < 0 || canvasWidth - (labelLeft + label.width()) < 0) { - return false; - } - - if (options.series.pie.label.background.opacity != 0) { - - // put in the transparent background separately to avoid blended labels and label boxes - - var c = options.series.pie.label.background.color; - - if (c == null) { - c = slice.color; - } - - var pos = "top:" + labelTop + "px;left:" + labelLeft + "px;"; - $("
    ") - .css("opacity", options.series.pie.label.background.opacity) - .insertBefore(label); - } - - return true; - } // end individual label function - } // end drawLabels function - } // end drawPie function - } // end draw function - - // Placed here because it needs to be accessed from multiple locations - - function drawDonutHole(layer) { - if (options.series.pie.innerRadius > 0) { - - // subtract the center - - layer.save(); - var innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius; - layer.globalCompositeOperation = "destination-out"; // this does not work with excanvas, but it will fall back to using the stroke color - layer.beginPath(); - layer.fillStyle = options.series.pie.stroke.color; - layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false); - layer.fill(); - layer.closePath(); - layer.restore(); - - // add inner stroke - - layer.save(); - layer.beginPath(); - layer.strokeStyle = options.series.pie.stroke.color; - layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false); - layer.stroke(); - layer.closePath(); - layer.restore(); - - // TODO: add extra shadow inside hole (with a mask) if the pie is tilted. - } - } - - //-- Additional Interactive related functions -- - - function isPointInPoly(poly, pt) { - for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) - ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1]< poly[i][1])) - && (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) - && (c = !c); - return c; - } - - function findNearbySlice(mouseX, mouseY) { - - var slices = plot.getData(), - options = plot.getOptions(), - radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius, - x, y; - - for (var i = 0; i < slices.length; ++i) { - - var s = slices[i]; - - if (s.pie.show) { - - ctx.save(); - ctx.beginPath(); - ctx.moveTo(0, 0); // Center of the pie - //ctx.scale(1, options.series.pie.tilt); // this actually seems to break everything when here. - ctx.arc(0, 0, radius, s.startAngle, s.startAngle + s.angle / 2, false); - ctx.arc(0, 0, radius, s.startAngle + s.angle / 2, s.startAngle + s.angle, false); - ctx.closePath(); - x = mouseX - centerLeft; - y = mouseY - centerTop; - - if (ctx.isPointInPath) { - if (ctx.isPointInPath(mouseX - centerLeft, mouseY - centerTop)) { - ctx.restore(); - return { - datapoint: [s.percent, s.data], - dataIndex: 0, - series: s, - seriesIndex: i - }; - } - } else { - - // excanvas for IE doesn;t support isPointInPath, this is a workaround. - - var p1X = radius * Math.cos(s.startAngle), - p1Y = radius * Math.sin(s.startAngle), - p2X = radius * Math.cos(s.startAngle + s.angle / 4), - p2Y = radius * Math.sin(s.startAngle + s.angle / 4), - p3X = radius * Math.cos(s.startAngle + s.angle / 2), - p3Y = radius * Math.sin(s.startAngle + s.angle / 2), - p4X = radius * Math.cos(s.startAngle + s.angle / 1.5), - p4Y = radius * Math.sin(s.startAngle + s.angle / 1.5), - p5X = radius * Math.cos(s.startAngle + s.angle), - p5Y = radius * Math.sin(s.startAngle + s.angle), - arrPoly = [[0, 0], [p1X, p1Y], [p2X, p2Y], [p3X, p3Y], [p4X, p4Y], [p5X, p5Y]], - arrPoint = [x, y]; - - // TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt? - - if (isPointInPoly(arrPoly, arrPoint)) { - ctx.restore(); - return { - datapoint: [s.percent, s.data], - dataIndex: 0, - series: s, - seriesIndex: i - }; - } - } - - ctx.restore(); - } - } - - return null; - } - - function onMouseMove(e) { - triggerClickHoverEvent("plothover", e); - } - - function onClick(e) { - triggerClickHoverEvent("plotclick", e); - } - - // trigger click or hover event (they send the same parameters so we share their code) - - function triggerClickHoverEvent(eventname, e) { - - var offset = plot.offset(); - var canvasX = parseInt(e.pageX - offset.left); - var canvasY = parseInt(e.pageY - offset.top); - var item = findNearbySlice(canvasX, canvasY); - - if (options.grid.autoHighlight) { - - // clear auto-highlights - - for (var i = 0; i < highlights.length; ++i) { - var h = highlights[i]; - if (h.auto == eventname && !(item && h.series == item.series)) { - unhighlight(h.series); - } - } - } - - // highlight the slice - - if (item) { - highlight(item.series, eventname); - } - - // trigger any hover bind events - - var pos = { pageX: e.pageX, pageY: e.pageY }; - target.trigger(eventname, [pos, item]); - } - - function highlight(s, auto) { - //if (typeof s == "number") { - // s = series[s]; - //} - - var i = indexOfHighlight(s); - - if (i == -1) { - highlights.push({ series: s, auto: auto }); - plot.triggerRedrawOverlay(); - } else if (!auto) { - highlights[i].auto = false; - } - } - - function unhighlight(s) { - if (s == null) { - highlights = []; - plot.triggerRedrawOverlay(); - } - - //if (typeof s == "number") { - // s = series[s]; - //} - - var i = indexOfHighlight(s); - - if (i != -1) { - highlights.splice(i, 1); - plot.triggerRedrawOverlay(); - } - } - - function indexOfHighlight(s) { - for (var i = 0; i < highlights.length; ++i) { - var h = highlights[i]; - if (h.series == s) - return i; - } - return -1; - } - - function drawOverlay(plot, octx) { - - var options = plot.getOptions(); - - var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; - - octx.save(); - octx.translate(centerLeft, centerTop); - octx.scale(1, options.series.pie.tilt); - - for (var i = 0; i < highlights.length; ++i) { - drawHighlight(highlights[i].series); - } - - drawDonutHole(octx); - - octx.restore(); - - function drawHighlight(series) { - - if (series.angle <= 0 || isNaN(series.angle)) { - return; - } - - //octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString(); - octx.fillStyle = "rgba(255, 255, 255, " + options.series.pie.highlight.opacity + ")"; // this is temporary until we have access to parseColor - octx.beginPath(); - if (Math.abs(series.angle - Math.PI * 2) > 0.000000001) { - octx.moveTo(0, 0); // Center of the pie - } - octx.arc(0, 0, radius, series.startAngle, series.startAngle + series.angle / 2, false); - octx.arc(0, 0, radius, series.startAngle + series.angle / 2, series.startAngle + series.angle, false); - octx.closePath(); - octx.fill(); - } - } - } // end init (plugin body) - - // define pie specific options and their default values - - var options = { - series: { - pie: { - show: false, - radius: "auto", // actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value) - innerRadius: 0, /* for donut */ - startAngle: 3/2, - tilt: 1, - shadow: { - left: 5, // shadow left offset - top: 15, // shadow top offset - alpha: 0.02 // shadow alpha - }, - offset: { - top: 0, - left: "auto" - }, - stroke: { - color: "#fff", - width: 1 - }, - label: { - show: "auto", - formatter: function(label, slice) { - return "
    " + label + "
    " + Math.round(slice.percent) + "%
    "; - }, // formatter function - radius: 1, // radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value) - background: { - color: null, - opacity: 0 - }, - threshold: 0 // percentage at which to hide the label (i.e. the slice is too narrow) - }, - combine: { - threshold: -1, // percentage at which to combine little slices into one larger slice - color: null, // color to give the new slice (auto-generated if null) - label: "Other" // label to give the new slice - }, - highlight: { - //color: "#fff", // will add this functionality once parseColor is available - opacity: 0.5 - } - } - } - }; - - $.plot.plugins.push({ - init: init, - options: options, - name: "pie", - version: "1.1" - }); - -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.pie.min.js b/js/plugins/flot/jquery.flot.pie.min.js deleted file mode 100644 index 88ffc9c9b..000000000 --- a/js/plugins/flot/jquery.flot.pie.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){var REDRAW_ATTEMPTS=10;var REDRAW_SHRINK=.95;function init(plot){var canvas=null,target=null,options=null,maxRadius=null,centerLeft=null,centerTop=null,processed=false,ctx=null;var highlights=[];plot.hooks.processOptions.push(function(plot,options){if(options.series.pie.show){options.grid.show=false;if(options.series.pie.label.show=="auto"){if(options.legend.show){options.series.pie.label.show=false}else{options.series.pie.label.show=true}}if(options.series.pie.radius=="auto"){if(options.series.pie.label.show){options.series.pie.radius=3/4}else{options.series.pie.radius=1}}if(options.series.pie.tilt>1){options.series.pie.tilt=1}else if(options.series.pie.tilt<0){options.series.pie.tilt=0}}});plot.hooks.bindEvents.push(function(plot,eventHolder){var options=plot.getOptions();if(options.series.pie.show){if(options.grid.hoverable){eventHolder.unbind("mousemove").mousemove(onMouseMove)}if(options.grid.clickable){eventHolder.unbind("click").click(onClick)}}});plot.hooks.processDatapoints.push(function(plot,series,data,datapoints){var options=plot.getOptions();if(options.series.pie.show){processDatapoints(plot,series,data,datapoints)}});plot.hooks.drawOverlay.push(function(plot,octx){var options=plot.getOptions();if(options.series.pie.show){drawOverlay(plot,octx)}});plot.hooks.draw.push(function(plot,newCtx){var options=plot.getOptions();if(options.series.pie.show){draw(plot,newCtx)}});function processDatapoints(plot,series,datapoints){if(!processed){processed=true;canvas=plot.getCanvas();target=$(canvas).parent();options=plot.getOptions();plot.setData(combine(plot.getData()))}}function combine(data){var total=0,combined=0,numCombined=0,color=options.series.pie.combine.color,newdata=[];for(var i=0;ioptions.series.pie.combine.threshold){newdata.push({data:[[1,value]],color:data[i].color,label:data[i].label,angle:value*Math.PI*2/total,percent:value/(total/100)})}}if(numCombined>1){newdata.push({data:[[1,combined]],color:color,label:options.series.pie.combine.label,angle:combined*Math.PI*2/total,percent:combined/(total/100)})}return newdata}function draw(plot,newCtx){if(!target){return}var canvasWidth=plot.getPlaceholder().width(),canvasHeight=plot.getPlaceholder().height(),legendWidth=target.children().filter(".legend").children().width()||0;ctx=newCtx;processed=false;maxRadius=Math.min(canvasWidth,canvasHeight/options.series.pie.tilt)/2;centerTop=canvasHeight/2+options.series.pie.offset.top;centerLeft=canvasWidth/2;if(options.series.pie.offset.left=="auto"){if(options.legend.position.match("w")){centerLeft+=legendWidth/2}else{centerLeft-=legendWidth/2}if(centerLeftcanvasWidth-maxRadius){centerLeft=canvasWidth-maxRadius}}else{centerLeft+=options.series.pie.offset.left}var slices=plot.getData(),attempts=0;do{if(attempts>0){maxRadius*=REDRAW_SHRINK}attempts+=1;clear();if(options.series.pie.tilt<=.8){drawShadow()}}while(!drawPie()&&attempts=REDRAW_ATTEMPTS){clear();target.prepend("
    Could not draw pie with labels contained inside canvas
    ")}if(plot.setSeries&&plot.insertLegend){plot.setSeries(slices);plot.insertLegend()}function clear(){ctx.clearRect(0,0,canvasWidth,canvasHeight);target.children().filter(".pieLabel, .pieLabelBackground").remove()}function drawShadow(){var shadowLeft=options.series.pie.shadow.left;var shadowTop=options.series.pie.shadow.top;var edge=10;var alpha=options.series.pie.shadow.alpha;var radius=options.series.pie.radius>1?options.series.pie.radius:maxRadius*options.series.pie.radius;if(radius>=canvasWidth/2-shadowLeft||radius*options.series.pie.tilt>=canvasHeight/2-shadowTop||radius<=edge){return}ctx.save();ctx.translate(shadowLeft,shadowTop);ctx.globalAlpha=alpha;ctx.fillStyle="#000";ctx.translate(centerLeft,centerTop);ctx.scale(1,options.series.pie.tilt);for(var i=1;i<=edge;i++){ctx.beginPath();ctx.arc(0,0,radius,0,Math.PI*2,false);ctx.fill();radius-=i}ctx.restore()}function drawPie(){var startAngle=Math.PI*options.series.pie.startAngle;var radius=options.series.pie.radius>1?options.series.pie.radius:maxRadius*options.series.pie.radius;ctx.save();ctx.translate(centerLeft,centerTop);ctx.scale(1,options.series.pie.tilt);ctx.save();var currentAngle=startAngle;for(var i=0;i0){ctx.save();ctx.lineWidth=options.series.pie.stroke.width;currentAngle=startAngle;for(var i=0;i1e-9){ctx.moveTo(0,0)}ctx.arc(0,0,radius,currentAngle,currentAngle+angle/2,false);ctx.arc(0,0,radius,currentAngle+angle/2,currentAngle+angle,false);ctx.closePath();currentAngle+=angle;if(fill){ctx.fill()}else{ctx.stroke()}}function drawLabels(){var currentAngle=startAngle;var radius=options.series.pie.label.radius>1?options.series.pie.label.radius:maxRadius*options.series.pie.label.radius;for(var i=0;i=options.series.pie.label.threshold*100){if(!drawLabel(slices[i],currentAngle,i)){return false}}currentAngle+=slices[i].angle}return true;function drawLabel(slice,startAngle,index){if(slice.data[0][1]==0){return true}var lf=options.legend.labelFormatter,text,plf=options.series.pie.label.formatter;if(lf){text=lf(slice.label,slice)}else{text=slice.label}if(plf){text=plf(text,slice)}var halfAngle=(startAngle+slice.angle+startAngle)/2;var x=centerLeft+Math.round(Math.cos(halfAngle)*radius);var y=centerTop+Math.round(Math.sin(halfAngle)*radius)*options.series.pie.tilt;var html=""+text+"";target.append(html);var label=target.children("#pieLabel"+index);var labelTop=y-label.height()/2;var labelLeft=x-label.width()/2;label.css("top",labelTop);label.css("left",labelLeft);if(0-labelTop>0||0-labelLeft>0||canvasHeight-(labelTop+label.height())<0||canvasWidth-(labelLeft+label.width())<0){return false}if(options.series.pie.label.background.opacity!=0){var c=options.series.pie.label.background.color;if(c==null){c=slice.color}var pos="top:"+labelTop+"px;left:"+labelLeft+"px;";$("
    ").css("opacity",options.series.pie.label.background.opacity).insertBefore(label)}return true}}}}function drawDonutHole(layer){if(options.series.pie.innerRadius>0){layer.save();var innerRadius=options.series.pie.innerRadius>1?options.series.pie.innerRadius:maxRadius*options.series.pie.innerRadius;layer.globalCompositeOperation="destination-out";layer.beginPath();layer.fillStyle=options.series.pie.stroke.color;layer.arc(0,0,innerRadius,0,Math.PI*2,false);layer.fill();layer.closePath();layer.restore();layer.save();layer.beginPath();layer.strokeStyle=options.series.pie.stroke.color;layer.arc(0,0,innerRadius,0,Math.PI*2,false);layer.stroke();layer.closePath();layer.restore()}}function isPointInPoly(poly,pt){for(var c=false,i=-1,l=poly.length,j=l-1;++i1?options.series.pie.radius:maxRadius*options.series.pie.radius,x,y;for(var i=0;i1?options.series.pie.radius:maxRadius*options.series.pie.radius;octx.save();octx.translate(centerLeft,centerTop);octx.scale(1,options.series.pie.tilt);for(var i=0;i1e-9){octx.moveTo(0,0)}octx.arc(0,0,radius,series.startAngle,series.startAngle+series.angle/2,false);octx.arc(0,0,radius,series.startAngle+series.angle/2,series.startAngle+series.angle,false);octx.closePath();octx.fill()}}}var options={series:{pie:{show:false,radius:"auto",innerRadius:0,startAngle:3/2,tilt:1,shadow:{left:5,top:15,alpha:.02},offset:{top:0,left:"auto"},stroke:{color:"#fff",width:1},label:{show:"auto",formatter:function(label,slice){return"
    "+label+"
    "+Math.round(slice.percent)+"%
    "},radius:1,background:{color:null,opacity:0},threshold:0},combine:{threshold:-1,color:null,label:"Other"},highlight:{opacity:.5}}}};$.plot.plugins.push({init:init,options:options,name:"pie",version:"1.1"})})(jQuery); \ No newline at end of file diff --git a/js/plugins/flot/jquery.flot.resize.js b/js/plugins/flot/jquery.flot.resize.js deleted file mode 100644 index 44e04f8fc..000000000 --- a/js/plugins/flot/jquery.flot.resize.js +++ /dev/null @@ -1,60 +0,0 @@ -/* Flot plugin for automatically redrawing plots as the placeholder resizes. - -Copyright (c) 2007-2013 IOLA and Ole Laursen. -Licensed under the MIT license. - -It works by listening for changes on the placeholder div (through the jQuery -resize event plugin) - if the size changes, it will redraw the plot. - -There are no options. If you need to disable the plugin for some plots, you -can just fix the size of their placeholders. - -*/ - -/* Inline dependency: - * jQuery resize event - v1.1 - 3/14/2010 - * http://benalman.com/projects/jquery-resize-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ - -(function($,t,n){function p(){for(var n=r.length-1;n>=0;n--){var o=$(r[n]);if(o[0]==t||o.is(":visible")){var h=o.width(),d=o.height(),v=o.data(a);!v||h===v.w&&d===v.h?i[f]=i[l]:(i[f]=i[c],o.trigger(u,[v.w=h,v.h=d]))}else v=o.data(a),v.w=0,v.h=0}s!==null&&(s=t.requestAnimationFrame(p))}var r=[],i=$.resize=$.extend($.resize,{}),s,o="setTimeout",u="resize",a=u+"-special-event",f="delay",l="pendingDelay",c="activeDelay",h="throttleWindow";i[l]=250,i[c]=20,i[f]=i[l],i[h]=!0,$.event.special[u]={setup:function(){if(!i[h]&&this[o])return!1;var t=$(this);r.push(this),t.data(a,{w:t.width(),h:t.height()}),r.length===1&&(s=n,p())},teardown:function(){if(!i[h]&&this[o])return!1;var t=$(this);for(var n=r.length-1;n>=0;n--)if(r[n]==this){r.splice(n,1);break}t.removeData(a),r.length||(cancelAnimationFrame(s),s=null)},add:function(t){function s(t,i,s){var o=$(this),u=o.data(a);u.w=i!==n?i:o.width(),u.h=s!==n?s:o.height(),r.apply(this,arguments)}if(!i[h]&&this[o])return!1;var r;if($.isFunction(t))return r=t,s;r=t.handler,t.handler=s}},t.requestAnimationFrame||(t.requestAnimationFrame=function(){return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame||function(e,n){return t.setTimeout(e,i[f])}}()),t.cancelAnimationFrame||(t.cancelAnimationFrame=function(){return t.webkitCancelRequestAnimationFrame||t.mozCancelRequestAnimationFrame||t.oCancelRequestAnimationFrame||t.msCancelRequestAnimationFrame||clearTimeout}())})(jQuery,this); - -(function ($) { - var options = { }; // no options - - function init(plot) { - function onResize() { - var placeholder = plot.getPlaceholder(); - - // somebody might have hidden us and we can't plot - // when we don't have the dimensions - if (placeholder.width() == 0 || placeholder.height() == 0) - return; - - plot.resize(); - plot.setupGrid(); - plot.draw(); - } - - function bindEvents(plot, eventHolder) { - plot.getPlaceholder().resize(onResize); - } - - function shutdown(plot, eventHolder) { - plot.getPlaceholder().unbind("resize", onResize); - } - - plot.hooks.bindEvents.push(bindEvents); - plot.hooks.shutdown.push(shutdown); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: 'resize', - version: '1.0' - }); -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.resize.min.js b/js/plugins/flot/jquery.flot.resize.min.js deleted file mode 100644 index 29838425f..000000000 --- a/js/plugins/flot/jquery.flot.resize.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($,t,n){function p(){for(var n=r.length-1;n>=0;n--){var o=$(r[n]);if(o[0]==t||o.is(":visible")){var h=o.width(),d=o.height(),v=o.data(a);!v||h===v.w&&d===v.h?i[f]=i[l]:(i[f]=i[c],o.trigger(u,[v.w=h,v.h=d]))}else v=o.data(a),v.w=0,v.h=0}s!==null&&(s=t.requestAnimationFrame(p))}var r=[],i=$.resize=$.extend($.resize,{}),s,o="setTimeout",u="resize",a=u+"-special-event",f="delay",l="pendingDelay",c="activeDelay",h="throttleWindow";i[l]=250,i[c]=20,i[f]=i[l],i[h]=!0,$.event.special[u]={setup:function(){if(!i[h]&&this[o])return!1;var t=$(this);r.push(this),t.data(a,{w:t.width(),h:t.height()}),r.length===1&&(s=n,p())},teardown:function(){if(!i[h]&&this[o])return!1;var t=$(this);for(var n=r.length-1;n>=0;n--)if(r[n]==this){r.splice(n,1);break}t.removeData(a),r.length||(cancelAnimationFrame(s),s=null)},add:function(t){function s(t,i,s){var o=$(this),u=o.data(a);u.w=i!==n?i:o.width(),u.h=s!==n?s:o.height(),r.apply(this,arguments)}if(!i[h]&&this[o])return!1;var r;if($.isFunction(t))return r=t,s;r=t.handler,t.handler=s}},t.requestAnimationFrame||(t.requestAnimationFrame=function(){return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame||function(e,n){return t.setTimeout(e,i[f])}}()),t.cancelAnimationFrame||(t.cancelAnimationFrame=function(){return t.webkitCancelRequestAnimationFrame||t.mozCancelRequestAnimationFrame||t.oCancelRequestAnimationFrame||t.msCancelRequestAnimationFrame||clearTimeout}())})(jQuery,this);(function($){var options={};function init(plot){function onResize(){var placeholder=plot.getPlaceholder();if(placeholder.width()==0||placeholder.height()==0)return;plot.resize();plot.setupGrid();plot.draw()}function bindEvents(plot,eventHolder){plot.getPlaceholder().resize(onResize)}function shutdown(plot,eventHolder){plot.getPlaceholder().unbind("resize",onResize)}plot.hooks.bindEvents.push(bindEvents);plot.hooks.shutdown.push(shutdown)}$.plot.plugins.push({init:init,options:options,name:"resize",version:"1.0"})})(jQuery); \ No newline at end of file diff --git a/js/plugins/flot/jquery.flot.selection.js b/js/plugins/flot/jquery.flot.selection.js deleted file mode 100644 index f8fa668ff..000000000 --- a/js/plugins/flot/jquery.flot.selection.js +++ /dev/null @@ -1,360 +0,0 @@ -/* Flot plugin for selecting regions of a plot. - -Copyright (c) 2007-2013 IOLA and Ole Laursen. -Licensed under the MIT license. - -The plugin supports these options: - -selection: { - mode: null or "x" or "y" or "xy", - color: color, - shape: "round" or "miter" or "bevel", - minSize: number of pixels -} - -Selection support is enabled by setting the mode to one of "x", "y" or "xy". -In "x" mode, the user will only be able to specify the x range, similarly for -"y" mode. For "xy", the selection becomes a rectangle where both ranges can be -specified. "color" is color of the selection (if you need to change the color -later on, you can get to it with plot.getOptions().selection.color). "shape" -is the shape of the corners of the selection. - -"minSize" is the minimum size a selection can be in pixels. This value can -be customized to determine the smallest size a selection can be and still -have the selection rectangle be displayed. When customizing this value, the -fact that it refers to pixels, not axis units must be taken into account. -Thus, for example, if there is a bar graph in time mode with BarWidth set to 1 -minute, setting "minSize" to 1 will not make the minimum selection size 1 -minute, but rather 1 pixel. Note also that setting "minSize" to 0 will prevent -"plotunselected" events from being fired when the user clicks the mouse without -dragging. - -When selection support is enabled, a "plotselected" event will be emitted on -the DOM element you passed into the plot function. The event handler gets a -parameter with the ranges selected on the axes, like this: - - placeholder.bind( "plotselected", function( event, ranges ) { - alert("You selected " + ranges.xaxis.from + " to " + ranges.xaxis.to) - // similar for yaxis - with multiple axes, the extra ones are in - // x2axis, x3axis, ... - }); - -The "plotselected" event is only fired when the user has finished making the -selection. A "plotselecting" event is fired during the process with the same -parameters as the "plotselected" event, in case you want to know what's -happening while it's happening, - -A "plotunselected" event with no arguments is emitted when the user clicks the -mouse to remove the selection. As stated above, setting "minSize" to 0 will -destroy this behavior. - -The plugin allso adds the following methods to the plot object: - -- setSelection( ranges, preventEvent ) - - Set the selection rectangle. The passed in ranges is on the same form as - returned in the "plotselected" event. If the selection mode is "x", you - should put in either an xaxis range, if the mode is "y" you need to put in - an yaxis range and both xaxis and yaxis if the selection mode is "xy", like - this: - - setSelection({ xaxis: { from: 0, to: 10 }, yaxis: { from: 40, to: 60 } }); - - setSelection will trigger the "plotselected" event when called. If you don't - want that to happen, e.g. if you're inside a "plotselected" handler, pass - true as the second parameter. If you are using multiple axes, you can - specify the ranges on any of those, e.g. as x2axis/x3axis/... instead of - xaxis, the plugin picks the first one it sees. - -- clearSelection( preventEvent ) - - Clear the selection rectangle. Pass in true to avoid getting a - "plotunselected" event. - -- getSelection() - - Returns the current selection in the same format as the "plotselected" - event. If there's currently no selection, the function returns null. - -*/ - -(function ($) { - function init(plot) { - var selection = { - first: { x: -1, y: -1}, second: { x: -1, y: -1}, - show: false, - active: false - }; - - // FIXME: The drag handling implemented here should be - // abstracted out, there's some similar code from a library in - // the navigation plugin, this should be massaged a bit to fit - // the Flot cases here better and reused. Doing this would - // make this plugin much slimmer. - var savedhandlers = {}; - - var mouseUpHandler = null; - - function onMouseMove(e) { - if (selection.active) { - updateSelection(e); - - plot.getPlaceholder().trigger("plotselecting", [ getSelection() ]); - } - } - - function onMouseDown(e) { - if (e.which != 1) // only accept left-click - return; - - // cancel out any text selections - document.body.focus(); - - // prevent text selection and drag in old-school browsers - if (document.onselectstart !== undefined && savedhandlers.onselectstart == null) { - savedhandlers.onselectstart = document.onselectstart; - document.onselectstart = function () { return false; }; - } - if (document.ondrag !== undefined && savedhandlers.ondrag == null) { - savedhandlers.ondrag = document.ondrag; - document.ondrag = function () { return false; }; - } - - setSelectionPos(selection.first, e); - - selection.active = true; - - // this is a bit silly, but we have to use a closure to be - // able to whack the same handler again - mouseUpHandler = function (e) { onMouseUp(e); }; - - $(document).one("mouseup", mouseUpHandler); - } - - function onMouseUp(e) { - mouseUpHandler = null; - - // revert drag stuff for old-school browsers - if (document.onselectstart !== undefined) - document.onselectstart = savedhandlers.onselectstart; - if (document.ondrag !== undefined) - document.ondrag = savedhandlers.ondrag; - - // no more dragging - selection.active = false; - updateSelection(e); - - if (selectionIsSane()) - triggerSelectedEvent(); - else { - // this counts as a clear - plot.getPlaceholder().trigger("plotunselected", [ ]); - plot.getPlaceholder().trigger("plotselecting", [ null ]); - } - - return false; - } - - function getSelection() { - if (!selectionIsSane()) - return null; - - if (!selection.show) return null; - - var r = {}, c1 = selection.first, c2 = selection.second; - $.each(plot.getAxes(), function (name, axis) { - if (axis.used) { - var p1 = axis.c2p(c1[axis.direction]), p2 = axis.c2p(c2[axis.direction]); - r[name] = { from: Math.min(p1, p2), to: Math.max(p1, p2) }; - } - }); - return r; - } - - function triggerSelectedEvent() { - var r = getSelection(); - - plot.getPlaceholder().trigger("plotselected", [ r ]); - - // backwards-compat stuff, to be removed in future - if (r.xaxis && r.yaxis) - plot.getPlaceholder().trigger("selected", [ { x1: r.xaxis.from, y1: r.yaxis.from, x2: r.xaxis.to, y2: r.yaxis.to } ]); - } - - function clamp(min, value, max) { - return value < min ? min: (value > max ? max: value); - } - - function setSelectionPos(pos, e) { - var o = plot.getOptions(); - var offset = plot.getPlaceholder().offset(); - var plotOffset = plot.getPlotOffset(); - pos.x = clamp(0, e.pageX - offset.left - plotOffset.left, plot.width()); - pos.y = clamp(0, e.pageY - offset.top - plotOffset.top, plot.height()); - - if (o.selection.mode == "y") - pos.x = pos == selection.first ? 0 : plot.width(); - - if (o.selection.mode == "x") - pos.y = pos == selection.first ? 0 : plot.height(); - } - - function updateSelection(pos) { - if (pos.pageX == null) - return; - - setSelectionPos(selection.second, pos); - if (selectionIsSane()) { - selection.show = true; - plot.triggerRedrawOverlay(); - } - else - clearSelection(true); - } - - function clearSelection(preventEvent) { - if (selection.show) { - selection.show = false; - plot.triggerRedrawOverlay(); - if (!preventEvent) - plot.getPlaceholder().trigger("plotunselected", [ ]); - } - } - - // function taken from markings support in Flot - function extractRange(ranges, coord) { - var axis, from, to, key, axes = plot.getAxes(); - - for (var k in axes) { - axis = axes[k]; - if (axis.direction == coord) { - key = coord + axis.n + "axis"; - if (!ranges[key] && axis.n == 1) - key = coord + "axis"; // support x1axis as xaxis - if (ranges[key]) { - from = ranges[key].from; - to = ranges[key].to; - break; - } - } - } - - // backwards-compat stuff - to be removed in future - if (!ranges[key]) { - axis = coord == "x" ? plot.getXAxes()[0] : plot.getYAxes()[0]; - from = ranges[coord + "1"]; - to = ranges[coord + "2"]; - } - - // auto-reverse as an added bonus - if (from != null && to != null && from > to) { - var tmp = from; - from = to; - to = tmp; - } - - return { from: from, to: to, axis: axis }; - } - - function setSelection(ranges, preventEvent) { - var axis, range, o = plot.getOptions(); - - if (o.selection.mode == "y") { - selection.first.x = 0; - selection.second.x = plot.width(); - } - else { - range = extractRange(ranges, "x"); - - selection.first.x = range.axis.p2c(range.from); - selection.second.x = range.axis.p2c(range.to); - } - - if (o.selection.mode == "x") { - selection.first.y = 0; - selection.second.y = plot.height(); - } - else { - range = extractRange(ranges, "y"); - - selection.first.y = range.axis.p2c(range.from); - selection.second.y = range.axis.p2c(range.to); - } - - selection.show = true; - plot.triggerRedrawOverlay(); - if (!preventEvent && selectionIsSane()) - triggerSelectedEvent(); - } - - function selectionIsSane() { - var minSize = plot.getOptions().selection.minSize; - return Math.abs(selection.second.x - selection.first.x) >= minSize && - Math.abs(selection.second.y - selection.first.y) >= minSize; - } - - plot.clearSelection = clearSelection; - plot.setSelection = setSelection; - plot.getSelection = getSelection; - - plot.hooks.bindEvents.push(function(plot, eventHolder) { - var o = plot.getOptions(); - if (o.selection.mode != null) { - eventHolder.mousemove(onMouseMove); - eventHolder.mousedown(onMouseDown); - } - }); - - - plot.hooks.drawOverlay.push(function (plot, ctx) { - // draw selection - if (selection.show && selectionIsSane()) { - var plotOffset = plot.getPlotOffset(); - var o = plot.getOptions(); - - ctx.save(); - ctx.translate(plotOffset.left, plotOffset.top); - - var c = $.color.parse(o.selection.color); - - ctx.strokeStyle = c.scale('a', 0.8).toString(); - ctx.lineWidth = 1; - ctx.lineJoin = o.selection.shape; - ctx.fillStyle = c.scale('a', 0.4).toString(); - - var x = Math.min(selection.first.x, selection.second.x) + 0.5, - y = Math.min(selection.first.y, selection.second.y) + 0.5, - w = Math.abs(selection.second.x - selection.first.x) - 1, - h = Math.abs(selection.second.y - selection.first.y) - 1; - - ctx.fillRect(x, y, w, h); - ctx.strokeRect(x, y, w, h); - - ctx.restore(); - } - }); - - plot.hooks.shutdown.push(function (plot, eventHolder) { - eventHolder.unbind("mousemove", onMouseMove); - eventHolder.unbind("mousedown", onMouseDown); - - if (mouseUpHandler) - $(document).unbind("mouseup", mouseUpHandler); - }); - - } - - $.plot.plugins.push({ - init: init, - options: { - selection: { - mode: null, // one of null, "x", "y" or "xy" - color: "#e8cfac", - shape: "round", // one of "round", "miter", or "bevel" - minSize: 5 // minimum number of pixels - } - }, - name: 'selection', - version: '1.1' - }); -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.selection.min.js b/js/plugins/flot/jquery.flot.selection.min.js deleted file mode 100644 index 6e319781c..000000000 --- a/js/plugins/flot/jquery.flot.selection.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){function init(plot){var selection={first:{x:-1,y:-1},second:{x:-1,y:-1},show:false,active:false};var savedhandlers={};var mouseUpHandler=null;function onMouseMove(e){if(selection.active){updateSelection(e);plot.getPlaceholder().trigger("plotselecting",[getSelection()])}}function onMouseDown(e){if(e.which!=1)return;document.body.focus();if(document.onselectstart!==undefined&&savedhandlers.onselectstart==null){savedhandlers.onselectstart=document.onselectstart;document.onselectstart=function(){return false}}if(document.ondrag!==undefined&&savedhandlers.ondrag==null){savedhandlers.ondrag=document.ondrag;document.ondrag=function(){return false}}setSelectionPos(selection.first,e);selection.active=true;mouseUpHandler=function(e){onMouseUp(e)};$(document).one("mouseup",mouseUpHandler)}function onMouseUp(e){mouseUpHandler=null;if(document.onselectstart!==undefined)document.onselectstart=savedhandlers.onselectstart;if(document.ondrag!==undefined)document.ondrag=savedhandlers.ondrag;selection.active=false;updateSelection(e);if(selectionIsSane())triggerSelectedEvent();else{plot.getPlaceholder().trigger("plotunselected",[]);plot.getPlaceholder().trigger("plotselecting",[null])}return false}function getSelection(){if(!selectionIsSane())return null;if(!selection.show)return null;var r={},c1=selection.first,c2=selection.second;$.each(plot.getAxes(),function(name,axis){if(axis.used){var p1=axis.c2p(c1[axis.direction]),p2=axis.c2p(c2[axis.direction]);r[name]={from:Math.min(p1,p2),to:Math.max(p1,p2)}}});return r}function triggerSelectedEvent(){var r=getSelection();plot.getPlaceholder().trigger("plotselected",[r]);if(r.xaxis&&r.yaxis)plot.getPlaceholder().trigger("selected",[{x1:r.xaxis.from,y1:r.yaxis.from,x2:r.xaxis.to,y2:r.yaxis.to}])}function clamp(min,value,max){return valuemax?max:value}function setSelectionPos(pos,e){var o=plot.getOptions();var offset=plot.getPlaceholder().offset();var plotOffset=plot.getPlotOffset();pos.x=clamp(0,e.pageX-offset.left-plotOffset.left,plot.width());pos.y=clamp(0,e.pageY-offset.top-plotOffset.top,plot.height());if(o.selection.mode=="y")pos.x=pos==selection.first?0:plot.width();if(o.selection.mode=="x")pos.y=pos==selection.first?0:plot.height()}function updateSelection(pos){if(pos.pageX==null)return;setSelectionPos(selection.second,pos);if(selectionIsSane()){selection.show=true;plot.triggerRedrawOverlay()}else clearSelection(true)}function clearSelection(preventEvent){if(selection.show){selection.show=false;plot.triggerRedrawOverlay();if(!preventEvent)plot.getPlaceholder().trigger("plotunselected",[])}}function extractRange(ranges,coord){var axis,from,to,key,axes=plot.getAxes();for(var k in axes){axis=axes[k];if(axis.direction==coord){key=coord+axis.n+"axis";if(!ranges[key]&&axis.n==1)key=coord+"axis";if(ranges[key]){from=ranges[key].from;to=ranges[key].to;break}}}if(!ranges[key]){axis=coord=="x"?plot.getXAxes()[0]:plot.getYAxes()[0];from=ranges[coord+"1"];to=ranges[coord+"2"]}if(from!=null&&to!=null&&from>to){var tmp=from;from=to;to=tmp}return{from:from,to:to,axis:axis}}function setSelection(ranges,preventEvent){var axis,range,o=plot.getOptions();if(o.selection.mode=="y"){selection.first.x=0;selection.second.x=plot.width()}else{range=extractRange(ranges,"x");selection.first.x=range.axis.p2c(range.from);selection.second.x=range.axis.p2c(range.to)}if(o.selection.mode=="x"){selection.first.y=0;selection.second.y=plot.height()}else{range=extractRange(ranges,"y");selection.first.y=range.axis.p2c(range.from);selection.second.y=range.axis.p2c(range.to)}selection.show=true;plot.triggerRedrawOverlay();if(!preventEvent&&selectionIsSane())triggerSelectedEvent()}function selectionIsSane(){var minSize=plot.getOptions().selection.minSize;return Math.abs(selection.second.x-selection.first.x)>=minSize&&Math.abs(selection.second.y-selection.first.y)>=minSize}plot.clearSelection=clearSelection;plot.setSelection=setSelection;plot.getSelection=getSelection;plot.hooks.bindEvents.push(function(plot,eventHolder){var o=plot.getOptions();if(o.selection.mode!=null){eventHolder.mousemove(onMouseMove);eventHolder.mousedown(onMouseDown)}});plot.hooks.drawOverlay.push(function(plot,ctx){if(selection.show&&selectionIsSane()){var plotOffset=plot.getPlotOffset();var o=plot.getOptions();ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var c=$.color.parse(o.selection.color);ctx.strokeStyle=c.scale("a",.8).toString();ctx.lineWidth=1;ctx.lineJoin=o.selection.shape;ctx.fillStyle=c.scale("a",.4).toString();var x=Math.min(selection.first.x,selection.second.x)+.5,y=Math.min(selection.first.y,selection.second.y)+.5,w=Math.abs(selection.second.x-selection.first.x)-1,h=Math.abs(selection.second.y-selection.first.y)-1;ctx.fillRect(x,y,w,h);ctx.strokeRect(x,y,w,h);ctx.restore()}});plot.hooks.shutdown.push(function(plot,eventHolder){eventHolder.unbind("mousemove",onMouseMove);eventHolder.unbind("mousedown",onMouseDown);if(mouseUpHandler)$(document).unbind("mouseup",mouseUpHandler)})}$.plot.plugins.push({init:init,options:{selection:{mode:null,color:"#e8cfac",shape:"round",minSize:5}},name:"selection",version:"1.1"})})(jQuery); \ No newline at end of file diff --git a/js/plugins/flot/jquery.flot.stack.js b/js/plugins/flot/jquery.flot.stack.js deleted file mode 100644 index c01de67da..000000000 --- a/js/plugins/flot/jquery.flot.stack.js +++ /dev/null @@ -1,188 +0,0 @@ -/* Flot plugin for stacking data sets rather than overlyaing them. - -Copyright (c) 2007-2013 IOLA and Ole Laursen. -Licensed under the MIT license. - -The plugin assumes the data is sorted on x (or y if stacking horizontally). -For line charts, it is assumed that if a line has an undefined gap (from a -null point), then the line above it should have the same gap - insert zeros -instead of "null" if you want another behaviour. This also holds for the start -and end of the chart. Note that stacking a mix of positive and negative values -in most instances doesn't make sense (so it looks weird). - -Two or more series are stacked when their "stack" attribute is set to the same -key (which can be any number or string or just "true"). To specify the default -stack, you can set the stack option like this: - - series: { - stack: null/false, true, or a key (number/string) - } - -You can also specify it for a single series, like this: - - $.plot( $("#placeholder"), [{ - data: [ ... ], - stack: true - }]) - -The stacking order is determined by the order of the data series in the array -(later series end up on top of the previous). - -Internally, the plugin modifies the datapoints in each series, adding an -offset to the y value. For line series, extra data points are inserted through -interpolation. If there's a second y value, it's also adjusted (e.g for bar -charts or filled areas). - -*/ - -(function ($) { - var options = { - series: { stack: null } // or number/string - }; - - function init(plot) { - function findMatchingSeries(s, allseries) { - var res = null; - for (var i = 0; i < allseries.length; ++i) { - if (s == allseries[i]) - break; - - if (allseries[i].stack == s.stack) - res = allseries[i]; - } - - return res; - } - - function stackData(plot, s, datapoints) { - if (s.stack == null || s.stack === false) - return; - - var other = findMatchingSeries(s, plot.getData()); - if (!other) - return; - - var ps = datapoints.pointsize, - points = datapoints.points, - otherps = other.datapoints.pointsize, - otherpoints = other.datapoints.points, - newpoints = [], - px, py, intery, qx, qy, bottom, - withlines = s.lines.show, - horizontal = s.bars.horizontal, - withbottom = ps > 2 && (horizontal ? datapoints.format[2].x : datapoints.format[2].y), - withsteps = withlines && s.lines.steps, - fromgap = true, - keyOffset = horizontal ? 1 : 0, - accumulateOffset = horizontal ? 0 : 1, - i = 0, j = 0, l, m; - - while (true) { - if (i >= points.length) - break; - - l = newpoints.length; - - if (points[i] == null) { - // copy gaps - for (m = 0; m < ps; ++m) - newpoints.push(points[i + m]); - i += ps; - } - else if (j >= otherpoints.length) { - // for lines, we can't use the rest of the points - if (!withlines) { - for (m = 0; m < ps; ++m) - newpoints.push(points[i + m]); - } - i += ps; - } - else if (otherpoints[j] == null) { - // oops, got a gap - for (m = 0; m < ps; ++m) - newpoints.push(null); - fromgap = true; - j += otherps; - } - else { - // cases where we actually got two points - px = points[i + keyOffset]; - py = points[i + accumulateOffset]; - qx = otherpoints[j + keyOffset]; - qy = otherpoints[j + accumulateOffset]; - bottom = 0; - - if (px == qx) { - for (m = 0; m < ps; ++m) - newpoints.push(points[i + m]); - - newpoints[l + accumulateOffset] += qy; - bottom = qy; - - i += ps; - j += otherps; - } - else if (px > qx) { - // we got past point below, might need to - // insert interpolated extra point - if (withlines && i > 0 && points[i - ps] != null) { - intery = py + (points[i - ps + accumulateOffset] - py) * (qx - px) / (points[i - ps + keyOffset] - px); - newpoints.push(qx); - newpoints.push(intery + qy); - for (m = 2; m < ps; ++m) - newpoints.push(points[i + m]); - bottom = qy; - } - - j += otherps; - } - else { // px < qx - if (fromgap && withlines) { - // if we come from a gap, we just skip this point - i += ps; - continue; - } - - for (m = 0; m < ps; ++m) - newpoints.push(points[i + m]); - - // we might be able to interpolate a point below, - // this can give us a better y - if (withlines && j > 0 && otherpoints[j - otherps] != null) - bottom = qy + (otherpoints[j - otherps + accumulateOffset] - qy) * (px - qx) / (otherpoints[j - otherps + keyOffset] - qx); - - newpoints[l + accumulateOffset] += bottom; - - i += ps; - } - - fromgap = false; - - if (l != newpoints.length && withbottom) - newpoints[l + 2] += bottom; - } - - // maintain the line steps invariant - if (withsteps && l != newpoints.length && l > 0 - && newpoints[l] != null - && newpoints[l] != newpoints[l - ps] - && newpoints[l + 1] != newpoints[l - ps + 1]) { - for (m = 0; m < ps; ++m) - newpoints[l + ps + m] = newpoints[l + m]; - newpoints[l + 1] = newpoints[l - ps + 1]; - } - } - - datapoints.points = newpoints; - } - - plot.hooks.processDatapoints.push(stackData); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: 'stack', - version: '1.2' - }); -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.stack.min.js b/js/plugins/flot/jquery.flot.stack.min.js deleted file mode 100644 index 57785ebda..000000000 --- a/js/plugins/flot/jquery.flot.stack.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){var options={series:{stack:null}};function init(plot){function findMatchingSeries(s,allseries){var res=null;for(var i=0;i2&&(horizontal?datapoints.format[2].x:datapoints.format[2].y),withsteps=withlines&&s.lines.steps,fromgap=true,keyOffset=horizontal?1:0,accumulateOffset=horizontal?0:1,i=0,j=0,l,m;while(true){if(i>=points.length)break;l=newpoints.length;if(points[i]==null){for(m=0;m=otherpoints.length){if(!withlines){for(m=0;mqx){if(withlines&&i>0&&points[i-ps]!=null){intery=py+(points[i-ps+accumulateOffset]-py)*(qx-px)/(points[i-ps+keyOffset]-px);newpoints.push(qx);newpoints.push(intery+qy);for(m=2;m0&&otherpoints[j-otherps]!=null)bottom=qy+(otherpoints[j-otherps+accumulateOffset]-qy)*(px-qx)/(otherpoints[j-otherps+keyOffset]-qx);newpoints[l+accumulateOffset]+=bottom;i+=ps}fromgap=false;if(l!=newpoints.length&&withbottom)newpoints[l+2]+=bottom}if(withsteps&&l!=newpoints.length&&l>0&&newpoints[l]!=null&&newpoints[l]!=newpoints[l-ps]&&newpoints[l+1]!=newpoints[l-ps+1]){for(m=0;m s = r * sqrt(pi)/2 - var size = radius * Math.sqrt(Math.PI) / 2; - ctx.rect(x - size, y - size, size + size, size + size); - }, - diamond: function (ctx, x, y, radius, shadow) { - // pi * r^2 = 2s^2 => s = r * sqrt(pi/2) - var size = radius * Math.sqrt(Math.PI / 2); - ctx.moveTo(x - size, y); - ctx.lineTo(x, y - size); - ctx.lineTo(x + size, y); - ctx.lineTo(x, y + size); - ctx.lineTo(x - size, y); - }, - triangle: function (ctx, x, y, radius, shadow) { - // pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3)) - var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3)); - var height = size * Math.sin(Math.PI / 3); - ctx.moveTo(x - size/2, y + height/2); - ctx.lineTo(x + size/2, y + height/2); - if (!shadow) { - ctx.lineTo(x, y - height/2); - ctx.lineTo(x - size/2, y + height/2); - } - }, - cross: function (ctx, x, y, radius, shadow) { - // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 - var size = radius * Math.sqrt(Math.PI) / 2; - ctx.moveTo(x - size, y - size); - ctx.lineTo(x + size, y + size); - ctx.moveTo(x - size, y + size); - ctx.lineTo(x + size, y - size); - } - }; - - var s = series.points.symbol; - if (handlers[s]) - series.points.symbol = handlers[s]; - } - - function init(plot) { - plot.hooks.processDatapoints.push(processRawData); - } - - $.plot.plugins.push({ - init: init, - name: 'symbols', - version: '1.0' - }); -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.symbol.min.js b/js/plugins/flot/jquery.flot.symbol.min.js deleted file mode 100644 index 3eab213e5..000000000 --- a/js/plugins/flot/jquery.flot.symbol.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){function processRawData(plot,series,datapoints){var handlers={square:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(Math.PI)/2;ctx.rect(x-size,y-size,size+size,size+size)},diamond:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(Math.PI/2);ctx.moveTo(x-size,y);ctx.lineTo(x,y-size);ctx.lineTo(x+size,y);ctx.lineTo(x,y+size);ctx.lineTo(x-size,y)},triangle:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(2*Math.PI/Math.sin(Math.PI/3));var height=size*Math.sin(Math.PI/3);ctx.moveTo(x-size/2,y+height/2);ctx.lineTo(x+size/2,y+height/2);if(!shadow){ctx.lineTo(x,y-height/2);ctx.lineTo(x-size/2,y+height/2)}},cross:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(Math.PI)/2;ctx.moveTo(x-size,y-size);ctx.lineTo(x+size,y+size);ctx.moveTo(x-size,y+size);ctx.lineTo(x+size,y-size)}};var s=series.points.symbol;if(handlers[s])series.points.symbol=handlers[s]}function init(plot){plot.hooks.processDatapoints.push(processRawData)}$.plot.plugins.push({init:init,name:"symbols",version:"1.0"})})(jQuery); \ No newline at end of file diff --git a/js/plugins/flot/jquery.flot.threshold.js b/js/plugins/flot/jquery.flot.threshold.js deleted file mode 100644 index 2f6e63594..000000000 --- a/js/plugins/flot/jquery.flot.threshold.js +++ /dev/null @@ -1,142 +0,0 @@ -/* Flot plugin for thresholding data. - -Copyright (c) 2007-2013 IOLA and Ole Laursen. -Licensed under the MIT license. - -The plugin supports these options: - - series: { - threshold: { - below: number - color: colorspec - } - } - -It can also be applied to a single series, like this: - - $.plot( $("#placeholder"), [{ - data: [ ... ], - threshold: { ... } - }]) - -An array can be passed for multiple thresholding, like this: - - threshold: [{ - below: number1 - color: color1 - },{ - below: number2 - color: color2 - }] - -These multiple threshold objects can be passed in any order since they are -sorted by the processing function. - -The data points below "below" are drawn with the specified color. This makes -it easy to mark points below 0, e.g. for budget data. - -Internally, the plugin works by splitting the data into two series, above and -below the threshold. The extra series below the threshold will have its label -cleared and the special "originSeries" attribute set to the original series. -You may need to check for this in hover events. - -*/ - -(function ($) { - var options = { - series: { threshold: null } // or { below: number, color: color spec} - }; - - function init(plot) { - function thresholdData(plot, s, datapoints, below, color) { - var ps = datapoints.pointsize, i, x, y, p, prevp, - thresholded = $.extend({}, s); // note: shallow copy - - thresholded.datapoints = { points: [], pointsize: ps, format: datapoints.format }; - thresholded.label = null; - thresholded.color = color; - thresholded.threshold = null; - thresholded.originSeries = s; - thresholded.data = []; - - var origpoints = datapoints.points, - addCrossingPoints = s.lines.show; - - var threspoints = []; - var newpoints = []; - var m; - - for (i = 0; i < origpoints.length; i += ps) { - x = origpoints[i]; - y = origpoints[i + 1]; - - prevp = p; - if (y < below) - p = threspoints; - else - p = newpoints; - - if (addCrossingPoints && prevp != p && x != null - && i > 0 && origpoints[i - ps] != null) { - var interx = x + (below - y) * (x - origpoints[i - ps]) / (y - origpoints[i - ps + 1]); - prevp.push(interx); - prevp.push(below); - for (m = 2; m < ps; ++m) - prevp.push(origpoints[i + m]); - - p.push(null); // start new segment - p.push(null); - for (m = 2; m < ps; ++m) - p.push(origpoints[i + m]); - p.push(interx); - p.push(below); - for (m = 2; m < ps; ++m) - p.push(origpoints[i + m]); - } - - p.push(x); - p.push(y); - for (m = 2; m < ps; ++m) - p.push(origpoints[i + m]); - } - - datapoints.points = newpoints; - thresholded.datapoints.points = threspoints; - - if (thresholded.datapoints.points.length > 0) { - var origIndex = $.inArray(s, plot.getData()); - // Insert newly-generated series right after original one (to prevent it from becoming top-most) - plot.getData().splice(origIndex + 1, 0, thresholded); - } - - // FIXME: there are probably some edge cases left in bars - } - - function processThresholds(plot, s, datapoints) { - if (!s.threshold) - return; - - if (s.threshold instanceof Array) { - s.threshold.sort(function(a, b) { - return a.below - b.below; - }); - - $(s.threshold).each(function(i, th) { - thresholdData(plot, s, datapoints, th.below, th.color); - }); - } - else { - thresholdData(plot, s, datapoints, s.threshold.below, s.threshold.color); - } - } - - plot.hooks.processDatapoints.push(processThresholds); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: 'threshold', - version: '1.2' - }); -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.threshold.min.js b/js/plugins/flot/jquery.flot.threshold.min.js deleted file mode 100644 index a53849a56..000000000 --- a/js/plugins/flot/jquery.flot.threshold.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){var options={series:{threshold:null}};function init(plot){function thresholdData(plot,s,datapoints,below,color){var ps=datapoints.pointsize,i,x,y,p,prevp,thresholded=$.extend({},s);thresholded.datapoints={points:[],pointsize:ps,format:datapoints.format};thresholded.label=null;thresholded.color=color;thresholded.threshold=null;thresholded.originSeries=s;thresholded.data=[];var origpoints=datapoints.points,addCrossingPoints=s.lines.show;var threspoints=[];var newpoints=[];var m;for(i=0;i0&&origpoints[i-ps]!=null){var interx=x+(below-y)*(x-origpoints[i-ps])/(y-origpoints[i-ps+1]);prevp.push(interx);prevp.push(below);for(m=2;m0){var origIndex=$.inArray(s,plot.getData());plot.getData().splice(origIndex+1,0,thresholded)}}function processThresholds(plot,s,datapoints){if(!s.threshold)return;if(s.threshold instanceof Array){s.threshold.sort(function(a,b){return a.below-b.below});$(s.threshold).each(function(i,th){thresholdData(plot,s,datapoints,th.below,th.color)})}else{thresholdData(plot,s,datapoints,s.threshold.below,s.threshold.color)}}plot.hooks.processDatapoints.push(processThresholds)}$.plot.plugins.push({init:init,options:options,name:"threshold",version:"1.2"})})(jQuery); \ No newline at end of file diff --git a/js/plugins/flot/jquery.flot.time.js b/js/plugins/flot/jquery.flot.time.js deleted file mode 100644 index 15f52815f..000000000 --- a/js/plugins/flot/jquery.flot.time.js +++ /dev/null @@ -1,431 +0,0 @@ -/* Pretty handling of time axes. - -Copyright (c) 2007-2013 IOLA and Ole Laursen. -Licensed under the MIT license. - -Set axis.mode to "time" to enable. See the section "Time series data" in -API.txt for details. - -*/ - -(function($) { - - var options = { - xaxis: { - timezone: null, // "browser" for local to the client or timezone for timezone-js - timeformat: null, // format string to use - twelveHourClock: false, // 12 or 24 time in time mode - monthNames: null // list of names of months - } - }; - - // round to nearby lower multiple of base - - function floorInBase(n, base) { - return base * Math.floor(n / base); - } - - // Returns a string with the date d formatted according to fmt. - // A subset of the Open Group's strftime format is supported. - - function formatDate(d, fmt, monthNames, dayNames) { - - if (typeof d.strftime == "function") { - return d.strftime(fmt); - } - - var leftPad = function(n, pad) { - n = "" + n; - pad = "" + (pad == null ? "0" : pad); - return n.length == 1 ? pad + n : n; - }; - - var r = []; - var escape = false; - var hours = d.getHours(); - var isAM = hours < 12; - - if (monthNames == null) { - monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; - } - - if (dayNames == null) { - dayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; - } - - var hours12; - - if (hours > 12) { - hours12 = hours - 12; - } else if (hours == 0) { - hours12 = 12; - } else { - hours12 = hours; - } - - for (var i = 0; i < fmt.length; ++i) { - - var c = fmt.charAt(i); - - if (escape) { - switch (c) { - case 'a': c = "" + dayNames[d.getDay()]; break; - case 'b': c = "" + monthNames[d.getMonth()]; break; - case 'd': c = leftPad(d.getDate()); break; - case 'e': c = leftPad(d.getDate(), " "); break; - case 'h': // For back-compat with 0.7; remove in 1.0 - case 'H': c = leftPad(hours); break; - case 'I': c = leftPad(hours12); break; - case 'l': c = leftPad(hours12, " "); break; - case 'm': c = leftPad(d.getMonth() + 1); break; - case 'M': c = leftPad(d.getMinutes()); break; - // quarters not in Open Group's strftime specification - case 'q': - c = "" + (Math.floor(d.getMonth() / 3) + 1); break; - case 'S': c = leftPad(d.getSeconds()); break; - case 'y': c = leftPad(d.getFullYear() % 100); break; - case 'Y': c = "" + d.getFullYear(); break; - case 'p': c = (isAM) ? ("" + "am") : ("" + "pm"); break; - case 'P': c = (isAM) ? ("" + "AM") : ("" + "PM"); break; - case 'w': c = "" + d.getDay(); break; - } - r.push(c); - escape = false; - } else { - if (c == "%") { - escape = true; - } else { - r.push(c); - } - } - } - - return r.join(""); - } - - // To have a consistent view of time-based data independent of which time - // zone the client happens to be in we need a date-like object independent - // of time zones. This is done through a wrapper that only calls the UTC - // versions of the accessor methods. - - function makeUtcWrapper(d) { - - function addProxyMethod(sourceObj, sourceMethod, targetObj, targetMethod) { - sourceObj[sourceMethod] = function() { - return targetObj[targetMethod].apply(targetObj, arguments); - }; - }; - - var utc = { - date: d - }; - - // support strftime, if found - - if (d.strftime != undefined) { - addProxyMethod(utc, "strftime", d, "strftime"); - } - - addProxyMethod(utc, "getTime", d, "getTime"); - addProxyMethod(utc, "setTime", d, "setTime"); - - var props = ["Date", "Day", "FullYear", "Hours", "Milliseconds", "Minutes", "Month", "Seconds"]; - - for (var p = 0; p < props.length; p++) { - addProxyMethod(utc, "get" + props[p], d, "getUTC" + props[p]); - addProxyMethod(utc, "set" + props[p], d, "setUTC" + props[p]); - } - - return utc; - }; - - // select time zone strategy. This returns a date-like object tied to the - // desired timezone - - function dateGenerator(ts, opts) { - if (opts.timezone == "browser") { - return new Date(ts); - } else if (!opts.timezone || opts.timezone == "utc") { - return makeUtcWrapper(new Date(ts)); - } else if (typeof timezoneJS != "undefined" && typeof timezoneJS.Date != "undefined") { - var d = new timezoneJS.Date(); - // timezone-js is fickle, so be sure to set the time zone before - // setting the time. - d.setTimezone(opts.timezone); - d.setTime(ts); - return d; - } else { - return makeUtcWrapper(new Date(ts)); - } - } - - // map of app. size of time units in milliseconds - - var timeUnitSize = { - "second": 1000, - "minute": 60 * 1000, - "hour": 60 * 60 * 1000, - "day": 24 * 60 * 60 * 1000, - "month": 30 * 24 * 60 * 60 * 1000, - "quarter": 3 * 30 * 24 * 60 * 60 * 1000, - "year": 365.2425 * 24 * 60 * 60 * 1000 - }; - - // the allowed tick sizes, after 1 year we use - // an integer algorithm - - var baseSpec = [ - [1, "second"], [2, "second"], [5, "second"], [10, "second"], - [30, "second"], - [1, "minute"], [2, "minute"], [5, "minute"], [10, "minute"], - [30, "minute"], - [1, "hour"], [2, "hour"], [4, "hour"], - [8, "hour"], [12, "hour"], - [1, "day"], [2, "day"], [3, "day"], - [0.25, "month"], [0.5, "month"], [1, "month"], - [2, "month"] - ]; - - // we don't know which variant(s) we'll need yet, but generating both is - // cheap - - var specMonths = baseSpec.concat([[3, "month"], [6, "month"], - [1, "year"]]); - var specQuarters = baseSpec.concat([[1, "quarter"], [2, "quarter"], - [1, "year"]]); - - function init(plot) { - plot.hooks.processOptions.push(function (plot, options) { - $.each(plot.getAxes(), function(axisName, axis) { - - var opts = axis.options; - - if (opts.mode == "time") { - axis.tickGenerator = function(axis) { - - var ticks = []; - var d = dateGenerator(axis.min, opts); - var minSize = 0; - - // make quarter use a possibility if quarters are - // mentioned in either of these options - - var spec = (opts.tickSize && opts.tickSize[1] === - "quarter") || - (opts.minTickSize && opts.minTickSize[1] === - "quarter") ? specQuarters : specMonths; - - if (opts.minTickSize != null) { - if (typeof opts.tickSize == "number") { - minSize = opts.tickSize; - } else { - minSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]]; - } - } - - for (var i = 0; i < spec.length - 1; ++i) { - if (axis.delta < (spec[i][0] * timeUnitSize[spec[i][1]] - + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2 - && spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) { - break; - } - } - - var size = spec[i][0]; - var unit = spec[i][1]; - - // special-case the possibility of several years - - if (unit == "year") { - - // if given a minTickSize in years, just use it, - // ensuring that it's an integer - - if (opts.minTickSize != null && opts.minTickSize[1] == "year") { - size = Math.floor(opts.minTickSize[0]); - } else { - - var magn = Math.pow(10, Math.floor(Math.log(axis.delta / timeUnitSize.year) / Math.LN10)); - var norm = (axis.delta / timeUnitSize.year) / magn; - - if (norm < 1.5) { - size = 1; - } else if (norm < 3) { - size = 2; - } else if (norm < 7.5) { - size = 5; - } else { - size = 10; - } - - size *= magn; - } - - // minimum size for years is 1 - - if (size < 1) { - size = 1; - } - } - - axis.tickSize = opts.tickSize || [size, unit]; - var tickSize = axis.tickSize[0]; - unit = axis.tickSize[1]; - - var step = tickSize * timeUnitSize[unit]; - - if (unit == "second") { - d.setSeconds(floorInBase(d.getSeconds(), tickSize)); - } else if (unit == "minute") { - d.setMinutes(floorInBase(d.getMinutes(), tickSize)); - } else if (unit == "hour") { - d.setHours(floorInBase(d.getHours(), tickSize)); - } else if (unit == "month") { - d.setMonth(floorInBase(d.getMonth(), tickSize)); - } else if (unit == "quarter") { - d.setMonth(3 * floorInBase(d.getMonth() / 3, - tickSize)); - } else if (unit == "year") { - d.setFullYear(floorInBase(d.getFullYear(), tickSize)); - } - - // reset smaller components - - d.setMilliseconds(0); - - if (step >= timeUnitSize.minute) { - d.setSeconds(0); - } - if (step >= timeUnitSize.hour) { - d.setMinutes(0); - } - if (step >= timeUnitSize.day) { - d.setHours(0); - } - if (step >= timeUnitSize.day * 4) { - d.setDate(1); - } - if (step >= timeUnitSize.month * 2) { - d.setMonth(floorInBase(d.getMonth(), 3)); - } - if (step >= timeUnitSize.quarter * 2) { - d.setMonth(floorInBase(d.getMonth(), 6)); - } - if (step >= timeUnitSize.year) { - d.setMonth(0); - } - - var carry = 0; - var v = Number.NaN; - var prev; - - do { - - prev = v; - v = d.getTime(); - ticks.push(v); - - if (unit == "month" || unit == "quarter") { - if (tickSize < 1) { - - // a bit complicated - we'll divide the - // month/quarter up but we need to take - // care of fractions so we don't end up in - // the middle of a day - - d.setDate(1); - var start = d.getTime(); - d.setMonth(d.getMonth() + - (unit == "quarter" ? 3 : 1)); - var end = d.getTime(); - d.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize); - carry = d.getHours(); - d.setHours(0); - } else { - d.setMonth(d.getMonth() + - tickSize * (unit == "quarter" ? 3 : 1)); - } - } else if (unit == "year") { - d.setFullYear(d.getFullYear() + tickSize); - } else { - d.setTime(v + step); - } - } while (v < axis.max && v != prev); - - return ticks; - }; - - axis.tickFormatter = function (v, axis) { - - var d = dateGenerator(v, axis.options); - - // first check global format - - if (opts.timeformat != null) { - return formatDate(d, opts.timeformat, opts.monthNames, opts.dayNames); - } - - // possibly use quarters if quarters are mentioned in - // any of these places - - var useQuarters = (axis.options.tickSize && - axis.options.tickSize[1] == "quarter") || - (axis.options.minTickSize && - axis.options.minTickSize[1] == "quarter"); - - var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]]; - var span = axis.max - axis.min; - var suffix = (opts.twelveHourClock) ? " %p" : ""; - var hourCode = (opts.twelveHourClock) ? "%I" : "%H"; - var fmt; - - if (t < timeUnitSize.minute) { - fmt = hourCode + ":%M:%S" + suffix; - } else if (t < timeUnitSize.day) { - if (span < 2 * timeUnitSize.day) { - fmt = hourCode + ":%M" + suffix; - } else { - fmt = "%b %d " + hourCode + ":%M" + suffix; - } - } else if (t < timeUnitSize.month) { - fmt = "%b %d"; - } else if ((useQuarters && t < timeUnitSize.quarter) || - (!useQuarters && t < timeUnitSize.year)) { - if (span < timeUnitSize.year) { - fmt = "%b"; - } else { - fmt = "%b %Y"; - } - } else if (useQuarters && t < timeUnitSize.year) { - if (span < timeUnitSize.year) { - fmt = "Q%q"; - } else { - fmt = "Q%q %Y"; - } - } else { - fmt = "%Y"; - } - - var rt = formatDate(d, fmt, opts.monthNames, opts.dayNames); - - return rt; - }; - } - }); - }); - } - - $.plot.plugins.push({ - init: init, - options: options, - name: 'time', - version: '1.0' - }); - - // Time-axis support used to be in Flot core, which exposed the - // formatDate function on the plot object. Various plugins depend - // on the function, so we need to re-expose it here. - - $.plot.formatDate = formatDate; - -})(jQuery); diff --git a/js/plugins/flot/jquery.flot.time.min.js b/js/plugins/flot/jquery.flot.time.min.js deleted file mode 100644 index aaf319c91..000000000 --- a/js/plugins/flot/jquery.flot.time.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){var options={xaxis:{timezone:null,timeformat:null,twelveHourClock:false,monthNames:null}};function floorInBase(n,base){return base*Math.floor(n/base)}function formatDate(d,fmt,monthNames,dayNames){if(typeof d.strftime=="function"){return d.strftime(fmt)}var leftPad=function(n,pad){n=""+n;pad=""+(pad==null?"0":pad);return n.length==1?pad+n:n};var r=[];var escape=false;var hours=d.getHours();var isAM=hours<12;if(monthNames==null){monthNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}if(dayNames==null){dayNames=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}var hours12;if(hours>12){hours12=hours-12}else if(hours==0){hours12=12}else{hours12=hours}for(var i=0;i=minSize){break}}var size=spec[i][0];var unit=spec[i][1];if(unit=="year"){if(opts.minTickSize!=null&&opts.minTickSize[1]=="year"){size=Math.floor(opts.minTickSize[0])}else{var magn=Math.pow(10,Math.floor(Math.log(axis.delta/timeUnitSize.year)/Math.LN10));var norm=axis.delta/timeUnitSize.year/magn;if(norm<1.5){size=1}else if(norm<3){size=2}else if(norm<7.5){size=5}else{size=10}size*=magn}if(size<1){size=1}}axis.tickSize=opts.tickSize||[size,unit];var tickSize=axis.tickSize[0];unit=axis.tickSize[1];var step=tickSize*timeUnitSize[unit];if(unit=="second"){d.setSeconds(floorInBase(d.getSeconds(),tickSize))}else if(unit=="minute"){d.setMinutes(floorInBase(d.getMinutes(),tickSize))}else if(unit=="hour"){d.setHours(floorInBase(d.getHours(),tickSize))}else if(unit=="month"){d.setMonth(floorInBase(d.getMonth(),tickSize))}else if(unit=="quarter"){d.setMonth(3*floorInBase(d.getMonth()/3,tickSize))}else if(unit=="year"){d.setFullYear(floorInBase(d.getFullYear(),tickSize))}d.setMilliseconds(0);if(step>=timeUnitSize.minute){d.setSeconds(0)}if(step>=timeUnitSize.hour){d.setMinutes(0)}if(step>=timeUnitSize.day){d.setHours(0)}if(step>=timeUnitSize.day*4){d.setDate(1)}if(step>=timeUnitSize.month*2){d.setMonth(floorInBase(d.getMonth(),3))}if(step>=timeUnitSize.quarter*2){d.setMonth(floorInBase(d.getMonth(),6))}if(step>=timeUnitSize.year){d.setMonth(0)}var carry=0;var v=Number.NaN;var prev;do{prev=v;v=d.getTime();ticks.push(v);if(unit=="month"||unit=="quarter"){if(tickSize<1){d.setDate(1);var start=d.getTime();d.setMonth(d.getMonth()+(unit=="quarter"?3:1));var end=d.getTime();d.setTime(v+carry*timeUnitSize.hour+(end-start)*tickSize);carry=d.getHours();d.setHours(0)}else{d.setMonth(d.getMonth()+tickSize*(unit=="quarter"?3:1))}}else if(unit=="year"){d.setFullYear(d.getFullYear()+tickSize)}else{d.setTime(v+step)}}while(v‹", - next: "", - prevYear: "«", - nextYear: "»", - today: 'today', - month: 'month', - week: 'week', - day: 'day' - }, - - // jquery-ui theming - theme: false, - buttonIcons: { - prev: 'circle-triangle-w', - next: 'circle-triangle-e' - }, - - //selectable: false, - unselectAuto: true, - - dropAccept: '*', - - handleWindowResize: true - -}; - -// right-to-left defaults -var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonText: { - prev: "", - next: "", - prevYear: "»", - nextYear: "«" - }, - buttonIcons: { - prev: 'circle-triangle-e', - next: 'circle-triangle-w' - } -}; - - - -;; - -var fc = $.fullCalendar = { version: "1.6.4" }; -var fcViews = fc.views = {}; - - -$.fn.fullCalendar = function(options) { - - - // method calling - if (typeof options == 'string') { - var args = Array.prototype.slice.call(arguments, 1); - var res; - this.each(function() { - var calendar = $.data(this, 'fullCalendar'); - if (calendar && $.isFunction(calendar[options])) { - var r = calendar[options].apply(calendar, args); - if (res === undefined) { - res = r; - } - if (options == 'destroy') { - $.removeData(this, 'fullCalendar'); - } - } - }); - if (res !== undefined) { - return res; - } - return this; - } - - options = options || {}; - - // would like to have this logic in EventManager, but needs to happen before options are recursively extended - var eventSources = options.eventSources || []; - delete options.eventSources; - if (options.events) { - eventSources.push(options.events); - delete options.events; - } - - - options = $.extend(true, {}, - defaults, - (options.isRTL || options.isRTL===undefined && defaults.isRTL) ? rtlDefaults : {}, - options - ); - - - this.each(function(i, _element) { - var element = $(_element); - var calendar = new Calendar(element, options, eventSources); - element.data('fullCalendar', calendar); // TODO: look into memory leak implications - calendar.render(); - }); - - - return this; - -}; - - -// function for adding/overriding defaults -function setDefaults(d) { - $.extend(true, defaults, d); -} - - - -;; - - -function Calendar(element, options, eventSources) { - var t = this; - - - // exports - t.options = options; - t.render = render; - t.destroy = destroy; - t.refetchEvents = refetchEvents; - t.reportEvents = reportEvents; - t.reportEventChange = reportEventChange; - t.rerenderEvents = rerenderEvents; - t.changeView = changeView; - t.select = select; - t.unselect = unselect; - t.prev = prev; - t.next = next; - t.prevYear = prevYear; - t.nextYear = nextYear; - t.today = today; - t.gotoDate = gotoDate; - t.incrementDate = incrementDate; - t.formatDate = function(format, date) { return formatDate(format, date, options) }; - t.formatDates = function(format, date1, date2) { return formatDates(format, date1, date2, options) }; - t.getDate = getDate; - t.getView = getView; - t.option = option; - t.trigger = trigger; - - - // imports - EventManager.call(t, options, eventSources); - var isFetchNeeded = t.isFetchNeeded; - var fetchEvents = t.fetchEvents; - - - // locals - var _element = element[0]; - var header; - var headerElement; - var content; - var tm; // for making theme classes - var currentView; - var elementOuterWidth; - var suggestedViewHeight; - var resizeUID = 0; - var ignoreWindowResize = 0; - var date = new Date(); - var events = []; - var _dragElement; - - - - /* Main Rendering - -----------------------------------------------------------------------------*/ - - - setYMD(date, options.year, options.month, options.date); - - - function render(inc) { - if (!content) { - initialRender(); - } - else if (elementVisible()) { - // mainly for the public API - calcSize(); - _renderView(inc); - } - } - - - function initialRender() { - tm = options.theme ? 'ui' : 'fc'; - element.addClass('fc'); - if (options.isRTL) { - element.addClass('fc-rtl'); - } - else { - element.addClass('fc-ltr'); - } - if (options.theme) { - element.addClass('ui-widget'); - } - - content = $("
    ") - .prependTo(element); - - header = new Header(t, options); - headerElement = header.render(); - if (headerElement) { - element.prepend(headerElement); - } - - changeView(options.defaultView); - - if (options.handleWindowResize) { - $(window).resize(windowResize); - } - - // needed for IE in a 0x0 iframe, b/c when it is resized, never triggers a windowResize - if (!bodyVisible()) { - lateRender(); - } - } - - - // called when we know the calendar couldn't be rendered when it was initialized, - // but we think it's ready now - function lateRender() { - setTimeout(function() { // IE7 needs this so dimensions are calculated correctly - if (!currentView.start && bodyVisible()) { // !currentView.start makes sure this never happens more than once - renderView(); - } - },0); - } - - - function destroy() { - - if (currentView) { - trigger('viewDestroy', currentView, currentView, currentView.element); - currentView.triggerEventDestroy(); - } - - $(window).unbind('resize', windowResize); - - header.destroy(); - content.remove(); - element.removeClass('fc fc-rtl ui-widget'); - } - - - function elementVisible() { - return element.is(':visible'); - } - - - function bodyVisible() { - return $('body').is(':visible'); - } - - - - /* View Rendering - -----------------------------------------------------------------------------*/ - - - function changeView(newViewName) { - if (!currentView || newViewName != currentView.name) { - _changeView(newViewName); - } - } - - - function _changeView(newViewName) { - ignoreWindowResize++; - - if (currentView) { - trigger('viewDestroy', currentView, currentView, currentView.element); - unselect(); - currentView.triggerEventDestroy(); // trigger 'eventDestroy' for each event - freezeContentHeight(); - currentView.element.remove(); - header.deactivateButton(currentView.name); - } - - header.activateButton(newViewName); - - currentView = new fcViews[newViewName]( - $("
    ") - .appendTo(content), - t // the calendar object - ); - - renderView(); - unfreezeContentHeight(); - - ignoreWindowResize--; - } - - - function renderView(inc) { - if ( - !currentView.start || // never rendered before - inc || date < currentView.start || date >= currentView.end // or new date range - ) { - if (elementVisible()) { - _renderView(inc); - } - } - } - - - function _renderView(inc) { // assumes elementVisible - ignoreWindowResize++; - - if (currentView.start) { // already been rendered? - trigger('viewDestroy', currentView, currentView, currentView.element); - unselect(); - clearEvents(); - } - - freezeContentHeight(); - currentView.render(date, inc || 0); // the view's render method ONLY renders the skeleton, nothing else - setSize(); - unfreezeContentHeight(); - (currentView.afterRender || noop)(); - - updateTitle(); - updateTodayButton(); - - trigger('viewRender', currentView, currentView, currentView.element); - currentView.trigger('viewDisplay', _element); // deprecated - - ignoreWindowResize--; - - getAndRenderEvents(); - } - - - - /* Resizing - -----------------------------------------------------------------------------*/ - - - function updateSize() { - if (elementVisible()) { - unselect(); - clearEvents(); - calcSize(); - setSize(); - renderEvents(); - } - } - - - function calcSize() { // assumes elementVisible - if (options.contentHeight) { - suggestedViewHeight = options.contentHeight; - } - else if (options.height) { - suggestedViewHeight = options.height - (headerElement ? headerElement.height() : 0) - vsides(content); - } - else { - suggestedViewHeight = Math.round(content.width() / Math.max(options.aspectRatio, .5)); - } - } - - - function setSize() { // assumes elementVisible - - if (suggestedViewHeight === undefined) { - calcSize(); // for first time - // NOTE: we don't want to recalculate on every renderView because - // it could result in oscillating heights due to scrollbars. - } - - ignoreWindowResize++; - currentView.setHeight(suggestedViewHeight); - currentView.setWidth(content.width()); - ignoreWindowResize--; - - elementOuterWidth = element.outerWidth(); - } - - - function windowResize() { - if (!ignoreWindowResize) { - if (currentView.start) { // view has already been rendered - var uid = ++resizeUID; - setTimeout(function() { // add a delay - if (uid == resizeUID && !ignoreWindowResize && elementVisible()) { - if (elementOuterWidth != (elementOuterWidth = element.outerWidth())) { - ignoreWindowResize++; // in case the windowResize callback changes the height - updateSize(); - currentView.trigger('windowResize', _element); - ignoreWindowResize--; - } - } - }, 200); - }else{ - // calendar must have been initialized in a 0x0 iframe that has just been resized - lateRender(); - } - } - } - - - - /* Event Fetching/Rendering - -----------------------------------------------------------------------------*/ - // TODO: going forward, most of this stuff should be directly handled by the view - - - function refetchEvents() { // can be called as an API method - clearEvents(); - fetchAndRenderEvents(); - } - - - function rerenderEvents(modifiedEventID) { // can be called as an API method - clearEvents(); - renderEvents(modifiedEventID); - } - - - function renderEvents(modifiedEventID) { // TODO: remove modifiedEventID hack - if (elementVisible()) { - currentView.setEventData(events); // for View.js, TODO: unify with renderEvents - currentView.renderEvents(events, modifiedEventID); // actually render the DOM elements - currentView.trigger('eventAfterAllRender'); - } - } - - - function clearEvents() { - currentView.triggerEventDestroy(); // trigger 'eventDestroy' for each event - currentView.clearEvents(); // actually remove the DOM elements - currentView.clearEventData(); // for View.js, TODO: unify with clearEvents - } - - - function getAndRenderEvents() { - if (!options.lazyFetching || isFetchNeeded(currentView.visStart, currentView.visEnd)) { - fetchAndRenderEvents(); - } - else { - renderEvents(); - } - } - - - function fetchAndRenderEvents() { - fetchEvents(currentView.visStart, currentView.visEnd); - // ... will call reportEvents - // ... which will call renderEvents - } - - - // called when event data arrives - function reportEvents(_events) { - events = _events; - renderEvents(); - } - - - // called when a single event's data has been changed - function reportEventChange(eventID) { - rerenderEvents(eventID); - } - - - - /* Header Updating - -----------------------------------------------------------------------------*/ - - - function updateTitle() { - header.updateTitle(currentView.title); - } - - - function updateTodayButton() { - var today = new Date(); - if (today >= currentView.start && today < currentView.end) { - header.disableButton('today'); - } - else { - header.enableButton('today'); - } - } - - - - /* Selection - -----------------------------------------------------------------------------*/ - - - function select(start, end, allDay) { - currentView.select(start, end, allDay===undefined ? true : allDay); - } - - - function unselect() { // safe to be called before renderView - if (currentView) { - currentView.unselect(); - } - } - - - - /* Date - -----------------------------------------------------------------------------*/ - - - function prev() { - renderView(-1); - } - - - function next() { - renderView(1); - } - - - function prevYear() { - addYears(date, -1); - renderView(); - } - - - function nextYear() { - addYears(date, 1); - renderView(); - } - - - function today() { - date = new Date(); - renderView(); - } - - - function gotoDate(year, month, dateOfMonth) { - if (year instanceof Date) { - date = cloneDate(year); // provided 1 argument, a Date - }else{ - setYMD(date, year, month, dateOfMonth); - } - renderView(); - } - - - function incrementDate(years, months, days) { - if (years !== undefined) { - addYears(date, years); - } - if (months !== undefined) { - addMonths(date, months); - } - if (days !== undefined) { - addDays(date, days); - } - renderView(); - } - - - function getDate() { - return cloneDate(date); - } - - - - /* Height "Freezing" - -----------------------------------------------------------------------------*/ - - - function freezeContentHeight() { - content.css({ - width: '100%', - height: content.height(), - overflow: 'hidden' - }); - } - - - function unfreezeContentHeight() { - content.css({ - width: '', - height: '', - overflow: '' - }); - } - - - - /* Misc - -----------------------------------------------------------------------------*/ - - - function getView() { - return currentView; - } - - - function option(name, value) { - if (value === undefined) { - return options[name]; - } - if (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') { - options[name] = value; - updateSize(); - } - } - - - function trigger(name, thisObj) { - if (options[name]) { - return options[name].apply( - thisObj || _element, - Array.prototype.slice.call(arguments, 2) - ); - } - } - - - - /* External Dragging - ------------------------------------------------------------------------*/ - - if (options.droppable) { - $(document) - .bind('dragstart', function(ev, ui) { - var _e = ev.target; - var e = $(_e); - if (!e.parents('.fc').length) { // not already inside a calendar - var accept = options.dropAccept; - if ($.isFunction(accept) ? accept.call(_e, e) : e.is(accept)) { - _dragElement = _e; - currentView.dragStart(_dragElement, ev, ui); - } - } - }) - .bind('dragstop', function(ev, ui) { - if (_dragElement) { - currentView.dragStop(_dragElement, ev, ui); - _dragElement = null; - } - }); - } - - -} - -;; - -function Header(calendar, options) { - var t = this; - - - // exports - t.render = render; - t.destroy = destroy; - t.updateTitle = updateTitle; - t.activateButton = activateButton; - t.deactivateButton = deactivateButton; - t.disableButton = disableButton; - t.enableButton = enableButton; - - - // locals - var element = $([]); - var tm; - - - - function render() { - tm = options.theme ? 'ui' : 'fc'; - var sections = options.header; - if (sections) { - element = $("") - .append( - $("") - .append(renderSection('left')) - .append(renderSection('center')) - .append(renderSection('right')) - ); - return element; - } - } - - - function destroy() { - element.remove(); - } - - - function renderSection(position) { - var e = $(""; - - if (showWeekNumbers) { - html += - ""; - } - - for (col=0; col" + - htmlEscape(formatDate(date, colFormat)) + - ""; - } - - html += ""; - - return html; - } - - - function buildBodyHTML() { - var contentClass = tm + "-widget-content"; - var html = ''; - var row; - var col; - var date; - - html += ""; - - for (row=0; row" + - "
    " + - htmlEscape(formatDate(date, weekNumberFormat)) + - "
    " + - ""; - } - - for (col=0; col" + - "
    "; - - if (showNumbers) { - html += "
    " + date.getDate() + "
    "; - } - - html += - "
    " + - "
     
    " + - "
    " + - "
    " + - ""; - - return html; - } - - - - /* Dimensions - -----------------------------------------------------------*/ - - - function setHeight(height) { - viewHeight = height; - - var bodyHeight = viewHeight - head.height(); - var rowHeight; - var rowHeightLast; - var cell; - - if (opt('weekMode') == 'variable') { - rowHeight = rowHeightLast = Math.floor(bodyHeight / (rowCnt==1 ? 2 : 6)); - }else{ - rowHeight = Math.floor(bodyHeight / rowCnt); - rowHeightLast = bodyHeight - rowHeight * (rowCnt-1); - } - - bodyFirstCells.each(function(i, _cell) { - if (i < rowCnt) { - cell = $(_cell); - cell.find('> div').css( - 'min-height', - (i==rowCnt-1 ? rowHeightLast : rowHeight) - vsides(cell) - ); - } - }); - - } - - - function setWidth(width) { - viewWidth = width; - colPositions.clear(); - colContentPositions.clear(); - - weekNumberWidth = 0; - if (showWeekNumbers) { - weekNumberWidth = head.find('th.fc-week-number').outerWidth(); - } - - colWidth = Math.floor((viewWidth - weekNumberWidth) / colCnt); - setOuterWidth(headCells.slice(0, -1), colWidth); - } - - - - /* Day clicking and binding - -----------------------------------------------------------*/ - - - function dayBind(days) { - days.click(dayClick) - .mousedown(daySelectionMousedown); - } - - - function dayClick(ev) { - if (!opt('selectable')) { // if selectable, SelectionManager will worry about dayClick - var date = parseISO8601($(this).data('date')); - trigger('dayClick', this, date, true, ev); - } - } - - - - /* Semi-transparent Overlay Helpers - ------------------------------------------------------*/ - // TODO: should be consolidated with AgendaView's methods - - - function renderDayOverlay(overlayStart, overlayEnd, refreshCoordinateGrid) { // overlayEnd is exclusive - - if (refreshCoordinateGrid) { - coordinateGrid.build(); - } - - var segments = rangeToSegments(overlayStart, overlayEnd); - - for (var i=0; i") - .appendTo(element); - - if (opt('allDaySlot')) { - - daySegmentContainer = - $("
    ") - .appendTo(slotLayer); - - s = - "
    "); - var buttonStr = options.header[position]; - if (buttonStr) { - $.each(buttonStr.split(' '), function(i) { - if (i > 0) { - e.append(""); - } - var prevButton; - $.each(this.split(','), function(j, buttonName) { - if (buttonName == 'title') { - e.append("

     

    "); - if (prevButton) { - prevButton.addClass(tm + '-corner-right'); - } - prevButton = null; - }else{ - var buttonClick; - if (calendar[buttonName]) { - buttonClick = calendar[buttonName]; // calendar method - } - else if (fcViews[buttonName]) { - buttonClick = function() { - button.removeClass(tm + '-state-hover'); // forget why - calendar.changeView(buttonName); - }; - } - if (buttonClick) { - var icon = options.theme ? smartProperty(options.buttonIcons, buttonName) : null; // why are we using smartProperty here? - var text = smartProperty(options.buttonText, buttonName); // why are we using smartProperty here? - var button = $( - "" + - (icon ? - "" + - "" + - "" : - text - ) + - "" - ) - .click(function() { - if (!button.hasClass(tm + '-state-disabled')) { - buttonClick(); - } - }) - .mousedown(function() { - button - .not('.' + tm + '-state-active') - .not('.' + tm + '-state-disabled') - .addClass(tm + '-state-down'); - }) - .mouseup(function() { - button.removeClass(tm + '-state-down'); - }) - .hover( - function() { - button - .not('.' + tm + '-state-active') - .not('.' + tm + '-state-disabled') - .addClass(tm + '-state-hover'); - }, - function() { - button - .removeClass(tm + '-state-hover') - .removeClass(tm + '-state-down'); - } - ) - .appendTo(e); - disableTextSelection(button); - if (!prevButton) { - button.addClass(tm + '-corner-left'); - } - prevButton = button; - } - } - }); - if (prevButton) { - prevButton.addClass(tm + '-corner-right'); - } - }); - } - return e; - } - - - function updateTitle(html) { - element.find('h2') - .html(html); - } - - - function activateButton(buttonName) { - element.find('span.fc-button-' + buttonName) - .addClass(tm + '-state-active'); - } - - - function deactivateButton(buttonName) { - element.find('span.fc-button-' + buttonName) - .removeClass(tm + '-state-active'); - } - - - function disableButton(buttonName) { - element.find('span.fc-button-' + buttonName) - .addClass(tm + '-state-disabled'); - } - - - function enableButton(buttonName) { - element.find('span.fc-button-' + buttonName) - .removeClass(tm + '-state-disabled'); - } - - -} - -;; - -fc.sourceNormalizers = []; -fc.sourceFetchers = []; - -var ajaxDefaults = { - dataType: 'json', - cache: false -}; - -var eventGUID = 1; - - -function EventManager(options, _sources) { - var t = this; - - - // exports - t.isFetchNeeded = isFetchNeeded; - t.fetchEvents = fetchEvents; - t.addEventSource = addEventSource; - t.removeEventSource = removeEventSource; - t.updateEvent = updateEvent; - t.renderEvent = renderEvent; - t.removeEvents = removeEvents; - t.clientEvents = clientEvents; - t.normalizeEvent = normalizeEvent; - - - // imports - var trigger = t.trigger; - var getView = t.getView; - var reportEvents = t.reportEvents; - - - // locals - var stickySource = { events: [] }; - var sources = [ stickySource ]; - var rangeStart, rangeEnd; - var currentFetchID = 0; - var pendingSourceCnt = 0; - var loadingLevel = 0; - var cache = []; - - - for (var i=0; i<_sources.length; i++) { - _addEventSource(_sources[i]); - } - - - - /* Fetching - -----------------------------------------------------------------------------*/ - - - function isFetchNeeded(start, end) { - return !rangeStart || start < rangeStart || end > rangeEnd; - } - - - function fetchEvents(start, end) { - rangeStart = start; - rangeEnd = end; - cache = []; - var fetchID = ++currentFetchID; - var len = sources.length; - pendingSourceCnt = len; - for (var i=0; i)), return null instead - return null; -} - - -function parseISO8601(s, ignoreTimezone) { // ignoreTimezone defaults to false - // derived from http://delete.me.uk/2005/03/iso8601.html - // TODO: for a know glitch/feature, read tests/issue_206_parseDate_dst.html - var m = s.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/); - if (!m) { - return null; - } - var date = new Date(m[1], 0, 1); - if (ignoreTimezone || !m[13]) { - var check = new Date(m[1], 0, 1, 9, 0); - if (m[3]) { - date.setMonth(m[3] - 1); - check.setMonth(m[3] - 1); - } - if (m[5]) { - date.setDate(m[5]); - check.setDate(m[5]); - } - fixDate(date, check); - if (m[7]) { - date.setHours(m[7]); - } - if (m[8]) { - date.setMinutes(m[8]); - } - if (m[10]) { - date.setSeconds(m[10]); - } - if (m[12]) { - date.setMilliseconds(Number("0." + m[12]) * 1000); - } - fixDate(date, check); - }else{ - date.setUTCFullYear( - m[1], - m[3] ? m[3] - 1 : 0, - m[5] || 1 - ); - date.setUTCHours( - m[7] || 0, - m[8] || 0, - m[10] || 0, - m[12] ? Number("0." + m[12]) * 1000 : 0 - ); - if (m[14]) { - var offset = Number(m[16]) * 60 + (m[18] ? Number(m[18]) : 0); - offset *= m[15] == '-' ? 1 : -1; - date = new Date(+date + (offset * 60 * 1000)); - } - } - return date; -} - - -function parseTime(s) { // returns minutes since start of day - if (typeof s == 'number') { // an hour - return s * 60; - } - if (typeof s == 'object') { // a Date object - return s.getHours() * 60 + s.getMinutes(); - } - var m = s.match(/(\d+)(?::(\d+))?\s*(\w+)?/); - if (m) { - var h = parseInt(m[1], 10); - if (m[3]) { - h %= 12; - if (m[3].toLowerCase().charAt(0) == 'p') { - h += 12; - } - } - return h * 60 + (m[2] ? parseInt(m[2], 10) : 0); - } -} - - - -/* Date Formatting ------------------------------------------------------------------------------*/ -// TODO: use same function formatDate(date, [date2], format, [options]) - - -function formatDate(date, format, options) { - return formatDates(date, null, format, options); -} - - -function formatDates(date1, date2, format, options) { - options = options || defaults; - var date = date1, - otherDate = date2, - i, len = format.length, c, - i2, formatter, - res = ''; - for (i=0; ii; i2--) { - if (formatter = dateFormatters[format.substring(i, i2)]) { - if (date) { - res += formatter(date, options); - } - i = i2 - 1; - break; - } - } - if (i2 == i) { - if (date) { - res += c; - } - } - } - } - return res; -}; - - -var dateFormatters = { - s : function(d) { return d.getSeconds() }, - ss : function(d) { return zeroPad(d.getSeconds()) }, - m : function(d) { return d.getMinutes() }, - mm : function(d) { return zeroPad(d.getMinutes()) }, - h : function(d) { return d.getHours() % 12 || 12 }, - hh : function(d) { return zeroPad(d.getHours() % 12 || 12) }, - H : function(d) { return d.getHours() }, - HH : function(d) { return zeroPad(d.getHours()) }, - d : function(d) { return d.getDate() }, - dd : function(d) { return zeroPad(d.getDate()) }, - ddd : function(d,o) { return o.dayNamesShort[d.getDay()] }, - dddd: function(d,o) { return o.dayNames[d.getDay()] }, - M : function(d) { return d.getMonth() + 1 }, - MM : function(d) { return zeroPad(d.getMonth() + 1) }, - MMM : function(d,o) { return o.monthNamesShort[d.getMonth()] }, - MMMM: function(d,o) { return o.monthNames[d.getMonth()] }, - yy : function(d) { return (d.getFullYear()+'').substring(2) }, - yyyy: function(d) { return d.getFullYear() }, - t : function(d) { return d.getHours() < 12 ? 'a' : 'p' }, - tt : function(d) { return d.getHours() < 12 ? 'am' : 'pm' }, - T : function(d) { return d.getHours() < 12 ? 'A' : 'P' }, - TT : function(d) { return d.getHours() < 12 ? 'AM' : 'PM' }, - u : function(d) { return formatDate(d, "yyyy-MM-dd'T'HH:mm:ss'Z'") }, - S : function(d) { - var date = d.getDate(); - if (date > 10 && date < 20) { - return 'th'; - } - return ['st', 'nd', 'rd'][date%10-1] || 'th'; - }, - w : function(d, o) { // local - return o.weekNumberCalculation(d); - }, - W : function(d) { // ISO - return iso8601Week(d); - } -}; -fc.dateFormatters = dateFormatters; - - -/* thanks jQuery UI (https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js) - * - * Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. - * `date` - the date to get the week for - * `number` - the number of the week within the year that contains this date - */ -function iso8601Week(date) { - var time; - var checkDate = new Date(date.getTime()); - - // Find Thursday of this week starting on Monday - checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); - - time = checkDate.getTime(); - checkDate.setMonth(0); // Compare with Jan 1 - checkDate.setDate(1); - return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; -} - - -;; - -fc.applyAll = applyAll; - - -/* Event Date Math ------------------------------------------------------------------------------*/ - - -function exclEndDay(event) { - if (event.end) { - return _exclEndDay(event.end, event.allDay); - }else{ - return addDays(cloneDate(event.start), 1); - } -} - - -function _exclEndDay(end, allDay) { - end = cloneDate(end); - return allDay || end.getHours() || end.getMinutes() ? addDays(end, 1) : clearTime(end); - // why don't we check for seconds/ms too? -} - - - -/* Event Element Binding ------------------------------------------------------------------------------*/ - - -function lazySegBind(container, segs, bindHandlers) { - container.unbind('mouseover').mouseover(function(ev) { - var parent=ev.target, e, - i, seg; - while (parent != this) { - e = parent; - parent = parent.parentNode; - } - if ((i = e._fci) !== undefined) { - e._fci = undefined; - seg = segs[i]; - bindHandlers(seg.event, seg.element, seg); - $(ev.target).trigger(ev); - } - ev.stopPropagation(); - }); -} - - - -/* Element Dimensions ------------------------------------------------------------------------------*/ - - -function setOuterWidth(element, width, includeMargins) { - for (var i=0, e; i=0; i--) { - res = obj[parts[i].toLowerCase()]; - if (res !== undefined) { - return res; - } - } - return obj['']; -} - - -function htmlEscape(s) { - return s.replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
    '); -} - - -function disableTextSelection(element) { - element - .attr('unselectable', 'on') - .css('MozUserSelect', 'none') - .bind('selectstart.ui', function() { return false; }); -} - - -/* -function enableTextSelection(element) { - element - .attr('unselectable', 'off') - .css('MozUserSelect', '') - .unbind('selectstart.ui'); -} -*/ - - -function markFirstLast(e) { - e.children() - .removeClass('fc-first fc-last') - .filter(':first-child') - .addClass('fc-first') - .end() - .filter(':last-child') - .addClass('fc-last'); -} - - -function setDayID(cell, date) { - cell.each(function(i, _cell) { - _cell.className = _cell.className.replace(/^fc-\w*/, 'fc-' + dayIDs[date.getDay()]); - // TODO: make a way that doesn't rely on order of classes - }); -} - - -function getSkinCss(event, opt) { - var source = event.source || {}; - var eventColor = event.color; - var sourceColor = source.color; - var optionColor = opt('eventColor'); - var backgroundColor = - event.backgroundColor || - eventColor || - source.backgroundColor || - sourceColor || - opt('eventBackgroundColor') || - optionColor; - var borderColor = - event.borderColor || - eventColor || - source.borderColor || - sourceColor || - opt('eventBorderColor') || - optionColor; - var textColor = - event.textColor || - source.textColor || - opt('eventTextColor'); - var statements = []; - if (backgroundColor) { - statements.push('background-color:' + backgroundColor); - } - if (borderColor) { - statements.push('border-color:' + borderColor); - } - if (textColor) { - statements.push('color:' + textColor); - } - return statements.join(';'); -} - - -function applyAll(functions, thisObj, args) { - if ($.isFunction(functions)) { - functions = [ functions ]; - } - if (functions) { - var i; - var ret; - for (i=0; i") - .appendTo(element); - } - - - function buildTable() { - var html = buildTableHTML(); - - if (table) { - table.remove(); - } - table = $(html).appendTo(element); - - head = table.find('thead'); - headCells = head.find('.fc-day-header'); - body = table.find('tbody'); - bodyRows = body.find('tr'); - bodyCells = body.find('.fc-day'); - bodyFirstCells = bodyRows.find('td:first-child'); - - firstRowCellInners = bodyRows.eq(0).find('.fc-day > div'); - firstRowCellContentInners = bodyRows.eq(0).find('.fc-day-content > div'); - - markFirstLast(head.add(head.find('tr'))); // marks first+last tr/th's - markFirstLast(bodyRows); // marks first+last td's - bodyRows.eq(0).addClass('fc-first'); - bodyRows.filter(':last').addClass('fc-last'); - - bodyCells.each(function(i, _cell) { - var date = cellToDate( - Math.floor(i / colCnt), - i % colCnt - ); - trigger('dayRender', t, date, $(_cell)); - }); - - dayBind(bodyCells); - } - - - - /* HTML Building - -----------------------------------------------------------*/ - - - function buildTableHTML() { - var html = - "" + - buildHeadHTML() + - buildBodyHTML() + - "
    "; - - return html; - } - - - function buildHeadHTML() { - var headerClass = tm + "-widget-header"; - var html = ''; - var col; - var date; - - html += "
    " + - htmlEscape(weekNumberTitle) + - "
    " + - "" + - "" + - "" + - "" + - "" + - "
    " + opt('allDayText') + "" + - "
    " + - "
     
    "; - allDayTable = $(s).appendTo(slotLayer); - allDayRow = allDayTable.find('tr'); - - dayBind(allDayRow.find('td')); - - slotLayer.append( - "
    " + - "
    " + - "
    " - ); - - }else{ - - daySegmentContainer = $([]); // in jQuery 1.4, we can just do $() - - } - - slotScroller = - $("
    ") - .appendTo(slotLayer); - - slotContainer = - $("
    ") - .appendTo(slotScroller); - - slotSegmentContainer = - $("
    ") - .appendTo(slotContainer); - - s = - "" + - ""; - d = zeroDate(); - maxd = addMinutes(cloneDate(d), maxMinute); - addMinutes(d, minMinute); - slotCnt = 0; - for (i=0; d < maxd; i++) { - minutes = d.getMinutes(); - s += - "" + - "" + - "" + - ""; - addMinutes(d, opt('slotMinutes')); - slotCnt++; - } - s += - "" + - "
    " + - ((!slotNormal || !minutes) ? formatDate(d, opt('axisFormat')) : ' ') + - "" + - "
     
    " + - "
    "; - slotTable = $(s).appendTo(slotContainer); - - slotBind(slotTable.find('td')); - } - - - - /* Build Day Table - -----------------------------------------------------------------------*/ - - - function buildDayTable() { - var html = buildDayTableHTML(); - - if (dayTable) { - dayTable.remove(); - } - dayTable = $(html).appendTo(element); - - dayHead = dayTable.find('thead'); - dayHeadCells = dayHead.find('th').slice(1, -1); // exclude gutter - dayBody = dayTable.find('tbody'); - dayBodyCells = dayBody.find('td').slice(0, -1); // exclude gutter - dayBodyCellInners = dayBodyCells.find('> div'); - dayBodyCellContentInners = dayBodyCells.find('.fc-day-content > div'); - - dayBodyFirstCell = dayBodyCells.eq(0); - dayBodyFirstCellStretcher = dayBodyCellInners.eq(0); - - markFirstLast(dayHead.add(dayHead.find('tr'))); - markFirstLast(dayBody.add(dayBody.find('tr'))); - - // TODO: now that we rebuild the cells every time, we should call dayRender - } - - - function buildDayTableHTML() { - var html = - "" + - buildDayTableHeadHTML() + - buildDayTableBodyHTML() + - "
    "; - - return html; - } - - - function buildDayTableHeadHTML() { - var headerClass = tm + "-widget-header"; - var date; - var html = ''; - var weekText; - var col; - - html += - "" + - ""; - - if (showWeekNumbers) { - date = cellToDate(0, 0); - weekText = formatDate(date, weekNumberFormat); - if (rtl) { - weekText += weekNumberTitle; - } - else { - weekText = weekNumberTitle + weekText; - } - html += - "" + - htmlEscape(weekText) + - ""; - } - else { - html += " "; - } - - for (col=0; col" + - htmlEscape(formatDate(date, colFormat)) + - ""; - } - - html += - " " + - "" + - ""; - - return html; - } - - - function buildDayTableBodyHTML() { - var headerClass = tm + "-widget-header"; // TODO: make these when updateOptions() called - var contentClass = tm + "-widget-content"; - var date; - var today = clearTime(new Date()); - var col; - var cellsHTML; - var cellHTML; - var classNames; - var html = ''; - - html += - "" + - "" + - " "; - - cellsHTML = ''; - - for (col=0; col" + - "
    " + - "
    " + - "
     
    " + - "
    " + - "
    " + - ""; - - cellsHTML += cellHTML; - } - - html += cellsHTML; - html += - " " + - "" + - ""; - - return html; - } - - - // TODO: data-date on the cells - - - - /* Dimensions - -----------------------------------------------------------------------*/ - - - function setHeight(height) { - if (height === undefined) { - height = viewHeight; - } - viewHeight = height; - slotTopCache = {}; - - var headHeight = dayBody.position().top; - var allDayHeight = slotScroller.position().top; // including divider - var bodyHeight = Math.min( // total body height, including borders - height - headHeight, // when scrollbars - slotTable.height() + allDayHeight + 1 // when no scrollbars. +1 for bottom border - ); - - dayBodyFirstCellStretcher - .height(bodyHeight - vsides(dayBodyFirstCell)); - - slotLayer.css('top', headHeight); - - slotScroller.height(bodyHeight - allDayHeight - 1); - - // the stylesheet guarantees that the first row has no border. - // this allows .height() to work well cross-browser. - slotHeight = slotTable.find('tr:first').height() + 1; // +1 for bottom border - - snapRatio = opt('slotMinutes') / snapMinutes; - snapHeight = slotHeight / snapRatio; - } - - - function setWidth(width) { - viewWidth = width; - colPositions.clear(); - colContentPositions.clear(); - - var axisFirstCells = dayHead.find('th:first'); - if (allDayTable) { - axisFirstCells = axisFirstCells.add(allDayTable.find('th:first')); - } - axisFirstCells = axisFirstCells.add(slotTable.find('th:first')); - - axisWidth = 0; - setOuterWidth( - axisFirstCells - .width('') - .each(function(i, _cell) { - axisWidth = Math.max(axisWidth, $(_cell).outerWidth()); - }), - axisWidth - ); - - var gutterCells = dayTable.find('.fc-agenda-gutter'); - if (allDayTable) { - gutterCells = gutterCells.add(allDayTable.find('th.fc-agenda-gutter')); - } - - var slotTableWidth = slotScroller[0].clientWidth; // needs to be done after axisWidth (for IE7) - - gutterWidth = slotScroller.width() - slotTableWidth; - if (gutterWidth) { - setOuterWidth(gutterCells, gutterWidth); - gutterCells - .show() - .prev() - .removeClass('fc-last'); - }else{ - gutterCells - .hide() - .prev() - .addClass('fc-last'); - } - - colWidth = Math.floor((slotTableWidth - axisWidth) / colCnt); - setOuterWidth(dayHeadCells.slice(0, -1), colWidth); - } - - - - /* Scrolling - -----------------------------------------------------------------------*/ - - - function resetScroll() { - var d0 = zeroDate(); - var scrollDate = cloneDate(d0); - scrollDate.setHours(opt('firstHour')); - var top = timePosition(d0, scrollDate) + 1; // +1 for the border - function scroll() { - slotScroller.scrollTop(top); - } - scroll(); - setTimeout(scroll, 0); // overrides any previous scroll state made by the browser - } - - - function afterRender() { // after the view has been freshly rendered and sized - resetScroll(); - } - - - - /* Slot/Day clicking and binding - -----------------------------------------------------------------------*/ - - - function dayBind(cells) { - cells.click(slotClick) - .mousedown(daySelectionMousedown); - } - - - function slotBind(cells) { - cells.click(slotClick) - .mousedown(slotSelectionMousedown); - } - - - function slotClick(ev) { - if (!opt('selectable')) { // if selectable, SelectionManager will worry about dayClick - var col = Math.min(colCnt-1, Math.floor((ev.pageX - dayTable.offset().left - axisWidth) / colWidth)); - var date = cellToDate(0, col); - var rowMatch = this.parentNode.className.match(/fc-slot(\d+)/); // TODO: maybe use data - if (rowMatch) { - var mins = parseInt(rowMatch[1]) * opt('slotMinutes'); - var hours = Math.floor(mins/60); - date.setHours(hours); - date.setMinutes(mins%60 + minMinute); - trigger('dayClick', dayBodyCells[col], date, false, ev); - }else{ - trigger('dayClick', dayBodyCells[col], date, true, ev); - } - } - } - - - - /* Semi-transparent Overlay Helpers - -----------------------------------------------------*/ - // TODO: should be consolidated with BasicView's methods - - - function renderDayOverlay(overlayStart, overlayEnd, refreshCoordinateGrid) { // overlayEnd is exclusive - - if (refreshCoordinateGrid) { - coordinateGrid.build(); - } - - var segments = rangeToSegments(overlayStart, overlayEnd); - - for (var i=0; i= 0) { - addMinutes(d, minMinute + slotIndex * snapMinutes); - } - return d; - } - - - // get the Y coordinate of the given time on the given day (both Date objects) - function timePosition(day, time) { // both date objects. day holds 00:00 of current day - day = cloneDate(day, true); - if (time < addMinutes(cloneDate(day), minMinute)) { - return 0; - } - if (time >= addMinutes(cloneDate(day), maxMinute)) { - return slotTable.height(); - } - var slotMinutes = opt('slotMinutes'), - minutes = time.getHours()*60 + time.getMinutes() - minMinute, - slotI = Math.floor(minutes / slotMinutes), - slotTop = slotTopCache[slotI]; - if (slotTop === undefined) { - slotTop = slotTopCache[slotI] = - slotTable.find('tr').eq(slotI).find('td div')[0].offsetTop; - // .eq() is faster than ":eq()" selector - // [0].offsetTop is faster than .position().top (do we really need this optimization?) - // a better optimization would be to cache all these divs - } - return Math.max(0, Math.round( - slotTop - 1 + slotHeight * ((minutes % slotMinutes) / slotMinutes) - )); - } - - - function getAllDayRow(index) { - return allDayRow; - } - - - function defaultEventEnd(event) { - var start = cloneDate(event.start); - if (event.allDay) { - return start; - } - return addMinutes(start, opt('defaultEventMinutes')); - } - - - - /* Selection - ---------------------------------------------------------------------------------*/ - - - function defaultSelectionEnd(startDate, allDay) { - if (allDay) { - return cloneDate(startDate); - } - return addMinutes(cloneDate(startDate), opt('slotMinutes')); - } - - - function renderSelection(startDate, endDate, allDay) { // only for all-day - if (allDay) { - if (opt('allDaySlot')) { - renderDayOverlay(startDate, addDays(cloneDate(endDate), 1), true); - } - }else{ - renderSlotSelection(startDate, endDate); - } - } - - - function renderSlotSelection(startDate, endDate) { - var helperOption = opt('selectHelper'); - coordinateGrid.build(); - if (helperOption) { - var col = dateToCell(startDate).col; - if (col >= 0 && col < colCnt) { // only works when times are on same day - var rect = coordinateGrid.rect(0, col, 0, col, slotContainer); // only for horizontal coords - var top = timePosition(startDate, startDate); - var bottom = timePosition(startDate, endDate); - if (bottom > top) { // protect against selections that are entirely before or after visible range - rect.top = top; - rect.height = bottom - top; - rect.left += 2; - rect.width -= 5; - if ($.isFunction(helperOption)) { - var helperRes = helperOption(startDate, endDate); - if (helperRes) { - rect.position = 'absolute'; - selectionHelper = $(helperRes) - .css(rect) - .appendTo(slotContainer); - } - }else{ - rect.isStart = true; // conside rect a "seg" now - rect.isEnd = true; // - selectionHelper = $(slotSegHtml( - { - title: '', - start: startDate, - end: endDate, - className: ['fc-select-helper'], - editable: false - }, - rect - )); - selectionHelper.css('opacity', opt('dragOpacity')); - } - if (selectionHelper) { - slotBind(selectionHelper); - slotContainer.append(selectionHelper); - setOuterWidth(selectionHelper, rect.width, true); // needs to be after appended - setOuterHeight(selectionHelper, rect.height, true); - } - } - } - }else{ - renderSlotOverlay(startDate, endDate); - } - } - - - function clearSelection() { - clearOverlays(); - if (selectionHelper) { - selectionHelper.remove(); - selectionHelper = null; - } - } - - - function slotSelectionMousedown(ev) { - if (ev.which == 1 && opt('selectable')) { // ev.which==1 means left mouse button - unselect(ev); - var dates; - hoverListener.start(function(cell, origCell) { - clearSelection(); - if (cell && cell.col == origCell.col && !getIsCellAllDay(cell)) { - var d1 = realCellToDate(origCell); - var d2 = realCellToDate(cell); - dates = [ - d1, - addMinutes(cloneDate(d1), snapMinutes), // calculate minutes depending on selection slot minutes - d2, - addMinutes(cloneDate(d2), snapMinutes) - ].sort(dateCompare); - renderSlotSelection(dates[0], dates[3]); - }else{ - dates = null; - } - }, ev); - $(document).one('mouseup', function(ev) { - hoverListener.stop(); - if (dates) { - if (+dates[0] == +dates[1]) { - reportDayClick(dates[0], false, ev); - } - reportSelection(dates[0], dates[3], false, ev); - } - }); - } - } - - - function reportDayClick(date, allDay, ev) { - trigger('dayClick', dayBodyCells[dateToCell(date).col], date, allDay, ev); - } - - - - /* External Dragging - --------------------------------------------------------------------------------*/ - - - function dragStart(_dragElement, ev, ui) { - hoverListener.start(function(cell) { - clearOverlays(); - if (cell) { - if (getIsCellAllDay(cell)) { - renderCellOverlay(cell.row, cell.col, cell.row, cell.col); - }else{ - var d1 = realCellToDate(cell); - var d2 = addMinutes(cloneDate(d1), opt('defaultEventMinutes')); - renderSlotOverlay(d1, d2); - } - } - }, ev); - } - - - function dragStop(_dragElement, ev, ui) { - var cell = hoverListener.stop(); - clearOverlays(); - if (cell) { - trigger('drop', _dragElement, realCellToDate(cell), getIsCellAllDay(cell), ev, ui); - } - } - - -} - -;; - -function AgendaEventRenderer() { - var t = this; - - - // exports - t.renderEvents = renderEvents; - t.clearEvents = clearEvents; - t.slotSegHtml = slotSegHtml; - - - // imports - DayEventRenderer.call(t); - var opt = t.opt; - var trigger = t.trigger; - var isEventDraggable = t.isEventDraggable; - var isEventResizable = t.isEventResizable; - var eventEnd = t.eventEnd; - var eventElementHandlers = t.eventElementHandlers; - var setHeight = t.setHeight; - var getDaySegmentContainer = t.getDaySegmentContainer; - var getSlotSegmentContainer = t.getSlotSegmentContainer; - var getHoverListener = t.getHoverListener; - var getMaxMinute = t.getMaxMinute; - var getMinMinute = t.getMinMinute; - var timePosition = t.timePosition; - var getIsCellAllDay = t.getIsCellAllDay; - var colContentLeft = t.colContentLeft; - var colContentRight = t.colContentRight; - var cellToDate = t.cellToDate; - var getColCnt = t.getColCnt; - var getColWidth = t.getColWidth; - var getSnapHeight = t.getSnapHeight; - var getSnapMinutes = t.getSnapMinutes; - var getSlotContainer = t.getSlotContainer; - var reportEventElement = t.reportEventElement; - var showEvents = t.showEvents; - var hideEvents = t.hideEvents; - var eventDrop = t.eventDrop; - var eventResize = t.eventResize; - var renderDayOverlay = t.renderDayOverlay; - var clearOverlays = t.clearOverlays; - var renderDayEvents = t.renderDayEvents; - var calendar = t.calendar; - var formatDate = calendar.formatDate; - var formatDates = calendar.formatDates; - - - // overrides - t.draggableDayEvent = draggableDayEvent; - - - - /* Rendering - ----------------------------------------------------------------------------*/ - - - function renderEvents(events, modifiedEventId) { - var i, len=events.length, - dayEvents=[], - slotEvents=[]; - for (i=0; i start && eventStart < end) { - if (eventStart < start) { - segStart = cloneDate(start); - isStart = false; - }else{ - segStart = eventStart; - isStart = true; - } - if (eventEnd > end) { - segEnd = cloneDate(end); - isEnd = false; - }else{ - segEnd = eventEnd; - isEnd = true; - } - segs.push({ - event: event, - start: segStart, - end: segEnd, - isStart: isStart, - isEnd: isEnd - }); - } - } - return segs.sort(compareSlotSegs); - } - - - function slotEventEnd(event) { - if (event.end) { - return cloneDate(event.end); - }else{ - return addMinutes(cloneDate(event.start), opt('defaultEventMinutes')); - } - } - - - // renders events in the 'time slots' at the bottom - // TODO: when we refactor this, when user returns `false` eventRender, don't have empty space - // TODO: refactor will include using pixels to detect collisions instead of dates (handy for seg cmp) - - function renderSlotSegs(segs, modifiedEventId) { - - var i, segCnt=segs.length, seg, - event, - top, - bottom, - columnLeft, - columnRight, - columnWidth, - width, - left, - right, - html = '', - eventElements, - eventElement, - triggerRes, - titleElement, - height, - slotSegmentContainer = getSlotSegmentContainer(), - isRTL = opt('isRTL'); - - // calculate position/dimensions, create html - for (i=0; i" + - "
    " + - "
    " + - htmlEscape(formatDates(event.start, event.end, opt('timeFormat'))) + - "
    " + - "
    " + - htmlEscape(event.title || '') + - "
    " + - "
    " + - "
    "; - if (seg.isEnd && isEventResizable(event)) { - html += - "
    =
    "; - } - html += - ""; - return html; - } - - - function bindSlotSeg(event, eventElement, seg) { - var timeElement = eventElement.find('div.fc-event-time'); - if (isEventDraggable(event)) { - draggableSlotEvent(event, eventElement, timeElement); - } - if (seg.isEnd && isEventResizable(event)) { - resizableSlotEvent(event, eventElement, timeElement); - } - eventElementHandlers(event, eventElement); - } - - - - /* Dragging - -----------------------------------------------------------------------------------*/ - - - // when event starts out FULL-DAY - // overrides DayEventRenderer's version because it needs to account for dragging elements - // to and from the slot area. - - function draggableDayEvent(event, eventElement, seg) { - var isStart = seg.isStart; - var origWidth; - var revert; - var allDay = true; - var dayDelta; - var hoverListener = getHoverListener(); - var colWidth = getColWidth(); - var snapHeight = getSnapHeight(); - var snapMinutes = getSnapMinutes(); - var minMinute = getMinMinute(); - eventElement.draggable({ - opacity: opt('dragOpacity', 'month'), // use whatever the month view was using - revertDuration: opt('dragRevertDuration'), - start: function(ev, ui) { - trigger('eventDragStart', eventElement, event, ev, ui); - hideEvents(event, eventElement); - origWidth = eventElement.width(); - hoverListener.start(function(cell, origCell) { - clearOverlays(); - if (cell) { - revert = false; - var origDate = cellToDate(0, origCell.col); - var date = cellToDate(0, cell.col); - dayDelta = dayDiff(date, origDate); - if (!cell.row) { - // on full-days - renderDayOverlay( - addDays(cloneDate(event.start), dayDelta), - addDays(exclEndDay(event), dayDelta) - ); - resetElement(); - }else{ - // mouse is over bottom slots - if (isStart) { - if (allDay) { - // convert event to temporary slot-event - eventElement.width(colWidth - 10); // don't use entire width - setOuterHeight( - eventElement, - snapHeight * Math.round( - (event.end ? ((event.end - event.start) / MINUTE_MS) : opt('defaultEventMinutes')) / - snapMinutes - ) - ); - eventElement.draggable('option', 'grid', [colWidth, 1]); - allDay = false; - } - }else{ - revert = true; - } - } - revert = revert || (allDay && !dayDelta); - }else{ - resetElement(); - revert = true; - } - eventElement.draggable('option', 'revert', revert); - }, ev, 'drag'); - }, - stop: function(ev, ui) { - hoverListener.stop(); - clearOverlays(); - trigger('eventDragStop', eventElement, event, ev, ui); - if (revert) { - // hasn't moved or is out of bounds (draggable has already reverted) - resetElement(); - eventElement.css('filter', ''); // clear IE opacity side-effects - showEvents(event, eventElement); - }else{ - // changed! - var minuteDelta = 0; - if (!allDay) { - minuteDelta = Math.round((eventElement.offset().top - getSlotContainer().offset().top) / snapHeight) - * snapMinutes - + minMinute - - (event.start.getHours() * 60 + event.start.getMinutes()); - } - eventDrop(this, event, dayDelta, minuteDelta, allDay, ev, ui); - } - } - }); - function resetElement() { - if (!allDay) { - eventElement - .width(origWidth) - .height('') - .draggable('option', 'grid', null); - allDay = true; - } - } - } - - - // when event starts out IN TIMESLOTS - - function draggableSlotEvent(event, eventElement, timeElement) { - var coordinateGrid = t.getCoordinateGrid(); - var colCnt = getColCnt(); - var colWidth = getColWidth(); - var snapHeight = getSnapHeight(); - var snapMinutes = getSnapMinutes(); - - // states - var origPosition; // original position of the element, not the mouse - var origCell; - var isInBounds, prevIsInBounds; - var isAllDay, prevIsAllDay; - var colDelta, prevColDelta; - var dayDelta; // derived from colDelta - var minuteDelta, prevMinuteDelta; - - eventElement.draggable({ - scroll: false, - grid: [ colWidth, snapHeight ], - axis: colCnt==1 ? 'y' : false, - opacity: opt('dragOpacity'), - revertDuration: opt('dragRevertDuration'), - start: function(ev, ui) { - - trigger('eventDragStart', eventElement, event, ev, ui); - hideEvents(event, eventElement); - - coordinateGrid.build(); - - // initialize states - origPosition = eventElement.position(); - origCell = coordinateGrid.cell(ev.pageX, ev.pageY); - isInBounds = prevIsInBounds = true; - isAllDay = prevIsAllDay = getIsCellAllDay(origCell); - colDelta = prevColDelta = 0; - dayDelta = 0; - minuteDelta = prevMinuteDelta = 0; - - }, - drag: function(ev, ui) { - - // NOTE: this `cell` value is only useful for determining in-bounds and all-day. - // Bad for anything else due to the discrepancy between the mouse position and the - // element position while snapping. (problem revealed in PR #55) - // - // PS- the problem exists for draggableDayEvent() when dragging an all-day event to a slot event. - // We should overhaul the dragging system and stop relying on jQuery UI. - var cell = coordinateGrid.cell(ev.pageX, ev.pageY); - - // update states - isInBounds = !!cell; - if (isInBounds) { - isAllDay = getIsCellAllDay(cell); - - // calculate column delta - colDelta = Math.round((ui.position.left - origPosition.left) / colWidth); - if (colDelta != prevColDelta) { - // calculate the day delta based off of the original clicked column and the column delta - var origDate = cellToDate(0, origCell.col); - var col = origCell.col + colDelta; - col = Math.max(0, col); - col = Math.min(colCnt-1, col); - var date = cellToDate(0, col); - dayDelta = dayDiff(date, origDate); - } - - // calculate minute delta (only if over slots) - if (!isAllDay) { - minuteDelta = Math.round((ui.position.top - origPosition.top) / snapHeight) * snapMinutes; - } - } - - // any state changes? - if ( - isInBounds != prevIsInBounds || - isAllDay != prevIsAllDay || - colDelta != prevColDelta || - minuteDelta != prevMinuteDelta - ) { - - updateUI(); - - // update previous states for next time - prevIsInBounds = isInBounds; - prevIsAllDay = isAllDay; - prevColDelta = colDelta; - prevMinuteDelta = minuteDelta; - } - - // if out-of-bounds, revert when done, and vice versa. - eventElement.draggable('option', 'revert', !isInBounds); - - }, - stop: function(ev, ui) { - - clearOverlays(); - trigger('eventDragStop', eventElement, event, ev, ui); - - if (isInBounds && (isAllDay || dayDelta || minuteDelta)) { // changed! - eventDrop(this, event, dayDelta, isAllDay ? 0 : minuteDelta, isAllDay, ev, ui); - } - else { // either no change or out-of-bounds (draggable has already reverted) - - // reset states for next time, and for updateUI() - isInBounds = true; - isAllDay = false; - colDelta = 0; - dayDelta = 0; - minuteDelta = 0; - - updateUI(); - eventElement.css('filter', ''); // clear IE opacity side-effects - - // sometimes fast drags make event revert to wrong position, so reset. - // also, if we dragged the element out of the area because of snapping, - // but the *mouse* is still in bounds, we need to reset the position. - eventElement.css(origPosition); - - showEvents(event, eventElement); - } - } - }); - - function updateUI() { - clearOverlays(); - if (isInBounds) { - if (isAllDay) { - timeElement.hide(); - eventElement.draggable('option', 'grid', null); // disable grid snapping - renderDayOverlay( - addDays(cloneDate(event.start), dayDelta), - addDays(exclEndDay(event), dayDelta) - ); - } - else { - updateTimeText(minuteDelta); - timeElement.css('display', ''); // show() was causing display=inline - eventElement.draggable('option', 'grid', [colWidth, snapHeight]); // re-enable grid snapping - } - } - } - - function updateTimeText(minuteDelta) { - var newStart = addMinutes(cloneDate(event.start), minuteDelta); - var newEnd; - if (event.end) { - newEnd = addMinutes(cloneDate(event.end), minuteDelta); - } - timeElement.text(formatDates(newStart, newEnd, opt('timeFormat'))); - } - - } - - - - /* Resizing - --------------------------------------------------------------------------------------*/ - - - function resizableSlotEvent(event, eventElement, timeElement) { - var snapDelta, prevSnapDelta; - var snapHeight = getSnapHeight(); - var snapMinutes = getSnapMinutes(); - eventElement.resizable({ - handles: { - s: '.ui-resizable-handle' - }, - grid: snapHeight, - start: function(ev, ui) { - snapDelta = prevSnapDelta = 0; - hideEvents(event, eventElement); - trigger('eventResizeStart', this, event, ev, ui); - }, - resize: function(ev, ui) { - // don't rely on ui.size.height, doesn't take grid into account - snapDelta = Math.round((Math.max(snapHeight, eventElement.height()) - ui.originalSize.height) / snapHeight); - if (snapDelta != prevSnapDelta) { - timeElement.text( - formatDates( - event.start, - (!snapDelta && !event.end) ? null : // no change, so don't display time range - addMinutes(eventEnd(event), snapMinutes*snapDelta), - opt('timeFormat') - ) - ); - prevSnapDelta = snapDelta; - } - }, - stop: function(ev, ui) { - trigger('eventResizeStop', this, event, ev, ui); - if (snapDelta) { - eventResize(this, event, 0, snapMinutes*snapDelta, ev, ui); - }else{ - showEvents(event, eventElement); - // BUG: if event was really short, need to put title back in span - } - } - }); - } - - -} - - - -/* Agenda Event Segment Utilities ------------------------------------------------------------------------------*/ - - -// Sets the seg.backwardCoord and seg.forwardCoord on each segment and returns a new -// list in the order they should be placed into the DOM (an implicit z-index). -function placeSlotSegs(segs) { - var levels = buildSlotSegLevels(segs); - var level0 = levels[0]; - var i; - - computeForwardSlotSegs(levels); - - if (level0) { - - for (i=0; i seg2.start && seg1.start < seg2.end; -} - - -// A cmp function for determining which forward segment to rely on more when computing coordinates. -function compareForwardSlotSegs(seg1, seg2) { - // put higher-pressure first - return seg2.forwardPressure - seg1.forwardPressure || - // put segments that are closer to initial edge first (and favor ones with no coords yet) - (seg1.backwardCoord || 0) - (seg2.backwardCoord || 0) || - // do normal sorting... - compareSlotSegs(seg1, seg2); -} - - -// A cmp function for determining which segment should be closer to the initial edge -// (the left edge on a left-to-right calendar). -function compareSlotSegs(seg1, seg2) { - return seg1.start - seg2.start || // earlier start time goes first - (seg2.end - seg2.start) - (seg1.end - seg1.start) || // tie? longer-duration goes first - (seg1.event.title || '').localeCompare(seg2.event.title); // tie? alphabetically by title -} - - -;; - - -function View(element, calendar, viewName) { - var t = this; - - - // exports - t.element = element; - t.calendar = calendar; - t.name = viewName; - t.opt = opt; - t.trigger = trigger; - t.isEventDraggable = isEventDraggable; - t.isEventResizable = isEventResizable; - t.setEventData = setEventData; - t.clearEventData = clearEventData; - t.eventEnd = eventEnd; - t.reportEventElement = reportEventElement; - t.triggerEventDestroy = triggerEventDestroy; - t.eventElementHandlers = eventElementHandlers; - t.showEvents = showEvents; - t.hideEvents = hideEvents; - t.eventDrop = eventDrop; - t.eventResize = eventResize; - // t.title - // t.start, t.end - // t.visStart, t.visEnd - - - // imports - var defaultEventEnd = t.defaultEventEnd; - var normalizeEvent = calendar.normalizeEvent; // in EventManager - var reportEventChange = calendar.reportEventChange; - - - // locals - var eventsByID = {}; // eventID mapped to array of events (there can be multiple b/c of repeating events) - var eventElementsByID = {}; // eventID mapped to array of jQuery elements - var eventElementCouples = []; // array of objects, { event, element } // TODO: unify with segment system - var options = calendar.options; - - - - function opt(name, viewNameOverride) { - var v = options[name]; - if ($.isPlainObject(v)) { - return smartProperty(v, viewNameOverride || viewName); - } - return v; - } - - - function trigger(name, thisObj) { - return calendar.trigger.apply( - calendar, - [name, thisObj || t].concat(Array.prototype.slice.call(arguments, 2), [t]) - ); - } - - - - /* Event Editable Boolean Calculations - ------------------------------------------------------------------------------*/ - - - function isEventDraggable(event) { - var source = event.source || {}; - return firstDefined( - event.startEditable, - source.startEditable, - opt('eventStartEditable'), - event.editable, - source.editable, - opt('editable') - ) - && !opt('disableDragging'); // deprecated - } - - - function isEventResizable(event) { // but also need to make sure the seg.isEnd == true - var source = event.source || {}; - return firstDefined( - event.durationEditable, - source.durationEditable, - opt('eventDurationEditable'), - event.editable, - source.editable, - opt('editable') - ) - && !opt('disableResizing'); // deprecated - } - - - - /* Event Data - ------------------------------------------------------------------------------*/ - - - function setEventData(events) { // events are already normalized at this point - eventsByID = {}; - var i, len=events.length, event; - for (i=0; i
  • elements if you want the menu to be open automatically * on page load. See above for an example. */ @@ -675,7 +675,7 @@ $(window).load(function() { /* * jQuery resize event - v1.1 - 3/14/2010 * http://benalman.com/projects/jquery-resize-plugin/ - * + * * Copyright (c) 2010 "Cowboy" Ben Alman * Dual licensed under the MIT and GPL licenses. * http://benalman.com/about/license/ @@ -739,8 +739,8 @@ $(window).load(function() { /*! * SlimScroll https://github.com/rochal/jQuery-slimScroll * ======================================================= - * - * Copyright (c) 2011 Piotr Rochala (http://rocha.la) Dual licensed under the MIT + * + * Copyright (c) 2011 Piotr Rochala (http://rocha.la) Dual licensed under the MIT */ (function(f) { jQuery.fn.extend({slimScroll: function(h) { diff --git a/js/bootstrap.js b/js/bootstrap.js deleted file mode 100644 index 850e6e53b..000000000 --- a/js/bootstrap.js +++ /dev/null @@ -1,2006 +0,0 @@ -/*! - * Bootstrap v3.0.3 (http://getbootstrap.com) - * Copyright 2013 Twitter, Inc. - * Licensed under http://www.apache.org/licenses/LICENSE-2.0 - */ - -if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery") } - -/* ======================================================================== - * Bootstrap: transition.js v3.0.3 - * http://getbootstrap.com/javascript/#transitions - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * 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 ($) { "use strict"; - - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ - - function transitionEnd() { - var el = document.createElement('bootstrap') - - var transEndEventNames = { - 'WebkitTransition' : 'webkitTransitionEnd' - , 'MozTransition' : 'transitionend' - , 'OTransition' : 'oTransitionEnd otransitionend' - , 'transition' : 'transitionend' - } - - for (var name in transEndEventNames) { - if (el.style[name] !== undefined) { - return { end: transEndEventNames[name] } - } - } - } - - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false, $el = this - $(this).one($.support.transition.end, function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } - - $(function () { - $.support.transition = transitionEnd() - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: alert.js v3.0.3 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * 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 ($) { "use strict"; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = $(selector) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.hasClass('alert') ? $this : $this.parent() - } - - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - $parent.trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one($.support.transition.end, removeElement) - .emulateTransitionEnd(150) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - var old = $.fn.alert - - $.fn.alert = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: button.js v3.0.3 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * 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 ($) { "use strict"; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - } - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state = state + 'Text' - - if (!data.resetText) $el.data('resetText', $el[val]()) - - $el[val](data[state] || this.options[state]) - - // push to event loop to allow forms to submit - setTimeout(function () { - state == 'loadingText' ? - $el.addClass(d).attr(d, d) : - $el.removeClass(d).removeAttr(d); - }, 0) - } - - Button.prototype.toggle = function () { - var $parent = this.$element.closest('[data-toggle="buttons"]') - var changed = true - - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') === 'radio') { - // see if clicking on current one - if ($input.prop('checked') && this.$element.hasClass('active')) - changed = false - else - $parent.find('.active').removeClass('active') - } - if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change') - } - - if (changed) this.$element.toggleClass('active') - } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - var old = $.fn.button - - $.fn.button = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.button', (data = new Button(this, options))) - - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - $.fn.button.Constructor = Button - - - // BUTTON NO CONFLICT - // ================== - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - // BUTTON DATA-API - // =============== - - $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - $btn.button('toggle') - e.preventDefault() - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: carousel.js v3.0.3 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * 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 ($) { "use strict"; - - // CAROUSEL CLASS DEFINITION - // ========================= - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = - this.sliding = - this.interval = - this.$active = - this.$items = null - - this.options.pause == 'hover' && this.$element - .on('mouseenter', $.proxy(this.pause, this)) - .on('mouseleave', $.proxy(this.cycle, this)) - } - - Carousel.DEFAULTS = { - interval: 5000 - , pause: 'hover' - , wrap: true - } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getActiveIndex = function () { - this.$active = this.$element.find('.item.active') - this.$items = this.$active.parent().children() - - return this.$items.index(this.$active) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getActiveIndex() - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition.end) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - - this.interval = clearInterval(this.interval) - - return this - } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || $active[type]() - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var fallback = type == 'next' ? 'first' : 'last' - var that = this - - if (!$next.length) { - if (!this.options.wrap) return - $next = this.$element.find('.item')[fallback]() - } - - this.sliding = true - - isCycling && this.pause() - - var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction }) - - if ($next.hasClass('active')) return - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - this.$element.one('slid.bs.carousel', function () { - var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) - $nextIndicator && $nextIndicator.addClass('active') - }) - } - - if ($.support.transition && this.$element.hasClass('slide')) { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one($.support.transition.end, function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0) - }) - .emulateTransitionEnd(600) - } else { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger('slid.bs.carousel') - } - - isCycling && this.cycle() - - return this - } - - - // CAROUSEL PLUGIN DEFINITION - // ========================== - - var old = $.fn.carousel - - $.fn.carousel = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { - var $this = $(this), href - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - $target.carousel(options) - - if (slideIndex = $this.attr('data-slide-to')) { - $target.data('bs.carousel').to(slideIndex) - } - - e.preventDefault() - }) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - $carousel.carousel($carousel.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: collapse.js v3.0.3 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * 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 ($) { "use strict"; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.transitioning = null - - if (this.options.parent) this.$parent = $(this.options.parent) - if (this.options.toggle) this.toggle() - } - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var actives = this.$parent && this.$parent.find('> .panel > .in') - - if (actives && actives.length) { - var hasData = actives.data('bs.collapse') - if (hasData && hasData.transitioning) return - actives.collapse('hide') - hasData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing') - [dimension](0) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('in') - [dimension]('auto') - this.transitioning = 0 - this.$element.trigger('shown.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one($.support.transition.end, $.proxy(complete, this)) - .emulateTransitionEnd(350) - [dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element - [dimension](this.$element[dimension]()) - [0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse') - .removeClass('in') - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .trigger('hidden.bs.collapse') - .removeClass('collapsing') - .addClass('collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one($.support.transition.end, $.proxy(complete, this)) - .emulateTransitionEnd(350) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - var old = $.fn.collapse - - $.fn.collapse = function (option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { - var $this = $(this), href - var target = $this.attr('data-target') - || e.preventDefault() - || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - var $target = $(target) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - var parent = $this.attr('data-parent') - var $parent = parent && $(parent) - - if (!data || !data.transitioning) { - if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed') - $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') - } - - $target.collapse(option) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: dropdown.js v3.0.3 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * 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 ($) { "use strict"; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle=dropdown]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $('