From 3eac0b0c23b7ef48a23752c3bc0e2a47cdaf7bcd Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Tue, 2 Dec 2014 16:26:55 +0000 Subject: [PATCH] New UI based on Admin LTE --- PHPCI/Application.php | 31 +- PHPCI/Command/RunCommand.php | 6 +- PHPCI/Controller/BuildController.php | 51 +- PHPCI/Controller/HomeController.php | 7 +- PHPCI/Controller/PluginController.php | 9 +- PHPCI/Controller/ProjectController.php | 11 +- PHPCI/Controller/SessionController.php | 2 +- PHPCI/Controller/SettingsController.php | 1 + PHPCI/Controller/UserController.php | 11 +- PHPCI/Model/Base/ProjectBase.php | 117 +- PHPCI/Model/Project.php | 24 + PHPCI/Store/Base/BuildMetaStoreBase.php | 8 +- PHPCI/Store/Base/BuildStoreBase.php | 8 +- PHPCI/Store/Base/ProjectStoreBase.php | 4 +- PHPCI/Store/BuildStore.php | 18 +- PHPCI/Store/ProjectStore.php | 23 + PHPCI/View/Build/header-row.phtml | 20 + PHPCI/View/Build/view.phtml | 100 +- PHPCI/View/BuildStatus/view.phtml | 10 +- PHPCI/View/BuildsTable.phtml | 6 +- PHPCI/View/Home/index.phtml | 176 +- PHPCI/View/Plugin/index.phtml | 169 +- PHPCI/View/Project/view.phtml | 244 +- PHPCI/View/ProjectForm.phtml | 41 +- PHPCI/View/Session/forgotPassword.phtml | 6 +- PHPCI/View/Session/resetPassword.phtml | 4 +- PHPCI/View/Settings/index.phtml | 28 +- PHPCI/View/SummaryTable.phtml | 19 +- PHPCI/View/User/index.phtml | 113 +- PHPCI/View/User/profile.phtml | 10 +- PHPCI/View/UserForm.phtml | 21 +- PHPCI/View/exception.phtml | 6 +- PHPCI/View/layout.phtml | 338 +- composer.json | 2 +- composer.lock | 12 +- public/assets/css/AdminLTE.css | 3539 +++++ public/assets/css/bootstrap-slider/slider.css | 169 + public/assets/css/bootstrap-theme.min.css | 2 +- .../bootstrap3-wysihtml5.css | 102 + .../bootstrap3-wysihtml5.min.css | 3 + public/assets/css/bootstrap.min.css | 2 +- .../css/colorpicker/bootstrap-colorpicker.css | 214 + .../colorpicker/bootstrap-colorpicker.min.css | 9 + .../css/datatables/dataTables.bootstrap.css | 223 + .../assets/css/datatables/images/sort_asc.png | Bin 0 -> 1118 bytes .../datatables/images/sort_asc_disabled.png | Bin 0 -> 1050 bytes .../css/datatables/images/sort_both.png | Bin 0 -> 1136 bytes .../css/datatables/images/sort_desc.png | Bin 0 -> 1127 bytes .../datatables/images/sort_desc_disabled.png | Bin 0 -> 1045 bytes public/assets/css/datepicker/datepicker3.css | 790 + .../daterangepicker/daterangepicker-bs3.css | 245 + public/assets/css/iCheck/all.css | 61 + public/assets/css/iCheck/flat/_all.css | 560 + public/assets/css/iCheck/flat/aero.css | 56 + public/assets/css/iCheck/flat/aero.png | Bin 0 -> 1520 bytes public/assets/css/iCheck/flat/aero@2x.png | Bin 0 -> 3218 bytes public/assets/css/iCheck/flat/blue.css | 56 + public/assets/css/iCheck/flat/blue.png | Bin 0 -> 1518 bytes public/assets/css/iCheck/flat/blue@2x.png | Bin 0 -> 3217 bytes public/assets/css/iCheck/flat/flat.css | 56 + public/assets/css/iCheck/flat/flat.png | Bin 0 -> 1515 bytes public/assets/css/iCheck/flat/flat@2x.png | Bin 0 -> 3217 bytes public/assets/css/iCheck/flat/green.css | 56 + public/assets/css/iCheck/flat/green.png | Bin 0 -> 1444 bytes public/assets/css/iCheck/flat/green@2x.png | Bin 0 -> 3117 bytes public/assets/css/iCheck/flat/grey.css | 56 + public/assets/css/iCheck/flat/grey.png | Bin 0 -> 1516 bytes public/assets/css/iCheck/flat/grey@2x.png | Bin 0 -> 3217 bytes public/assets/css/iCheck/flat/orange.css | 56 + public/assets/css/iCheck/flat/orange.png | Bin 0 -> 1518 bytes public/assets/css/iCheck/flat/orange@2x.png | Bin 0 -> 3275 bytes public/assets/css/iCheck/flat/pink.css | 56 + public/assets/css/iCheck/flat/pink.png | Bin 0 -> 1522 bytes public/assets/css/iCheck/flat/pink@2x.png | Bin 0 -> 3218 bytes public/assets/css/iCheck/flat/purple.css | 56 + public/assets/css/iCheck/flat/purple.png | Bin 0 -> 1519 bytes public/assets/css/iCheck/flat/purple@2x.png | Bin 0 -> 3218 bytes public/assets/css/iCheck/flat/red.css | 56 + public/assets/css/iCheck/flat/red.png | Bin 0 -> 1516 bytes public/assets/css/iCheck/flat/red@2x.png | Bin 0 -> 3276 bytes public/assets/css/iCheck/flat/yellow.css | 56 + public/assets/css/iCheck/flat/yellow.png | Bin 0 -> 1516 bytes public/assets/css/iCheck/flat/yellow@2x.png | Bin 0 -> 3216 bytes .../assets/css/iCheck/futurico/futurico.css | 56 + .../assets/css/iCheck/futurico/futurico.png | Bin 0 -> 1734 bytes .../css/iCheck/futurico/futurico@2x.png | Bin 0 -> 3446 bytes public/assets/css/iCheck/line/_all.css | 740 + public/assets/css/iCheck/line/aero.css | 74 + public/assets/css/iCheck/line/blue.css | 74 + public/assets/css/iCheck/line/green.css | 74 + public/assets/css/iCheck/line/grey.css | 74 + public/assets/css/iCheck/line/line.css | 74 + public/assets/css/iCheck/line/line.png | Bin 0 -> 588 bytes public/assets/css/iCheck/line/line@2x.png | Bin 0 -> 1073 bytes public/assets/css/iCheck/line/orange.css | 74 + public/assets/css/iCheck/line/pink.css | 74 + public/assets/css/iCheck/line/purple.css | 74 + public/assets/css/iCheck/line/red.css | 74 + public/assets/css/iCheck/line/yellow.css | 74 + public/assets/css/iCheck/minimal/_all.css | 557 + public/assets/css/iCheck/minimal/aero.css | 62 + public/assets/css/iCheck/minimal/aero.png | Bin 0 -> 1151 bytes public/assets/css/iCheck/minimal/aero@2x.png | Bin 0 -> 1409 bytes public/assets/css/iCheck/minimal/blue.css | 62 + public/assets/css/iCheck/minimal/blue.png | Bin 0 -> 1132 bytes public/assets/css/iCheck/minimal/blue@2x.png | Bin 0 -> 1410 bytes public/assets/css/iCheck/minimal/green.css | 62 + public/assets/css/iCheck/minimal/green.png | Bin 0 -> 1143 bytes public/assets/css/iCheck/minimal/green@2x.png | Bin 0 -> 1408 bytes public/assets/css/iCheck/minimal/grey.css | 62 + public/assets/css/iCheck/minimal/grey.png | Bin 0 -> 1142 bytes public/assets/css/iCheck/minimal/grey@2x.png | Bin 0 -> 1407 bytes public/assets/css/iCheck/minimal/minimal.css | 62 + public/assets/css/iCheck/minimal/minimal.png | Bin 0 -> 1114 bytes .../assets/css/iCheck/minimal/minimal@2x.png | Bin 0 -> 1410 bytes public/assets/css/iCheck/minimal/orange.css | 62 + public/assets/css/iCheck/minimal/orange.png | Bin 0 -> 1139 bytes .../assets/css/iCheck/minimal/orange@2x.png | Bin 0 -> 1407 bytes public/assets/css/iCheck/minimal/pink.css | 62 + public/assets/css/iCheck/minimal/pink.png | Bin 0 -> 1150 bytes public/assets/css/iCheck/minimal/pink@2x.png | Bin 0 -> 1409 bytes public/assets/css/iCheck/minimal/purple.css | 62 + public/assets/css/iCheck/minimal/purple.png | Bin 0 -> 1132 bytes .../assets/css/iCheck/minimal/purple@2x.png | Bin 0 -> 1409 bytes public/assets/css/iCheck/minimal/red.css | 62 + public/assets/css/iCheck/minimal/red.png | Bin 0 -> 1130 bytes public/assets/css/iCheck/minimal/red@2x.png | Bin 0 -> 1410 bytes public/assets/css/iCheck/minimal/yellow.css | 62 + public/assets/css/iCheck/minimal/yellow.png | Bin 0 -> 1135 bytes .../assets/css/iCheck/minimal/yellow@2x.png | Bin 0 -> 1406 bytes public/assets/css/iCheck/polaris/polaris.css | 62 + public/assets/css/iCheck/polaris/polaris.png | Bin 0 -> 6401 bytes .../assets/css/iCheck/polaris/polaris@2x.png | Bin 0 -> 16760 bytes public/assets/css/iCheck/square/_all.css | 620 + public/assets/css/iCheck/square/aero.css | 62 + public/assets/css/iCheck/square/aero.png | Bin 0 -> 2167 bytes public/assets/css/iCheck/square/aero@2x.png | Bin 0 -> 4455 bytes public/assets/css/iCheck/square/blue.css | 62 + public/assets/css/iCheck/square/blue.png | Bin 0 -> 2185 bytes public/assets/css/iCheck/square/blue@2x.png | Bin 0 -> 4485 bytes public/assets/css/iCheck/square/green.css | 62 + public/assets/css/iCheck/square/green.png | Bin 0 -> 2193 bytes public/assets/css/iCheck/square/green@2x.png | Bin 0 -> 4498 bytes public/assets/css/iCheck/square/grey.css | 62 + public/assets/css/iCheck/square/grey.png | Bin 0 -> 2186 bytes public/assets/css/iCheck/square/grey@2x.png | Bin 0 -> 4483 bytes public/assets/css/iCheck/square/orange.css | 62 + public/assets/css/iCheck/square/orange.png | Bin 0 -> 2181 bytes public/assets/css/iCheck/square/orange@2x.png | Bin 0 -> 4474 bytes public/assets/css/iCheck/square/pink.css | 62 + public/assets/css/iCheck/square/pink.png | Bin 0 -> 2189 bytes public/assets/css/iCheck/square/pink@2x.png | Bin 0 -> 4479 bytes public/assets/css/iCheck/square/purple.css | 62 + public/assets/css/iCheck/square/purple.png | Bin 0 -> 2188 bytes public/assets/css/iCheck/square/purple@2x.png | Bin 0 -> 4501 bytes public/assets/css/iCheck/square/red.css | 62 + public/assets/css/iCheck/square/red.png | Bin 0 -> 2190 bytes public/assets/css/iCheck/square/red@2x.png | Bin 0 -> 4490 bytes public/assets/css/iCheck/square/square.css | 62 + public/assets/css/iCheck/square/square.png | Bin 0 -> 2175 bytes public/assets/css/iCheck/square/square@2x.png | Bin 0 -> 4478 bytes public/assets/css/iCheck/square/yellow.css | 62 + public/assets/css/iCheck/square/yellow.png | Bin 0 -> 2131 bytes public/assets/css/iCheck/square/yellow@2x.png | Bin 0 -> 4385 bytes public/assets/css/images/animated-overlay.gif | Bin 0 -> 1738 bytes .../css/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 212 bytes .../images/ui-bg_flat_55_fbec88_40x100.png | Bin 0 -> 206 bytes .../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 0 -> 336 bytes .../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 0 -> 341 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 332 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 0 -> 5824 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 0 -> 333 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 0 -> 292 bytes .../css/images/ui-icons_217bc0_256x240.png | Bin 0 -> 4549 bytes .../css/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4549 bytes .../css/images/ui-icons_469bdd_256x240.png | Bin 0 -> 4549 bytes .../css/images/ui-icons_6da8d5_256x240.png | Bin 0 -> 4549 bytes .../css/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4549 bytes .../css/images/ui-icons_d8e7f3_256x240.png | Bin 0 -> 4549 bytes .../css/images/ui-icons_f9bd01_256x240.png | Bin 0 -> 4549 bytes .../assets/css/ionslider/ion.rangeSlider.css | 126 + .../ionslider/ion.rangeSlider.skinFlat.css | 89 + .../ionslider/ion.rangeSlider.skinNice.css | 85 + .../jvectormap/jquery-jvectormap-1.2.2.css | 36 + public/assets/css/morris/morris.css | 2 + public/assets/css/phpci.css | 24 - .../css/timepicker/bootstrap-timepicker.css | 121 + .../timepicker/bootstrap-timepicker.min.css | 10 + .../fonts/glyphicons-halflings-regular.eot | Bin 20335 -> 20290 bytes .../fonts/glyphicons-halflings-regular.svg | 94 +- .../fonts/glyphicons-halflings-regular.ttf | Bin 41280 -> 41236 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23320 -> 23292 bytes public/assets/img/ajax-loader.gif | Bin 0 -> 7364 bytes public/assets/img/ajax-loader1.gif | Bin 0 -> 8238 bytes public/assets/img/avatar.png | Bin 0 -> 27738 bytes public/assets/img/avatar04.png | Bin 0 -> 44586 bytes public/assets/img/avatar2.png | Bin 0 -> 28512 bytes public/assets/img/avatar3.png | Bin 0 -> 32476 bytes public/assets/img/avatar5.png | Bin 0 -> 24988 bytes public/assets/img/blur-background04.jpg | Bin 0 -> 402286 bytes public/assets/img/blur-background08.jpg | Bin 0 -> 378156 bytes public/assets/img/blur-background09.jpg | Bin 0 -> 390733 bytes .../alpha-horizontal.png | Bin 0 -> 3635 bytes .../img/bootstrap-colorpicker/alpha.png | Bin 0 -> 3271 bytes .../bootstrap-colorpicker/hue-horizontal.png | Bin 0 -> 2837 bytes .../assets/img/bootstrap-colorpicker/hue.png | Bin 0 -> 2972 bytes .../img/bootstrap-colorpicker/saturation.png | Bin 0 -> 8817 bytes public/assets/img/credit/american-express.png | Bin 0 -> 2796 bytes public/assets/img/credit/cirrus.png | Bin 0 -> 1872 bytes public/assets/img/credit/mastercard.png | Bin 0 -> 1988 bytes public/assets/img/credit/mestro.png | Bin 0 -> 1981 bytes public/assets/img/credit/paypal.png | Bin 0 -> 2664 bytes public/assets/img/credit/paypal2.png | Bin 0 -> 1416 bytes public/assets/img/credit/visa.png | Bin 0 -> 1199 bytes public/assets/img/icons.png | Bin 0 -> 1896 bytes public/assets/img/sprite-skin-flat.png | Bin 0 -> 352 bytes public/assets/img/sprite-skin-nice.png | Bin 0 -> 1022 bytes public/assets/img/user-bg.png | Bin 0 -> 73815 bytes public/assets/img/user.jpg | Bin 0 -> 19475 bytes public/assets/img/user2.jpg | Bin 0 -> 23678 bytes public/assets/js/AdminLTE/app.js | 1054 ++ public/assets/js/AdminLTE/dashboard.js | 252 + public/assets/js/AdminLTE/demo.js | 81 + public/assets/js/build-plugins/loc.js | 8 +- public/assets/js/build-plugins/log.js | 14 +- public/assets/js/build-plugins/phpcpd.js | 23 +- public/assets/js/build-plugins/phpcs.js | 22 +- public/assets/js/build-plugins/phpdoccheck.js | 26 +- public/assets/js/build-plugins/phpmd.js | 22 +- public/assets/js/build-plugins/phpunit.js | 18 +- public/assets/js/build-plugins/time.js | 10 +- public/assets/js/build-plugins/warnings.js | 8 +- public/assets/js/build.js | 148 + public/assets/js/phpci.js | 255 +- .../bootstrap-slider/bootstrap-slider.js | 1167 ++ .../bootstrap3-wysihtml5.all.min.js | 6 + .../bootstrap3-wysihtml5.js | 350 + .../colorpicker/bootstrap-colorpicker.js | 949 ++ .../colorpicker/bootstrap-colorpicker.min.js | 1 + .../datatables/dataTables.bootstrap.js | 250 + .../plugins/datatables/jquery.dataTables.js | 12099 ++++++++++++++++ .../datepicker/bootstrap-datepicker.js | 1671 +++ .../locales/bootstrap-datepicker.ar.js | 15 + .../locales/bootstrap-datepicker.az.js | 12 + .../locales/bootstrap-datepicker.bg.js | 14 + .../locales/bootstrap-datepicker.ca.js | 14 + .../locales/bootstrap-datepicker.cs.js | 15 + .../locales/bootstrap-datepicker.cy.js | 14 + .../locales/bootstrap-datepicker.da.js | 15 + .../locales/bootstrap-datepicker.de.js | 17 + .../locales/bootstrap-datepicker.el.js | 13 + .../locales/bootstrap-datepicker.es.js | 14 + .../locales/bootstrap-datepicker.et.js | 18 + .../locales/bootstrap-datepicker.fa.js | 17 + .../locales/bootstrap-datepicker.fi.js | 16 + .../locales/bootstrap-datepicker.fr.js | 17 + .../locales/bootstrap-datepicker.gl.js | 11 + .../locales/bootstrap-datepicker.he.js | 15 + .../locales/bootstrap-datepicker.hr.js | 13 + .../locales/bootstrap-datepicker.hu.js | 16 + .../locales/bootstrap-datepicker.id.js | 15 + .../locales/bootstrap-datepicker.is.js | 14 + .../locales/bootstrap-datepicker.it.js | 17 + .../locales/bootstrap-datepicker.ja.js | 15 + .../locales/bootstrap-datepicker.ka.js | 17 + .../locales/bootstrap-datepicker.kk.js | 15 + .../locales/bootstrap-datepicker.kr.js | 13 + .../locales/bootstrap-datepicker.lt.js | 16 + .../locales/bootstrap-datepicker.lv.js | 16 + .../locales/bootstrap-datepicker.mk.js | 15 + .../locales/bootstrap-datepicker.ms.js | 14 + .../locales/bootstrap-datepicker.nb.js | 14 + .../locales/bootstrap-datepicker.nl-BE.js | 17 + .../locales/bootstrap-datepicker.nl.js | 14 + .../locales/bootstrap-datepicker.no.js | 16 + .../locales/bootstrap-datepicker.pl.js | 15 + .../locales/bootstrap-datepicker.pt-BR.js | 15 + .../locales/bootstrap-datepicker.pt.js | 16 + .../locales/bootstrap-datepicker.ro.js | 16 + .../locales/bootstrap-datepicker.rs-latin.js | 14 + .../locales/bootstrap-datepicker.rs.js | 14 + .../locales/bootstrap-datepicker.ru.js | 15 + .../locales/bootstrap-datepicker.sk.js | 15 + .../locales/bootstrap-datepicker.sl.js | 14 + .../locales/bootstrap-datepicker.sq.js | 15 + .../locales/bootstrap-datepicker.sv.js | 16 + .../locales/bootstrap-datepicker.sw.js | 15 + .../locales/bootstrap-datepicker.th.js | 14 + .../locales/bootstrap-datepicker.tr.js | 16 + .../locales/bootstrap-datepicker.ua.js | 15 + .../locales/bootstrap-datepicker.vi.js | 16 + .../locales/bootstrap-datepicker.zh-CN.js | 16 + .../locales/bootstrap-datepicker.zh-TW.js | 17 + .../daterangepicker/daterangepicker.js | 883 ++ public/assets/js/plugins/flot/excanvas.js | 1428 ++ public/assets/js/plugins/flot/excanvas.min.js | 1 + .../js/plugins/flot/jquery.colorhelpers.js | 180 + .../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 + .../flot/jquery.flot.categories.min.js | 1 + .../js/plugins/flot/jquery.flot.crosshair.js | 176 + .../plugins/flot/jquery.flot.crosshair.min.js | 1 + .../js/plugins/flot/jquery.flot.errorbars.js | 353 + .../plugins/flot/jquery.flot.errorbars.min.js | 1 + .../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 + public/assets/js/plugins/flot/jquery.flot.js | 3137 ++++ .../assets/js/plugins/flot/jquery.flot.min.js | 2 + .../js/plugins/flot/jquery.flot.navigate.js | 346 + .../plugins/flot/jquery.flot.navigate.min.js | 1 + .../assets/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 + .../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 + .../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 + public/assets/js/plugins/iCheck/icheck.js | 506 + public/assets/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 + .../plugins/input-mask/phone-codes/readme.txt | 1 + .../plugins/ionslider/ion.rangeSlider.min.js | 22 + .../js/plugins/jqueryKnob/jquery.knob.js | 764 + .../jvectormap/jquery-jvectormap-1.2.2.min.js | 8 + .../jquery-jvectormap-world-mill-en.js | 1 + public/assets/js/plugins/misc/html5shiv.js | 8 + .../js/plugins/misc/jquery.ba-resize.min.js | 9 + .../js/plugins/misc/jquery.placeholder.js | 187 + .../assets/js/plugins/misc/modernizr.min.js | 4 + public/assets/js/plugins/misc/respond.min.js | 1 + public/assets/js/plugins/morris/morris.js | 1888 +++ public/assets/js/plugins/morris/morris.min.js | 2 + .../plugins/slimScroll/jquery.slimscroll.js | 464 + .../slimScroll/jquery.slimscroll.min.js | 16 + .../plugins/slimScroll/slimScroll.jquery.json | 30 + .../js/plugins/sparkline/jquery.sparkline.js | 3054 ++++ .../plugins/sparkline/jquery.sparkline.min.js | 5 + .../timepicker/bootstrap-timepicker.js | 903 ++ .../timepicker/bootstrap-timepicker.min.js | 5 + 357 files changed, 51429 insertions(+), 968 deletions(-) create mode 100644 PHPCI/View/Build/header-row.phtml create mode 100755 public/assets/css/AdminLTE.css create mode 100755 public/assets/css/bootstrap-slider/slider.css create mode 100755 public/assets/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.css create mode 100755 public/assets/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css create mode 100755 public/assets/css/colorpicker/bootstrap-colorpicker.css create mode 100755 public/assets/css/colorpicker/bootstrap-colorpicker.min.css create mode 100755 public/assets/css/datatables/dataTables.bootstrap.css create mode 100755 public/assets/css/datatables/images/sort_asc.png create mode 100755 public/assets/css/datatables/images/sort_asc_disabled.png create mode 100755 public/assets/css/datatables/images/sort_both.png create mode 100755 public/assets/css/datatables/images/sort_desc.png create mode 100755 public/assets/css/datatables/images/sort_desc_disabled.png create mode 100755 public/assets/css/datepicker/datepicker3.css create mode 100755 public/assets/css/daterangepicker/daterangepicker-bs3.css create mode 100755 public/assets/css/iCheck/all.css create mode 100755 public/assets/css/iCheck/flat/_all.css create mode 100755 public/assets/css/iCheck/flat/aero.css create mode 100755 public/assets/css/iCheck/flat/aero.png create mode 100755 public/assets/css/iCheck/flat/aero@2x.png create mode 100755 public/assets/css/iCheck/flat/blue.css create mode 100755 public/assets/css/iCheck/flat/blue.png create mode 100755 public/assets/css/iCheck/flat/blue@2x.png create mode 100755 public/assets/css/iCheck/flat/flat.css create mode 100755 public/assets/css/iCheck/flat/flat.png create mode 100755 public/assets/css/iCheck/flat/flat@2x.png create mode 100755 public/assets/css/iCheck/flat/green.css create mode 100755 public/assets/css/iCheck/flat/green.png create mode 100755 public/assets/css/iCheck/flat/green@2x.png create mode 100755 public/assets/css/iCheck/flat/grey.css create mode 100755 public/assets/css/iCheck/flat/grey.png create mode 100755 public/assets/css/iCheck/flat/grey@2x.png create mode 100755 public/assets/css/iCheck/flat/orange.css create mode 100755 public/assets/css/iCheck/flat/orange.png create mode 100755 public/assets/css/iCheck/flat/orange@2x.png create mode 100755 public/assets/css/iCheck/flat/pink.css create mode 100755 public/assets/css/iCheck/flat/pink.png create mode 100755 public/assets/css/iCheck/flat/pink@2x.png create mode 100755 public/assets/css/iCheck/flat/purple.css create mode 100755 public/assets/css/iCheck/flat/purple.png create mode 100755 public/assets/css/iCheck/flat/purple@2x.png create mode 100755 public/assets/css/iCheck/flat/red.css create mode 100755 public/assets/css/iCheck/flat/red.png create mode 100755 public/assets/css/iCheck/flat/red@2x.png create mode 100755 public/assets/css/iCheck/flat/yellow.css create mode 100755 public/assets/css/iCheck/flat/yellow.png create mode 100755 public/assets/css/iCheck/flat/yellow@2x.png create mode 100755 public/assets/css/iCheck/futurico/futurico.css create mode 100755 public/assets/css/iCheck/futurico/futurico.png create mode 100755 public/assets/css/iCheck/futurico/futurico@2x.png create mode 100755 public/assets/css/iCheck/line/_all.css create mode 100755 public/assets/css/iCheck/line/aero.css create mode 100755 public/assets/css/iCheck/line/blue.css create mode 100755 public/assets/css/iCheck/line/green.css create mode 100755 public/assets/css/iCheck/line/grey.css create mode 100755 public/assets/css/iCheck/line/line.css create mode 100755 public/assets/css/iCheck/line/line.png create mode 100755 public/assets/css/iCheck/line/line@2x.png create mode 100755 public/assets/css/iCheck/line/orange.css create mode 100755 public/assets/css/iCheck/line/pink.css create mode 100755 public/assets/css/iCheck/line/purple.css create mode 100755 public/assets/css/iCheck/line/red.css create mode 100755 public/assets/css/iCheck/line/yellow.css create mode 100755 public/assets/css/iCheck/minimal/_all.css create mode 100755 public/assets/css/iCheck/minimal/aero.css create mode 100755 public/assets/css/iCheck/minimal/aero.png create mode 100755 public/assets/css/iCheck/minimal/aero@2x.png create mode 100755 public/assets/css/iCheck/minimal/blue.css create mode 100755 public/assets/css/iCheck/minimal/blue.png create mode 100755 public/assets/css/iCheck/minimal/blue@2x.png create mode 100755 public/assets/css/iCheck/minimal/green.css create mode 100755 public/assets/css/iCheck/minimal/green.png create mode 100755 public/assets/css/iCheck/minimal/green@2x.png create mode 100755 public/assets/css/iCheck/minimal/grey.css create mode 100755 public/assets/css/iCheck/minimal/grey.png create mode 100755 public/assets/css/iCheck/minimal/grey@2x.png create mode 100755 public/assets/css/iCheck/minimal/minimal.css create mode 100755 public/assets/css/iCheck/minimal/minimal.png create mode 100755 public/assets/css/iCheck/minimal/minimal@2x.png create mode 100755 public/assets/css/iCheck/minimal/orange.css create mode 100755 public/assets/css/iCheck/minimal/orange.png create mode 100755 public/assets/css/iCheck/minimal/orange@2x.png create mode 100755 public/assets/css/iCheck/minimal/pink.css create mode 100755 public/assets/css/iCheck/minimal/pink.png create mode 100755 public/assets/css/iCheck/minimal/pink@2x.png create mode 100755 public/assets/css/iCheck/minimal/purple.css create mode 100755 public/assets/css/iCheck/minimal/purple.png create mode 100755 public/assets/css/iCheck/minimal/purple@2x.png create mode 100755 public/assets/css/iCheck/minimal/red.css create mode 100755 public/assets/css/iCheck/minimal/red.png create mode 100755 public/assets/css/iCheck/minimal/red@2x.png create mode 100755 public/assets/css/iCheck/minimal/yellow.css create mode 100755 public/assets/css/iCheck/minimal/yellow.png create mode 100755 public/assets/css/iCheck/minimal/yellow@2x.png create mode 100755 public/assets/css/iCheck/polaris/polaris.css create mode 100755 public/assets/css/iCheck/polaris/polaris.png create mode 100755 public/assets/css/iCheck/polaris/polaris@2x.png create mode 100755 public/assets/css/iCheck/square/_all.css create mode 100755 public/assets/css/iCheck/square/aero.css create mode 100755 public/assets/css/iCheck/square/aero.png create mode 100755 public/assets/css/iCheck/square/aero@2x.png create mode 100755 public/assets/css/iCheck/square/blue.css create mode 100755 public/assets/css/iCheck/square/blue.png create mode 100755 public/assets/css/iCheck/square/blue@2x.png create mode 100755 public/assets/css/iCheck/square/green.css create mode 100755 public/assets/css/iCheck/square/green.png create mode 100755 public/assets/css/iCheck/square/green@2x.png create mode 100755 public/assets/css/iCheck/square/grey.css create mode 100755 public/assets/css/iCheck/square/grey.png create mode 100755 public/assets/css/iCheck/square/grey@2x.png create mode 100755 public/assets/css/iCheck/square/orange.css create mode 100755 public/assets/css/iCheck/square/orange.png create mode 100755 public/assets/css/iCheck/square/orange@2x.png create mode 100755 public/assets/css/iCheck/square/pink.css create mode 100755 public/assets/css/iCheck/square/pink.png create mode 100755 public/assets/css/iCheck/square/pink@2x.png create mode 100755 public/assets/css/iCheck/square/purple.css create mode 100755 public/assets/css/iCheck/square/purple.png create mode 100755 public/assets/css/iCheck/square/purple@2x.png create mode 100755 public/assets/css/iCheck/square/red.css create mode 100755 public/assets/css/iCheck/square/red.png create mode 100755 public/assets/css/iCheck/square/red@2x.png create mode 100755 public/assets/css/iCheck/square/square.css create mode 100755 public/assets/css/iCheck/square/square.png create mode 100755 public/assets/css/iCheck/square/square@2x.png create mode 100755 public/assets/css/iCheck/square/yellow.css create mode 100755 public/assets/css/iCheck/square/yellow.png create mode 100755 public/assets/css/iCheck/square/yellow@2x.png create mode 100755 public/assets/css/images/animated-overlay.gif create mode 100755 public/assets/css/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100755 public/assets/css/images/ui-bg_flat_55_fbec88_40x100.png create mode 100755 public/assets/css/images/ui-bg_glass_75_d0e5f5_1x400.png create mode 100755 public/assets/css/images/ui-bg_glass_85_dfeffc_1x400.png create mode 100755 public/assets/css/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100755 public/assets/css/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png create mode 100755 public/assets/css/images/ui-bg_inset-hard_100_f5f8f9_1x100.png create mode 100755 public/assets/css/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100755 public/assets/css/images/ui-icons_217bc0_256x240.png create mode 100755 public/assets/css/images/ui-icons_2e83ff_256x240.png create mode 100755 public/assets/css/images/ui-icons_469bdd_256x240.png create mode 100755 public/assets/css/images/ui-icons_6da8d5_256x240.png create mode 100755 public/assets/css/images/ui-icons_cd0a0a_256x240.png create mode 100755 public/assets/css/images/ui-icons_d8e7f3_256x240.png create mode 100755 public/assets/css/images/ui-icons_f9bd01_256x240.png create mode 100755 public/assets/css/ionslider/ion.rangeSlider.css create mode 100755 public/assets/css/ionslider/ion.rangeSlider.skinFlat.css create mode 100755 public/assets/css/ionslider/ion.rangeSlider.skinNice.css create mode 100755 public/assets/css/jvectormap/jquery-jvectormap-1.2.2.css create mode 100755 public/assets/css/morris/morris.css create mode 100755 public/assets/css/timepicker/bootstrap-timepicker.css create mode 100755 public/assets/css/timepicker/bootstrap-timepicker.min.css create mode 100755 public/assets/img/ajax-loader.gif create mode 100755 public/assets/img/ajax-loader1.gif create mode 100755 public/assets/img/avatar.png create mode 100755 public/assets/img/avatar04.png create mode 100755 public/assets/img/avatar2.png create mode 100755 public/assets/img/avatar3.png create mode 100755 public/assets/img/avatar5.png create mode 100755 public/assets/img/blur-background04.jpg create mode 100755 public/assets/img/blur-background08.jpg create mode 100755 public/assets/img/blur-background09.jpg create mode 100755 public/assets/img/bootstrap-colorpicker/alpha-horizontal.png create mode 100755 public/assets/img/bootstrap-colorpicker/alpha.png create mode 100755 public/assets/img/bootstrap-colorpicker/hue-horizontal.png create mode 100755 public/assets/img/bootstrap-colorpicker/hue.png create mode 100755 public/assets/img/bootstrap-colorpicker/saturation.png create mode 100755 public/assets/img/credit/american-express.png create mode 100755 public/assets/img/credit/cirrus.png create mode 100755 public/assets/img/credit/mastercard.png create mode 100755 public/assets/img/credit/mestro.png create mode 100755 public/assets/img/credit/paypal.png create mode 100755 public/assets/img/credit/paypal2.png create mode 100755 public/assets/img/credit/visa.png create mode 100755 public/assets/img/icons.png create mode 100755 public/assets/img/sprite-skin-flat.png create mode 100755 public/assets/img/sprite-skin-nice.png create mode 100755 public/assets/img/user-bg.png create mode 100755 public/assets/img/user.jpg create mode 100755 public/assets/img/user2.jpg create mode 100755 public/assets/js/AdminLTE/app.js create mode 100755 public/assets/js/AdminLTE/dashboard.js create mode 100755 public/assets/js/AdminLTE/demo.js create mode 100644 public/assets/js/build.js create mode 100755 public/assets/js/plugins/bootstrap-slider/bootstrap-slider.js create mode 100755 public/assets/js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js create mode 100755 public/assets/js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.js create mode 100755 public/assets/js/plugins/colorpicker/bootstrap-colorpicker.js create mode 100755 public/assets/js/plugins/colorpicker/bootstrap-colorpicker.min.js create mode 100755 public/assets/js/plugins/datatables/dataTables.bootstrap.js create mode 100755 public/assets/js/plugins/datatables/jquery.dataTables.js create mode 100755 public/assets/js/plugins/datepicker/bootstrap-datepicker.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.ar.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.az.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.bg.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.ca.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.cs.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.cy.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.da.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.de.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.el.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.es.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.et.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.fa.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.fi.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.fr.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.gl.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.he.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.hr.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.hu.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.id.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.is.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.it.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.ja.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.ka.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.kk.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.kr.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.lt.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.lv.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.mk.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.ms.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.nb.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.nl-BE.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.nl.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.no.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.pl.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.pt-BR.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.pt.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.ro.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.rs-latin.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.rs.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.ru.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.sk.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.sl.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.sq.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.sv.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.sw.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.th.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.tr.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.ua.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.vi.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js create mode 100755 public/assets/js/plugins/datepicker/locales/bootstrap-datepicker.zh-TW.js create mode 100755 public/assets/js/plugins/daterangepicker/daterangepicker.js create mode 100755 public/assets/js/plugins/flot/excanvas.js create mode 100755 public/assets/js/plugins/flot/excanvas.min.js create mode 100755 public/assets/js/plugins/flot/jquery.colorhelpers.js create mode 100755 public/assets/js/plugins/flot/jquery.colorhelpers.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.canvas.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.canvas.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.categories.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.categories.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.crosshair.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.crosshair.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.errorbars.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.errorbars.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.fillbetween.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.fillbetween.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.image.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.image.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.navigate.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.navigate.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.pie.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.pie.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.resize.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.resize.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.selection.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.selection.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.stack.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.stack.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.symbol.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.symbol.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.threshold.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.threshold.min.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.time.js create mode 100755 public/assets/js/plugins/flot/jquery.flot.time.min.js create mode 100755 public/assets/js/plugins/iCheck/icheck.js create mode 100755 public/assets/js/plugins/iCheck/icheck.min.js create mode 100755 public/assets/js/plugins/input-mask/jquery.inputmask.date.extensions.js create mode 100755 public/assets/js/plugins/input-mask/jquery.inputmask.extensions.js create mode 100755 public/assets/js/plugins/input-mask/jquery.inputmask.js create mode 100755 public/assets/js/plugins/input-mask/jquery.inputmask.numeric.extensions.js create mode 100755 public/assets/js/plugins/input-mask/jquery.inputmask.phone.extensions.js create mode 100755 public/assets/js/plugins/input-mask/jquery.inputmask.regex.extensions.js create mode 100755 public/assets/js/plugins/input-mask/phone-codes/phone-be.json create mode 100755 public/assets/js/plugins/input-mask/phone-codes/phone-codes.json create mode 100755 public/assets/js/plugins/input-mask/phone-codes/readme.txt create mode 100755 public/assets/js/plugins/ionslider/ion.rangeSlider.min.js create mode 100755 public/assets/js/plugins/jqueryKnob/jquery.knob.js create mode 100755 public/assets/js/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js create mode 100755 public/assets/js/plugins/jvectormap/jquery-jvectormap-world-mill-en.js create mode 100755 public/assets/js/plugins/misc/html5shiv.js create mode 100755 public/assets/js/plugins/misc/jquery.ba-resize.min.js create mode 100755 public/assets/js/plugins/misc/jquery.placeholder.js create mode 100755 public/assets/js/plugins/misc/modernizr.min.js create mode 100755 public/assets/js/plugins/misc/respond.min.js create mode 100755 public/assets/js/plugins/morris/morris.js create mode 100755 public/assets/js/plugins/morris/morris.min.js create mode 100755 public/assets/js/plugins/slimScroll/jquery.slimscroll.js create mode 100755 public/assets/js/plugins/slimScroll/jquery.slimscroll.min.js create mode 100755 public/assets/js/plugins/slimScroll/slimScroll.jquery.json create mode 100755 public/assets/js/plugins/sparkline/jquery.sparkline.js create mode 100755 public/assets/js/plugins/sparkline/jquery.sparkline.min.js create mode 100755 public/assets/js/plugins/timepicker/bootstrap-timepicker.js create mode 100755 public/assets/js/plugins/timepicker/bootstrap-timepicker.min.js diff --git a/PHPCI/Application.php b/PHPCI/Application.php index 646645af..16fab7cf 100644 --- a/PHPCI/Application.php +++ b/PHPCI/Application.php @@ -14,6 +14,7 @@ use b8\Exception\HttpException; use b8\Http\Response; use b8\Http\Response\RedirectResponse; use b8\View; +use PHPCI\Model\Build; /** * PHPCI Front Controller @@ -91,18 +92,30 @@ class Application extends b8\Application $this->response->setContent($view->render()); } - if (View::exists('layout') && $this->response->hasLayout()) { - $view = new View('layout'); - $pageTitle = $this->config->get('page_title', null); + if ($this->response->hasLayout()) { + $this->setLayoutVariables($this->controller->layout); - if (!is_null($pageTitle)) { - $view->title = $pageTitle; - } - - $view->content = $this->response->getContent(); - $this->response->setContent($view->render()); + $this->controller->layout->content = $this->response->getContent(); + $this->response->setContent($this->controller->layout->render()); } return $this->response; } + + protected function loadController($class) + { + $controller = parent::loadController($class); + $controller->layout = new View('layout'); + $controller->layout->title = 'PHPCI'; + $controller->layout->breadcrumb = array(); + + return $controller; + } + + protected function setLayoutVariables(View &$layout) + { + /** @var \PHPCI\Store\ProjectStore $projectStore */ + $projectStore = b8\Store\Factory::getStore('Project'); + $layout->projects = $projectStore->getAll(); + } } diff --git a/PHPCI/Command/RunCommand.php b/PHPCI/Command/RunCommand.php index f6aa1288..f1c02360 100644 --- a/PHPCI/Command/RunCommand.php +++ b/PHPCI/Command/RunCommand.php @@ -62,8 +62,7 @@ class RunCommand extends Command { $this ->setName('phpci:run-builds') - ->setDescription('Run all pending PHPCI builds.') - ->addOption('verbose', 'v', InputOption::VALUE_NONE); + ->setDescription('Run all pending PHPCI builds.'); } /** @@ -75,7 +74,7 @@ class RunCommand extends Command // For verbose mode we want to output all informational and above // messages to the symphony output interface. - if ($input->getOption('verbose')) { + if ($input->hasOption('verbose') && $input->getOption('verbose')) { $this->logger->pushHandler( new OutputLogHandler($this->output, Logger::INFO) ); @@ -117,6 +116,7 @@ class RunCommand extends Command $this->logger->popHandler($buildDbLog); } catch (\Exception $ex) { $build->setStatus(Build::STATUS_FAILED); + $build->setFinished(new \DateTime()); $build->setLog($build->getLog() . PHP_EOL . PHP_EOL . $ex->getMessage()); $store->save($build); } diff --git a/PHPCI/Controller/BuildController.php b/PHPCI/Controller/BuildController.php index 79e9eb94..2d0ea73a 100644 --- a/PHPCI/Controller/BuildController.php +++ b/PHPCI/Controller/BuildController.php @@ -13,6 +13,7 @@ use b8; use b8\Exception\HttpException\NotFoundException; use PHPCI\BuildFactory; use PHPCI\Model\Build; +use PHPCI\Model\Project; use PHPCI\Service\BuildService; /** @@ -58,8 +59,22 @@ class BuildController extends \PHPCI\Controller $this->view->build = $build; $this->view->data = $this->getBuildData($build); - $title = 'Build #' . $build->getId() . ' - ' . $build->getProjectTitle(); - $this->config->set('page_title', $title); + $this->layout->title = 'Build #' . $build->getId(); + $this->layout->subtitle = $build->getProjectTitle(); + + $nav = array( + 'title' => 'Build '.$build->getId(), + 'icon' => 'cog', + 'links' => array( + 'build/rebuild/' . $build->getId() => 'Rebuild Now', + ), + ); + + if ($_SESSION['phpci_user']->getIsAdmin()) { + $nav['links']['build/delete/' . $build->getId()] = 'Delete Build'; + } + + $this->layout->nav = $nav; } protected function getUiPlugins() @@ -168,4 +183,36 @@ class BuildController extends \PHPCI\Controller return $log; } + + public function latest() + { + $rtn = array( + 'pending' => $this->formatBuilds($this->buildStore->getByStatus(Build::STATUS_NEW)), + 'running' => $this->formatBuilds($this->buildStore->getByStatus(Build::STATUS_RUNNING)), + ); + + if ($this->request->isAjax()) { + die(json_encode($rtn)); + } + } + + protected function formatBuilds($builds) + { + Project::$sleepable = array('id', 'title', 'reference', 'type'); + + $rtn = array('count' => $builds['count'], 'items' => array()); + + foreach ($builds['items'] as $build) { + $item = $build->toArray(1); + + $header = new b8\View('Build/header-row'); + $header->build = $build; + + $item['header_row'] = $header->render(); + $rtn['items'][$item['id']] = $item; + } + + ksort($rtn['items']); + return $rtn; + } } diff --git a/PHPCI/Controller/HomeController.php b/PHPCI/Controller/HomeController.php index a4f8003d..3d42775d 100644 --- a/PHPCI/Controller/HomeController.php +++ b/PHPCI/Controller/HomeController.php @@ -11,6 +11,7 @@ namespace PHPCI\Controller; use b8; use PHPCI\BuildFactory; +use PHPCI\Model\Build; /** * Home Controller - Displays the PHPCI Dashboard. @@ -41,14 +42,14 @@ class HomeController extends \PHPCI\Controller */ public function index() { + $this->layout->title = 'Dashboard'; + $projects = $this->projectStore->getWhere(array(), 50, 0, array(), array('title' => 'ASC')); - $this->view->builds = $this->getLatestBuildsHtml(); + $this->view->builds = $this->buildStore->getLatestBuilds(null, 10); $this->view->projects = $projects['items']; $this->view->summary = $this->getSummaryHtml($projects); - $this->config->set('page_title', 'Dashboard'); - return $this->view->render(); } diff --git a/PHPCI/Controller/PluginController.php b/PHPCI/Controller/PluginController.php index 5cbb662d..b4281626 100644 --- a/PHPCI/Controller/PluginController.php +++ b/PHPCI/Controller/PluginController.php @@ -24,6 +24,10 @@ use PHPCI\Plugin\Util\PluginInformationCollection; class PluginController extends \PHPCI\Controller { protected $required = array( + 'php', + 'ext-mcrypt', + 'ext-pdo', + 'ext-pdo_mysql', 'block8/b8framework', 'ircmaxell/password-compat', 'swiftmailer/swiftmailer', @@ -31,7 +35,8 @@ class PluginController extends \PHPCI\Controller 'symfony/console', 'psr/log', 'monolog/monolog', - 'pimple/pimple' + 'pimple/pimple', + 'robmorgan/phinx', ); protected $canInstall; @@ -60,7 +65,7 @@ class PluginController extends \PHPCI\Controller $this->view->plugins = $pluginInfo->getInstalledPlugins(); - $this->config->set('page_title', 'Plugins'); + $this->layout->title = 'Plugins'; return $this->view->render(); } diff --git a/PHPCI/Controller/ProjectController.php b/PHPCI/Controller/ProjectController.php index 1e2c68d1..5b594b96 100644 --- a/PHPCI/Controller/ProjectController.php +++ b/PHPCI/Controller/ProjectController.php @@ -62,8 +62,9 @@ class ProjectController extends \PHPCI\Controller /** * View a specific project. */ - public function view($projectId, $branch = '') + public function view($projectId) { + $branch = $this->getParam('branch', ''); $project = $this->projectStore->getById($projectId); if (empty($project)) { @@ -87,7 +88,8 @@ class ProjectController extends \PHPCI\Controller $this->view->page = $page; $this->view->pages = $pages; - $this->config->set('page_title', $project->getTitle()); + $this->layout->title = $project->getTitle(); + $this->layout->subtitle = $this->view->branch; return $this->view->render(); } @@ -134,8 +136,9 @@ class ProjectController extends \PHPCI\Controller /** * AJAX get latest builds. */ - public function builds($projectId, $branch = '') + public function builds($projectId) { + $branch = $this->getParam('branch', ''); $builds = $this->getLatestBuildsHtml($projectId, urldecode($branch)); die($builds[0]); } @@ -173,7 +176,7 @@ class ProjectController extends \PHPCI\Controller */ public function add() { - $this->config->set('page_title', 'Add Project'); + $this->layout->title = 'Add Project'; $this->requireAdmin(); $method = $this->request->getMethod(); diff --git a/PHPCI/Controller/SessionController.php b/PHPCI/Controller/SessionController.php index a9b60333..f7bfa982 100644 --- a/PHPCI/Controller/SessionController.php +++ b/PHPCI/Controller/SessionController.php @@ -40,7 +40,7 @@ class SessionController extends \PHPCI\Controller if ($this->request->getMethod() == 'POST') { $user = $this->userStore->getByEmail($this->getParam('email')); - + if ($user && password_verify($this->getParam('password', ''), $user->getHash())) { $_SESSION['phpci_user_id'] = $user->getId(); header('Location: ' . $this->getLoginRedirect()); diff --git a/PHPCI/Controller/SettingsController.php b/PHPCI/Controller/SettingsController.php index bc5558ba..4cd9f0be 100644 --- a/PHPCI/Controller/SettingsController.php +++ b/PHPCI/Controller/SettingsController.php @@ -38,6 +38,7 @@ class SettingsController extends Controller public function index() { + $this->layout->title = 'Settings'; $this->view->settings = $this->settings; $emailSettings = array(); diff --git a/PHPCI/Controller/UserController.php b/PHPCI/Controller/UserController.php index 182cc3f0..3240edce 100644 --- a/PHPCI/Controller/UserController.php +++ b/PHPCI/Controller/UserController.php @@ -49,7 +49,7 @@ class UserController extends Controller $users = $this->userStore->getWhere(array(), 1000, 0, array(), array('email' => 'ASC')); $this->view->users = $users; - $this->config->set('page_title', 'Users'); + $this->layout->title = 'Users'; return $this->view->render(); } @@ -58,6 +58,8 @@ class UserController extends Controller { $user = $_SESSION['phpci_user']; + $this->layout->title = 'Edit Profile'; + if ($this->request->getMethod() == 'POST') { $name = $this->getParam('name', null); $email = $this->getParam('email', null); @@ -65,6 +67,8 @@ class UserController extends Controller $_SESSION['phpci_user'] = $this->userService->updateUser($user, $name, $email, $password); $user = $_SESSION['phpci_user']; + + $this->view->updated = 1; } $values = $user->getDataArray(); @@ -115,7 +119,7 @@ class UserController extends Controller throw new ForbiddenException('You do not have permission to do that.'); } - $this->config->set('page_title', 'Add User'); + $this->layout->title = 'Add User'; $method = $this->request->getMethod(); @@ -164,6 +168,9 @@ class UserController extends Controller throw new NotFoundException('User with ID: ' . $userId . ' does not exist.'); } + $this->layout->title = $user->getName(); + $this->layout->subtitle = 'Edit User'; + $values = array_merge($user->getDataArray(), $this->getParams()); $form = $this->userForm($values, 'edit/' . $userId); diff --git a/PHPCI/Model/Base/ProjectBase.php b/PHPCI/Model/Base/ProjectBase.php index 5e1f4f37..0161243c 100644 --- a/PHPCI/Model/Base/ProjectBase.php +++ b/PHPCI/Model/Base/ProjectBase.php @@ -36,13 +36,12 @@ class ProjectBase extends Model 'id' => null, 'title' => null, 'reference' => null, - 'branch' => null, 'ssh_private_key' => null, - 'ssh_public_key' => null, 'type' => null, 'access_information' => null, 'last_commit' => null, 'build_config' => null, + 'ssh_public_key' => null, 'allow_public_status' => null, ); @@ -54,13 +53,12 @@ class ProjectBase extends Model 'id' => 'getId', 'title' => 'getTitle', 'reference' => 'getReference', - 'branch' => 'getBranch', 'ssh_private_key' => 'getSshPrivateKey', - 'ssh_public_key' => 'getSshPublicKey', 'type' => 'getType', 'access_information' => 'getAccessInformation', 'last_commit' => 'getLastCommit', 'build_config' => 'getBuildConfig', + 'ssh_public_key' => 'getSshPublicKey', 'allow_public_status' => 'getAllowPublicStatus', // Foreign key getters: @@ -74,13 +72,12 @@ class ProjectBase extends Model 'id' => 'setId', 'title' => 'setTitle', 'reference' => 'setReference', - 'branch' => 'setBranch', 'ssh_private_key' => 'setSshPrivateKey', - 'ssh_public_key' => 'setSshPublicKey', 'type' => 'setType', 'access_information' => 'setAccessInformation', 'last_commit' => 'setLastCommit', 'build_config' => 'setBuildConfig', + 'ssh_public_key' => 'setSshPublicKey', 'allow_public_status' => 'setAllowPublicStatus', // Foreign key setters: @@ -107,21 +104,11 @@ class ProjectBase extends Model 'length' => 250, 'default' => null, ), - 'branch' => array( - 'type' => 'varchar', - 'length' => 250, - 'default' => null, - ), 'ssh_private_key' => array( 'type' => 'text', 'nullable' => true, 'default' => null, ), - 'ssh_public_key' => array( - 'type' => 'text', - 'nullable' => true, - 'default' => null, - ), 'type' => array( 'type' => 'varchar', 'length' => 50, @@ -144,9 +131,15 @@ class ProjectBase extends Model 'nullable' => true, 'default' => null, ), + 'ssh_public_key' => array( + 'type' => 'text', + 'nullable' => true, + 'default' => null, + ), 'allow_public_status' => array( 'type' => 'tinyint', 'length' => 4, + 'default' => null, ), ); @@ -200,18 +193,6 @@ class ProjectBase extends Model return $rtn; } - /** - * Get the value of Branch / branch. - * - * @return string - */ - public function getBranch() - { - $rtn = $this->data['branch']; - - return $rtn; - } - /** * Get the value of SshPrivateKey / ssh_private_key. * @@ -224,18 +205,6 @@ class ProjectBase extends Model return $rtn; } - /** - * Get the value of SshPublicKey / ssh_public_key. - * - * @return string - */ - public function getSshPublicKey() - { - $rtn = $this->data['ssh_public_key']; - - return $rtn; - } - /** * Get the value of Type / type. * @@ -284,6 +253,18 @@ class ProjectBase extends Model return $rtn; } + /** + * Get the value of SshPublicKey / ssh_public_key. + * + * @return string + */ + public function getSshPublicKey() + { + $rtn = $this->data['ssh_public_key']; + + return $rtn; + } + /** * Get the value of AllowPublicStatus / allow_public_status. * @@ -356,26 +337,6 @@ class ProjectBase extends Model $this->_setModified('reference'); } - /** - * Set the value of Branch / branch. - * - * Must not be null. - * @param $value string - */ - public function setBranch($value) - { - $this->_validateNotNull('Branch', $value); - $this->_validateString('Branch', $value); - - if ($this->data['branch'] === $value) { - return; - } - - $this->data['branch'] = $value; - - $this->_setModified('branch'); - } - /** * Set the value of SshPrivateKey / ssh_private_key. * @@ -394,24 +355,6 @@ class ProjectBase extends Model $this->_setModified('ssh_private_key'); } - /** - * Set the value of SshPublicKey / ssh_public_key. - * - * @param $value string - */ - public function setSshPublicKey($value) - { - $this->_validateString('SshPublicKey', $value); - - if ($this->data['ssh_public_key'] === $value) { - return; - } - - $this->data['ssh_public_key'] = $value; - - $this->_setModified('ssh_public_key'); - } - /** * Set the value of Type / type. * @@ -486,6 +429,24 @@ class ProjectBase extends Model $this->_setModified('build_config'); } + /** + * Set the value of SshPublicKey / ssh_public_key. + * + * @param $value string + */ + public function setSshPublicKey($value) + { + $this->_validateString('SshPublicKey', $value); + + if ($this->data['ssh_public_key'] === $value) { + return; + } + + $this->data['ssh_public_key'] = $value; + + $this->_setModified('ssh_public_key'); + } + /** * Set the value of AllowPublicStatus / allow_public_status. * diff --git a/PHPCI/Model/Project.php b/PHPCI/Model/Project.php index 702d9c89..98283d77 100644 --- a/PHPCI/Model/Project.php +++ b/PHPCI/Model/Project.php @@ -88,4 +88,28 @@ class Project extends ProjectBase return $this->data['branch']; } } + + public function getIcon() + { + switch ($this->getType()) { + case 'github': + $icon = 'github'; + break; + + case 'bitbucket': + $icon = 'bitbucket'; + break; + + case 'git': + case 'gitlab': + $icon = 'git'; + break; + + default: + $icon = 'cog'; + break; + } + + return $icon; + } } diff --git a/PHPCI/Store/Base/BuildMetaStoreBase.php b/PHPCI/Store/Base/BuildMetaStoreBase.php index bc1589cc..f6158c13 100644 --- a/PHPCI/Store/Base/BuildMetaStoreBase.php +++ b/PHPCI/Store/Base/BuildMetaStoreBase.php @@ -56,7 +56,6 @@ class BuildMetaStoreBase extends Store $add .= ' LIMIT ' . $limit; } - $count = null; $query = 'SELECT * FROM `build_meta` WHERE `project_id` = :project_id' . $add; $stmt = Database::getConnection($useConnection)->prepare($query); @@ -70,6 +69,9 @@ class BuildMetaStoreBase extends Store }; $rtn = array_map($map, $res); + $count = count($rtn); + + return array('items' => $rtn, 'count' => $count); } else { return array('items' => array(), 'count' => 0); @@ -88,7 +90,6 @@ class BuildMetaStoreBase extends Store $add .= ' LIMIT ' . $limit; } - $count = null; $query = 'SELECT * FROM `build_meta` WHERE `build_id` = :build_id' . $add; $stmt = Database::getConnection($useConnection)->prepare($query); @@ -102,6 +103,9 @@ class BuildMetaStoreBase extends Store }; $rtn = array_map($map, $res); + $count = count($rtn); + + return array('items' => $rtn, 'count' => $count); } else { return array('items' => array(), 'count' => 0); diff --git a/PHPCI/Store/Base/BuildStoreBase.php b/PHPCI/Store/Base/BuildStoreBase.php index b67d5f73..20927caa 100644 --- a/PHPCI/Store/Base/BuildStoreBase.php +++ b/PHPCI/Store/Base/BuildStoreBase.php @@ -56,7 +56,6 @@ class BuildStoreBase extends Store $add .= ' LIMIT ' . $limit; } - $count = null; $query = 'SELECT * FROM `build` WHERE `project_id` = :project_id' . $add; $stmt = Database::getConnection($useConnection)->prepare($query); @@ -70,6 +69,9 @@ class BuildStoreBase extends Store }; $rtn = array_map($map, $res); + $count = count($rtn); + + return array('items' => $rtn, 'count' => $count); } else { return array('items' => array(), 'count' => 0); @@ -88,7 +90,6 @@ class BuildStoreBase extends Store $add .= ' LIMIT ' . $limit; } - $count = null; $query = 'SELECT * FROM `build` WHERE `status` = :status' . $add; $stmt = Database::getConnection($useConnection)->prepare($query); @@ -102,6 +103,9 @@ class BuildStoreBase extends Store }; $rtn = array_map($map, $res); + $count = count($rtn); + + return array('items' => $rtn, 'count' => $count); } else { return array('items' => array(), 'count' => 0); diff --git a/PHPCI/Store/Base/ProjectStoreBase.php b/PHPCI/Store/Base/ProjectStoreBase.php index 410a305e..dda946a5 100644 --- a/PHPCI/Store/Base/ProjectStoreBase.php +++ b/PHPCI/Store/Base/ProjectStoreBase.php @@ -56,7 +56,6 @@ class ProjectStoreBase extends Store $add .= ' LIMIT ' . $limit; } - $count = null; $query = 'SELECT * FROM `project` WHERE `title` = :title' . $add; $stmt = Database::getConnection($useConnection)->prepare($query); @@ -70,6 +69,9 @@ class ProjectStoreBase extends Store }; $rtn = array_map($map, $res); + $count = count($rtn); + + return array('items' => $rtn, 'count' => $count); } else { return array('items' => array(), 'count' => 0); diff --git a/PHPCI/Store/BuildStore.php b/PHPCI/Store/BuildStore.php index a1da7cb1..8c36b3b1 100644 --- a/PHPCI/Store/BuildStore.php +++ b/PHPCI/Store/BuildStore.php @@ -10,6 +10,7 @@ namespace PHPCI\Store; use b8\Database; +use PHPCI\BuildFactory; use PHPCI\Model\Build; use PHPCI\Store\Base\BuildStoreBase; @@ -21,11 +22,22 @@ use PHPCI\Store\Base\BuildStoreBase; */ class BuildStore extends BuildStoreBase { - public function getLatestBuilds($projectId) + public function getLatestBuilds($projectId = null, $limit = 5) { - $query = 'SELECT * FROM build WHERE project_id = :pid ORDER BY id DESC LIMIT 5'; + $where = ''; + + if (!is_null($projectId)) { + $where = ' WHERE `project_id` = :pid '; + } + + $query = 'SELECT * FROM build '.$where.' ORDER BY id DESC LIMIT :limit'; $stmt = Database::getConnection('read')->prepare($query); - $stmt->bindValue(':pid', $projectId); + + if (!is_null($projectId)) { + $stmt->bindValue(':pid', $projectId); + } + + $stmt->bindValue(':limit', $limit, \PDO::PARAM_INT); if ($stmt->execute()) { $res = $stmt->fetchAll(\PDO::FETCH_ASSOC); diff --git a/PHPCI/Store/ProjectStore.php b/PHPCI/Store/ProjectStore.php index 6f81b8f4..4657fb8d 100644 --- a/PHPCI/Store/ProjectStore.php +++ b/PHPCI/Store/ProjectStore.php @@ -10,6 +10,7 @@ namespace PHPCI\Store; use b8\Database; +use PHPCI\Model\Project; use PHPCI\Store\Base\ProjectStoreBase; /** @@ -39,4 +40,26 @@ class ProjectStore extends ProjectStoreBase return array(); } } + + public function getAll() + { + $query = 'SELECT * FROM `project` ORDER BY `title` ASC'; + $stmt = Database::getConnection('read')->prepare($query); + + if ($stmt->execute()) { + $res = $stmt->fetchAll(\PDO::FETCH_ASSOC); + + $map = function ($item) { + return new Project($item); + }; + $rtn = array_map($map, $res); + + $count = count($rtn); + + + return array('items' => $rtn, 'count' => $count); + } else { + return array('items' => array(), 'count' => 0); + } + } } diff --git a/PHPCI/View/Build/header-row.phtml b/PHPCI/View/Build/header-row.phtml new file mode 100644 index 00000000..3dab6c80 --- /dev/null +++ b/PHPCI/View/Build/header-row.phtml @@ -0,0 +1,20 @@ +
  • + + getCommitterEmail()): ?> +
    + +
    + + +

    + getProject()->getTitle(); ?> + + getStatus() == \PHPCI\Model\Build::STATUS_NEW): ?> + Created getCreated()->format('g:ia'); ?> + getStatus() == \PHPCI\Model\Build::STATUS_RUNNING): ?> + Started getStarted()->format('g:ia'); ?> + +

    +

    Branch: getBranch(); ?>

    +
    +
  • \ No newline at end of file diff --git a/PHPCI/View/Build/view.phtml b/PHPCI/View/Build/view.phtml index c2fd9381..a6ecc6db 100644 --- a/PHPCI/View/Build/view.phtml +++ b/PHPCI/View/Build/view.phtml @@ -1,17 +1,15 @@ -
    - - -
    -

    - - getProject()->getTitle(); ?> - #getId(); ?> +
    +
    +

    + Committed by getCommitterEmail(); ?>

    -
    +
    + +
    getCommitMessage()): ?>
    @@ -19,8 +17,7 @@
    - Branch: getBranch(); ?>
    - Committer: getCommitterEmail(); ?> + Branch: getBranch(); ?> getCommitId() != 'Manual'): ?>
    Commit ID: getCommitId(); ?>
    @@ -30,35 +27,19 @@
    -
    -
    -
    -

    Options

    -
    - -
    -

    Quick links

    -
    -
      - -
      -
      - -
      +
      + $(document).ready(function() { - PHPCI.renderPlugins(); + ActiveBuild.renderPlugins(); $('#delete-build').on('click', function (e) { e.preventDefault(); @@ -86,41 +67,38 @@ foreach ($plugins as $plugin) { }); function updateBuildStatus(status) { - var statusClass = null; - var statusText = null; - switch (status) { case 0: - statusClass = 'info'; - statusText = 'Pending'; + $('.build-info-panel') + .removeClass('bg-yellow') + .removeClass('bg-green') + .removeClass('bg-red') + .addClass('bg-blue'); break; + case 1: - statusClass = 'warning'; - statusText = 'Running'; + $('.build-info-panel') + .removeClass('bg-green') + .removeClass('bg-red') + .removeClass('bg-blue') + .addClass('bg-yellow'); break; + case 2: - statusClass = 'success'; - statusText = 'Success'; + $('.build-info-panel') + .removeClass('bg-yellow') + .removeClass('bg-red') + .removeClass('bg-blue') + .addClass('bg-green'); break; + case 3: - statusClass = 'danger'; - statusText = 'Failed'; + $('.build-info-panel') + .removeClass('bg-yellow') + .removeClass('bg-green') + .removeClass('bg-blue') + .addClass('bg-red'); break; } - - $('.build-info-panel') - .removeClass('panel-info') - .removeClass('panel-warning') - .removeClass('panel-success') - .removeClass('panel-danger') - .addClass('panel-' + statusClass); - - $('.build-info-panel .label') - .removeClass('label-info') - .removeClass('label-warning') - .removeClass('label-success') - .removeClass('label-danger') - .addClass('label-' + statusClass) - .text(statusText); } diff --git a/PHPCI/View/BuildStatus/view.phtml b/PHPCI/View/BuildStatus/view.phtml index e8536bf6..3b5d29a3 100644 --- a/PHPCI/View/BuildStatus/view.phtml +++ b/PHPCI/View/BuildStatus/view.phtml @@ -66,8 +66,8 @@
      -
      -

      +
      +

      getProject()->getTitle(); ?> #getId(); ?> @@ -76,7 +76,7 @@

      -
      +
      getCommitMessage()): ?>
      @@ -97,8 +97,8 @@ -
      -

      Builds

      +
      +

      Builds

      diff --git a/PHPCI/View/BuildsTable.phtml b/PHPCI/View/BuildsTable.phtml index 4fb5fa91..fc604a4e 100644 --- a/PHPCI/View/BuildsTable.phtml +++ b/PHPCI/View/BuildsTable.phtml @@ -47,10 +47,10 @@ switch($build->getStatus()) } ?> - - + diff --git a/PHPCI/View/Home/index.phtml b/PHPCI/View/Home/index.phtml index bcac0775..5a1f7a84 100644 --- a/PHPCI/View/Home/index.phtml +++ b/PHPCI/View/Home/index.phtml @@ -1,93 +1,115 @@ -
      -

      Dashboard

      -
      - -
      -
      - -
      -
      -

      Projects

      +
      +
      +
      +

      Latest Builds

      -
      - - getTitle()); ?> - + +
      +
        + + + getProject()->getType()) { + case 'github': + $icon = 'github'; + break; + + case 'bitbucket': + $icon = 'bitbucket'; + break; + + case 'git': + case 'gitlab': + $icon = 'git'; + break; + + default: + $icon = 'cog'; + break; + } + + switch ($build->getStatus()) { + case \PHPCI\Model\Build::STATUS_NEW: + $updated = $build->getCreated(); + $label = 'created'; + $color = 'blue'; + break; + + case \PHPCI\Model\Build::STATUS_RUNNING: + $updated = $build->getStarted(); + $label = 'started'; + $color = 'yellow'; + break; + + case \PHPCI\Model\Build::STATUS_SUCCESS: + $updated = $build->getFinished(); + $label = 'success'; + $color = 'green'; + break; + + case \PHPCI\Model\Build::STATUS_FAILED: + $updated = $build->getFinished(); + $label = 'failed'; + $color = 'red'; + break; + } + + if ($updated->format('Y-m-d') != $last->format('Y-m-d')): $last = $updated; + ?> +
      • + + format('M j Y'); ?> + +
      • + + + + +
      • + +
        + format('g:ia'); ?> +

        + + getProject()->getTitle(); ?> + +

        + +
        + Build +
        +
        +
      • + + + + +
      • + +
      • +
      - -
      -
      -
      -

      Project Overview

      -
      + getBranch(); ?>getBranch(); ?>
      + +
      +
      +

      Project Overview

      +
      - - - - + - +
      Health ProjectLast SuccessLast FailureSuccess/FailuresHealth
      - -
      -
      -

      Last 5 Builds

      -
      - - - - - - - - - - - - - - - -
      IDProjectCommitBranchStatus
      -
      -
      +
      - - diff --git a/PHPCI/View/Plugin/index.phtml b/PHPCI/View/Plugin/index.phtml index a224c752..15e20590 100644 --- a/PHPCI/View/Plugin/index.phtml +++ b/PHPCI/View/Plugin/index.phtml @@ -1,5 +1,3 @@ -

      Packages and Provided Plugins

      -

      PHPCI cannot update composer.json for you as it is not writable.

      @@ -12,10 +10,12 @@

      has been added to composer.json for you and will be installed next time you run composer update.

      -
      -

      Available Plugins

      +
      +
      +

      Enabled Plugins

      +
      - +
      @@ -35,85 +35,104 @@
      Name
      -
      -

      Installed Packages

      - - - - - - - - - - $version): ?> - - - - - - - -
      TitleVersion
      - - Remove » - -
      + +
      +
      +
      +
      +

      Installed Packages

      +
      + + + + + + + + + + + $version): ?> + + + + + + + +
      TitleVersion
      + + Remove » + +
      +
      + +
      + +
      +
      +
      +

      Suggested Packages

      +
      + + + + + + + + + + + $version): ?> + + + + + + + + +
      TitleDescription
      + + + +
      +
      + +
      -
      -

      Suggested Packages

      +
      +
      +

      Search Packagist for More Packages

      +
      - - - - - - - - - - $version): ?> - - - - - - - - -
      TitleDescription
      - - - -
      -
      - -
      -

      Search Packagist for More Packages

      - -
      - +
      +
      + +
      + +
      -
      + +
      +
      + Build Now + +
      + + + +
      -

      +
      -
      -
      -
      -

      Options

      +
      +
      +
      + +

      Builds

      - -
      - - Build Now - - - User()->getIsAdmin()): ?> - Edit Project - Delete Project - -
      -
      - - getType(), array('github', 'gitlab', 'bitbucket'))): ?> -
      -
      -

      Webhooks

      -
      - -
      - To automatically build this project when new commits are pushed, add the URL below - - getType()) - { - case 'github': - $url = PHPCI_URL . 'webhook/github/' . $project->getId(); - print ' as a "WebHook URL" in the Service Hooks section of your Github repository.

      ' . $url . ''; - break; - - case 'gitlab': - $url = PHPCI_URL. 'webhook/gitlab/' . $project->getId(); - print ' as a "WebHook URL" in the Web Hooks section of your Gitlab repository.

      ' . $url . ''; - break; - - case 'bitbucket': - $url = PHPCI_URL . 'webhook/bitbucket/' . $project->getId(); - print ' as a "POST" service in the Services section of your Bitbucket repository.

      ' . $url . ''; - break; - } - ?> -
      -
      - - - getSshPublicKey()): ?> -
      - -
      -
      getSshPublicKey(); ?>
      -
      -
      - -
      -
      - - - - -
      -
      - -

      Builds

      -
      - +
      - + @@ -107,63 +52,76 @@
      ID ProjectCommit Branch Status
      - -
        '; - - $project_url = PHPCI_URL . 'project/view/' . $project->getId() . ((!empty($branch)) ? '/' . urlencode($branch) : ''); - - if ($page > 1) { - print '
      • « Prev
      • '; - } - - if ($pages > 1) { - for($i = 1; $i <= $pages; $i++) - { - if ($i == $page) { - print '
      • ' . $i . '
      • '; - } else { - print '
      • ' . $i . '
      • '; - } - } - } - - if ($page < $pages) { - print '
      • Next »
      • '; - } - - print '
      '; - - ?> - -
      + +
      + + getType(), array('github', 'gitlab', 'bitbucket'))): ?> +
      +
      +

      Webhooks

      +
      + +
      + To automatically build this project when new commits are pushed, add the URL below + + getType()) + { + case 'github': + $url = PHPCI_URL . 'webhook/github/' . $project->getId(); + print ' as a "WebHook URL" in the Service Hooks section of your Github repository.

      ' . $url . ''; + break; + + case 'gitlab': + $url = PHPCI_URL. 'webhook/gitlab/' . $project->getId(); + print ' as a "WebHook URL" in the Web Hooks section of your Gitlab repository.

      ' . $url . ''; + break; + + case 'bitbucket': + $url = PHPCI_URL . 'webhook/bitbucket/' . $project->getId(); + print ' as a "POST" service in the Services section of your Bitbucket repository.

      ' . $url . ''; + break; + } + ?> +
      +
      + + + getSshPublicKey()): ?> +
      + +
      getSshPublicKey(); ?>
      +
      + +
      - - - +?> \ No newline at end of file diff --git a/PHPCI/View/ProjectForm.phtml b/PHPCI/View/ProjectForm.phtml index 7a2b93d2..a7a5abd6 100644 --- a/PHPCI/View/ProjectForm.phtml +++ b/PHPCI/View/ProjectForm.phtml @@ -1,34 +1,29 @@ -
      -

      -
      -
      -
      -
      -
      - -

      To make it easier to get started, we've generated a public / private key pair for you to use for this project. To use it, just add the following public key to the "deploy keys" section of your repository settings on Github / Bitbucket.

      - - -

      Fill in the form to the right to add your new project.

      - -

      Edit your project details using the form to the right.

      - -
      -
      -
      -
      -
      -
      -

      Project Details

      +
      +
      +
      +

      Project Details

      -
      +
      + + +
      +
      +
      +

      To make it easier to get started, we've generated a public / private key pair for you to use for this project. To use it, just add the following public key to the "deploy keys" section of your repository settings on Github / Bitbucket.

      + + +
      +
      +
      + +
      + + + + - - + - - - - - - - - -
      + + + -
      - -
      - -
      Loading...
      - - + + \ No newline at end of file diff --git a/composer.json b/composer.json index f0859996..dbced983 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "ext-mcrypt": "*", "ext-pdo": "*", "ext-pdo_mysql": "*", - "block8/b8framework": "~1.1", + "block8/b8framework": "~1.0", "ircmaxell/password-compat": "~1.0", "swiftmailer/swiftmailer": "~5.0", "symfony/yaml": "~2.1", diff --git a/composer.lock b/composer.lock index 532a1932..8e769534 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "d97c4373b84222bb233cb510044650b4", + "hash": "650fe5576922dea4ac3b1be72d882a58", "packages": [ { "name": "block8/b8framework", - "version": "1.1.8", + "version": "1.1.9", "source": { "type": "git", "url": "https://github.com/Block8/b8framework.git", - "reference": "cfb0bbd87a2ff71f9ebdfa53fca139d50407e0e0" + "reference": "3952dabee84cbf5be3dd8d20eadd13b6219e7a6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Block8/b8framework/zipball/cfb0bbd87a2ff71f9ebdfa53fca139d50407e0e0", - "reference": "cfb0bbd87a2ff71f9ebdfa53fca139d50407e0e0", + "url": "https://api.github.com/repos/Block8/b8framework/zipball/3952dabee84cbf5be3dd8d20eadd13b6219e7a6a", + "reference": "3952dabee84cbf5be3dd8d20eadd13b6219e7a6a", "shasum": "" }, "require": { @@ -51,7 +51,7 @@ "mvc", "php" ], - "time": "2014-07-29 15:49:02" + "time": "2014-12-01 21:02:58" }, { "name": "ircmaxell/password-compat", diff --git a/public/assets/css/AdminLTE.css b/public/assets/css/AdminLTE.css new file mode 100755 index 00000000..cbb95dc3 --- /dev/null +++ b/public/assets/css/AdminLTE.css @@ -0,0 +1,3539 @@ +@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic); +@import url(//fonts.googleapis.com/css?family=Kaushan+Script); +/*! + * AdminLTE v1.2 + * Author: AlmsaeedStudio.com + * License: Open source - MIT + * Please visit http://opensource.org/licenses/MIT for more information +!*/ +/* + Core: General style +---------------------------- +*/ +html, +body { + overflow-x: hidden!important; + font-family: 'Source Sans Pro', sans-serif; + -webkit-font-smoothing: antialiased; + min-height: 100%; + background: #f9f9f9; +} +a { + color: #3c8dbc; +} +a:hover, +a:active, +a:focus { + outline: none; + text-decoration: none; + color: #72afd2; +} +/* Layouts */ +.wrapper { + min-height: 100%; +} +.wrapper:before, +.wrapper:after { + display: table; + content: " "; +} +.wrapper:after { + clear: both; +} +/* Header */ +body > .header { + position: absolute; + top: 0; + left: 0; + right: 0; + z-index: 1030; +} +/* Define 2 column template */ +.right-side, +.left-side { + min-height: 100%; + display: block; +} +/*right side - contins main content*/ +.right-side { + background-color: #f9f9f9; + margin-left: 220px; +} +/*left side - contains sidebar*/ +.left-side { + position: absolute; + width: 220px; + top: 0; +} +@media screen and (min-width: 992px) { + .left-side { + top: 50px; + } + /*Right side strech mode*/ + .right-side.strech { + margin-left: 0; + } + .right-side.strech > .content-header { + margin-top: 0px; + } + /* Left side collapse */ + .left-side.collapse-left { + left: -220px; + } +} +/*Give content full width on xs screens*/ +@media screen and (max-width: 992px) { + .right-side { + margin-left: 0; + } +} +/* + By default the layout is not fixed but if you add the class .fixed to the body element + the sidebar and the navbar will automatically become poisitioned fixed +*/ +body.fixed > .header, +body.fixed .left-side, +body.fixed .navbar { + position: fixed; +} +body.fixed > .header { + top: 0; + right: 0; + left: 0; +} +body.fixed .navbar { + left: 0; + right: 0; +} +body.fixed .wrapper { + margin-top: 50px; +} +/* Content */ +.content { + padding: 20px 15px; + background: #f9f9f9; + overflow: auto; +} +/* Utility */ +/* H1 - H6 font */ +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: 'Source Sans Pro', sans-serif; +} +/* Page Header */ +.page-header { + margin: 10px 0 20px 0; + font-size: 22px; +} +.page-header > small { + color: #666; + display: block; + margin-top: 5px; +} +/* All images should be responsive */ +img { + max-width: 100% !important; +} +.sort-highlight { + background: #f4f4f4; + border: 1px dashed #ddd; + margin-bottom: 10px; +} +/* 10px padding and margins */ +.pad { + padding: 10px; +} +.margin { + margin: 10px; +} +/* Display inline */ +.inline { + display: inline; + width: auto; +} +/* Background colors */ +.bg-red, +.bg-yellow, +.bg-aqua, +.bg-blue, +.bg-light-blue, +.bg-green, +.bg-navy, +.bg-teal, +.bg-olive, +.bg-lime, +.bg-orange, +.bg-fuchsia, +.bg-purple, +.bg-maroon, +.bg-black { + color: #f9f9f9 !important; +} +.bg-gray { + background-color: #eaeaec !important; +} +.bg-black { + background-color: #222222 !important; +} +.bg-red { + background-color: #f56954 !important; +} +.bg-yellow { + background-color: #f39c12 !important; +} +.bg-aqua { + background-color: #00c0ef !important; +} +.bg-blue { + background-color: #0073b7 !important; +} +.bg-light-blue { + background-color: #3c8dbc !important; +} +.bg-green { + background-color: #00a65a !important; +} +.bg-navy { + background-color: #001f3f !important; +} +.bg-teal { + background-color: #39cccc !important; +} +.bg-olive { + background-color: #3d9970 !important; +} +.bg-lime { + background-color: #01ff70 !important; +} +.bg-orange { + background-color: #ff851b !important; +} +.bg-fuchsia { + background-color: #f012be !important; +} +.bg-purple { + background-color: #932ab6 !important; +} +.bg-maroon { + background-color: #85144b !important; +} +/* Text colors */ +.text-red { + color: #f56954 !important; +} +.text-yellow { + color: #f39c12 !important; +} +.text-aqua { + color: #00c0ef !important; +} +.text-blue { + color: #0073b7 !important; +} +.text-black { + color: #222222 !important; +} +.text-light-blue { + color: #3c8dbc !important; +} +.text-green { + color: #00a65a !important; +} +.text-navy { + color: #001f3f !important; +} +.text-teal { + color: #39cccc !important; +} +.text-olive { + color: #3d9970 !important; +} +.text-lime { + color: #01ff70 !important; +} +.text-orange { + color: #ff851b !important; +} +.text-fuchsia { + color: #f012be !important; +} +.text-purple { + color: #932ab6 !important; +} +.text-maroon { + color: #85144b !important; +} +/*Hide elements by display none only*/ +.hide { + display: none !important; +} +/* Remove borders */ +.no-border { + border: 0px !important; +} +/* Remove padding */ +.no-padding { + padding: 0px !important; +} +/* Remove margins */ +.no-margin { + margin: 0px !important; +} +/* Remove box shadow */ +.no-shadow { + box-shadow: none!important; +} +/* Don't display when printing */ +@media print { + .no-print { + display: none; + } + .left-side, + .header, + .content-header { + display: none; + } + .right-side { + margin: 0; + } +} +/* Remove border radius */ +.flat { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +/* Change the color of the striped tables */ +.table-striped > tbody > tr:nth-child(odd) > td, +.table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f3f4f5; +} +.table.no-border, +.table.no-border td, +.table.no-border th { + border: 0; +} +/* .text-center in tables */ +table.text-center, +table.text-center td, +table.text-center th { + text-align: center; +} +.table.align th { + text-align: left; +} +.table.align td { + text-align: right; +} +.text-bold, +.text-bold.table td, +.text-bold.table th { + font-weight: 700; +} +.border-radius-none { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +/* _fix for sparkline tooltip */ +.jqstooltip { + padding: 5px!important; + width: auto!important; + height: auto!important; +} +/* +Gradient Background colors +*/ +.bg-teal-gradient { + background: #39cccc !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important; + background: -ms-linear-gradient(bottom, #39cccc, #7adddd) !important; + background: -moz-linear-gradient(center bottom, #39cccc 0%, #7adddd 100%) !important; + background: -o-linear-gradient(#7adddd, #39cccc) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important; + color: #fff; +} +.bg-light-blue-gradient { + background: #3c8dbc !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important; + background: -ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important; + background: -moz-linear-gradient(center bottom, #3c8dbc 0%, #67a8ce 100%) !important; + background: -o-linear-gradient(#67a8ce, #3c8dbc) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important; + color: #fff; +} +.bg-blue-gradient { + background: #0073b7 !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important; + background: -ms-linear-gradient(bottom, #0073b7, #0089db) !important; + background: -moz-linear-gradient(center bottom, #0073b7 0%, #0089db 100%) !important; + background: -o-linear-gradient(#0089db, #0073b7) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important; + color: #fff; +} +.bg-aqua-gradient { + background: #00c0ef !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important; + background: -ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important; + background: -moz-linear-gradient(center bottom, #00c0ef 0%, #14d1ff 100%) !important; + background: -o-linear-gradient(#14d1ff, #00c0ef) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important; + color: #fff; +} +.bg-yellow-gradient { + background: #f39c12 !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important; + background: -ms-linear-gradient(bottom, #f39c12, #f7bc60) !important; + background: -moz-linear-gradient(center bottom, #f39c12 0%, #f7bc60 100%) !important; + background: -o-linear-gradient(#f7bc60, #f39c12) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important; + color: #fff; +} +.bg-purple-gradient { + background: #932ab6 !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #932ab6), color-stop(1, #b959d9)) !important; + background: -ms-linear-gradient(bottom, #932ab6, #b959d9) !important; + background: -moz-linear-gradient(center bottom, #932ab6 0%, #b959d9 100%) !important; + background: -o-linear-gradient(#b959d9, #932ab6) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b959d9', endColorstr='#932ab6', GradientType=0) !important; + color: #fff; +} +.bg-green-gradient { + background: #00a65a !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important; + background: -ms-linear-gradient(bottom, #00a65a, #00ca6d) !important; + background: -moz-linear-gradient(center bottom, #00a65a 0%, #00ca6d 100%) !important; + background: -o-linear-gradient(#00ca6d, #00a65a) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important; + color: #fff; +} +.bg-red-gradient { + background: #f56954 !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f56954), color-stop(1, #f89384)) !important; + background: -ms-linear-gradient(bottom, #f56954, #f89384) !important; + background: -moz-linear-gradient(center bottom, #f56954 0%, #f89384 100%) !important; + background: -o-linear-gradient(#f89384, #f56954) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f89384', endColorstr='#f56954', GradientType=0) !important; + color: #fff; +} +.bg-black-gradient { + background: #222222 !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #222222), color-stop(1, #3c3c3c)) !important; + background: -ms-linear-gradient(bottom, #222222, #3c3c3c) !important; + background: -moz-linear-gradient(center bottom, #222222 0%, #3c3c3c 100%) !important; + background: -o-linear-gradient(#3c3c3c, #222222) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#3c3c3c', endColorstr='#222222', GradientType=0) !important; + color: #fff; +} +.bg-maroon-gradient { + background: #85144b !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #85144b), color-stop(1, #b11b64)) !important; + background: -ms-linear-gradient(bottom, #85144b, #b11b64) !important; + background: -moz-linear-gradient(center bottom, #85144b 0%, #b11b64 100%) !important; + background: -o-linear-gradient(#b11b64, #85144b) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b11b64', endColorstr='#85144b', GradientType=0) !important; + color: #fff; +} +.connectedSortable { + min-height: 100px; +} +/*--------------------------------------------------- + LESS Elements 0.9 + --------------------------------------------------- + A set of useful LESS mixins + More info at: http://lesselements.com + ---------------------------------------------------*/ +/* + Components: navbar, logo and content header +------------------------------------------------- +*/ +body > .header { + position: relative; + max-height: 100px; + z-index: 1030; +} +body > .header .navbar { + height: 50px; + margin-bottom: 0; + margin-left: 220px; +} +body > .header .navbar .sidebar-toggle { + float: left; + padding: 9px 5px; + margin-top: 8px; + margin-right: 0; + margin-bottom: 8px; + margin-left: 5px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +body > .header .navbar .sidebar-toggle:hover .icon-bar { + background: #f6f6f6; +} +body > .header .navbar .sidebar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +body > .header .navbar .sidebar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +body > .header .navbar .nav > li.user > a { + font-weight: bold; +} +body > .header .navbar .nav > li.user > a > .fa, +body > .header .navbar .nav > li.user > a > .glyphicon, +body > .header .navbar .nav > li.user > a > .ion { + margin-right: 5px; +} +body > .header .navbar .nav > li > a > .label { + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + position: absolute; + top: 7px; + right: 2px; + font-size: 10px; + font-weight: normal; + width: 15px; + height: 15px; + line-height: 1.0em; + text-align: center; + padding: 2px; +} +body > .header .navbar .nav > li > a:hover > .label { + top: 3px; +} +body > .header .logo { + float: left; + font-size: 20px; + line-height: 50px; + text-align: center; + padding: 0 10px; + width: 220px; + font-family: 'Kaushan Script', cursive; + font-weight: 500; + height: 50px; + display: block; +} +body > .header .logo .icon { + margin-right: 10px; +} +.right-side > .content-header { + position: relative; + padding: 15px 15px 10px 20px; +} +.right-side > .content-header > h1 { + margin: 0; + font-size: 24px; +} +.right-side > .content-header > h1 > small { + font-size: 15px; + display: inline-block; + padding-left: 4px; + font-weight: 300; +} +.right-side > .content-header > .breadcrumb { + float: right; + background: transparent; + margin-top: 0px; + margin-bottom: 0; + font-size: 12px; + padding: 7px 5px; + position: absolute; + top: 15px; + right: 10px; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; +} +.right-side > .content-header > .breadcrumb > li > a { + color: #444; + text-decoration: none; +} +.right-side > .content-header > .breadcrumb > li > a > .fa, +.right-side > .content-header > .breadcrumb > li > a > .glyphicon, +.right-side > .content-header > .breadcrumb > li > a > .ion { + margin-right: 5px; +} +.right-side > .content-header > .breadcrumb > li + li:before { + content: '>\00a0'; +} +@media screen and (max-width: 767px) { + .right-side > .content-header > .breadcrumb { + position: relative; + margin-top: 5px; + top: 0; + right: 0; + float: none; + background: #efefef; + } +} +@media (max-width: 767px) { + .navbar .navbar-nav > li { + float: left; + } + .navbar-nav { + margin: 0; + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + line-height: 20px; + } + .navbar .navbar-right { + float: right; + } +} +@media screen and (max-width: 560px) { + body > .header { + position: relative; + } + body > .header .logo, + body > .header .navbar { + width: 100%; + float: none; + position: relative!important; + } + body > .header .navbar { + margin: 0; + } + body.fixed > .header { + position: fixed; + } + body.fixed > .wrapper, + body.fixed .sidebar-offcanvas { + margin-top: 100px!important; + } +} +/* + Component: Sidebar +-------------------------- +*/ +.sidebar { + margin-bottom: 5px; +} +.sidebar .sidebar-form input:focus { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + border-color: transparent!important; +} +.sidebar .sidebar-menu { + list-style: none; + margin: 0; + padding: 0; +} +.sidebar .sidebar-menu > li { + margin: 0; + padding: 0; +} +.sidebar .sidebar-menu > li > a { + padding: 12px 5px 12px 15px; + display: block; +} +.sidebar .sidebar-menu > li > a > .fa, +.sidebar .sidebar-menu > li > a > .glyphicon, +.sidebar .sidebar-menu > li > a > .ion { + width: 20px; +} +.sidebar .sidebar-menu .treeview-menu { + display: none; + list-style: none; + padding: 0; + margin: 0; +} +.sidebar .sidebar-menu .treeview-menu > li { + margin: 0; +} +.sidebar .sidebar-menu .treeview-menu > li > a { + padding: 5px 5px 5px 15px; + display: block; + font-size: 14px; + margin: 0px 0px; +} +.sidebar .sidebar-menu .treeview-menu > li > a > .fa, +.sidebar .sidebar-menu .treeview-menu > li > a > .glyphicon, +.sidebar .sidebar-menu .treeview-menu > li > a > .ion { + width: 20px; +} +.user-panel { + padding: 10px; +} +.user-panel:before, +.user-panel:after { + display: table; + content: " "; +} +.user-panel:after { + clear: both; +} +.user-panel > .image > img { + width: 45px; + height: 45px; +} +.user-panel > .info { + font-weight: 600; + padding: 5px 5px 5px 15px; + font-size: 14px; + line-height: 1; +} +.user-panel > .info > p { + margin-bottom: 9px; +} +.user-panel > .info > a { + text-decoration: none; + padding-right: 5px; + margin-top: 3px; + font-size: 11px; + font-weight: normal; +} +.user-panel > .info > a > .fa, +.user-panel > .info > a > .ion, +.user-panel > .info > a > .glyphicon { + margin-right: 3px; +} +/* + * Off Canvas + * -------------------------------------------------- + * Gives us the push menu effect + */ +@media screen and (max-width: 992px) { + .relative { + position: relative; + } + .row-offcanvas-right .sidebar-offcanvas { + right: -220px; + } + .row-offcanvas-left .sidebar-offcanvas { + left: -220px; + } + .row-offcanvas-right.active { + right: 220px; + } + .row-offcanvas-left.active { + left: 220px; + } + .sidebar-offcanvas { + left: 0; + } + body.fixed .sidebar-offcanvas { + margin-top: 50px; + left: -220px; + } + body.fixed .row-offcanvas-left.active .navbar { + left: 220px !important; + right: 0; + } + body.fixed .row-offcanvas-left.active .sidebar-offcanvas { + left: 0px; + } +} +/* + Dropdown menus +---------------------------- +*/ +/*Dropdowns in general*/ +.dropdown-menu { + -webkit-box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1); + box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1); + z-index: 2300; +} +.dropdown-menu > li > a > .glyphicon, +.dropdown-menu > li > a > .fa, +.dropdown-menu > li > a > .ion { + margin-right: 10px; +} +.dropdown-menu > li > a:hover { + background-color: #3c8dbc; + color: #f9f9f9; +} +/*Drodown in navbars*/ +.skin-blue .navbar .dropdown-menu > li > a { + color: #444444; +} +/* + Navbar custom dropdown menu +------------------------------------ +*/ +.navbar-nav > .notifications-menu > .dropdown-menu, +.navbar-nav > .messages-menu > .dropdown-menu, +.navbar-nav > .tasks-menu > .dropdown-menu { + width: 280px; + padding: 0 0 0 0!important; + margin: 0!important; + top: 100%; + border: 1px solid #dfdfdf; + -webkit-border-radius: 4px !important; + -moz-border-radius: 4px !important; + border-radius: 4px !important; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li.header, +.navbar-nav > .messages-menu > .dropdown-menu > li.header, +.navbar-nav > .tasks-menu > .dropdown-menu > li.header { + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 0; + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 0; + -moz-border-radius-bottomleft: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + background-color: #ffffff; + padding: 7px 10px; + border-bottom: 1px solid #f4f4f4; + color: #444444; + font-size: 14px; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li.header:after, +.navbar-nav > .messages-menu > .dropdown-menu > li.header:after, +.navbar-nav > .tasks-menu > .dropdown-menu > li.header:after { + bottom: 100%; + left: 92%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(255, 255, 255, 0); + border-bottom-color: #ffffff; + border-width: 7px; + margin-left: -7px; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a, +.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a, +.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a { + -webkit-border-top-left-radius: 0px; + -webkit-border-top-right-radius: 0px; + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-topleft: 0px; + -moz-border-radius-topright: 0px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + font-size: 12px; + background-color: #f4f4f4; + padding: 7px 10px; + border-bottom: 1px solid #eeeeee; + color: #444444; + text-align: center; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a:hover, +.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a:hover, +.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a:hover { + background: #f4f4f4; + text-decoration: none; + font-weight: normal; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu, +.navbar-nav > .messages-menu > .dropdown-menu > li .menu, +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu { + margin: 0; + padding: 0; + list-style: none; + overflow-x: hidden; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a, +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a, +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { + display: block; + white-space: nowrap; + /* Prevent text from breaking */ + border-bottom: 1px solid #f4f4f4; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a:hover, +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:hover, +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a:hover { + background: #f6f6f6; + text-decoration: none; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a { + font-size: 12px; + color: #444444; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion { + font-size: 20px; + width: 50px; + text-align: center; + padding: 15px 0px; + margin-right: 5px; + /* Default background and font colors */ + background: #00c0ef; + color: #f9f9f9; + /* Fallback for browsers that doesn't support rgba */ + color: rgba(255, 255, 255, 0.7); +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.danger, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.danger, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.danger { + background: #f56954; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.warning, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.warning, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.warning { + background: #f39c12; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.success, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.success, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.success { + background: #00a65a; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.info, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.info, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.info { + background: #00c0ef; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a { + margin: 0px; + line-height: 20px; + padding: 10px 5px 10px 5px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > div > img { + margin: auto 10px auto auto; + width: 40px; + height: 40px; + border: 1px solid #dddddd; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 { + padding: 0; + margin: 0 0 0 45px; + color: #444444; + font-size: 15px; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 > small { + color: #999999; + font-size: 10px; + float: right; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > p { + margin: 0 0 0 45px; + font-size: 12px; + color: #888888; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:before, +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { + display: table; + content: " "; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { + clear: both; +} +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { + padding: 10px; +} +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > h3 { + font-size: 14px; + padding: 0; + margin: 0 0 10px 0; + color: #666666; +} +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > .progress { + padding: 0; + margin: 0; +} +.navbar-nav > .user-menu > .dropdown-menu { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + padding: 1px 0 0 0; + border-top-width: 0; + width: 280px; +} +.navbar-nav > .user-menu > .dropdown-menu:after { + bottom: 100%; + right: 10px; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(255, 255, 255, 0); + border-bottom-color: #ffffff; + border-width: 10px; + margin-left: -10px; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header { + height: 175px; + padding: 10px; + background: #3c8dbc; + text-align: center; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img { + z-index: 5; + height: 90px; + width: 90px; + border: 8px solid; + border-color: transparent; + border-color: rgba(255, 255, 255, 0.2); +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p { + z-index: 5; + color: #f9f9f9; + color: rgba(255, 255, 255, 0.8); + font-size: 17px; + text-shadow: 2px 2px 3px #333333; + margin-top: 10px; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small { + display: block; + font-size: 12px; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-body { + padding: 15px; + border-bottom: 1px solid #f4f4f4; + border-top: 1px solid #dddddd; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-body:before, +.navbar-nav > .user-menu > .dropdown-menu > li.user-body:after { + display: table; + content: " "; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-body:after { + clear: both; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-body > div > a { + color: #0073b7; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-footer { + background-color: #f9f9f9; + padding: 10px; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-footer:before, +.navbar-nav > .user-menu > .dropdown-menu > li.user-footer:after { + display: table; + content: " "; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-footer:after { + clear: both; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-footer .btn-default { + color: #666666; +} +/* Add fade animation to dropdown menus */ +.open > .dropdown-menu { + animation-name: fadeAnimation; + animation-duration: .7s; + animation-iteration-count: 1; + animation-timing-function: ease; + animation-fill-mode: forwards; + -webkit-animation-name: fadeAnimation; + -webkit-animation-duration: .7s; + -webkit-animation-iteration-count: 1; + -webkit-animation-timing-function: ease; + -webkit-animation-fill-mode: forwards; + -moz-animation-name: fadeAnimation; + -moz-animation-duration: .7s; + -moz-animation-iteration-count: 1; + -moz-animation-timing-function: ease; + -moz-animation-fill-mode: forwards; +} +@keyframes fadeAnimation { + from { + opacity: 0; + top: 120%; + } + to { + opacity: 1; + top: 100%; + } +} +@-webkit-keyframes fadeAnimation { + from { + opacity: 0; + top: 120%; + } + to { + opacity: 1; + top: 100%; + } +} +/* Fix dropdown menu for small screens to display correctly on small screens */ +@media screen and (max-width: 767px) { + .navbar-nav > .notifications-menu > .dropdown-menu, + .navbar-nav > .user-menu > .dropdown-menu, + .navbar-nav > .tasks-menu > .dropdown-menu, + .navbar-nav > .messages-menu > .dropdown-menu { + position: absolute; + top: 100%; + right: 0; + left: auto; + border-right: 1px solid #dddddd; + border-bottom: 1px solid #dddddd; + border-left: 1px solid #dddddd; + background: #ffffff; + } +} +/* Fix menu positions on xs screens to appear correctly and fully */ +@media screen and (max-width: 480px) { + .navbar-nav > .notifications-menu > .dropdown-menu > li.header, + .navbar-nav > .tasks-menu > .dropdown-menu > li.header, + .navbar-nav > .messages-menu > .dropdown-menu > li.header { + /* Remove arrow from the top */ + } + .navbar-nav > .notifications-menu > .dropdown-menu > li.header:after, + .navbar-nav > .tasks-menu > .dropdown-menu > li.header:after, + .navbar-nav > .messages-menu > .dropdown-menu > li.header:after { + border-width: 0px!important; + } + .navbar-nav > .tasks-menu > .dropdown-menu { + position: absolute; + right: -120px; + left: auto; + } + .navbar-nav > .notifications-menu > .dropdown-menu { + position: absolute; + right: -170px; + left: auto; + } + .navbar-nav > .messages-menu > .dropdown-menu { + position: absolute; + right: -210px; + left: auto; + } +} +/* + All form elements including input, select, textarea etc. +----------------------------------------------------------------- +*/ +.form-control { + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; + box-shadow: none; +} +.form-control:focus { + border-color: #3c8dbc !important; + box-shadow: none; +} +.form-group.has-success label { + color: #00a65a; +} +.form-group.has-success .form-control { + border-color: #00a65a !important; + box-shadow: none; +} +.form-group.has-warning label { + color: #f39c12; +} +.form-group.has-warning .form-control { + border-color: #f39c12 !important; + box-shadow: none; +} +.form-group.has-error label { + color: #f56954; +} +.form-group.has-error .form-control { + border-color: #f56954 !important; + box-shadow: none; +} +/* Input group */ +.input-group .input-group-addon { + border-radius: 0; + background-color: #f4f4f4; +} +/* button groups */ +.btn-group-vertical .btn.btn-flat:first-of-type, +.btn-group-vertical .btn.btn-flat:last-of-type { + border-radius: 0; +} +/* Checkbox and radio inputs */ +.checkbox, +.radio { + padding-left: 0; +} +/* + Compenent: Progress bars +-------------------------------- +*/ +/* size variation */ +.progress.sm { + height: 10px; +} +.progress.xs { + height: 7px; +} +/* Vertical bars */ +.progress.vertical { + position: relative; + width: 30px; + height: 200px; + display: inline-block; + margin-right: 10px; +} +.progress.vertical > .progress-bar { + width: 100%!important; + position: absolute; + bottom: 0; +} +.progress.vertical.sm { + width: 20px; +} +.progress.vertical.xs { + width: 10px; +} +/* Remove margins from progress bars when put in a table */ +.table tr > td .progress { + margin: 0; +} +.progress-bar-light-blue, +.progress-bar-primary { + background-color: #3c8dbc; +} +.progress-striped .progress-bar-light-blue, +.progress-striped .progress-bar-primary { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + 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: -moz-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-green, +.progress-bar-success { + background-color: #00a65a; +} +.progress-striped .progress-bar-green, +.progress-striped .progress-bar-success { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + 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: -moz-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-aqua, +.progress-bar-info { + background-color: #00c0ef; +} +.progress-striped .progress-bar-aqua, +.progress-striped .progress-bar-info { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + 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: -moz-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-yellow, +.progress-bar-warning { + background-color: #f39c12; +} +.progress-striped .progress-bar-yellow, +.progress-striped .progress-bar-warning { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + 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: -moz-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-red, +.progress-bar-danger { + background-color: #f56954; +} +.progress-striped .progress-bar-red, +.progress-striped .progress-bar-danger { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + 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: -moz-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); +} +/* + Component: Small boxes +*/ +.small-box { + position: relative; + display: block; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + margin-bottom: 15px; +} +.small-box > .inner { + padding: 10px; +} +.small-box > .small-box-footer { + position: relative; + text-align: center; + padding: 3px 0; + color: #fff; + color: rgba(255, 255, 255, 0.8); + display: block; + z-index: 10; + background: rgba(0, 0, 0, 0.1); + text-decoration: none; +} +.small-box > .small-box-footer:hover { + color: #fff; + background: rgba(0, 0, 0, 0.15); +} +.small-box h3 { + font-size: 38px; + font-weight: bold; + margin: 0 0 10px 0; + white-space: nowrap; + padding: 0; +} +.small-box p { + font-size: 15px; +} +.small-box p > small { + display: block; + color: #f9f9f9; + font-size: 13px; + margin-top: 5px; +} +.small-box h3, +.small-box p { + z-index: 5px; +} +.small-box .icon { + position: absolute; + top: auto; + bottom: 5px; + right: 5px; + z-index: 0; + font-size: 90px; + color: rgba(0, 0, 0, 0.15); +} +.small-box:hover { + text-decoration: none; + color: #f9f9f9; +} +.small-box:hover .icon { + animation-name: tansformAnimation; + animation-duration: .5s; + animation-iteration-count: 1; + animation-timing-function: ease; + animation-fill-mode: forwards; + -webkit-animation-name: tansformAnimation; + -webkit-animation-duration: .5s; + -webkit-animation-iteration-count: 1; + -webkit-animation-timing-function: ease; + -webkit-animation-fill-mode: forwards; + -moz-animation-name: tansformAnimation; + -moz-animation-duration: .5s; + -moz-animation-iteration-count: 1; + -moz-animation-timing-function: ease; + -moz-animation-fill-mode: forwards; +} +@keyframes tansformAnimation { + from { + font-size: 90px; + } + to { + font-size: 100px; + } +} +@-webkit-keyframes tansformAnimation { + from { + font-size: 90px; + } + to { + font-size: 100px; + } +} +@media screen and (max-width: 480px) { + .small-box { + text-align: center; + } + .small-box .icon { + display: none; + } + .small-box p { + font-size: 12px; + } +} +/* + component: Boxes +------------------------- +*/ +.box { + position: relative; + background: #ffffff; + border-top: 2px solid #c1c1c1; + margin-bottom: 20px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + width: 100%; + box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); +} +.box.box-primary { + border-top-color: #3c8dbc; +} +.box.box-info { + border-top-color: #00c0ef; +} +.box.box-danger { + border-top-color: #f56954; +} +.box.box-warning { + border-top-color: #f39c12; +} +.box.box-success { + border-top-color: #00a65a; +} +.box.height-control .box-body { + max-height: 300px; + overflow: auto; +} +.box .box-header { + position: relative; + -webkit-border-top-left-radius: 3px; + -webkit-border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 0; + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-topleft: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 0; + -moz-border-radius-bottomleft: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + border-bottom: 0px solid #f4f4f4; + color: #444; +} +.box .box-header:before, +.box .box-header:after { + display: table; + content: " "; +} +.box .box-header:after { + clear: both; +} +.box .box-header > .fa, +.box .box-header > .glyphicon, +.box .box-header > .ion, +.box .box-header .box-title { + display: inline-block; + padding: 10px 10px 10px 10px; + margin: 0; + font-size: 20px; + font-weight: 400; + float: left; + cursor: default; +} +.box .box-header a { + color: #444; +} +.box .box-header > .box-tools { + padding: 5px 10px 5px 5px; +} +.box .box-body { + padding: 10px; + -webkit-border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + -moz-border-radius-topleft: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 3px; + -moz-border-radius-bottomleft: 3px; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.box .box-body > table, +.box .box-body > .table { + margin-bottom: 0; +} +.box .box-body.chart-responsive { + width: 100%; + overflow: hidden; +} +.box .box-body > .chart { + position: relative; + overflow: hidden; + width: 100%; +} +.box .box-body > .chart svg, +.box .box-body > .chart canvas { + width: 100%!important; +} +.box .box-body .fc { + margin-top: 5px; +} +.box .box-body .fc-header-title h2 { + font-size: 15px; + line-height: 1.6em; + color: #666; + margin-left: 10px; +} +.box .box-body .fc-header-right { + padding-right: 10px; +} +.box .box-body .fc-header-left { + padding-left: 10px; +} +.box .box-body .fc-widget-header { + background: #fafafa; + box-shadow: inset 0px -3px 1px rgba(0, 0, 0, 0.02); +} +.box .box-body .fc-grid { + width: 100%; + border: 0; +} +.box .box-body .fc-widget-header:first-of-type, +.box .box-body .fc-widget-content:first-of-type { + border-left: 0; + border-right: 0; +} +.box .box-body .fc-widget-header:last-of-type, +.box .box-body .fc-widget-content:last-of-type { + border-right: 0; +} +.box .box-body .table { + margin-bottom: 0; +} +.box .box-body .full-width-chart { + margin: -19px; +} +.box .box-body.no-padding .full-width-chart { + margin: -9px; +} +.box .box-footer { + border-top: 1px solid #f4f4f4; + -webkit-border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + -moz-border-radius-topleft: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 3px; + -moz-border-radius-bottomleft: 3px; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; + padding: 10px; + background-color: #ffffff; +} +.box.box-solid { + border-top: 0px; +} +.box.box-solid > .box-header { + padding-bottom: 0px!important; +} +.box.box-solid > .box-header .btn.btn-default { + background: transparent; +} +.box.box-solid.box-primary > .box-header { + color: #fff; + background: #3c8dbc; + background-color: #3c8dbc; +} +.box.box-solid.box-primary > .box-header a { + color: #444; +} +.box.box-solid.box-info > .box-header { + color: #fff; + background: #00c0ef; + background-color: #00c0ef; +} +.box.box-solid.box-info > .box-header a { + color: #444; +} +.box.box-solid.box-danger > .box-header { + color: #fff; + background: #f56954; + background-color: #f56954; +} +.box.box-solid.box-danger > .box-header a { + color: #444; +} +.box.box-solid.box-warning > .box-header { + color: #fff; + background: #f39c12; + background-color: #f39c12; +} +.box.box-solid.box-warning > .box-header a { + color: #444; +} +.box.box-solid.box-success > .box-header { + color: #fff; + background: #00a65a; + background-color: #00a65a; +} +.box.box-solid.box-success > .box-header a { + color: #444; +} +.box.box-solid > .box-header > .box-tools .btn { + border: 0; + box-shadow: none; +} +.box.box-solid.collapsed-box .box-header { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.box.box-solid[class*='bg'] > .box-header { + color: #fff; +} +.box .box-group > .box { + margin-bottom: 5px; +} +.box .knob-label { + text-align: center; + color: #333; + font-weight: 100; + font-size: 12px; + margin-bottom: 0.3em; +} +.box .todo-list { + margin: 0; + padding: 0px 0px; + list-style: none; +} +.box .todo-list > li { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + padding: 10px; + background: #f3f4f5; + margin-bottom: 2px; + border-left: 2px solid #e6e7e8; + color: #444; +} +.box .todo-list > li:last-of-type { + margin-bottom: 0; +} +.box .todo-list > li.danger { + border-left-color: #f56954; +} +.box .todo-list > li.warning { + border-left-color: #f39c12; +} +.box .todo-list > li.info { + border-left-color: #00c0ef; +} +.box .todo-list > li.success { + border-left-color: #00a65a; +} +.box .todo-list > li.primary { + border-left-color: #3c8dbc; +} +.box .todo-list > li > input[type='checkbox'] { + margin: 0 10px 0 5px; +} +.box .todo-list > li .text { + display: inline-block; + margin-left: 5px; + font-weight: 600; +} +.box .todo-list > li .label { + margin-left: 10px; + font-size: 9px; +} +.box .todo-list > li .tools { + display: none; + float: right; + color: #f56954; +} +.box .todo-list > li .tools > .fa, +.box .todo-list > li .tools > .glyphicon, +.box .todo-list > li .tools > .ion { + margin-right: 5px; + cursor: pointer; +} +.box .todo-list > li:hover .tools { + display: inline-block; +} +.box .todo-list > li.done { + color: #999; +} +.box .todo-list > li.done .text { + text-decoration: line-through; + font-weight: 500; +} +.box .todo-list > li.done .label { + background: #eaeaec !important; +} +.box .todo-list .handle { + display: inline-block; + cursor: move; + margin: 0 5px; +} +.box .chat { + padding: 5px 20px 5px 10px; +} +.box .chat .item { + margin-bottom: 10px; +} +.box .chat .item:before, +.box .chat .item:after { + display: table; + content: " "; +} +.box .chat .item:after { + clear: both; +} +.box .chat .item > img { + width: 40px; + height: 40px; + border: 2px solid transparent; + -webkit-border-radius: 50% !important; + -moz-border-radius: 50% !important; + border-radius: 50% !important; +} +.box .chat .item > img.online { + border: 2px solid #00a65a; +} +.box .chat .item > img.offline { + border: 2px solid #f56954; +} +.box .chat .item > .message { + margin-left: 55px; + margin-top: -40px; +} +.box .chat .item > .message > .name { + display: block; + font-weight: 600; +} +.box .chat .item > .attachment { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #f0f0f0; + margin-left: 65px; + margin-right: 15px; + padding: 10px; +} +.box .chat .item > .attachment > h4 { + margin: 0 0 5px 0; + font-weight: 600; + font-size: 14px; +} +.box .chat .item > .attachment > p, +.box .chat .item > .attachment > .filename { + font-weight: 600; + font-size: 13px; + font-style: italic; + margin: 0; +} +.box .chat .item > .attachment:before, +.box .chat .item > .attachment:after { + display: table; + content: " "; +} +.box .chat .item > .attachment:after { + clear: both; +} +.box > .overlay, +.box > .loading-img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.box > .overlay { + z-index: 1010; + background: rgba(255, 255, 255, 0.7); +} +.box > .overlay.dark { + background: rgba(0, 0, 0, 0.5); +} +.box > .loading-img { + z-index: 1020; + background: transparent url('../img/ajax-loader1.gif') 50% 50% no-repeat; +} +/* +Component: timeline +-------------------- +*/ +.timeline { + position: relative; + margin: 0 0 30px 0; + padding: 0; + list-style: none; +} +.timeline:before { + content: ''; + position: absolute; + top: 0px; + bottom: 0; + width: 5px; + background: #ddd; + left: 30px; + border: 1px solid #eee; + margin: 0; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; +} +.timeline > li { + position: relative; + margin-right: 10px; + margin-bottom: 15px; +} +.timeline > li:before, +.timeline > li:after { + display: table; + content: " "; +} +.timeline > li:after { + clear: both; +} +.timeline > li > .timeline-item { + margin-top: 10px; + border: 0px solid #dfdfdf; + background: #fff; + color: #555; + margin-left: 60px; + margin-right: 15px; + padding: 5px; + position: relative; + box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); +} +.timeline > li > .timeline-item > .time { + color: #999; + float: right; + margin: 2px 0 0 0; +} +.timeline > li > .timeline-item > .timeline-header { + margin: 0; + color: #555; + border-bottom: 1px solid #f4f4f4; + padding: 5px; + font-size: 16px; + line-height: 1.1; +} +.timeline > li > .timeline-item > .timeline-header > a { + font-weight: 600; +} +.timeline > li > .timeline-item > .timeline-body, +.timeline > li > .timeline-item > .timeline-footer { + padding: 10px; +} +.timeline > li.time-label > span { + font-weight: 600; + padding: 5px; + display: inline-block; + background-color: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.timeline > li > .fa, +.timeline > li > .glyphicon, +.timeline > li > .ion { + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + width: 30px; + height: 30px; + font-size: 15px; + line-height: 30px; + position: absolute; + color: #666; + background: #eee; + border-radius: 50%; + text-align: center; + left: 18px; + top: 0; +} +/* + Component: Buttons +------------------------- +*/ +.btn { + font-weight: 500; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + border: 1px solid transparent; + -webkit-box-shadow: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.09); + -moz-box-shadow: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.09); + box-shadow: inset 0px -1px 0px 0px rgba(0, 0, 0, 0.09); +} +.btn.btn-default { + background-color: #fafafa; + color: #666; + border-color: #ddd; + border-bottom-color: #ddd; +} +.btn.btn-default:hover, +.btn.btn-default:active, +.btn.btn-default.hover { + background-color: #f4f4f4!important; +} +.btn.btn-default.btn-flat { + border-bottom-color: #d9dadc; +} +.btn.btn-primary { + background-color: #3c8dbc; + border-color: #367fa9; +} +.btn.btn-primary:hover, +.btn.btn-primary:active, +.btn.btn-primary.hover { + background-color: #367fa9; +} +.btn.btn-success { + background-color: #00a65a; + border-color: #008d4c; +} +.btn.btn-success:hover, +.btn.btn-success:active, +.btn.btn-success.hover { + background-color: #008d4c; +} +.btn.btn-info { + background-color: #00c0ef; + border-color: #00acd6; +} +.btn.btn-info:hover, +.btn.btn-info:active, +.btn.btn-info.hover { + background-color: #00acd6; +} +.btn.btn-danger { + background-color: #f56954; + border-color: #f4543c; +} +.btn.btn-danger:hover, +.btn.btn-danger:active, +.btn.btn-danger.hover { + background-color: #f4543c; +} +.btn.btn-warning { + background-color: #f39c12; + border-color: #e08e0b; +} +.btn.btn-warning:hover, +.btn.btn-warning:active, +.btn.btn-warning.hover { + background-color: #e08e0b; +} +.btn.btn-flat { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + border-width: 1px; +} +.btn:active { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + -moz-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:focus { + outline: none; +} +.btn.btn-file { + position: relative; + overflow: hidden; +} +.btn.btn-file > input[type='file'] { + position: absolute; + top: 0; + right: 0; + min-width: 100%; + min-height: 100%; + font-size: 100px; + text-align: right; + filter: alpha(opacity=0); + opacity: 0; + outline: none; + background: white; + cursor: inherit; + display: block; +} +.btn.btn-app { + position: relative; + padding: 15px 5px; + margin: 0 0 10px 10px; + min-width: 80px; + height: 60px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + text-align: center; + color: #666; + border: 1px solid #ddd; + background-color: #fafafa; + font-size: 12px; +} +.btn.btn-app > .fa, +.btn.btn-app > .glyphicon, +.btn.btn-app > .ion { + font-size: 20px; + display: block; +} +.btn.btn-app:hover { + background: #f4f4f4; + color: #444; + border-color: #aaa; +} +.btn.btn-app:active, +.btn.btn-app:focus { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + -moz-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.btn-app > .badge { + position: absolute; + top: -3px; + right: -10px; + font-size: 10px; + font-weight: 400; +} +.btn.btn-social-old { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + opacity: 0.9; + padding: 0; +} +.btn.btn-social-old > .fa { + padding: 10px 0; + width: 40px; +} +.btn.btn-social-old > .fa + span { + border-left: 1px solid rgba(255, 255, 255, 0.3); +} +.btn.btn-social-old span { + padding: 10px; +} +.btn.btn-social-old:hover { + opacity: 1; +} +.btn.btn-circle { + width: 30px; + height: 30px; + line-height: 30px; + padding: 0; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; +} +/* + Component: callout +------------------------ +*/ +.callout { + margin: 0 0 20px 0; + padding: 15px 30px 15px 15px; + border-left: 5px solid #eee; +} +.callout h4 { + margin-top: 0; +} +.callout p:last-child { + margin-bottom: 0; +} +.callout code, +.callout .highlight { + background-color: #fff; +} +.callout.callout-danger { + background-color: #fcf2f2; + border-color: #dFb5b4; +} +.callout.callout-warning { + background-color: #fefbed; + border-color: #f1e7bc; +} +.callout.callout-info { + background-color: #f0f7fd; + border-color: #d0e3f0; +} +.callout.callout-danger h4 { + color: #B94A48; +} +.callout.callout-warning h4 { + color: #C09853; +} +.callout.callout-info h4 { + color: #3A87AD; +} +/* + Component: alert +------------------------ +*/ +.alert { + padding-left: 30px; + margin-left: 15px; + position: relative; +} +.alert > .fa, +.alert > .glyphicon { + position: absolute; + left: -15px; + top: -15px; + width: 35px; + height: 35px; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + line-height: 35px; + text-align: center; + background: inherit; + border: inherit; +} +/* + Component: Navs +*/ +/* NAV PILLS */ +.nav.nav-pills > li > a { + border-top: 3px solid transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + color: #444; +} +.nav.nav-pills > li > a > .fa, +.nav.nav-pills > li > a > .glyphicon, +.nav.nav-pills > li > a > .ion { + margin-right: 5px; +} +.nav.nav-pills > li.active > a, +.nav.nav-pills > li.active > a:hover { + background-color: #f6f6f6; + border-top-color: #3c8dbc; + color: #444; +} +.nav.nav-pills > li.active > a { + font-weight: 600; +} +.nav.nav-pills > li > a:hover { + background-color: #f6f6f6; +} +.nav.nav-pills.nav-stacked > li > a { + border-top: 0; + border-left: 3px solid transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + color: #444; +} +.nav.nav-pills.nav-stacked > li.active > a, +.nav.nav-pills.nav-stacked > li.active > a:hover { + background-color: #f6f6f6; + border-left-color: #3c8dbc; + color: #444; +} +.nav.nav-pills.nav-stacked > li.header { + border-bottom: 1px solid #ddd; + color: #777; + margin-bottom: 10px; + padding: 5px 10px; + text-transform: uppercase; +} +/* NAV TABS */ +.nav-tabs-custom { + margin-bottom: 20px; + background: #fff; + box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); +} +.nav-tabs-custom > .nav-tabs { + margin: 0; + border-bottom-color: #f4f4f4; +} +.nav-tabs-custom > .nav-tabs > li { + border-top: 3px solid transparent; + margin-bottom: -2px; + margin-right: 5px; +} +.nav-tabs-custom > .nav-tabs > li > a { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +.nav-tabs-custom > .nav-tabs > li > a, +.nav-tabs-custom > .nav-tabs > li > a:hover { + background: transparent; + margin: 0; +} +.nav-tabs-custom > .nav-tabs > li:not(.active) > a:hover, +.nav-tabs-custom > .nav-tabs > li:not(.active) > a:focus, +.nav-tabs-custom > .nav-tabs > li:not(.active) > a:active { + border-color: transparent; +} +.nav-tabs-custom > .nav-tabs > li.active { + border-top-color: #3c8dbc; +} +.nav-tabs-custom > .nav-tabs > li.active > a, +.nav-tabs-custom > .nav-tabs > li.active:hover > a { + background-color: #fff; +} +.nav-tabs-custom > .nav-tabs > li.active > a { + border-top: 0; + border-left-color: #f4f4f4; + border-right-color: #f4f4f4; +} +.nav-tabs-custom > .nav-tabs > li:first-of-type { + margin-left: 0px; +} +.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a { + border-left-width: 0; +} +.nav-tabs-custom > .nav-tabs.pull-right { + float: none!important; +} +.nav-tabs-custom > .nav-tabs.pull-right > li { + float: right; +} +.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type { + margin-right: 0px; +} +.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type.active > a { + border-left-width: 1px; + border-right-width: 0px; +} +.nav-tabs-custom > .nav-tabs > li.header { + font-weight: 400; + line-height: 35px; + padding: 0 10px; + font-size: 20px; + color: #444; + cursor: default; +} +.nav-tabs-custom > .nav-tabs > li.header > .fa, +.nav-tabs-custom > .nav-tabs > li.header > .glyphicon, +.nav-tabs-custom > .nav-tabs > li.header > .ion { + margin-right: 10px; +} +.nav-tabs-custom > .tab-content { + background: #fff; + padding: 10px; +} +/* Nav tabs bottom */ +.tabs-bottom.nav-3 li a { + width: 3333.33333333% !important; +} +.tabs-bottom li a { + border: 0; +} +/* PAGINATION */ +.pagination > li > a { + background: #fafafa; + color: #666; + -webkit-box-shadow: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.09); + -moz-box-shadow: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.09); + box-shadow: inset 0px -1px 0px 0px rgba(0, 0, 0, 0.09); +} +.pagination > li:first-of-type a, +.pagination > li:last-of-type a { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +/* + Component: Mailbox +*/ +.mailbox .table-mailbox { + border-left: 1px solid #ddd; + border-right: 1px solid #ddd; + border-bottom: 1px solid #ddd; +} +.mailbox .table-mailbox tr.unread > td { + background-color: rgba(0, 0, 0, 0.05); + color: #000; + font-weight: 600; +} +.mailbox .table-mailbox tr > td > .fa.fa-star, +.mailbox .table-mailbox tr > td > .fa.fa-star-o, +.mailbox .table-mailbox tr > td > .glyphicon.glyphicon-star, +.mailbox .table-mailbox tr > td > .glyphicon.glyphicon-star-empty { + color: #f39c12; + cursor: pointer; +} +.mailbox .table-mailbox tr > td.small-col { + width: 30px; +} +.mailbox .table-mailbox tr > td.name { + width: 150px; + font-weight: 600; +} +.mailbox .table-mailbox tr > td.time { + text-align: right; + width: 100px; +} +.mailbox .table-mailbox tr > td { + white-space: nowrap; +} +.mailbox .table-mailbox tr > td > a { + color: #444; +} +@media screen and (max-width: 767px) { + .mailbox .nav-stacked > li:not(.header) { + float: left; + width: 50%; + } + .mailbox .nav-stacked > li:not(.header).header { + border: 0!important; + } + .mailbox .search-form { + margin-top: 10px; + } +} +/* + Page: locked screen +*/ +/* ADD THIS CLASS TO THE TAG */ +.lockscreen { + background: url(../img/blur-background09.jpg) repeat center center fixed; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} +/* Remove the background from the body element */ +.lockscreen > body { + background: transparent; +} +/* We will put the dynamically generated digital clock here */ +.lockscreen .headline { + color: #fff; + text-shadow: 1px 3px 5px rgba(0, 0, 0, 0.5); + font-weight: 300; + -webkit-font-smoothing: antialiased !important; + opacity: 0.8; + margin: 10px 0 30px 0; + font-size: 90px; +} +@media screen and (max-width: 480px) { + .lockscreen .headline { + font-size: 60px; + margin-bottom: 40px; + } +} +/* User name [optional] */ +.lockscreen .lockscreen-name { + text-align: center; + font-weight: 600; + font-size: 16px; +} +/* Will contain the image and the sign in form */ +.lockscreen-item { + padding: 0; + background: #fff; + position: relative; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + margin: 10px auto; + width: 290px; +} +.lockscreen-item:before, +.lockscreen-item:after { + display: table; + content: " "; +} +.lockscreen-item:after { + clear: both; +} +/* User image */ +.lockscreen-item > .lockscreen-image { + position: absolute; + left: -10px; + top: -30px; + background: #fff; + padding: 10px; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + z-index: 10; +} +.lockscreen-item > .lockscreen-image > img { + width: 70px; + height: 70px; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; +} +/* Contains the password input and the login button */ +.lockscreen-item > .lockscreen-credentials { + margin-left: 80px; +} +.lockscreen-item > .lockscreen-credentials input { + border: 0 !important; +} +.lockscreen-item > .lockscreen-credentials .btn { + background-color: #fff; + border: 0; +} +/* Extra to give the user an option to navigate the website [optional]*/ +.lockscreen-link { + margin-top: 30px; + text-align: center; +} +/* + Page: register and login +*/ +.form-box { + width: 360px; + margin: 90px auto 0 auto; +} +.form-box .header { + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 0; + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 0; + -moz-border-radius-bottomleft: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + background: #3d9970; + box-shadow: inset 0px -3px 0px rgba(0, 0, 0, 0.2); + padding: 20px 10px; + text-align: center; + font-size: 26px; + font-weight: 300; + color: #fff; +} +.form-box .body, +.form-box .footer { + padding: 10px 20px; + background: #fff; + color: #444; +} +.form-box .body > .form-group, +.form-box .footer > .form-group { + margin-top: 20px; +} +.form-box .body > .form-group > input, +.form-box .footer > .form-group > input { + border: #fff; +} +.form-box .body > .btn, +.form-box .footer > .btn { + margin-bottom: 10px; +} +.form-box .footer { + -webkit-border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-topleft: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +@media (max-width: 767px) { + .form-box { + width: 90%; + } +} +/* + Page: 404 and 500 error pages +------------------------------------ +*/ +.error-page { + width: 600px; + margin: 20px auto 0 auto; +} +@media screen and (max-width: 767px) { + .error-page { + width: 100%; + } +} +.error-page > .headline { + float: left; + font-size: 100px; + font-weight: 300; +} +@media screen and (max-width: 767px) { + .error-page > .headline { + float: none; + text-align: center; + } +} +.error-page > .error-content { + margin-left: 190px; + display: block; +} +@media screen and (max-width: 767px) { + .error-page > .error-content { + margin-left: 0; + } +} +.error-page > .error-content > h3 { + font-weight: 300; + font-size: 25px; +} +@media screen and (max-width: 767px) { + .error-page > .error-content > h3 { + text-align: center; + } +} +.error-page:before, +.error-page:after { + display: table; + content: " "; +} +.error-page:after { + clear: both; +} +/* + Page: Invoice +*/ +.invoice { + position: relative; + width: 90%; + margin: 10px auto; + background: #fff; + border: 1px solid #f4f4f4; +} +.invoice-title { + margin-top: 0; +} +/* Enhancement for printing */ +@media print { + .invoice { + width: 100%; + border: 0; + margin: 0; + padding: 0; + } + .invoice-col { + float: left; + width: 33.3333333%; + } + .table-responsive { + overflow: auto; + } + .table-responsive > .table tr th, + .table-responsive > .table tr td { + white-space: normal!important; + } +} +/* + Skins + ----- +*/ +/* + Skin Blue + --------- +*/ +/* skin-blue navbar */ +.skin-blue .navbar { + background-color: #3c8dbc; +} +.skin-blue .navbar .nav a { + color: rgba(255, 255, 255, 0.8); +} +.skin-blue .navbar .nav > li > a:hover, +.skin-blue .navbar .nav > li > a:active, +.skin-blue .navbar .nav > li > a:focus, +.skin-blue .navbar .nav .open > a, +.skin-blue .navbar .nav .open > a:hover, +.skin-blue .navbar .nav .open > a:focus { + background: rgba(0, 0, 0, 0.1); + color: #f6f6f6; +} +.skin-blue .navbar .navbar-right > .nav { + margin-right: 10px; +} +.skin-blue .navbar .sidebar-toggle .icon-bar { + background: rgba(255, 255, 255, 0.8); +} +.skin-blue .navbar .sidebar-toggle:hover .icon-bar { + background: #f6f6f6 !important; +} +/* skin-blue logo */ +.skin-blue .logo { + background-color: #367fa9; + color: #f9f9f9; +} +.skin-blue .logo > a { + color: #f9f9f9; +} +.skin-blue .logo:hover { + background: #357ca5; +} +/* skin-blue content header */ +.skin-blue .right-side > .content-header { + background: #fbfbfb; + box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); +} +/* Skin-blue user panel */ +.skin-blue .user-panel > .image > img { + border: 1px solid #dfdfdf; +} +.skin-blue .user-panel > .info, +.skin-blue .user-panel > .info > a { + color: #555555; +} +/* skin-blue sidebar */ +.skin-blue .sidebar { + border-bottom: 1px solid #fff; +} +.skin-blue .sidebar > .sidebar-menu > li { + border-top: 1px solid #fff; + border-bottom: 1px solid #dbdbdb; +} +.skin-blue .sidebar > .sidebar-menu > li:first-of-type { + border-top: 1px solid #dbdbdb; +} +.skin-blue .sidebar > .sidebar-menu > li:first-of-type > a { + border-top: 1px solid #fff; +} +.skin-blue .sidebar > .sidebar-menu > li > a { + margin-right: 1px; +} +.skin-blue .sidebar > .sidebar-menu > li > a:hover, +.skin-blue .sidebar > .sidebar-menu > li.active > a { + color: #222; + background: #f9f9f9; +} +.skin-blue .sidebar > .sidebar-menu > li > .treeview-menu { + margin: 0 1px; + background: #f9f9f9; +} +.skin-blue .left-side { + background: #f4f4f4; + -webkit-box-shadow: inset -3px 0px 8px -4px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset -3px 0px 8px -4px rgba(0, 0, 0, 0.1); + box-shadow: inset -3px 0px 8px -4px rgba(0, 0, 0, 0.07); +} +.skin-blue .sidebar a { + color: #555555; +} +.skin-blue .sidebar a:hover { + text-decoration: none; +} +.skin-blue .treeview-menu > li > a { + color: #777; +} +.skin-blue .treeview-menu > li.active > a, +.skin-blue .treeview-menu > li > a:hover { + color: #111; +} +.skin-blue .sidebar-form { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + border: 1px solid #dbdbdb; + margin: 10px 10px; +} +.skin-blue .sidebar-form input[type="text"], +.skin-blue .sidebar-form .btn { + box-shadow: none; + background-color: #fafafa; + border: 1px solid #fafafa; + height: 35px; +} +.skin-blue .sidebar-form input[type="text"] { + color: #666; + -webkit-border-top-left-radius: 2px !important; + -webkit-border-top-right-radius: 0 !important; + -webkit-border-bottom-right-radius: 0 !important; + -webkit-border-bottom-left-radius: 2px !important; + -moz-border-radius-topleft: 2px !important; + -moz-border-radius-topright: 0 !important; + -moz-border-radius-bottomright: 0 !important; + -moz-border-radius-bottomleft: 2px !important; + border-top-left-radius: 2px !important; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 2px !important; +} +.skin-blue .sidebar-form input[type="text"]:focus, +.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { + background-color: #fff; + color: #666; +} +.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { + border-left-color: #fff; +} +.skin-blue .sidebar-form .btn { + color: #999; + -webkit-border-top-left-radius: 0 !important; + -webkit-border-top-right-radius: 2px !important; + -webkit-border-bottom-right-radius: 2px !important; + -webkit-border-bottom-left-radius: 0 !important; + -moz-border-radius-topleft: 0 !important; + -moz-border-radius-topright: 2px !important; + -moz-border-radius-bottomright: 2px !important; + -moz-border-radius-bottomleft: 0 !important; + border-top-left-radius: 0 !important; + border-top-right-radius: 2px !important; + border-bottom-right-radius: 2px !important; + border-bottom-left-radius: 0 !important; +} +/* + Skin Black + -------- +*/ +/* skin-black navbar */ +.skin-black .navbar { + background-color: #ffffff; + border-bottom: 1px solid #eee; +} +.skin-black .navbar .nav a { + color: #333333; +} +.skin-black .navbar .nav > li > a:hover, +.skin-black .navbar .nav > li > a:active, +.skin-black .navbar .nav > li > a:focus, +.skin-black .navbar .nav .open > a, +.skin-black .navbar .nav .open > a:hover, +.skin-black .navbar .nav .open > a:focus { + background: #ffffff; + color: #999999; +} +.skin-black .navbar .navbar-right > .nav { + margin-right: 10px; +} +.skin-black .navbar .sidebar-toggle .icon-bar { + background: #333333; +} +.skin-black .navbar .sidebar-toggle:hover .icon-bar { + background: #999999 !important; +} +/* skin-black logo */ +.skin-black .logo { + background-color: #333333; + color: #f9f9f9; +} +.skin-black .logo > a { + color: #f9f9f9; +} +.skin-black .logo:hover { + background: #303030; +} +/* skin-black content header */ +.skin-black .right-side > .content-header { + background: transparent; + box-shadow: none; +} +/* Skin-red user panel */ +.skin-black .user-panel > .image > img { + border: 1px solid #444; +} +.skin-black .user-panel > .info, +.skin-black .user-panel > .info > a { + color: #eee; +} +/* skin-black sidebar */ +.skin-black .sidebar { + border-bottom: 1px solid #333; +} +.skin-black .sidebar > .sidebar-menu > li { + border-top: 1px solid #333; + border-bottom: 0px solid #444; +} +.skin-black .sidebar > .sidebar-menu > li:first-of-type { + border-top: 1px solid #444; +} +.skin-black .sidebar > .sidebar-menu > li:first-of-type > a { + border-top: 0px solid #333; +} +.skin-black .sidebar > .sidebar-menu > li > a { + margin-right: 1px; +} +.skin-black .sidebar > .sidebar-menu > li > a:hover, +.skin-black .sidebar > .sidebar-menu > li.active > a { + color: #f6f6f6; + background: #444; +} +.skin-black .sidebar > .sidebar-menu > li > .treeview-menu { + margin: 0 1px; + background: #444; +} +.skin-black .left-side { + background: #333; +} +.skin-black .sidebar a { + color: #eee; +} +.skin-black .sidebar a:hover { + text-decoration: none; +} +.skin-black .treeview-menu > li > a { + color: #ccc; +} +.skin-black .treeview-menu > li.active > a, +.skin-black .treeview-menu > li > a:hover { + color: #fff; +} +.skin-black .sidebar-form { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + border: 0px solid #555; + margin: 10px 10px; +} +.skin-black .sidebar-form input[type="text"], +.skin-black .sidebar-form .btn { + box-shadow: none; + background-color: rgba(255, 255, 255, 0.1); + border: 0 solid rgba(255, 255, 255, 0.1); + height: 35px; + outline: none; +} +.skin-black .sidebar-form input[type="text"] { + color: #666; + -webkit-border-top-left-radius: 2px !important; + -webkit-border-top-right-radius: 0 !important; + -webkit-border-bottom-right-radius: 0 !important; + -webkit-border-bottom-left-radius: 2px !important; + -moz-border-radius-topleft: 2px !important; + -moz-border-radius-topright: 0 !important; + -moz-border-radius-bottomright: 0 !important; + -moz-border-radius-bottomleft: 2px !important; + border-top-left-radius: 2px !important; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 2px !important; +} +.skin-black .sidebar-form input[type="text"]:focus, +.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { + background-color: #444; + border: 0; +} +.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { + border-left: 0; +} +.skin-black .sidebar-form .btn { + color: #999; + -webkit-border-top-left-radius: 0 !important; + -webkit-border-top-right-radius: 2px !important; + -webkit-border-bottom-right-radius: 2px !important; + -webkit-border-bottom-left-radius: 0 !important; + -moz-border-radius-topleft: 0 !important; + -moz-border-radius-topright: 2px !important; + -moz-border-radius-bottomright: 2px !important; + -moz-border-radius-bottomleft: 0 !important; + border-top-left-radius: 0 !important; + border-top-right-radius: 2px !important; + border-bottom-right-radius: 2px !important; + border-bottom-left-radius: 0 !important; + border-left: 0; +} +/*! + * iCheck v1.0.1, http://git.io/arlzeA + * ================================= + * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization + * + * (c) 2013 Damir Sultanov, http://fronteed.com + * MIT Licensed + */ +/* iCheck plugin Minimal skin, black +----------------------------------- */ +.icheckbox_minimal, +.iradio_minimal { + display: inline-block; + *display: inline; + vertical-align: middle; + margin: 0; + padding: 0; + width: 18px; + height: 18px; + background: rgba(255, 255, 255, 0.7) url(iCheck/minimal/minimal.png) no-repeat; + border: none; + cursor: pointer; +} +.icheckbox_minimal { + background-position: 0 0; +} +.icheckbox_minimal.hover { + background-position: -20px 0; +} +.icheckbox_minimal.checked { + background-position: -40px 0; +} +.icheckbox_minimal.disabled { + background-position: -60px 0; + cursor: default; +} +.icheckbox_minimal.checked.disabled { + background-position: -80px 0; +} +.iradio_minimal { + background-position: -100px 0; +} +.iradio_minimal.hover { + background-position: -120px 0; +} +.iradio_minimal.checked { + background-position: -140px 0; +} +.iradio_minimal.disabled { + background-position: -160px 0; + cursor: default; +} +.iradio_minimal.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, + .iradio_minimal { + background-image: url('iCheck/minimal/minimal@2x.png'); + -webkit-background-size: 200px 20px; + background-size: 200px 20px; + } +} +.pace .pace-progress { + background: #00c0ef; + position: fixed; + z-index: 2000; + top: 0; + left: 0; + height: 2px; + -webkit-transition: width 1s; + -moz-transition: width 1s; + -o-transition: width 1s; + transition: width 1s; +} +.pace-inactive { + display: none; +} +/* + * Social Buttons for Bootstrap + * + * Copyright 2013-2014 Panayiotis Lipiridis + * Licensed under the MIT License + * + * https://github.com/lipis/bootstrap-social + * + * Note: this file has been altered to work correctly with AdminLTE + */ +.btn-social { + position: relative; + padding-left: 44px !important; + text-align: left; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.btn-social :first-child { + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 32px !important; + line-height: 34px !important; + font-size: 1.6em!important; + text-align: center; + border-right: 1px solid rgba(0, 0, 0, 0.2); +} +.btn-social.btn-lg { + padding-left: 60px !important; +} +.btn-social.btn-lg :first-child { + line-height: 45px; + width: 45px; + font-size: 1.8em; +} +.btn-social.btn-sm { + padding-left: 38px !important; +} +.btn-social.btn-sm :first-child { + line-height: 28px; + width: 28px; + font-size: 1.4em; +} +.btn-social.btn-xs { + padding-left: 30px !important; +} +.btn-social.btn-xs :first-child { + line-height: 20px; + width: 20px; + font-size: 1.2em; +} +.btn-social-icon { + position: relative; + padding-left: 44px !important; + text-align: left; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + height: 34px; + width: 34px; + padding: 0; +} +.btn-social-icon :first-child { + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 32px !important; + line-height: 34px !important; + font-size: 1.6em!important; + text-align: center; + border-right: 1px solid rgba(0, 0, 0, 0.2); +} +.btn-social-icon.btn-lg { + padding-left: 60px !important; +} +.btn-social-icon.btn-lg :first-child { + line-height: 45px; + width: 45px; + font-size: 1.8em; +} +.btn-social-icon.btn-sm { + padding-left: 38px !important; +} +.btn-social-icon.btn-sm :first-child { + line-height: 28px; + width: 28px; + font-size: 1.4em; +} +.btn-social-icon.btn-xs { + padding-left: 30px !important; +} +.btn-social-icon.btn-xs :first-child { + line-height: 20px; + width: 20px; + font-size: 1.2em; +} +.btn-social-icon :first-child { + border: none; + text-align: center; + width: 100%!important; +} +.btn-social-icon.btn-lg { + height: 45px; + width: 45px; + padding-left: 0; + padding-right: 0; +} +.btn-social-icon.btn-sm { + height: 30px; + width: 30px; + padding-left: 0; + padding-right: 0; +} +.btn-social-icon.btn-xs { + height: 22px; + width: 22px; + padding-left: 0; + padding-right: 0; +} +.btn-bitbucket { + color: #ffffff; + background-color: #205081; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-bitbucket:hover, +.btn-bitbucket:focus, +.btn-bitbucket:active, +.btn-bitbucket.active, +.open .dropdown-toggle.btn-bitbucket { + color: #ffffff; + background-color: #183c60; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-bitbucket:active, +.btn-bitbucket.active, +.open .dropdown-toggle.btn-bitbucket { + background-image: none; +} +.btn-bitbucket.disabled, +.btn-bitbucket[disabled], +fieldset[disabled] .btn-bitbucket, +.btn-bitbucket.disabled:hover, +.btn-bitbucket[disabled]:hover, +fieldset[disabled] .btn-bitbucket:hover, +.btn-bitbucket.disabled:focus, +.btn-bitbucket[disabled]:focus, +fieldset[disabled] .btn-bitbucket:focus, +.btn-bitbucket.disabled:active, +.btn-bitbucket[disabled]:active, +fieldset[disabled] .btn-bitbucket:active, +.btn-bitbucket.disabled.active, +.btn-bitbucket[disabled].active, +fieldset[disabled] .btn-bitbucket.active { + background-color: #205081; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-bitbucket .badge { + color: #205081; + background-color: #ffffff; +} +.btn-dropbox { + color: #ffffff; + background-color: #1087dd; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-dropbox:hover, +.btn-dropbox:focus, +.btn-dropbox:active, +.btn-dropbox.active, +.open .dropdown-toggle.btn-dropbox { + color: #ffffff; + background-color: #0d70b7; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-dropbox:active, +.btn-dropbox.active, +.open .dropdown-toggle.btn-dropbox { + background-image: none; +} +.btn-dropbox.disabled, +.btn-dropbox[disabled], +fieldset[disabled] .btn-dropbox, +.btn-dropbox.disabled:hover, +.btn-dropbox[disabled]:hover, +fieldset[disabled] .btn-dropbox:hover, +.btn-dropbox.disabled:focus, +.btn-dropbox[disabled]:focus, +fieldset[disabled] .btn-dropbox:focus, +.btn-dropbox.disabled:active, +.btn-dropbox[disabled]:active, +fieldset[disabled] .btn-dropbox:active, +.btn-dropbox.disabled.active, +.btn-dropbox[disabled].active, +fieldset[disabled] .btn-dropbox.active { + background-color: #1087dd; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-dropbox .badge { + color: #1087dd; + background-color: #ffffff; +} +.btn-facebook { + color: #ffffff; + background-color: #3b5998; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-facebook:hover, +.btn-facebook:focus, +.btn-facebook:active, +.btn-facebook.active, +.open .dropdown-toggle.btn-facebook { + color: #ffffff; + background-color: #30487b; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-facebook:active, +.btn-facebook.active, +.open .dropdown-toggle.btn-facebook { + background-image: none; +} +.btn-facebook.disabled, +.btn-facebook[disabled], +fieldset[disabled] .btn-facebook, +.btn-facebook.disabled:hover, +.btn-facebook[disabled]:hover, +fieldset[disabled] .btn-facebook:hover, +.btn-facebook.disabled:focus, +.btn-facebook[disabled]:focus, +fieldset[disabled] .btn-facebook:focus, +.btn-facebook.disabled:active, +.btn-facebook[disabled]:active, +fieldset[disabled] .btn-facebook:active, +.btn-facebook.disabled.active, +.btn-facebook[disabled].active, +fieldset[disabled] .btn-facebook.active { + background-color: #3b5998; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-facebook .badge { + color: #3b5998; + background-color: #ffffff; +} +.btn-flickr { + color: #ffffff; + background-color: #ff0084; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-flickr:hover, +.btn-flickr:focus, +.btn-flickr:active, +.btn-flickr.active, +.open .dropdown-toggle.btn-flickr { + color: #ffffff; + background-color: #d6006f; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-flickr:active, +.btn-flickr.active, +.open .dropdown-toggle.btn-flickr { + background-image: none; +} +.btn-flickr.disabled, +.btn-flickr[disabled], +fieldset[disabled] .btn-flickr, +.btn-flickr.disabled:hover, +.btn-flickr[disabled]:hover, +fieldset[disabled] .btn-flickr:hover, +.btn-flickr.disabled:focus, +.btn-flickr[disabled]:focus, +fieldset[disabled] .btn-flickr:focus, +.btn-flickr.disabled:active, +.btn-flickr[disabled]:active, +fieldset[disabled] .btn-flickr:active, +.btn-flickr.disabled.active, +.btn-flickr[disabled].active, +fieldset[disabled] .btn-flickr.active { + background-color: #ff0084; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-flickr .badge { + color: #ff0084; + background-color: #ffffff; +} +.btn-foursquare { + color: #ffffff; + background-color: #0072b1; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-foursquare:hover, +.btn-foursquare:focus, +.btn-foursquare:active, +.btn-foursquare.active, +.open .dropdown-toggle.btn-foursquare { + color: #ffffff; + background-color: #005888; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-foursquare:active, +.btn-foursquare.active, +.open .dropdown-toggle.btn-foursquare { + background-image: none; +} +.btn-foursquare.disabled, +.btn-foursquare[disabled], +fieldset[disabled] .btn-foursquare, +.btn-foursquare.disabled:hover, +.btn-foursquare[disabled]:hover, +fieldset[disabled] .btn-foursquare:hover, +.btn-foursquare.disabled:focus, +.btn-foursquare[disabled]:focus, +fieldset[disabled] .btn-foursquare:focus, +.btn-foursquare.disabled:active, +.btn-foursquare[disabled]:active, +fieldset[disabled] .btn-foursquare:active, +.btn-foursquare.disabled.active, +.btn-foursquare[disabled].active, +fieldset[disabled] .btn-foursquare.active { + background-color: #0072b1; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-foursquare .badge { + color: #0072b1; + background-color: #ffffff; +} +.btn-github { + color: #ffffff; + background-color: #444444; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-github:hover, +.btn-github:focus, +.btn-github:active, +.btn-github.active, +.open .dropdown-toggle.btn-github { + color: #ffffff; + background-color: #303030; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-github:active, +.btn-github.active, +.open .dropdown-toggle.btn-github { + background-image: none; +} +.btn-github.disabled, +.btn-github[disabled], +fieldset[disabled] .btn-github, +.btn-github.disabled:hover, +.btn-github[disabled]:hover, +fieldset[disabled] .btn-github:hover, +.btn-github.disabled:focus, +.btn-github[disabled]:focus, +fieldset[disabled] .btn-github:focus, +.btn-github.disabled:active, +.btn-github[disabled]:active, +fieldset[disabled] .btn-github:active, +.btn-github.disabled.active, +.btn-github[disabled].active, +fieldset[disabled] .btn-github.active { + background-color: #444444; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-github .badge { + color: #444444; + background-color: #ffffff; +} +.btn-google-plus { + color: #ffffff; + background-color: #dd4b39; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-google-plus:hover, +.btn-google-plus:focus, +.btn-google-plus:active, +.btn-google-plus.active, +.open .dropdown-toggle.btn-google-plus { + color: #ffffff; + background-color: #ca3523; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-google-plus:active, +.btn-google-plus.active, +.open .dropdown-toggle.btn-google-plus { + background-image: none; +} +.btn-google-plus.disabled, +.btn-google-plus[disabled], +fieldset[disabled] .btn-google-plus, +.btn-google-plus.disabled:hover, +.btn-google-plus[disabled]:hover, +fieldset[disabled] .btn-google-plus:hover, +.btn-google-plus.disabled:focus, +.btn-google-plus[disabled]:focus, +fieldset[disabled] .btn-google-plus:focus, +.btn-google-plus.disabled:active, +.btn-google-plus[disabled]:active, +fieldset[disabled] .btn-google-plus:active, +.btn-google-plus.disabled.active, +.btn-google-plus[disabled].active, +fieldset[disabled] .btn-google-plus.active { + background-color: #dd4b39; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-google-plus .badge { + color: #dd4b39; + background-color: #ffffff; +} +.btn-instagram { + color: #ffffff; + background-color: #3f729b; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-instagram:hover, +.btn-instagram:focus, +.btn-instagram:active, +.btn-instagram.active, +.open .dropdown-toggle.btn-instagram { + color: #ffffff; + background-color: #335d7e; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-instagram:active, +.btn-instagram.active, +.open .dropdown-toggle.btn-instagram { + background-image: none; +} +.btn-instagram.disabled, +.btn-instagram[disabled], +fieldset[disabled] .btn-instagram, +.btn-instagram.disabled:hover, +.btn-instagram[disabled]:hover, +fieldset[disabled] .btn-instagram:hover, +.btn-instagram.disabled:focus, +.btn-instagram[disabled]:focus, +fieldset[disabled] .btn-instagram:focus, +.btn-instagram.disabled:active, +.btn-instagram[disabled]:active, +fieldset[disabled] .btn-instagram:active, +.btn-instagram.disabled.active, +.btn-instagram[disabled].active, +fieldset[disabled] .btn-instagram.active { + background-color: #3f729b; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-instagram .badge { + color: #3f729b; + background-color: #ffffff; +} +.btn-linkedin { + color: #ffffff; + background-color: #007bb6; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-linkedin:hover, +.btn-linkedin:focus, +.btn-linkedin:active, +.btn-linkedin.active, +.open .dropdown-toggle.btn-linkedin { + color: #ffffff; + background-color: #005f8d; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-linkedin:active, +.btn-linkedin.active, +.open .dropdown-toggle.btn-linkedin { + background-image: none; +} +.btn-linkedin.disabled, +.btn-linkedin[disabled], +fieldset[disabled] .btn-linkedin, +.btn-linkedin.disabled:hover, +.btn-linkedin[disabled]:hover, +fieldset[disabled] .btn-linkedin:hover, +.btn-linkedin.disabled:focus, +.btn-linkedin[disabled]:focus, +fieldset[disabled] .btn-linkedin:focus, +.btn-linkedin.disabled:active, +.btn-linkedin[disabled]:active, +fieldset[disabled] .btn-linkedin:active, +.btn-linkedin.disabled.active, +.btn-linkedin[disabled].active, +fieldset[disabled] .btn-linkedin.active { + background-color: #007bb6; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-linkedin .badge { + color: #007bb6; + background-color: #ffffff; +} +.btn-tumblr { + color: #ffffff; + background-color: #2c4762; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-tumblr:hover, +.btn-tumblr:focus, +.btn-tumblr:active, +.btn-tumblr.active, +.open .dropdown-toggle.btn-tumblr { + color: #ffffff; + background-color: #1f3346; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-tumblr:active, +.btn-tumblr.active, +.open .dropdown-toggle.btn-tumblr { + background-image: none; +} +.btn-tumblr.disabled, +.btn-tumblr[disabled], +fieldset[disabled] .btn-tumblr, +.btn-tumblr.disabled:hover, +.btn-tumblr[disabled]:hover, +fieldset[disabled] .btn-tumblr:hover, +.btn-tumblr.disabled:focus, +.btn-tumblr[disabled]:focus, +fieldset[disabled] .btn-tumblr:focus, +.btn-tumblr.disabled:active, +.btn-tumblr[disabled]:active, +fieldset[disabled] .btn-tumblr:active, +.btn-tumblr.disabled.active, +.btn-tumblr[disabled].active, +fieldset[disabled] .btn-tumblr.active { + background-color: #2c4762; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-tumblr .badge { + color: #2c4762; + background-color: #ffffff; +} +.btn-twitter { + color: #ffffff; + background-color: #55acee; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-twitter:hover, +.btn-twitter:focus, +.btn-twitter:active, +.btn-twitter.active, +.open .dropdown-toggle.btn-twitter { + color: #ffffff; + background-color: #309aea; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-twitter:active, +.btn-twitter.active, +.open .dropdown-toggle.btn-twitter { + background-image: none; +} +.btn-twitter.disabled, +.btn-twitter[disabled], +fieldset[disabled] .btn-twitter, +.btn-twitter.disabled:hover, +.btn-twitter[disabled]:hover, +fieldset[disabled] .btn-twitter:hover, +.btn-twitter.disabled:focus, +.btn-twitter[disabled]:focus, +fieldset[disabled] .btn-twitter:focus, +.btn-twitter.disabled:active, +.btn-twitter[disabled]:active, +fieldset[disabled] .btn-twitter:active, +.btn-twitter.disabled.active, +.btn-twitter[disabled].active, +fieldset[disabled] .btn-twitter.active { + background-color: #55acee; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-twitter .badge { + color: #55acee; + background-color: #ffffff; +} +.btn-vk { + color: #ffffff; + background-color: #587ea3; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-vk:hover, +.btn-vk:focus, +.btn-vk:active, +.btn-vk.active, +.open .dropdown-toggle.btn-vk { + color: #ffffff; + background-color: #4a6a89; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-vk:active, +.btn-vk.active, +.open .dropdown-toggle.btn-vk { + background-image: none; +} +.btn-vk.disabled, +.btn-vk[disabled], +fieldset[disabled] .btn-vk, +.btn-vk.disabled:hover, +.btn-vk[disabled]:hover, +fieldset[disabled] .btn-vk:hover, +.btn-vk.disabled:focus, +.btn-vk[disabled]:focus, +fieldset[disabled] .btn-vk:focus, +.btn-vk.disabled:active, +.btn-vk[disabled]:active, +fieldset[disabled] .btn-vk:active, +.btn-vk.disabled.active, +.btn-vk[disabled].active, +fieldset[disabled] .btn-vk.active { + background-color: #587ea3; + border-color: rgba(0, 0, 0, 0.2); +} +.btn-vk .badge { + color: #587ea3; + background-color: #ffffff; +} diff --git a/public/assets/css/bootstrap-slider/slider.css b/public/assets/css/bootstrap-slider/slider.css new file mode 100755 index 00000000..a96db7fb --- /dev/null +++ b/public/assets/css/bootstrap-slider/slider.css @@ -0,0 +1,169 @@ +/*! + * Slider for Bootstrap + * + * Copyright 2012 Stefan Petre + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + */ +.slider { + display: block; + vertical-align: middle; + position: relative; + +} +.slider.slider-horizontal { + width: 100%; + height: 20px; + margin-bottom: 20px; +} +.slider.slider-horizontal:last-of-type { + margin-bottom: 0; +} +.slider.slider-horizontal .slider-track { + height: 10px; + width: 100%; + margin-top: -5px; + top: 50%; + left: 0; +} +.slider.slider-horizontal .slider-selection { + height: 100%; + top: 0; + bottom: 0; +} +.slider.slider-horizontal .slider-handle { + margin-left: -10px; + margin-top: -5px; +} +.slider.slider-horizontal .slider-handle.triangle { + border-width: 0 10px 10px 10px; + width: 0; + height: 0; + border-bottom-color: #0480be; + margin-top: 0; +} +.slider.slider-vertical { + height: 230px; + width: 20px; + margin-right: 20px; + display: inline-block; +} +.slider.slider-vertical:last-of-type { + margin-right: 0; +} +.slider.slider-vertical .slider-track { + width: 10px; + height: 100%; + margin-left: -5px; + left: 50%; + top: 0; +} +.slider.slider-vertical .slider-selection { + width: 100%; + left: 0; + top: 0; + bottom: 0; +} +.slider.slider-vertical .slider-handle { + margin-left: -5px; + margin-top: -10px; +} +.slider.slider-vertical .slider-handle.triangle { + border-width: 10px 0 10px 10px; + width: 1px; + height: 1px; + border-left-color: #0480be; + margin-left: 0; +} +.slider input { + display: none; +} +.slider .tooltip-inner { + white-space: nowrap; +} +.slider-track { + position: absolute; + cursor: pointer; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f0f0f0, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f0f0f0), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f0f0f0, #f9f9f9); + background-image: -o-linear-gradient(top, #f0f0f0, #f9f9f9); + background-image: linear-gradient(to bottom, #f0f0f0, #f9f9f9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0f0f0', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.slider-selection { + position: absolute; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f9f9f9, #f5f5f5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f9f9f9), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #f9f9f9, #f5f5f5); + background-image: -o-linear-gradient(top, #f9f9f9, #f5f5f5); + background-image: linear-gradient(to bottom, #f9f9f9, #f5f5f5); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-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-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.slider-handle { + position: absolute; + width: 20px; + height: 20px; + background-color: #444; + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + opacity: 1; + border: 0px solid transparent; +} +.slider-handle.round { + -webkit-border-radius: 20px; + -moz-border-radius: 20px; + border-radius: 20px; +} +.slider-handle.triangle { + background: transparent none; +} + +.slider-disabled .slider-selection { + opacity: 0.5; +} + +#red .slider-selection { + background: #f56954; +} + +#blue .slider-selection { + background: #3c8dbc; +} + +#green .slider-selection { + background: #00a65a; +} + +#yellow .slider-selection { + background: #f39c12; +} + +#aqua .slider-selection { + background: #00c0ef; +} + +#purple .slider-selection { + background: #932ab6; +} \ No newline at end of file diff --git a/public/assets/css/bootstrap-theme.min.css b/public/assets/css/bootstrap-theme.min.css index 8dee0720..9c85321d 100755 --- a/public/assets/css/bootstrap-theme.min.css +++ b/public/assets/css/bootstrap-theme.min.css @@ -4,4 +4,4 @@ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-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:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top, #fff 0, #e0e0e0 100%);background-image:linear-gradient(to bottom, #fff 0, #e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top, #428bca 0, #2d6ca2 100%);background-image:linear-gradient(to bottom, #428bca 0, #2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top, #5cb85c 0, #419641 100%);background-image:linear-gradient(to bottom, #5cb85c 0, #419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top, #5bc0de 0, #2aabd2 100%);background-image:linear-gradient(to bottom, #5bc0de 0, #2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0, #eb9316 100%);background-image:linear-gradient(to bottom, #f0ad4e 0, #eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top, #d9534f 0, #c12e2a 100%);background-image:linear-gradient(to bottom, #d9534f 0, #c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top, #428bca 0, #357ebd 100%);background-image:linear-gradient(to bottom, #428bca 0, #357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top, #fff 0, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #ebebeb 0, #f3f3f3 100%);background-image:linear-gradient(to bottom, #ebebeb 0, #f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top, #3c3c3c 0, #222 100%);background-image:linear-gradient(to bottom, #3c3c3c 0, #222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #222 0, #282828 100%);background-image:linear-gradient(to bottom, #222 0, #282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top, #dff0d8 0, #c8e5bc 100%);background-image:linear-gradient(to bottom, #dff0d8 0, #c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top, #d9edf7 0, #b9def0 100%);background-image:linear-gradient(to bottom, #d9edf7 0, #b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top, #fcf8e3 0, #f8efc0 100%);background-image:linear-gradient(to bottom, #fcf8e3 0, #f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top, #f2dede 0, #e7c3c3 100%);background-image:linear-gradient(to bottom, #f2dede 0, #e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top, #ebebeb 0, #f5f5f5 100%);background-image:linear-gradient(to bottom, #ebebeb 0, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top, #428bca 0, #3071a9 100%);background-image:linear-gradient(to bottom, #428bca 0, #3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top, #5cb85c 0, #449d44 100%);background-image:linear-gradient(to bottom, #5cb85c 0, #449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top, #5bc0de 0, #31b0d5 100%);background-image:linear-gradient(to bottom, #5bc0de 0, #31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0, #ec971f 100%);background-image:linear-gradient(to bottom, #f0ad4e 0, #ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top, #d9534f 0, #c9302c 100%);background-image:linear-gradient(to bottom, #d9534f 0, #c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top, #428bca 0, #3278b3 100%);background-image:linear-gradient(to bottom, #428bca 0, #3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top, #428bca 0, #357ebd 100%);background-image:linear-gradient(to bottom, #428bca 0, #357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top, #dff0d8 0, #d0e9c6 100%);background-image:linear-gradient(to bottom, #dff0d8 0, #d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top, #d9edf7 0, #c4e3f3 100%);background-image:linear-gradient(to bottom, #d9edf7 0, #c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top, #fcf8e3 0, #faf2cc 100%);background-image:linear-gradient(to bottom, #fcf8e3 0, #faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top, #f2dede 0, #ebcccc 100%);background-image:linear-gradient(to bottom, #f2dede 0, #ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top, #e8e8e8 0, #f5f5f5 100%);background-image:linear-gradient(to bottom, #e8e8e8 0, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)} \ No newline at end of file +.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-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:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top, #fff 0, #e0e0e0 100%);background-image:linear-gradient(to bottom, #fff 0, #e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top, #428bca 0, #2d6ca2 100%);background-image:linear-gradient(to bottom, #428bca 0, #2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top, #5cb85c 0, #419641 100%);background-image:linear-gradient(to bottom, #5cb85c 0, #419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top, #5bc0de 0, #2aabd2 100%);background-image:linear-gradient(to bottom, #5bc0de 0, #2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0, #eb9316 100%);background-image:linear-gradient(to bottom, #f0ad4e 0, #eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top, #d9534f 0, #c12e2a 100%);background-image:linear-gradient(to bottom, #d9534f 0, #c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top, #428bca 0, #357ebd 100%);background-image:linear-gradient(to bottom, #428bca 0, #357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top, #fff 0, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #ebebeb 0, #f3f3f3 100%);background-image:linear-gradient(to bottom, #ebebeb 0, #f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top, #3c3c3c 0, #222 100%);background-image:linear-gradient(to bottom, #3c3c3c 0, #222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #222 0, #282828 100%);background-image:linear-gradient(to bottom, #222 0, #282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top, #dff0d8 0, #c8e5bc 100%);background-image:linear-gradient(to bottom, #dff0d8 0, #c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top, #d9edf7 0, #b9def0 100%);background-image:linear-gradient(to bottom, #d9edf7 0, #b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top, #fcf8e3 0, #f8efc0 100%);background-image:linear-gradient(to bottom, #fcf8e3 0, #f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top, #f2dede 0, #e7c3c3 100%);background-image:linear-gradient(to bottom, #f2dede 0, #e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top, #ebebeb 0, #f5f5f5 100%);background-image:linear-gradient(to bottom, #ebebeb 0, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top, #428bca 0, #3071a9 100%);background-image:linear-gradient(to bottom, #428bca 0, #3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top, #5cb85c 0, #449d44 100%);background-image:linear-gradient(to bottom, #5cb85c 0, #449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top, #5bc0de 0, #31b0d5 100%);background-image:linear-gradient(to bottom, #5bc0de 0, #31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0, #ec971f 100%);background-image:linear-gradient(to bottom, #f0ad4e 0, #ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top, #d9534f 0, #c9302c 100%);background-image:linear-gradient(to bottom, #d9534f 0, #c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top, #428bca 0, #3278b3 100%);background-image:linear-gradient(to bottom, #428bca 0, #3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.box-header{background-image:-webkit-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.box-header{background-image:-webkit-linear-gradient(top, #428bca 0, #357ebd 100%);background-image:linear-gradient(to bottom, #428bca 0, #357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.box-header{background-image:-webkit-linear-gradient(top, #dff0d8 0, #d0e9c6 100%);background-image:linear-gradient(to bottom, #dff0d8 0, #d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.box-header{background-image:-webkit-linear-gradient(top, #d9edf7 0, #c4e3f3 100%);background-image:linear-gradient(to bottom, #d9edf7 0, #c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.box-header{background-image:-webkit-linear-gradient(top, #fcf8e3 0, #faf2cc 100%);background-image:linear-gradient(to bottom, #fcf8e3 0, #faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.box-header{background-image:-webkit-linear-gradient(top, #f2dede 0, #ebcccc 100%);background-image:linear-gradient(to bottom, #f2dede 0, #ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top, #e8e8e8 0, #f5f5f5 100%);background-image:linear-gradient(to bottom, #e8e8e8 0, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)} \ No newline at end of file diff --git a/public/assets/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.css b/public/assets/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.css new file mode 100755 index 00000000..44ed7774 --- /dev/null +++ b/public/assets/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.css @@ -0,0 +1,102 @@ +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: 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/public/assets/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css b/public/assets/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css new file mode 100755 index 00000000..d8dd3c22 --- /dev/null +++ b/public/assets/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css @@ -0,0 +1,3 @@ +/*! 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/public/assets/css/bootstrap.min.css b/public/assets/css/bootstrap.min.css index 85b03e0f..7af7ea7c 100755 --- a/public/assets/css/bootstrap.min.css +++ b/public/assets/css/bootstrap.min.css @@ -4,4 +4,4 @@ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none !important;color:#000 !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}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}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*: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.42857143;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}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.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;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;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,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .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-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.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;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}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;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .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.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;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{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.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-left:15px;padding-right: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.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.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.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.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.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.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.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.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.42857143;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;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-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;min-width: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}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}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}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;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,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.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;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}input[type="date"]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;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;vertical-align:middle;font-weight:normal;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,select[multiple].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,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.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;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.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;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{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;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.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;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active: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{outline:0;background-image:none;-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{cursor:not-allowed;pointer-events:none;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:#333}.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-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-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-link{color:#428bca;font-weight:normal;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,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right: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';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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;list-style:none;font-size:14px;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.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.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;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top: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{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right: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{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-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-bottom-right-radius:0;border-top-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-bottom-right-radius:0;border-top-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>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right: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>.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-bottom-left-radius:4px;border-top-right-radius:0;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:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;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-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;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,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].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,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].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>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-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>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.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;background-color:transparent;cursor:not-allowed}.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.42857143;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;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.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{text-align:center;margin-bottom:5px}.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}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.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-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.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;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:none}.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{margin-left:-15px;margin-right:-15px;padding:10px 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);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom: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-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-left:15px;margin-right: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:#888}.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{background-color:#e7e7e7;color:#555}@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{background-color:#080808;color:#fff}@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}.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;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.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-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.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;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.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-bottom-right-radius:6px;border-top-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-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.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;background-color:#fff;cursor:not-allowed}.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;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}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}.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{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}.list-group{margin-bottom:20px;padding-left:0}.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-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.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-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>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr: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:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.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,.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{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.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-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}.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}.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{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.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;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;-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;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (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)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right: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,.visible-sm,.visible-md,.visible-lg{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-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-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-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}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.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}}@media print{.hidden-print{display:none !important}} \ No newline at end of file +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none !important;color:#000 !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}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}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*: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.42857143;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}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.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;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;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,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .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-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.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;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}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;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .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.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;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{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.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-left:15px;padding-right: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.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.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.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.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.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.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.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.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.42857143;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;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-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;min-width: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}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}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}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;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,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.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;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}input[type="date"]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;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;vertical-align:middle;font-weight:normal;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,select[multiple].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,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.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;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.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;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{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;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.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;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active: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{outline:0;background-image:none;-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{cursor:not-allowed;pointer-events:none;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:#333}.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-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-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-link{color:#428bca;font-weight:normal;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,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right: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';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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;list-style:none;font-size:14px;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.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.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;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top: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{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right: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{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-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-bottom-right-radius:0;border-top-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-bottom-right-radius:0;border-top-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>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right: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>.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-bottom-left-radius:4px;border-top-right-radius:0;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:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;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-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;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,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].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,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].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>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-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>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.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;background-color:transparent;cursor:not-allowed}.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.42857143;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;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.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{text-align:center;margin-bottom:5px}.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}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.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-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.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;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:none}.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{margin-left:-15px;margin-right:-15px;padding:10px 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);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom: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-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-left:15px;margin-right: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:#888}.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{background-color:#e7e7e7;color:#555}@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{background-color:#080808;color:#fff}@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}.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;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.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-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.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;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.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-bottom-right-radius:6px;border-top-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-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.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;background-color:#fff;cursor:not-allowed}.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;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}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}.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{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}.list-group{margin-bottom:20px;padding-left:0}.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-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.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)}.box-body{padding:15px}.box-header{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.box-header>.dropdown .dropdown-toggle{color:inherit}.box-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.box-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>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.box-header+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.box-body+.table,.panel>.box-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr: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:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.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,.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{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .box-header{border-bottom:0}.panel-group .box-header+.panel-collapse .box-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .box-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.box-header{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.box-header+.panel-collapse .box-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .box-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.box-header{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.box-header+.panel-collapse .box-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .box-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.box-header{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.box-header+.panel-collapse .box-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .box-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.box-header{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.box-header+.panel-collapse .box-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .box-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.box-header{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.box-header+.panel-collapse .box-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .box-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.box-header{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.box-header+.panel-collapse .box-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .box-body{border-bottom-color:#ebccd1}.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{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.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;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;-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;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (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)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.box-body:before,.box-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.box-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right: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,.visible-sm,.visible-md,.visible-lg{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-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-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-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}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.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}}@media print{.hidden-print{display:none !important}} \ No newline at end of file diff --git a/public/assets/css/colorpicker/bootstrap-colorpicker.css b/public/assets/css/colorpicker/bootstrap-colorpicker.css new file mode 100755 index 00000000..8252394f --- /dev/null +++ b/public/assets/css/colorpicker/bootstrap-colorpicker.css @@ -0,0 +1,214 @@ +/*! + * 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/public/assets/css/colorpicker/bootstrap-colorpicker.min.css b/public/assets/css/colorpicker/bootstrap-colorpicker.min.css new file mode 100755 index 00000000..5f315042 --- /dev/null +++ b/public/assets/css/colorpicker/bootstrap-colorpicker.min.css @@ -0,0 +1,9 @@ +/*! + * 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/public/assets/css/datatables/dataTables.bootstrap.css b/public/assets/css/datatables/dataTables.bootstrap.css new file mode 100755 index 00000000..27036b0e --- /dev/null +++ b/public/assets/css/datatables/dataTables.bootstrap.css @@ -0,0 +1,223 @@ +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/public/assets/css/datatables/images/sort_asc.png b/public/assets/css/datatables/images/sort_asc.png new file mode 100755 index 0000000000000000000000000000000000000000..a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/datatables/images/sort_asc_disabled.png b/public/assets/css/datatables/images/sort_asc_disabled.png new file mode 100755 index 0000000000000000000000000000000000000000..4e144cf0b1f786a9248a2998311e8109998d8a2d GIT binary patch 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)$ literal 0 HcmV?d00001 diff --git a/public/assets/css/datatables/images/sort_desc.png b/public/assets/css/datatables/images/sort_desc.png new file mode 100755 index 0000000000000000000000000000000000000000..def071ed5afd264a036f6d9e75856366fd6ad153 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/datatables/images/sort_desc_disabled.png b/public/assets/css/datatables/images/sort_desc_disabled.png new file mode 100755 index 0000000000000000000000000000000000000000..7824973cc60fc1841b16f2cb39323cefcdc3f942 GIT binary patch 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&yVMdhy div { + display: none; +} +.datepicker.days div.datepicker-days { + display: block; +} +.datepicker.months div.datepicker-months { + display: block; +} +.datepicker.years div.datepicker-years { + display: block; +} +.datepicker table { + margin: 0; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.datepicker table tr td, +.datepicker table tr th { + text-align: center; + width: 30px; + height: 30px; + border-radius: 4px; + border: none; +} +.table-striped .datepicker table tr td, +.table-striped .datepicker table tr th { + background-color: transparent; +} +.datepicker table tr td.day:hover, +.datepicker table tr td.day.focused { + background: rgba(0,0,0,0.2); + cursor: pointer; +} +.datepicker table tr td.old, +.datepicker table tr td.new { + color: #777; +} +.datepicker table tr td.disabled, +.datepicker table tr td.disabled:hover { + background: none; + color: #444; + cursor: default; +} +.datepicker table tr td.today, +.datepicker table tr td.today:hover, +.datepicker table tr td.today.disabled, +.datepicker table tr td.today.disabled:hover { + color: #000000; + background: rgba(0,0,0,0.2); + border-color: #ffb733; +} +.datepicker table tr td.today:hover, +.datepicker table tr td.today:hover:hover, +.datepicker table tr td.today.disabled:hover, +.datepicker table tr td.today.disabled:hover:hover, +.datepicker table tr td.today:focus, +.datepicker table tr td.today:hover:focus, +.datepicker table tr td.today.disabled:focus, +.datepicker table tr td.today.disabled:hover:focus, +.datepicker table tr td.today:active, +.datepicker table tr td.today:hover:active, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.active, +.datepicker table tr td.today:hover.active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.today, +.open .dropdown-toggle.datepicker table tr td.today:hover, +.open .dropdown-toggle.datepicker table tr td.today.disabled, +.open .dropdown-toggle.datepicker table tr td.today.disabled:hover { + color: #000000; + background: rgba(0,0,0,0.2); + border-color: #f59e00; +} +.datepicker table tr td.today:active, +.datepicker table tr td.today:hover:active, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.active, +.datepicker table tr td.today:hover.active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.today, +.open .dropdown-toggle.datepicker table tr td.today:hover, +.open .dropdown-toggle.datepicker table tr td.today.disabled, +.open .dropdown-toggle.datepicker table tr td.today.disabled:hover { + background-image: none; +} +.datepicker table tr td.today.disabled, +.datepicker table tr td.today:hover.disabled, +.datepicker table tr td.today.disabled.disabled, +.datepicker table tr td.today.disabled:hover.disabled, +.datepicker table tr td.today[disabled], +.datepicker table tr td.today:hover[disabled], +.datepicker table tr td.today.disabled[disabled], +.datepicker table tr td.today.disabled:hover[disabled], +fieldset[disabled] .datepicker table tr td.today, +fieldset[disabled] .datepicker table tr td.today:hover, +fieldset[disabled] .datepicker table tr td.today.disabled, +fieldset[disabled] .datepicker table tr td.today.disabled:hover, +.datepicker table tr td.today.disabled:hover, +.datepicker table tr td.today:hover.disabled:hover, +.datepicker table tr td.today.disabled.disabled:hover, +.datepicker table tr td.today.disabled:hover.disabled:hover, +.datepicker table tr td.today[disabled]:hover, +.datepicker table tr td.today:hover[disabled]:hover, +.datepicker table tr td.today.disabled[disabled]:hover, +.datepicker table tr td.today.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td.today:hover, +fieldset[disabled] .datepicker table tr td.today:hover:hover, +fieldset[disabled] .datepicker table tr td.today.disabled:hover, +fieldset[disabled] .datepicker table tr td.today.disabled:hover:hover, +.datepicker table tr td.today.disabled:focus, +.datepicker table tr td.today:hover.disabled:focus, +.datepicker table tr td.today.disabled.disabled:focus, +.datepicker table tr td.today.disabled:hover.disabled:focus, +.datepicker table tr td.today[disabled]:focus, +.datepicker table tr td.today:hover[disabled]:focus, +.datepicker table tr td.today.disabled[disabled]:focus, +.datepicker table tr td.today.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td.today:focus, +fieldset[disabled] .datepicker table tr td.today:hover:focus, +fieldset[disabled] .datepicker table tr td.today.disabled:focus, +fieldset[disabled] .datepicker table tr td.today.disabled:hover:focus, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today:hover.disabled:active, +.datepicker table tr td.today.disabled.disabled:active, +.datepicker table tr td.today.disabled:hover.disabled:active, +.datepicker table tr td.today[disabled]:active, +.datepicker table tr td.today:hover[disabled]:active, +.datepicker table tr td.today.disabled[disabled]:active, +.datepicker table tr td.today.disabled:hover[disabled]:active, +fieldset[disabled] .datepicker table tr td.today:active, +fieldset[disabled] .datepicker table tr td.today:hover:active, +fieldset[disabled] .datepicker table tr td.today.disabled:active, +fieldset[disabled] .datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today:hover.disabled.active, +.datepicker table tr td.today.disabled.disabled.active, +.datepicker table tr td.today.disabled:hover.disabled.active, +.datepicker table tr td.today[disabled].active, +.datepicker table tr td.today:hover[disabled].active, +.datepicker table tr td.today.disabled[disabled].active, +.datepicker table tr td.today.disabled:hover[disabled].active, +fieldset[disabled] .datepicker table tr td.today.active, +fieldset[disabled] .datepicker table tr td.today:hover.active, +fieldset[disabled] .datepicker table tr td.today.disabled.active, +fieldset[disabled] .datepicker table tr td.today.disabled:hover.active { + background: rgba(0,0,0,0.2); + border-color: #ffb733; +} +.datepicker table tr td.today:hover:hover { + color: #000; +} +.datepicker table tr td.today.active:hover { + color: #fff; +} +.datepicker table tr td.range, +.datepicker table tr td.range:hover, +.datepicker table tr td.range.disabled, +.datepicker table tr td.range.disabled:hover { + background: rgba(0,0,0,0.2); + border-radius: 0; +} +.datepicker table tr td.range.today, +.datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today.disabled:hover { + color: #000000; + background: rgba(0,0,0,0.2); + border-color: #f1a417; + border-radius: 0; +} +.datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today:hover:hover, +.datepicker table tr td.range.today.disabled:hover, +.datepicker table tr td.range.today.disabled:hover:hover, +.datepicker table tr td.range.today:focus, +.datepicker table tr td.range.today:hover:focus, +.datepicker table tr td.range.today.disabled:focus, +.datepicker table tr td.range.today.disabled:hover:focus, +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today:hover:active, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.active, +.datepicker table tr td.range.today:hover.active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.range.today, +.open .dropdown-toggle.datepicker table tr td.range.today:hover, +.open .dropdown-toggle.datepicker table tr td.range.today.disabled, +.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover { + color: #000000; + background: rgba(0,0,0,0.2); + border-color: #bf800c; +} +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today:hover:active, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.active, +.datepicker table tr td.range.today:hover.active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.range.today, +.open .dropdown-toggle.datepicker table tr td.range.today:hover, +.open .dropdown-toggle.datepicker table tr td.range.today.disabled, +.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover { + background-image: none; +} +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today:hover.disabled, +.datepicker table tr td.range.today.disabled.disabled, +.datepicker table tr td.range.today.disabled:hover.disabled, +.datepicker table tr td.range.today[disabled], +.datepicker table tr td.range.today:hover[disabled], +.datepicker table tr td.range.today.disabled[disabled], +.datepicker table tr td.range.today.disabled:hover[disabled], +fieldset[disabled] .datepicker table tr td.range.today, +fieldset[disabled] .datepicker table tr td.range.today:hover, +fieldset[disabled] .datepicker table tr td.range.today.disabled, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover, +.datepicker table tr td.range.today.disabled:hover, +.datepicker table tr td.range.today:hover.disabled:hover, +.datepicker table tr td.range.today.disabled.disabled:hover, +.datepicker table tr td.range.today.disabled:hover.disabled:hover, +.datepicker table tr td.range.today[disabled]:hover, +.datepicker table tr td.range.today:hover[disabled]:hover, +.datepicker table tr td.range.today.disabled[disabled]:hover, +.datepicker table tr td.range.today.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td.range.today:hover, +fieldset[disabled] .datepicker table tr td.range.today:hover:hover, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:hover, +.datepicker table tr td.range.today.disabled:focus, +.datepicker table tr td.range.today:hover.disabled:focus, +.datepicker table tr td.range.today.disabled.disabled:focus, +.datepicker table tr td.range.today.disabled:hover.disabled:focus, +.datepicker table tr td.range.today[disabled]:focus, +.datepicker table tr td.range.today:hover[disabled]:focus, +.datepicker table tr td.range.today.disabled[disabled]:focus, +.datepicker table tr td.range.today.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td.range.today:focus, +fieldset[disabled] .datepicker table tr td.range.today:hover:focus, +fieldset[disabled] .datepicker table tr td.range.today.disabled:focus, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:focus, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today:hover.disabled:active, +.datepicker table tr td.range.today.disabled.disabled:active, +.datepicker table tr td.range.today.disabled:hover.disabled:active, +.datepicker table tr td.range.today[disabled]:active, +.datepicker table tr td.range.today:hover[disabled]:active, +.datepicker table tr td.range.today.disabled[disabled]:active, +.datepicker table tr td.range.today.disabled:hover[disabled]:active, +fieldset[disabled] .datepicker table tr td.range.today:active, +fieldset[disabled] .datepicker table tr td.range.today:hover:active, +fieldset[disabled] .datepicker table tr td.range.today.disabled:active, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today:hover.disabled.active, +.datepicker table tr td.range.today.disabled.disabled.active, +.datepicker table tr td.range.today.disabled:hover.disabled.active, +.datepicker table tr td.range.today[disabled].active, +.datepicker table tr td.range.today:hover[disabled].active, +.datepicker table tr td.range.today.disabled[disabled].active, +.datepicker table tr td.range.today.disabled:hover[disabled].active, +fieldset[disabled] .datepicker table tr td.range.today.active, +fieldset[disabled] .datepicker table tr td.range.today:hover.active, +fieldset[disabled] .datepicker table tr td.range.today.disabled.active, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover.active { + background: rgba(0,0,0,0.2); + border-color: #f1a417; +} +.datepicker table tr td.selected, +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected.disabled, +.datepicker table tr td.selected.disabled:hover { + color: #ffffff; + background: rgba(0,0,0,0.2); + border-color: #555555; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected:hover:hover, +.datepicker table tr td.selected.disabled:hover, +.datepicker table tr td.selected.disabled:hover:hover, +.datepicker table tr td.selected:focus, +.datepicker table tr td.selected:hover:focus, +.datepicker table tr td.selected.disabled:focus, +.datepicker table tr td.selected.disabled:hover:focus, +.datepicker table tr td.selected:active, +.datepicker table tr td.selected:hover:active, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected:hover.active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.selected, +.open .dropdown-toggle.datepicker table tr td.selected:hover, +.open .dropdown-toggle.datepicker table tr td.selected.disabled, +.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover { + color: #ffffff; + background: rgba(0,0,0,0.2); + border-color: #373737; +} +.datepicker table tr td.selected:active, +.datepicker table tr td.selected:hover:active, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected:hover.active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.selected, +.open .dropdown-toggle.datepicker table tr td.selected:hover, +.open .dropdown-toggle.datepicker table tr td.selected.disabled, +.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover { + background-image: none; +} +.datepicker table tr td.selected.disabled, +.datepicker table tr td.selected:hover.disabled, +.datepicker table tr td.selected.disabled.disabled, +.datepicker table tr td.selected.disabled:hover.disabled, +.datepicker table tr td.selected[disabled], +.datepicker table tr td.selected:hover[disabled], +.datepicker table tr td.selected.disabled[disabled], +.datepicker table tr td.selected.disabled:hover[disabled], +fieldset[disabled] .datepicker table tr td.selected, +fieldset[disabled] .datepicker table tr td.selected:hover, +fieldset[disabled] .datepicker table tr td.selected.disabled, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover, +.datepicker table tr td.selected.disabled:hover, +.datepicker table tr td.selected:hover.disabled:hover, +.datepicker table tr td.selected.disabled.disabled:hover, +.datepicker table tr td.selected.disabled:hover.disabled:hover, +.datepicker table tr td.selected[disabled]:hover, +.datepicker table tr td.selected:hover[disabled]:hover, +.datepicker table tr td.selected.disabled[disabled]:hover, +.datepicker table tr td.selected.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td.selected:hover, +fieldset[disabled] .datepicker table tr td.selected:hover:hover, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover:hover, +.datepicker table tr td.selected.disabled:focus, +.datepicker table tr td.selected:hover.disabled:focus, +.datepicker table tr td.selected.disabled.disabled:focus, +.datepicker table tr td.selected.disabled:hover.disabled:focus, +.datepicker table tr td.selected[disabled]:focus, +.datepicker table tr td.selected:hover[disabled]:focus, +.datepicker table tr td.selected.disabled[disabled]:focus, +.datepicker table tr td.selected.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td.selected:focus, +fieldset[disabled] .datepicker table tr td.selected:hover:focus, +fieldset[disabled] .datepicker table tr td.selected.disabled:focus, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover:focus, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected:hover.disabled:active, +.datepicker table tr td.selected.disabled.disabled:active, +.datepicker table tr td.selected.disabled:hover.disabled:active, +.datepicker table tr td.selected[disabled]:active, +.datepicker table tr td.selected:hover[disabled]:active, +.datepicker table tr td.selected.disabled[disabled]:active, +.datepicker table tr td.selected.disabled:hover[disabled]:active, +fieldset[disabled] .datepicker table tr td.selected:active, +fieldset[disabled] .datepicker table tr td.selected:hover:active, +fieldset[disabled] .datepicker table tr td.selected.disabled:active, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected:hover.disabled.active, +.datepicker table tr td.selected.disabled.disabled.active, +.datepicker table tr td.selected.disabled:hover.disabled.active, +.datepicker table tr td.selected[disabled].active, +.datepicker table tr td.selected:hover[disabled].active, +.datepicker table tr td.selected.disabled[disabled].active, +.datepicker table tr td.selected.disabled:hover[disabled].active, +fieldset[disabled] .datepicker table tr td.selected.active, +fieldset[disabled] .datepicker table tr td.selected:hover.active, +fieldset[disabled] .datepicker table tr td.selected.disabled.active, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover.active { + background: rgba(0,0,0,0.2); + border-color: #555555; +} +.datepicker table tr td.active, +.datepicker table tr td.active:hover, +.datepicker table tr td.active.disabled, +.datepicker table tr td.active.disabled:hover { + color: #ffffff; + background: rgba(0,0,0,0.2); + border-color: #357ebd; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td.active:hover, +.datepicker table tr td.active:hover:hover, +.datepicker table tr td.active.disabled:hover, +.datepicker table tr td.active.disabled:hover:hover, +.datepicker table tr td.active:focus, +.datepicker table tr td.active:hover:focus, +.datepicker table tr td.active.disabled:focus, +.datepicker table tr td.active.disabled:hover:focus, +.datepicker table tr td.active:active, +.datepicker table tr td.active:hover:active, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active:hover.active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.active, +.open .dropdown-toggle.datepicker table tr td.active:hover, +.open .dropdown-toggle.datepicker table tr td.active.disabled, +.open .dropdown-toggle.datepicker table tr td.active.disabled:hover { + color: #ffffff; + background: rgba(0,0,0,0.5); + border-color: #285e8e; +} +.datepicker table tr td.active:active, +.datepicker table tr td.active:hover:active, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active:hover.active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.active, +.open .dropdown-toggle.datepicker table tr td.active:hover, +.open .dropdown-toggle.datepicker table tr td.active.disabled, +.open .dropdown-toggle.datepicker table tr td.active.disabled:hover { + background-image: none; +} +.datepicker table tr td.active.disabled, +.datepicker table tr td.active:hover.disabled, +.datepicker table tr td.active.disabled.disabled, +.datepicker table tr td.active.disabled:hover.disabled, +.datepicker table tr td.active[disabled], +.datepicker table tr td.active:hover[disabled], +.datepicker table tr td.active.disabled[disabled], +.datepicker table tr td.active.disabled:hover[disabled], +fieldset[disabled] .datepicker table tr td.active, +fieldset[disabled] .datepicker table tr td.active:hover, +fieldset[disabled] .datepicker table tr td.active.disabled, +fieldset[disabled] .datepicker table tr td.active.disabled:hover, +.datepicker table tr td.active.disabled:hover, +.datepicker table tr td.active:hover.disabled:hover, +.datepicker table tr td.active.disabled.disabled:hover, +.datepicker table tr td.active.disabled:hover.disabled:hover, +.datepicker table tr td.active[disabled]:hover, +.datepicker table tr td.active:hover[disabled]:hover, +.datepicker table tr td.active.disabled[disabled]:hover, +.datepicker table tr td.active.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td.active:hover, +fieldset[disabled] .datepicker table tr td.active:hover:hover, +fieldset[disabled] .datepicker table tr td.active.disabled:hover, +fieldset[disabled] .datepicker table tr td.active.disabled:hover:hover, +.datepicker table tr td.active.disabled:focus, +.datepicker table tr td.active:hover.disabled:focus, +.datepicker table tr td.active.disabled.disabled:focus, +.datepicker table tr td.active.disabled:hover.disabled:focus, +.datepicker table tr td.active[disabled]:focus, +.datepicker table tr td.active:hover[disabled]:focus, +.datepicker table tr td.active.disabled[disabled]:focus, +.datepicker table tr td.active.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td.active:focus, +fieldset[disabled] .datepicker table tr td.active:hover:focus, +fieldset[disabled] .datepicker table tr td.active.disabled:focus, +fieldset[disabled] .datepicker table tr td.active.disabled:hover:focus, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active:hover.disabled:active, +.datepicker table tr td.active.disabled.disabled:active, +.datepicker table tr td.active.disabled:hover.disabled:active, +.datepicker table tr td.active[disabled]:active, +.datepicker table tr td.active:hover[disabled]:active, +.datepicker table tr td.active.disabled[disabled]:active, +.datepicker table tr td.active.disabled:hover[disabled]:active, +fieldset[disabled] .datepicker table tr td.active:active, +fieldset[disabled] .datepicker table tr td.active:hover:active, +fieldset[disabled] .datepicker table tr td.active.disabled:active, +fieldset[disabled] .datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active:hover.disabled.active, +.datepicker table tr td.active.disabled.disabled.active, +.datepicker table tr td.active.disabled:hover.disabled.active, +.datepicker table tr td.active[disabled].active, +.datepicker table tr td.active:hover[disabled].active, +.datepicker table tr td.active.disabled[disabled].active, +.datepicker table tr td.active.disabled:hover[disabled].active, +fieldset[disabled] .datepicker table tr td.active.active, +fieldset[disabled] .datepicker table tr td.active:hover.active, +fieldset[disabled] .datepicker table tr td.active.disabled.active, +fieldset[disabled] .datepicker table tr td.active.disabled:hover.active { + background-color: #428bca; + border-color: #357ebd; +} +.datepicker table tr td span { + display: block; + width: 23%; + height: 54px; + line-height: 54px; + float: left; + margin: 1%; + cursor: pointer; + border-radius: 4px; +} +.datepicker table tr td span:hover { + background: rgba(0,0,0,0.2); +} +.datepicker table tr td span.disabled, +.datepicker table tr td span.disabled:hover { + background: none; + color: #444; + cursor: default; +} +.datepicker table tr td span.active, +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active.disabled:hover { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active:hover:hover, +.datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active.disabled:hover:hover, +.datepicker table tr td span.active:focus, +.datepicker table tr td span.active:hover:focus, +.datepicker table tr td span.active.disabled:focus, +.datepicker table tr td span.active.disabled:hover:focus, +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td span.active, +.open .dropdown-toggle.datepicker table tr td span.active:hover, +.open .dropdown-toggle.datepicker table tr td span.active.disabled, +.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td span.active, +.open .dropdown-toggle.datepicker table tr td span.active:hover, +.open .dropdown-toggle.datepicker table tr td span.active.disabled, +.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover { + background-image: none; +} +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active:hover.disabled, +.datepicker table tr td span.active.disabled.disabled, +.datepicker table tr td span.active.disabled:hover.disabled, +.datepicker table tr td span.active[disabled], +.datepicker table tr td span.active:hover[disabled], +.datepicker table tr td span.active.disabled[disabled], +.datepicker table tr td span.active.disabled:hover[disabled], +fieldset[disabled] .datepicker table tr td span.active, +fieldset[disabled] .datepicker table tr td span.active:hover, +fieldset[disabled] .datepicker table tr td span.active.disabled, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active:hover.disabled:hover, +.datepicker table tr td span.active.disabled.disabled:hover, +.datepicker table tr td span.active.disabled:hover.disabled:hover, +.datepicker table tr td span.active[disabled]:hover, +.datepicker table tr td span.active:hover[disabled]:hover, +.datepicker table tr td span.active.disabled[disabled]:hover, +.datepicker table tr td span.active.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td span.active:hover, +fieldset[disabled] .datepicker table tr td span.active:hover:hover, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover, +.datepicker table tr td span.active.disabled:focus, +.datepicker table tr td span.active:hover.disabled:focus, +.datepicker table tr td span.active.disabled.disabled:focus, +.datepicker table tr td span.active.disabled:hover.disabled:focus, +.datepicker table tr td span.active[disabled]:focus, +.datepicker table tr td span.active:hover[disabled]:focus, +.datepicker table tr td span.active.disabled[disabled]:focus, +.datepicker table tr td span.active.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td span.active:focus, +fieldset[disabled] .datepicker table tr td span.active:hover:focus, +fieldset[disabled] .datepicker table tr td span.active.disabled:focus, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active:hover.disabled:active, +.datepicker table tr td span.active.disabled.disabled:active, +.datepicker table tr td span.active.disabled:hover.disabled:active, +.datepicker table tr td span.active[disabled]:active, +.datepicker table tr td span.active:hover[disabled]:active, +.datepicker table tr td span.active.disabled[disabled]:active, +.datepicker table tr td span.active.disabled:hover[disabled]:active, +fieldset[disabled] .datepicker table tr td span.active:active, +fieldset[disabled] .datepicker table tr td span.active:hover:active, +fieldset[disabled] .datepicker table tr td span.active.disabled:active, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active:hover.disabled.active, +.datepicker table tr td span.active.disabled.disabled.active, +.datepicker table tr td span.active.disabled:hover.disabled.active, +.datepicker table tr td span.active[disabled].active, +.datepicker table tr td span.active:hover[disabled].active, +.datepicker table tr td span.active.disabled[disabled].active, +.datepicker table tr td span.active.disabled:hover[disabled].active, +fieldset[disabled] .datepicker table tr td span.active.active, +fieldset[disabled] .datepicker table tr td span.active:hover.active, +fieldset[disabled] .datepicker table tr td span.active.disabled.active, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover.active { + background-color: #428bca; + border-color: #357ebd; +} +.datepicker table tr td span.old, +.datepicker table tr td span.new { + color: #444; +} +.datepicker th.datepicker-switch { + width: 145px; +} +.datepicker thead tr:first-child th, +.datepicker tfoot tr th { + cursor: pointer; +} +.datepicker thead tr:first-child th:hover, +.datepicker tfoot tr th:hover { + background: rgba(0,0,0,0.2); +} +.datepicker .cw { + font-size: 10px; + width: 12px; + padding: 0 2px 0 5px; + vertical-align: middle; +} +.datepicker thead tr:first-child th.cw { + cursor: default; + background-color: transparent; +} +.input-group.date .input-group-addon i { + cursor: pointer; + width: 16px; + height: 16px; +} +.input-daterange input { + text-align: center; +} +.input-daterange input:first-child { + border-radius: 3px 0 0 3px; +} +.input-daterange input:last-child { + border-radius: 0 3px 3px 0; +} +.input-daterange .input-group-addon { + width: auto; + min-width: 16px; + padding: 4px 5px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + text-shadow: 0 1px 0 #fff; + vertical-align: middle; + background-color: #eeeeee; + border: solid #cccccc; + border-width: 1px 0; + margin-left: -5px; + margin-right: -5px; +} +.datepicker.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + float: left; + display: none; + min-width: 160px; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 5px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + *border-right-width: 2px; + *border-bottom-width: 2px; + color: #333333; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 1.428571429; +} +.datepicker.dropdown-menu th, +.datepicker.dropdown-menu td { + padding: 4px 5px; +} diff --git a/public/assets/css/daterangepicker/daterangepicker-bs3.css b/public/assets/css/daterangepicker/daterangepicker-bs3.css new file mode 100755 index 00000000..eed1e9f4 --- /dev/null +++ b/public/assets/css/daterangepicker/daterangepicker-bs3.css @@ -0,0 +1,245 @@ +/*! + * Stylesheet for the Date Range Picker, for use with Bootstrap 3.x + * + * Copyright 2013 Dan Grossman ( http://www.dangrossman.info ) + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Built for http://www.improvely.com + */ + + .daterangepicker.dropdown-menu { + max-width: none; + z-index: 3000; +} + +.daterangepicker.opensleft .ranges, .daterangepicker.opensleft .calendar { + float: left; + margin: 4px; +} + +.daterangepicker.opensright .ranges, .daterangepicker.opensright .calendar { + float: right; + margin: 4px; +} + +.daterangepicker .ranges { + width: 160px; + text-align: left; +} + +.daterangepicker .ranges .range_inputs>div { + 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/public/assets/css/iCheck/all.css b/public/assets/css/iCheck/all.css new file mode 100755 index 00000000..6439b742 --- /dev/null +++ b/public/assets/css/iCheck/all.css @@ -0,0 +1,61 @@ +/* iCheck plugin skins +----------------------------------- */ +@import url("minimal/_all.css"); +/* +@import url("minimal/minimal.css"); +@import url("minimal/red.css"); +@import url("minimal/green.css"); +@import url("minimal/blue.css"); +@import url("minimal/aero.css"); +@import url("minimal/grey.css"); +@import url("minimal/orange.css"); +@import url("minimal/yellow.css"); +@import url("minimal/pink.css"); +@import url("minimal/purple.css"); +*/ + +@import url("square/_all.css"); +/* +@import url("square/square.css"); +@import url("square/red.css"); +@import url("square/green.css"); +@import url("square/blue.css"); +@import url("square/aero.css"); +@import url("square/grey.css"); +@import url("square/orange.css"); +@import url("square/yellow.css"); +@import url("square/pink.css"); +@import url("square/purple.css"); +*/ + +@import url("flat/_all.css"); +/* +@import url("flat/flat.css"); +@import url("flat/red.css"); +@import url("flat/green.css"); +@import url("flat/blue.css"); +@import url("flat/aero.css"); +@import url("flat/grey.css"); +@import url("flat/orange.css"); +@import url("flat/yellow.css"); +@import url("flat/pink.css"); +@import url("flat/purple.css"); +*/ + +@import url("line/_all.css"); +/* +@import url("line/line.css"); +@import url("line/red.css"); +@import url("line/green.css"); +@import url("line/blue.css"); +@import url("line/aero.css"); +@import url("line/grey.css"); +@import url("line/orange.css"); +@import url("line/yellow.css"); +@import url("line/pink.css"); +@import url("line/purple.css"); +*/ + +@import url("polaris/polaris.css"); + +@import url("futurico/futurico.css"); \ No newline at end of file diff --git a/public/assets/css/iCheck/flat/_all.css b/public/assets/css/iCheck/flat/_all.css new file mode 100755 index 00000000..21647b50 --- /dev/null +++ b/public/assets/css/iCheck/flat/_all.css @@ -0,0 +1,560 @@ +/* iCheck plugin Flat skin +----------------------------------- */ +.icheckbox_flat, +.iradio_flat { + display: inline-block; + *display: inline; + vertical-align: middle; + margin: 0; + padding: 0; + width: 20px; + height: 20px; + background: url(flat.png) no-repeat; + border: none; + cursor: pointer; +} + +.icheckbox_flat { + background-position: 0 0; +} + .icheckbox_flat.checked { + background-position: -22px 0; + } + .icheckbox_flat.disabled { + background-position: -44px 0; + cursor: default; + } + .icheckbox_flat.checked.disabled { + background-position: -66px 0; + } + +.iradio_flat { + background-position: -88px 0; +} + .iradio_flat.checked { + background-position: -110px 0; + } + .iradio_flat.disabled { + background-position: -132px 0; + cursor: default; + } + .iradio_flat.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, + .iradio_flat { + background-image: url(flat@2x.png); + -webkit-background-size: 176px 22px; + background-size: 176px 22px; + } +} + +/* 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; + } +} + +/* 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; + } +} + +/* blue */ +.icheckbox_flat-blue, +.iradio_flat-blue { + display: inline-block; + *display: inline; + vertical-align: middle; + margin: 0; + padding: 0; + width: 20px; + height: 20px; + background: url(blue.png) no-repeat; + border: none; + cursor: pointer; +} + +.icheckbox_flat-blue { + background-position: 0 0; +} + .icheckbox_flat-blue.checked { + background-position: -22px 0; + } + .icheckbox_flat-blue.disabled { + background-position: -44px 0; + cursor: default; + } + .icheckbox_flat-blue.checked.disabled { + background-position: -66px 0; + } + +.iradio_flat-blue { + background-position: -88px 0; +} + .iradio_flat-blue.checked { + background-position: -110px 0; + } + .iradio_flat-blue.disabled { + background-position: -132px 0; + cursor: default; + } + .iradio_flat-blue.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-blue, + .iradio_flat-blue { + background-image: url(blue@2x.png); + -webkit-background-size: 176px 22px; + background-size: 176px 22px; + } +} + +/* aero */ +.icheckbox_flat-aero, +.iradio_flat-aero { + display: inline-block; + *display: inline; + vertical-align: middle; + margin: 0; + padding: 0; + width: 20px; + height: 20px; + background: url(aero.png) no-repeat; + border: none; + cursor: pointer; +} + +.icheckbox_flat-aero { + background-position: 0 0; +} + .icheckbox_flat-aero.checked { + background-position: -22px 0; + } + .icheckbox_flat-aero.disabled { + background-position: -44px 0; + cursor: default; + } + .icheckbox_flat-aero.checked.disabled { + background-position: -66px 0; + } + +.iradio_flat-aero { + background-position: -88px 0; +} + .iradio_flat-aero.checked { + background-position: -110px 0; + } + .iradio_flat-aero.disabled { + background-position: -132px 0; + cursor: default; + } + .iradio_flat-aero.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-aero, + .iradio_flat-aero { + background-image: url(aero@2x.png); + -webkit-background-size: 176px 22px; + background-size: 176px 22px; + } +} + +/* 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; + } +} + +/* 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; + } +} + +/* yellow */ +.icheckbox_flat-yellow, +.iradio_flat-yellow { + display: inline-block; + *display: inline; + vertical-align: middle; + margin: 0; + padding: 0; + width: 20px; + height: 20px; + background: url(yellow.png) no-repeat; + border: none; + cursor: pointer; +} + +.icheckbox_flat-yellow { + background-position: 0 0; +} + .icheckbox_flat-yellow.checked { + background-position: -22px 0; + } + .icheckbox_flat-yellow.disabled { + background-position: -44px 0; + cursor: default; + } + .icheckbox_flat-yellow.checked.disabled { + background-position: -66px 0; + } + +.iradio_flat-yellow { + background-position: -88px 0; +} + .iradio_flat-yellow.checked { + background-position: -110px 0; + } + .iradio_flat-yellow.disabled { + background-position: -132px 0; + cursor: default; + } + .iradio_flat-yellow.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-yellow, + .iradio_flat-yellow { + background-image: url(yellow@2x.png); + -webkit-background-size: 176px 22px; + background-size: 176px 22px; + } +} + +/* pink */ +.icheckbox_flat-pink, +.iradio_flat-pink { + display: inline-block; + *display: inline; + vertical-align: middle; + margin: 0; + padding: 0; + width: 20px; + height: 20px; + background: url(pink.png) no-repeat; + border: none; + cursor: pointer; +} + +.icheckbox_flat-pink { + background-position: 0 0; +} + .icheckbox_flat-pink.checked { + background-position: -22px 0; + } + .icheckbox_flat-pink.disabled { + background-position: -44px 0; + cursor: default; + } + .icheckbox_flat-pink.checked.disabled { + background-position: -66px 0; + } + +.iradio_flat-pink { + background-position: -88px 0; +} + .iradio_flat-pink.checked { + background-position: -110px 0; + } + .iradio_flat-pink.disabled { + background-position: -132px 0; + cursor: default; + } + .iradio_flat-pink.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-pink, + .iradio_flat-pink { + background-image: url(pink@2x.png); + -webkit-background-size: 176px 22px; + background-size: 176px 22px; + } +} + +/* 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/public/assets/css/iCheck/flat/aero.css b/public/assets/css/iCheck/flat/aero.css new file mode 100755 index 00000000..98fd65c8 --- /dev/null +++ b/public/assets/css/iCheck/flat/aero.css @@ -0,0 +1,56 @@ +/* iCheck plugin Flat skin, aero +----------------------------------- */ +.icheckbox_flat-aero, +.iradio_flat-aero { + display: inline-block; + *display: inline; + vertical-align: middle; + margin: 0; + padding: 0; + width: 20px; + height: 20px; + background: url(aero.png) no-repeat; + border: none; + cursor: pointer; +} + +.icheckbox_flat-aero { + background-position: 0 0; +} + .icheckbox_flat-aero.checked { + background-position: -22px 0; + } + .icheckbox_flat-aero.disabled { + background-position: -44px 0; + cursor: default; + } + .icheckbox_flat-aero.checked.disabled { + background-position: -66px 0; + } + +.iradio_flat-aero { + background-position: -88px 0; +} + .iradio_flat-aero.checked { + background-position: -110px 0; + } + .iradio_flat-aero.disabled { + background-position: -132px 0; + cursor: default; + } + .iradio_flat-aero.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-aero, + .iradio_flat-aero { + background-image: url(aero@2x.png); + -webkit-background-size: 176px 22px; + background-size: 176px 22px; + } +} \ No newline at end of file diff --git a/public/assets/css/iCheck/flat/aero.png b/public/assets/css/iCheck/flat/aero.png new file mode 100755 index 0000000000000000000000000000000000000000..f4277aa4cf04050989b48c548ce0f9ae377bdc48 GIT binary patch literal 1520 zcmV zZ)jC@9LMpx)0x$b2BzL6Aw^EDES=3E6($2ErB$==PxcS-Ni`HwB7G7nXpkmJl=eun zHFawK86nPEMVl`FrY>9QgH7#0OLP+6ytB9P@pAdH?)i1^@7&!%UwFagaL$`~_;N10 zciw!m^|zZe(=Z?7a64S469@1;7ic<^Gy`+pRnl%TN>`j*B>l z7Ky`7#$ER5U%NLJcq!gNCbJBS&CT`FWr-J?rFasLXV`5(y#ijlELVMsg?I)labG~E z6^l?Cu)t||9T#{6%2625?Z6(KGyyMNcB^v>B;M@ODoaE{TVMA)EFK{ zmt{~FkUXqFZQznY=WNk6dC+978$mf<2wE~J)Vbw|`0jE~%Ms}=wgA3nJ~W|q%RF|+ zhuJljV__Ptg}PRgweBQLNTWLeld{!~pafpVw8H8}J$9pEccl_`$zoW8G89Oej>TY> zjfNTCnKJIGVP_=llEu-4^;j zDSFHNf`$}<>A2fGA*bSSisoTFg)2#&B0Qgk?kEf}PsoippQ3wS=Ujz`2CcBVxw^o+ zP{D7;O9*^~T%S{@zW%8LfddLy6(;a84m-4u;1k<&?B?SG{DBU=&Ufq#uvk@_vChZ)pPwj8MQDX964HI`-TW z$L>nJi9+0|*Y7%Zqo#Wdu4B)QI(ExZivCiHiNW3MFYq>d^JJ%4-hCK^o}LyQOSQZh zh?i1)Ni*0q55jd0nbr`;?u)Q9*RgB=9p~UW_DNmf*c}Z!V*|QbU*K<0i8+(tr=}zAs=*BbXMzYt<{sKRWCs@=tfmcwCFHxCm%PU2=2VK~X zpR~L+LCYKP1RDd_dBCM5oB|2MI8$}M&H9<%faQfOFRoh6u4%W*TFW^oQKf}nujpYwj8@LRH0C+5OeId znC@5%M$in>xf-?Hx^dKDh14OgztKq9jUd}|2llYIkJ#nSQMX_YhS=qGve+KETODoYu9ABC40L;Z?M3FC1 z9h<9j5~Ie|FuHs;oapvJGbX~v9DpXUJ0Q*OSqy`ZX@_gKUpigcg!k~4`HHzpf`)5p zm|^iY@h+B8mxj8497hxr%vZtVC1}1^!+V$IRTqe06}*gTh1G5J*li56YrKsQ(`c>L zwVJGT_hNq<-Tl~`t!@N6unZXv4O&T02X9@ql0S!S@X&2g%X^ongt~yl@dhf<>dHCgL+VK-{f;n3|sjjrkP-Q}L{hPsf50*g_BeYgzQxvXoRR>QuFLIh$c7>)jJri(0+DfVf=Hv09yTB8)DJ ztFB>wyW1{ahXwTBl@{soE=!xvFOQ#zhY7tK$5F{b*Zto1(FwgmSU;=&KiL0z;rs(i W8E%3;nx-=V0000S$Fq?Ljg2`N4#Dy=#bC_W%XX(JJEv@KP^;`2;}X{T@M&{C(i zv7{A6Tc?5%C0Ia21(~*%Vhlcz06{@~NB}kXu!K0-xY>SR{9k2u?>T#O?(RLy{mpy^ z=I-X~Z`RG9v)7wV&b|Zhel0=ragCUQ(Q?dWy3md{upa+JG*OwdabuG%^5}n>Gun5- zC6!6LwH-W^tUxZxL@9>JF_VcRf+J`XF_-5zaDC|&Q#`j`IjBN4Dlq{i7$RLxpaXBC z8Qbw1`k)d0*D$Z&jP~XA>&Nq(BmK_6XpBG+21$WlL~sm;@t*XL!(jaHtC&$rdFY?n z_&vtM&kRMGn2Q6r7mZNF>b_@VI)=l~U20r*zk%y3oswl@ zAcmQcE)#9)%Zpq3YRki4@f1eFbVi~<9wQHmWL;keGjS~necGkgU?v<}`Z9!P!bzo6 zKK_WHdO$8zDk8ykA?6%3$b1?gtD#gAY6w^_?=35 ztU)&QWe98ab#N`lAZRJU97u$HealgVprr`qHuhD>!;_eabY&)<)Y@6v-`7D6CLmpz zfEqY9_0`!4JGcgcOrmZU_ANtDQ)Xjdg%y~EbY~V;KoRTv&cInnch16$Z0qZw3PDXJ zB*MPFqY>1Mwz02^THFHNe1PBKa+Kl}48z&DLT)<*-Q0q?& zcm@B!1Go>%umVrWZJ(t$4=QZx%P!cpuY*wtYEFkl*w=R`f|_C0_k|dN6)6m|dH6P# z;zhKh2VH2x3v%0dx$g%l>}XHb7`}n&OBZEd6kc)69?qB2j#wB zq_CqMVpCs+aMHdG3J}!fLn7?!n}?t#*ZRH?_hBSd*?>uS5;3UKC-*IvKUEoy-$0Tz zeW#)js_e&K&>~$_iK7Me@~0|;QJpP)9fS$l?weQuRq8Ms$B}BfFkkZuoS)*GF1ugd zz7M9WuXIY5Vw?+AcA^12NHtM3;(t)(TofDV`)a!SvI{N_2e5bV<8j0h#=Ot*<^Z1G zMH-hWJ%zi_2d|0a9$CvRgRsaz-#dfQSM!G!TJZwn1MK@ET6KQ-!9d?FneH17V6}H} zF@B7@!Xa$jF+7H6J$?f_xL)HN>dy@Qw~NbKtm&HT;Uw7o2DR^e>DE6v_>RUo)C~sv zZcv?Ll}8A9k?C&E`3?kHKj@VmY@i3*@`GkC5o5emLin+&^H$sVgZ(l1#&Fc zr7vr`rWhsR0M_?5s?h-g;LqrUsf5EFklU-ExNEzD2kRSE3XJqEwFEZaKhm$KRGlDh0x9Ua7zRFU^;zh@NixDc^>=bV-wCnvYdnGP@wFq|6HD~aV|9u z(}`;g_R$9W=3<`WGS^XZpS%R0_pIMnJ%GcVugmbg5n;SLhQBA+`O5H>0i*9MxMe&1 z%61Rk$~^YHMf16tjGHz4s=KK-8}Gqv^w%C~ux}+sL6uQB-&9`**_;l%1>NjNH4cZv zS4#v(p_@(_zQ+v=U;Q1Ae`!^9GuU??bTiLj-=T2J$1ofHwTBw)TLIlvnCj~wTk|R= z<08DMIee#v!&h579>OXd)EvH#n;gDknDTM`%O|RC2K$}|-JEN%ZvouW4Zm^%ZYeO> z_jKrHl&QXX$i{3z4Nk~`+1QAwNR&3Y?MOI$wH&}&MCCvO=3%VC;T!U<7h(L<2P1Ki zjrl{re~r5F1N=K2zDDdowBI-U8oZx@;d@;ByqkHas=68M`#N;fYOrq)+)@a?G6Zhv zG1&JAbn~&Pz7Dc6k6=uKw;nU_O26S-9S+}=%|cOvUDs-S;MX}{kKZ`u@GFy4-8}T2 zh(vi3iYV_}?xAm&_CG@AeFJXkGT65Tx@qzFTy&i*1NaPVOYk4?1g^pk>_s(>hQl{y zU&oCJb|_J-#)tSshHsb8rycfdUngu{wW^zkzSEE>EAbXo*^QMRpNst-&Y_R>_50X8 zod)~v!cnO55q2ro*6!;dTQdP$F&qRy1efBRaQF_$2;6|d3EpP?4G;M}e8n!fr4|lM z$3d-!Zm)an+k>m{CX(eX%s`L9zDG3P1?0eVa*V#iQ1|@`YZOEHC{}~}5+T>Hd+O^T zn^S?!C;iOX_0@ka4{5v`Du?Nm%i3-^WVmkxk6;T9BPtGKi`*75+1Ej~=R#~iA&3ZvuPI|N z7lS}V`mT0pLOa~D97A9#LuF03wBt1&`bJTQDhw4>ax6N)zD-Gnegtlrj(nI(zO3n% z2s(V|8^caKjAi0sITkbB*TKndWpoVP6Nw5!6IMAPn@q692+R+>nO8JqT)IKJ+~kKfzo~ z_PsB}uW<~jT#Xjg!b#z3hgQskD#!3ENV2Byc639PGAzO*y=*D&2TFTlzXU zf*?kHnTdB7;mS1i?Lts<+^4={aHb!96@z4P3g@gF@GgFf%TR(rq6E{i4DX;pzD6gv z>kL+QoPp^pU33P?<`k|IufZMoKE|O4xuQspO~dV|k+0Fo^XRszFT3BQeePUh&gOyUl$Fi#?2`Vwk5(u9>yAIg~8XruK~(vUpi>_MJvYQ{1gV;#ll2( zp~a@Y3}4s24xU9Ilc<}8ecKS!wAt8K;WlhUy0cLpTM_H~ZpMD3JNvOY+xj|q8tn*L zI;5LK*w=RtA_!U{*lS~7g($AW^GH{olgErg5$pTL@C@ETy7IO>X3VC(?0%Jf9Yk?A zf|k3`li+PzVEfXoC&>%o1q3S6=_{N1@`9GWO5L~`E8%xmVm7*=7yJA6q5;kDJI#0s zy*Bk__-gfa-)A~1)2>G%4S)!#iqWB|KX+_z%ks08XQ2na{$+3F=85*@x+kv zzI0d&Wnc7RGuGl$q&uHtt#s(Kr7th)&5*vHbz%|5VL1+ayaHpntg*=GF4g|N-PnXW zyyEd%{p0erb+T5sO?~B3Gb6tdV;#zIz5M+>^uly{W$ktHSmk&Iidf%wFY3`KfBzgY zm`+UA-it=mW3Nqp8NBp0nszKfDW>3;Xv7|ThF zZ)jC@9LMpx)0x$b2BzL6AxTcHES=3E6ea^DrB$==Pxc4IC)H3$iS$XRph21>Vfsw6 zHFawK86nOZMVp#`Q9&?uE;A;1E8-?%Sc_hleRiY<){w-9z(-cXgY8J(qgU2uwf`@*TSg zwBZMw1tXri{M*mkpVd;gLdpU_x1uW!}~~QmSc&zxn8;~@e;EX&*JGcyA7yUz-yP~st;I*7qAM$Lpm*3 zjM|U|PNVCzz#~zP!jNt|_Th{Pc*UT6E;cFH^6Ir*+V|PN7 zU1J3n^`Ny#*J?7>os5Y+=uX7sOm$-@ftN9@sJd~F-FVbpsf1m!1lFPq1yZJC37BQ0 zVTO06w7Y8983ns!Ni<<2R>(#jOWI{q!+V#f@F=^$1@JPa6;-#NzbvijyZKmc0&OTo z6&leYjXG9}Hq%^#{FLSO)>Z5Ff)v*mahY=cTdGE5sUELURZR)TL zy=8tuLqK2#9yCwLX*d?pJcj3RJ*88Gmov~EjREEfxfz!Nx|ej$4QOc4imIEd3%myv z{ARqAz^BOdIg9FBpE?jYq<~dn0_$6P1X(MmF?gh*HC6c_Q4J0s90c*SoY=-ODb4wh% ztMCpAalc-F;Mk3u?n$_gJvZ*yEk`N(ODQG=b+fg=JM7Jq-DY_YU=XrB%{Upfycmer z0=}dfY??>lI!8@wh-3Fv*qP_pwf~Nba2@-kE^zFQft_(d-E1uIx2VKiY)T32!b>^0 zyysDa?Kqwi_}O)NC4rt!-z;>KX>?SkkspTaXNYLdVksK!^Q%(dl}B0Pjn?8Hx6 z-kPxG4S9l%h3h>yNj?Ef67`cb?p9bx{twi?70^lyZg|DzoZHE zF5MV1Id`Lug&nK!;cw>P^4cYyjUfu$w9D&YhiT5o7=+E^m~UH--2|#oC{;)}cAHIi z90nt72I*XlT5jDW>abGkkksF31a@P{^xTJiEbfzbd2`fVn2RBHc^z#*tND^+51t4J zjKN;>g-DxPQFl+7FAw@)R>%?$#%ypd12s-Z-HqWYd`$;5f!#uUgYPiNwJX=*YZ8v# z{&*d4IxcU*yk2N}MQFkrl;9pI(XoRlGR+0Jp7Ljq-nz89x=7+{(;a|$n1VR+C9Y%h zbWYc(aU+T@pAC0)``|Dp!N(keCbT=ChusSp1|QP~*KWU_bY%-Z#JlDz<|+vruBBmy z#oNNWSXx~g>H=~KaZEH{1y7K$`Cbk0U6xl}AcocOGNu((x6xy_G0Lv-9zN+oYn`su zWURX%2Yb*xi2a%B#;^;^k>=2#mGX4()>SL@bJzwC-3GP1cX>*v3rG@gqY^C+ofgc% zTe?=0v2G{!q6X~_-FDRInoi$c?&)5r3yCSP1Qj@dYjB-wy5@N`>|0#gT{Y~~qZ;Rs zfa@f5%@=BT@3OqMYi+}5%+c%f_*>5F*c_d+)daH9J&kp!)$7Yh%4Hp^)j6l5=(4!# z8s@jVo#J&^K<`~?maKPK+MfLK__>5n_Pa@(kPLL)?`S$F#7c=6Nm9HJmDX`4P`n^TX(N%~Xj`j*#rsT!X{T@M&{C(g zu}LdRZJi24YJvqsRFG-MQVhWh2{#4tk^m}rSwfs_*reYV{})VV_dL&@JZE#B<@{zo z!_3*uv%fiP{yaIHBpG`Ty!W*@$;M4$GDgcWlj%Sk-o#q`3(Ct@z=H*kIF6;qsBuN;)40+TQv1sEb-PNE&} zpcz}S13mB*&aun;ci{T+{`KShW=OyDF&ZO~he1-H8xb7GVZ1N>dtosC_f^a&r7ZN# zEc^~d@H0bEEau<<9!4V+vAXX?n1aM9OT#^7g|i$Wwy z4u(sQAIhgZbFsHxHLfk9@`48H{r~fZ(5k*LKiqL?i zI=d@&4w)G6zU6d)vM(G=LluT2)ftW|>EPJXmmxe2($}*QsKY@lLLrh(Ar{FRb+V?J z*xxr7H{d>8g?uENeEHb>WUXAA`tlyl?e73yf}dlcLkGGjVqxE@_$~%C(qXFgef7=8 zKHQCLLp$}mWz8xmlJ8q5BwU`gTGaqXeLnz()4#F*%1iv#$ zUTcs|eHp@9eI4A4F$h`;FdGtKU*8hsA!x}%iH&^~valL6kgCkUYOS56{e2x&Vmwln z@u-AjQ(v8(u!EZr$i(YrVc%i|HN`geRj9>Gq&hQE3q`E&I~^Ay)wvMU)2*+Aas)M# zAQATU9gU!7w2ggTRAC-;^C5nVYf*@^Fbo&rI(h66bTbcgpcO7z4R~KVX!k`aCP6n} z;x+sO%kT)6pcc=_W1lBE56W!n%P!cpuY*wtYR-j3*w=R`f|_C0_k|dN+9U>9HNJ(# zco}WzLI?KYC3&m})%Y-p9qri~!#6N}>7wk5Tue`5kTswNn{f~koI(`Ga6le=3=Q}) zi5=|_oBA?@6ZUnGgPY1S6r!I+S8HVo;?=o?9Y+sxlnEh9qtJ zPC+hI*^fV?MY^ccix$+$pQ;Q-MY{BL5GG{1^Kb`LslhCqK(gt;T+KUheuDE{cE7rP zA4^qV>69q>xCE+fM?JcbY@%qy|Dehx$T!gU^;Gp`7n~msVDCP_)96JQ^S;1a{W!l1 zG;ULR77w5YUek+*WG%N0!U6+*?+-#>&2L(0#Y^bzXWy66s`Jec2KsIq=)U0qR(ls$ z;YWBN9KyyO$5VLT<0r6#TQ#ns{?yRlU9YUgny$GOPMqCuQ2Wl6Zhe!1Z);pbU1zZG zI@L8+>6Bqn-!gW=8OaaeaQIfBO%BxHL6}Q8e4j={exlTN8N$h=T;sm*#pr;kbl_pQ zWem!F=$nmuuniHh4fi73r7vr`rZ7R@0_4Fhn-PVnMDYsTl7|8x`exz^+=0d74mphnkIBYH&Zk&AJxNj*2vm!sW9BP0I%aQOvW%V z88z})0pg|JW8bkFmycRuI=f|Ux14XdZyxT%^(aJ+D3oJ&x(xSLoxb`5I2^uH;tbzR z{1qc%IN|V>?;M(mTlt&Q7*;{$WivyKbPlfTubeR z>GWz0_R$9WW};ego9if4BP-6&d)Du(9>C$w*Jb$LjxgRG$KT`Zd}a8`fYEm$+_DvZ zWvhp7#UA_4(>ym5ahGOabvN~9<9(Qo{@NoA_ML=LP-PS@Gu78YI;S0PLpS?Tfy3eO z)e^x`=;oLV-xCIgul|n5zqG2l8SGmP-BcUwI}~pD1ZJbZ_E3X;%b=SwQ+*wzYhK4h zT#1)8hwqed_-bpz<5+=%n#1>LlfzdGQ@*Z$`Bc@-VBbrjn@bG#&4F7w;a5(=Ejb4J zo(tWKGSxQ=>6lHZJne+c!g@?WyzG<5j)cQk%K@xGR1Vam8eR>) z%HDVj0eLmq=;e!Dfz9+P=yP0>ks++;SZ$LM#2K#owExGV3L*SM! zgME)cH=mg5>mVKTWSn~~J24%v^%=eu;qXn`OytGcb*;pQeqHnR_=!^jzf!8|=ArKd z#LH?ZqI_v99rkPACv0AYs+)(tQxPxA@itW1h2UuOLckNZ7*#ZI`T3Jy%i zL6wJYZ+Pt6g&Xh|66I}7N0+g_>K%J2GGICxM!&*P_dSJGiXnUyE5UP#kbBrY^>vWW zDZ@tOk3~%Ob&&440_%_qBEsQo${5VS zAP|wdyB(U)2DdE55SYqPS<@|T*x^IpC~8oSp`u)lMf=&eDZ$W>z%A2|4O7XMHQf?H zyAOS1*p4T#L_8tKVy62#I1_R;)?#pi;rmoLeEa2_F2A|f!HquNYSx35aLajEfeb@m z8b2v(y5$+rO(J&8D++91>DD*B*af%bW2V8rGm)=xt-IHzzVhwLXWjr7*PszOafa`0 z2-82~P=%~G!*?S5Of8~t%Pm+2r=P>&QCZ6^QPibT-zLN~uB~2+jDGf=rg1Gbh9>*^ zhCdJZI;=%@IDCCkgeqjFYWRvatbi)_qY=YAUUql}4?&fu+%7Y)(+pf+>69oD&HIqA zL=|#8UUv8az5`X>M8u}P?0)0+b#MYfO%w#eK;P@}Z>+~{Dd^jUpeE)+-wW_#%)vz8 z`$GH*$DzuNXh9X6B<^--MKx48j$cBOHhs6E6RH$r0ZNgP#N7^eqYSEa;?;EN>);52 z81-!?-d&07Q`ENuLCp!D`i{W`e)Lrgl7&fJv#!T`_zkW>0S1WzOv4hqi+cGOo!qN4 zSlMv~rmu9-86+E%xKF$i_u+dOhdgA8JUKQM_o7lhMkg<#)26=ceiQc1!Y+(Q5Yr5a zu&?jO7=a+>u#J6P)T07-B{A3*2@`n&tDqGIUp>DDXh8eYLAx(nF&394G1#sWCbAPP zHuYury7qPOJOY_`-7M_84?)d78~ZBUgY`&t*2`-vVtwC@*pF0aKQ^XYUkCq08-kX0 z=_V2O_1%pKf|dyO*w|Mgid*m^Qk56vHKS0(`o1wdhj)>xyd$p}v#Bq;Uu9nhQ9OvC z(mZPMA)oti1s-TlzA1Hz4Na=K(K9Ee1Mu(nS&L`ffoJ20BgHVtrqIt8ft> zM-=@{RMsk%wG~PGzAdOlv%x{xENiyd)K~EzZpr~1!#$|P0i-$ya5EMnrg0lj35S{*j{Xr=Ptu$M9!qXS%{Y?RtgJZUEdgXiLkF=;HL6-dTkfx6ZY*zn+W^5 z$dWgGD8&OM6bgmO= zZD^JCAII^!rt@z#|1>c5ED0%cW@YKIIfTMwpro{H7T#nxAU&yuLQ14hLIVxbB#F{z zlC7yz^JauNONusK-lk5o^uea~AQPR0C$HK2!RH*}i=FGoxo$jzzVL#>;dkE5i!ayV z?9AIwoc{GT%~Z_8Slk7d>BfG1i0#=><^98Q2h!B@%b8pk!!ZsOD0S>+ z(1jmx3TDE0`M004KdYr~tyCkWMkfwpGq$SB7`n!~zM;BYUvq75ssxoX6lL&n8RyX< zKJ0|`Q*n2t4tB{hScPhoNwuEKz$_aL zGrTi}?y6zuA=oAJ(T25nU)Jh5-!7XPk$1TZs|$E2LnLEbadrDe*zK1v|}*X~q)t zmiZZb^8}{jUUP?>faFe2PO3?Zf!Ywj8^q_z1t_q8^tzb}LP{J@1l<&irV) zm5$vKOvXZ)j1v8}C2!X&vgMt|@@9BT8$n=NFIe6$;q#U@kiZB9tg$Ar9 z@fON)w;sRe*iD)4QMishn{w>dpbGt^3KN36$uIC0d+}tuS>8Pugj+owIGS&HF%U23 z`I2U^X&!*<95k&Vj@_4FXRc${{yWaYb?lwG%&|KPcE$vB6JOwOQHMELhwN;_^F_G4 zXVHkwIE?I^bX{J_pwQ`i3%Y)Yu9sXl`2~IgPqC;zfmhLhuTWQP%PSSQ4?Wn5pR~M< zLCYI(2OAC7dDylbyX#7X@;-A(a78Nko5c?yI9=E?eZ3>|6vY>*yVM!0iEVcjvaU`Phb>w znlD7U)QY=%%zSy!2Qvefcra#xvkcTY9(UKn6+|`N(B$ow;~RX3L9Si7hNvdv*zJ#3 z@S5ZDX3XRHrdNSBtV9}jN?OnDLxpM1%l?dd_lm4bE7ygOuT6IV=3)|3D3z3+o2xUq zQR8|XU4A#5>-IrACLoI04^3cqK!M$J7=|dO3$ERMg>+>DKET`NE9QC$8eU7o42!pc zcd<}i8tMXa3@MB^Uj>hop!r^n$h$1Bx`2ljh-6GFu5N3D-PSm}#yj}9fYxfgR+CtF zH})0K-G|*tbvk#*I|&PnVIpQS-7jxKizbpi45ChBlHD55jd@dkWo z66^M0CmM0lp?gthccLfiF4uG?)P;BoEJ7{z;3{0_s$TP~8ul$NbXN^KEoi_QWZ*g( zz2*xwBJZ-iwrg#|NX*vbv-nHS>bcoEvk_(z?;gi$H0kjr_;N|lHR;UpIJzvZx`z35 zw^bq?7BH4BI^>pjS=vHAJbo@ACb6!MBa%SZ{o3}?fnFi5pH=@K>_5G5{stV|aiYpT RY6AcO002ovPDHLkV1gs!@UZ{@ literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/flat/flat@2x.png b/public/assets/css/iCheck/flat/flat@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..e70e438c5d5ed00e7082929e61a0d9d162daf473 GIT binary patch literal 3217 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/flat/green.css b/public/assets/css/iCheck/flat/green.css new file mode 100755 index 00000000..c9d17c16 --- /dev/null +++ b/public/assets/css/iCheck/flat/green.css @@ -0,0 +1,56 @@ +/* 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/public/assets/css/iCheck/flat/green.png b/public/assets/css/iCheck/flat/green.png new file mode 100755 index 0000000000000000000000000000000000000000..6b303fbeadb70a90e11d83439189de9b618f0729 GIT binary patch literal 1444 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 Hu0mjf1RVUH literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/flat/grey.css b/public/assets/css/iCheck/flat/grey.css new file mode 100755 index 00000000..a451650e --- /dev/null +++ b/public/assets/css/iCheck/flat/grey.css @@ -0,0 +1,56 @@ +/* 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/public/assets/css/iCheck/flat/grey.png b/public/assets/css/iCheck/flat/grey.png new file mode 100755 index 0000000000000000000000000000000000000000..c6e2873ed5fc2cb1f151c333034ed85422d29a31 GIT binary patch literal 1516 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 DWRxc% literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/flat/orange.css b/public/assets/css/iCheck/flat/orange.css new file mode 100755 index 00000000..8c9c9297 --- /dev/null +++ b/public/assets/css/iCheck/flat/orange.css @@ -0,0 +1,56 @@ +/* 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/public/assets/css/iCheck/flat/orange.png b/public/assets/css/iCheck/flat/orange.png new file mode 100755 index 0000000000000000000000000000000000000000..ec2532ebe4492b949f48278fd13b46e792869083 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/flat/orange@2x.png b/public/assets/css/iCheck/flat/orange@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..9350b50624f9017ba8bb3fc64c526428d0bda407 GIT binary patch literal 3275 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 Ef=5*|pa1{> literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/flat/purple.css b/public/assets/css/iCheck/flat/purple.css new file mode 100755 index 00000000..a9760b36 --- /dev/null +++ b/public/assets/css/iCheck/flat/purple.css @@ -0,0 +1,56 @@ +/* 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/public/assets/css/iCheck/flat/purple.png b/public/assets/css/iCheck/flat/purple.png new file mode 100755 index 0000000000000000000000000000000000000000..3699fd583289e37e1eca6be2940f22e0daa5350b GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/flat/purple@2x.png b/public/assets/css/iCheck/flat/purple@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..7f4be74a7c08a453802d46e6a7971250ee416f08 GIT binary patch literal 3218 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 Ef)^M{V*mgE literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/flat/red.css b/public/assets/css/iCheck/flat/red.css new file mode 100755 index 00000000..34b71e47 --- /dev/null +++ b/public/assets/css/iCheck/flat/red.css @@ -0,0 +1,56 @@ +/* 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/public/assets/css/iCheck/flat/red.png b/public/assets/css/iCheck/flat/red.png new file mode 100755 index 0000000000000000000000000000000000000000..0d5ac3819b4d2aee17a543497d3e70699a06f052 GIT binary patch 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 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/line/orange.css b/public/assets/css/iCheck/line/orange.css new file mode 100755 index 00000000..210f3340 --- /dev/null +++ b/public/assets/css/iCheck/line/orange.css @@ -0,0 +1,74 @@ +/* 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/public/assets/css/iCheck/line/pink.css b/public/assets/css/iCheck/line/pink.css new file mode 100755 index 00000000..44c9cea1 --- /dev/null +++ b/public/assets/css/iCheck/line/pink.css @@ -0,0 +1,74 @@ +/* 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/public/assets/css/iCheck/line/purple.css b/public/assets/css/iCheck/line/purple.css new file mode 100755 index 00000000..be4c4e2b --- /dev/null +++ b/public/assets/css/iCheck/line/purple.css @@ -0,0 +1,74 @@ +/* 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/public/assets/css/iCheck/line/red.css b/public/assets/css/iCheck/line/red.css new file mode 100755 index 00000000..ebcd8bef --- /dev/null +++ b/public/assets/css/iCheck/line/red.css @@ -0,0 +1,74 @@ +/* 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/public/assets/css/iCheck/line/yellow.css b/public/assets/css/iCheck/line/yellow.css new file mode 100755 index 00000000..8e088714 --- /dev/null +++ b/public/assets/css/iCheck/line/yellow.css @@ -0,0 +1,74 @@ +/* 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/public/assets/css/iCheck/minimal/_all.css b/public/assets/css/iCheck/minimal/_all.css new file mode 100755 index 00000000..b2165ecc --- /dev/null +++ b/public/assets/css/iCheck/minimal/_all.css @@ -0,0 +1,557 @@ +/* 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/public/assets/css/iCheck/minimal/aero.css b/public/assets/css/iCheck/minimal/aero.css new file mode 100755 index 00000000..c97acc8c --- /dev/null +++ b/public/assets/css/iCheck/minimal/aero.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/minimal/aero.png b/public/assets/css/iCheck/minimal/aero.png new file mode 100755 index 0000000000000000000000000000000000000000..dccf7740c9cb727f9c1eeadd6b584eec8634f23e GIT binary patch literal 1151 zcmV-_1c3XAP)B3VFgFRa2l28d2n+iGJO%&2jKbbW6GF%#SxqKjR&wzs8jqghqD)vOc*s96 zUqG|jz_@w|xzDf*b5IcxbWprFFm#?CUS8OxtE+3P+3wCx!$a57RSz$3?~kJCo?vrx zGpuBD1P`9Sj?S6+P9AYm5+H7 zAAPs^eETN>nNm0i$0^wzuE8oh;CP3i7s0$03CBZdLf4?&=7Wik5Nz`i4)rl^a=n{X zeTl(tb&Brbg>tmk!7&n>c>r3q44E!$-Zf;oQ`gGSY?;L-?X9T0I;fQApx8PG* zvk;?HAGE>fBM@UyAAMZ#sV}+)>XWrQd!asp(FUV0x(4cFt)tK0zhVbu8jgU|9k@;~ z{&LW+!S}KjhaT#K)ILI@KKdD$>f>6)h6F`@;*eep)kiQ=*T-D-;jsAJ`&YPtOv9lx z;2^Yjq5o0VHvD{3Us(eZ7Bn2XGx%H=K8B7ybGR{vjySgYz}d$xqP`UMRpBPQgjX`I zf*!0f`t%vW0oJ7U(fcaggqQG2##K}Q%DjVwwr~_NBpMDob-3?Q!ab0UyBA9DF~=2s&l0udD$H41&DFp*w@mb>Saa^eE#r zJj%g$8CGB@tiYAB)>q~oB(Q~}h#}E%*!dNfcvo;>7X=)E^YF_~A2|DXwo_k<`bKaG zW+P-g0zFt`^s(DI*TP- zd@XC&_R2@^3t6APul&y-fh8QdheXeAUmb^>zJROjA`OS7XW$xq2{`mnA2b|x5B1UG z(6>J3s!tr!r<(fM5mNh@t3DhipJ)Hd|B$ZXC~`<#k*{9Q!Ec151xfd51}?(yvZfcK zR3EfpCLtIzpgzLU^QkYo2I^yNFQ!lGBP1;_`l4%~KGr(=?ENd<*Szw(kbMOq>B<+g zci>ybtMU?S09E)9PQzF5298@kckhDwVB#YTMjzqmXIY;F%e3Qm35NO@TYap_)R*+R zdkC2vd+p=KWc^7<4nFfvLNGp(?f)z+!yJs@32eZ3u$HpteMsda9ATFAF*nJlI|;o^ zl000F@Nkl z=guWXaZPIO+_^=c9X(!T6J6gcE1xVnfBt-&eYU?VSFS|cH*40c==&J^89PrU)?x+b zV-CtJU>JYmG`esI{csw7zD11vj>OmZpWlxt`|S54+CKaLXN{5e*`%Qn$<0(WU^8lv z8YkcZvluTUK{wj44`cb%r#|(iVPl7elVF_j)Tci6xm$x)R9nCZ4&n%U(T}SZFcX!? zU=`M3xp^B+I1Gmg*QY-9rJ)gVSAr}yT0kGRV=qR=2^cgz*o9K8$6KgICwAjC+zi>L zKK1DW3E-!JtKI_YDrRcoVU(i-OK=n0@F7OwG9&mDUttScun~)}4nr~bsZV`V;5H(< zJdR=s`cQ)%7|kJI6gyCZJ}j{_%0u?4Pkp*TCZELkAMI}%zQa76L@jzTQPYcBoWwjk zYg%l5>QkRC5D|A-EX4(^#sDUI2Jkd4*jd?_`qZaB_X|Yy=Ar$qK_hOW0fV?(GlUoH ztVXPfp-+A4(*+{pZVEoKfEN7bA)ps67SM{RvGu7>eQ9XomLTkCe=lM_E@CHq%}z9; z8VzWltbKgFn9J9Qp7y7ouiijJ+`Veg?YIqJa~nIXVRPs{^{G!6h(C$Z*H-zxze+5} z2=>DFd~Ijf;Nb%5D@HTAF>JcgjN&kT+Mg~E5jW2ug$`VY@41c+Ygk(#eY4SnES90v zEJGGOnC-t$`_l#DUt;p}%|rXEwdWB88qT(s0_ZEo0c0@VWYB?o{q|{pxHQ z{`#~(y@80hDYNG_gc&;!OqiGuq!@_N+pfv9och0Q%Y;0^0rdX@9yvMBJRR z=R$-TI~#u#K;JH$xWg}lcKPko{&a!(lQKE~`=GSHE_<#GAW?d+??;v`yx|x{8_FU*vuI zj5n;5(brb_x4(TjgDPx=ui1(!J9}T~KJ}?j7l??vF*I4gHe@^mWU$QwnlTo-Pkrjs z1rlD$r_IDUx;6Cg}Ique!W51pCIXYwNQ=j^Dfrz--%dUGe!jW&FPu~_=lr#`)bi1;yvc2kLGu>#e22s13;8ZO}sy6`>v z^R-WX>PsVqXh(hO%QOA>#7ycw^{FqFBuSA*L`35KleQuvq6yb literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/blue.css b/public/assets/css/iCheck/minimal/blue.css new file mode 100755 index 00000000..42477cd6 --- /dev/null +++ b/public/assets/css/iCheck/minimal/blue.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/minimal/blue.png b/public/assets/css/iCheck/minimal/blue.png new file mode 100755 index 0000000000000000000000000000000000000000..af04cee596d5d2f884b03f9d8f0dd25c1cd5a0fa GIT binary patch literal 1132 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 Q$N&HU07*qoM6N<$f*_*2MgRZ+ literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/green.css b/public/assets/css/iCheck/minimal/green.css new file mode 100755 index 00000000..bd1e3d0f --- /dev/null +++ b/public/assets/css/iCheck/minimal/green.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/minimal/green.png b/public/assets/css/iCheck/minimal/green.png new file mode 100755 index 0000000000000000000000000000000000000000..9171ebc7e456848eee4440b1e9975282f62fe03d GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/green@2x.png b/public/assets/css/iCheck/minimal/green@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..7f18f96a9c30c6b2d8b726019939ec908a9067cb GIT binary patch literal 1408 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/minimal@2x.png b/public/assets/css/iCheck/minimal/minimal@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..d62291daaa78d173897d6a713e5cf26321e70cf2 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/orange.css b/public/assets/css/iCheck/minimal/orange.css new file mode 100755 index 00000000..842e400a --- /dev/null +++ b/public/assets/css/iCheck/minimal/orange.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/minimal/orange.png b/public/assets/css/iCheck/minimal/orange.png new file mode 100755 index 0000000000000000000000000000000000000000..f2a314978df05edbfe0da6ab1e51f81070079b44 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/orange@2x.png b/public/assets/css/iCheck/minimal/orange@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..68c835915ac81a16716bd7b0c5d83c81a8d5840e GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/pink.css b/public/assets/css/iCheck/minimal/pink.css new file mode 100755 index 00000000..10ace218 --- /dev/null +++ b/public/assets/css/iCheck/minimal/pink.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/minimal/pink.png b/public/assets/css/iCheck/minimal/pink.png new file mode 100755 index 0000000000000000000000000000000000000000..660553c07409fce4efbc979a4985aa2eb6cf9de7 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/pink@2x.png b/public/assets/css/iCheck/minimal/pink@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..7d7b385146c633079799de2d61c49a8562e15d61 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/purple.css b/public/assets/css/iCheck/minimal/purple.css new file mode 100755 index 00000000..1c5dcbc7 --- /dev/null +++ b/public/assets/css/iCheck/minimal/purple.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/minimal/purple.png b/public/assets/css/iCheck/minimal/purple.png new file mode 100755 index 0000000000000000000000000000000000000000..48dec794dd5be9f8209e4392edacd345a1a42c24 GIT binary patch literal 1132 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/red@2x.png b/public/assets/css/iCheck/minimal/red@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..2eb55a65c7ea2f94073905c81396627b4967352f GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/yellow.css b/public/assets/css/iCheck/minimal/yellow.css new file mode 100755 index 00000000..2c384231 --- /dev/null +++ b/public/assets/css/iCheck/minimal/yellow.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/minimal/yellow.png b/public/assets/css/iCheck/minimal/yellow.png new file mode 100755 index 0000000000000000000000000000000000000000..0999b7ecdcea2d0ef81d0810037cebbc6d143217 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/minimal/yellow@2x.png b/public/assets/css/iCheck/minimal/yellow@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..c16f2b7dc5e975766863f9d98034c34f9eb24fe7 GIT binary patch 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_ literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/polaris/polaris.css b/public/assets/css/iCheck/polaris/polaris.css new file mode 100755 index 00000000..1cb4bcc0 --- /dev/null +++ b/public/assets/css/iCheck/polaris/polaris.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/polaris/polaris.png b/public/assets/css/iCheck/polaris/polaris.png new file mode 100755 index 0000000000000000000000000000000000000000..60c14e6a88f4cc5626d63052f95f5ed87eae5ff1 GIT binary patch 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_ literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/square/grey.css b/public/assets/css/iCheck/square/grey.css new file mode 100755 index 00000000..ecc57ff4 --- /dev/null +++ b/public/assets/css/iCheck/square/grey.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/square/grey.png b/public/assets/css/iCheck/square/grey.png new file mode 100755 index 0000000000000000000000000000000000000000..f69375854d3c5a283121d10352be8a1729a16cc4 GIT binary patch literal 2186 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 G$^QeNB@0pj literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/square/orange.css b/public/assets/css/iCheck/square/orange.css new file mode 100755 index 00000000..d0c7a2cf --- /dev/null +++ b/public/assets/css/iCheck/square/orange.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/square/orange.png b/public/assets/css/iCheck/square/orange.png new file mode 100755 index 0000000000000000000000000000000000000000..84608500a670b9460092d68cbf7b4dae77c7d303 GIT binary patch literal 2181 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/square/pink.css b/public/assets/css/iCheck/square/pink.css new file mode 100755 index 00000000..6b706f6d --- /dev/null +++ b/public/assets/css/iCheck/square/pink.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/square/pink.png b/public/assets/css/iCheck/square/pink.png new file mode 100755 index 0000000000000000000000000000000000000000..9c8b4e2b6ce76e1638ab81688b3e7f2cafd901c7 GIT binary patch literal 2189 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/square/purple.css b/public/assets/css/iCheck/square/purple.css new file mode 100755 index 00000000..43051d3d --- /dev/null +++ b/public/assets/css/iCheck/square/purple.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/square/purple.png b/public/assets/css/iCheck/square/purple.png new file mode 100755 index 0000000000000000000000000000000000000000..6bfc16a38ce8d5b2246f25758f2fba8134f6243f GIT binary patch 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- literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/square/purple@2x.png b/public/assets/css/iCheck/square/purple@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..6d3c8b1af31a6ec5303ac592f5dcdddb5e2034d1 GIT binary patch literal 4501 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 QnE(I)07*qoM6N<$g2I7inE(I) literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/square/red@2x.png b/public/assets/css/iCheck/square/red@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..c05700a574071f9ccf8a6110d907440c9dc5d8d2 GIT binary patch literal 4490 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/square/square.css b/public/assets/css/iCheck/square/square.css new file mode 100755 index 00000000..b604fa84 --- /dev/null +++ b/public/assets/css/iCheck/square/square.css @@ -0,0 +1,62 @@ +/* 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/public/assets/css/iCheck/square/square.png b/public/assets/css/iCheck/square/square.png new file mode 100755 index 0000000000000000000000000000000000000000..2a3c88116c4d39ea9b131b07201a3ca724d097e9 GIT binary patch literal 2175 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 JPDHLkV1k9ADRlq< literal 0 HcmV?d00001 diff --git a/public/assets/css/iCheck/square/yellow@2x.png b/public/assets/css/iCheck/square/yellow@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..6b8e328e1abe901ffa1b472461c858516024a975 GIT binary patch literal 4385 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 M0<$r%F};)UA9(ifzyJUM literal 0 HcmV?d00001 diff --git a/public/assets/css/images/animated-overlay.gif b/public/assets/css/images/animated-overlay.gif new file mode 100755 index 0000000000000000000000000000000000000000..d441f75ebfbdf26a265dfccd670120d25c0a341c GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/public/assets/css/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100755 index 0000000000000000000000000000000000000000..c09235f60edcd94315b23a534c61ba2c49df7f9a GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-bg_flat_55_fbec88_40x100.png b/public/assets/css/images/ui-bg_flat_55_fbec88_40x100.png new file mode 100755 index 0000000000000000000000000000000000000000..d48c482d5f7d34bc669a74eb57234c0827bce6d7 GIT binary patch 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! literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-bg_glass_75_d0e5f5_1x400.png b/public/assets/css/images/ui-bg_glass_75_d0e5f5_1x400.png new file mode 100755 index 0000000000000000000000000000000000000000..c621bd6877ef926f55152fca0c8343d775604df9 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-bg_glass_95_fef1ec_1x400.png b/public/assets/css/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100755 index 0000000000000000000000000000000000000000..398c56a9cb130485289d061475258e0a0b9e43ad GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/public/assets/css/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png new file mode 100755 index 0000000000000000000000000000000000000000..1025df02a7da7f97940bf779a807a6fd64a93fbd GIT binary patch literal 5824 zcmb_gdstFwx3`(Esj-VqrHz{Ul~F31w^35Oe5Gb-Y2HF5Z>3qHk|`n}*;Hnlm&rsk zQ_DLlkQz_|I$v6inh~0!5;$gfLqtU&MD(CD-}9Vvp6C2`c%IE#d+oj7{l4qB-nD*f zXP)zN-=VIfuBN88@il#&NO>=A@>kxq905xPQusu+%#{gdOsZiM^q_%lFQ(54iVWP_Pe3?G_& z|CqV=;~A~07bl(>`EK8~<=6R|p(-R z-{0!3E8#oB$2Z1#{=@&%F#DSm;8ad&GPA8B%p2DPHE)Uy^A0-YrdMRnAp#&6Rx>)kIA@aP>nM@yMO<(`wNk2PO%1e+t4v}SFF zo4RCUt8v!}baY|%W-P^L@k^=8-gL<#ItdNrBRvN@uW$BPdM_B`kq5$pU=JLC z=XyxSuCK*`5#ok0W9?_C?I6-jaW|CUaWVsR5Mv_?{zKdevuow0Dl)0Ow&ihktBtAr z9{#@L;Ord@i13GXNYn!7{k7NSe?!XxPVK0E&W=qt&$y)2%Y@zKTOtmv&h=(Ppu!vY98cQ2WNJt@keKtlI! zro(=#z!CDCe3u4=Rvu7th4cf5l7YCy6uS>U{F-yPn%?}jx?+$p{Hh=61W?!m>_s|N z(HDw6adZw3EyM5_6}%$fR>`->zcz*1p3A(WBY20RjlH6_d!FzAzk$)<&~N^@ZVaD! zZ(W|ao>|n?3}5^FjbJ#hyFCGJ+i~((O_7K_*llKQ7Ordw#R9EN$<&HZEJRUZJSBtm#N5VQAF7hG>T>hw&&i`_d%VcXGx~rbri9R z!oFIELI*I~%q=5u2OybND6Gv-AL{T&y?NN$Hat>ukwtD+aCVK?Mc(KU6AopyjtmZ% z4P@YkT@3c&Tk*-_3C4kQZ^;$;R<^j%u{i8j@7Nyl$t-GQ*>|C(nlSuoBd|RB-;_qz z$mo8W;9M-4h3!ZDMvg1P%zsG>MU4u7+3;)j)-bQl>ssLV6T;+|NmHzEs|)g}o_oIX zPn%ZS$i(c6&PPd@M6@ur7t(B4u; zkf*$OGPCq}HI>6cDQ<@Jm0%r3Xz%`k^AkH5#6IW}{VV^2bac?YTrLboy)yC%%mctb zSJS)2XQx9#>4yI01L7A0iuU~UV@KiTJ_iHPw~)Du(xLofS62UEx2_K=ui07!jn0OkBP-R-RLgkPvr6w1?-0mX^ zGb^e>)dz>1f^pC=|X&yVqGYU?6d%QhHe<@J};5HM9>%N28VgpZ=f`J8`uo`Uo!fM0XA7 zHkuAl?16LX@>)AFeBX^^eivtsZEpv;G57gsSWm|RuYw7AScQumHJsmq0V}HH^}H8sU=1e}>BzB&SFqM48!S?-49r?0tHT-M;Tx z-LuIaunLT}zAf~oDRRM}=Vdk>zQuU-jzes}w?NGD@>!wNVYpw*4M zeYm$69-5-)hWqc@wh?(h+C^8O=Xey z0)1^2Y)P`8dMCRlZYJSP9N!p!B>-s7Zyna3!IICDhz+j@zGi$}3L}9ZWW)+$PV8Dv ziK|H!ONSCBQlZ+|zJXL3QC<%@VgqEBi_CaaA|4X}EPYebn%q6XkBflIyQ zr3QP(r!@ls`IWBB)W>vjTZhIitE0Q_Jr{z~B%SFP=Wp#wa7jd^ot9QaZH`xx4dY?p z7M?InR78bU&zY=N#Y{)VE)8mOV{Pb#eh36vQzSQA6b@BzY)?WGpbllF#j*l%( z$O0TJpl!AAN&rmHry2kL4sY03TO#{-vee{g_wU~~KteqO0Lyz0Om zFz7GBVsUyR;=x)VC@^fq{q_AZF7!yD231BJe8?Y`CMiBHVuZ@E^nixl@?-{MXf+;F z$yJAE_kVe?rzNk1Uq8N@Egv5KzIR`DyT}<+Yd4Y_E%i$L#i4!XkqXQ~+ys=wkTVTZ z(+1+VyD6yaWAP=@iwdxZJl>GQ+p4WgR-T(>Jlx}%(3xejFd$g0d@dDEG6 zrNMzSk1>xS9pmoF(fdjS83n2Jue7{A@UG_CW~}^^r8F9#YnSb8&o{BAQBf~Z43z3} zSrFMvP3;<}KUL5KTARJy?#*pOTt>BG>li;#UONNg97f8viFo!b{bd?Q8Mk0Kb|D26 zP{Uw3vDy*@or`1F9+A0xR%yZnd5KA=_Y7NeZB;n1@Yq`6KM-7YmlP>)vYl zKG#{#4oq8n+J5ytb3f{-oWF`w8kikUZrr98PEKk+mz(B@6%RupoV=YzX)!2a?w&pO zpYM^zmj#E0=qF*3s26dMAEwEc7q|wE_JOJ-4foYup6H!VO8hvwYwl|3jy$H9O>Kz* zF98cqB`Z8nG!v*LVd_j~+cDa>NJDL29`P!TF8@>Xj0}3cN2p8vV7g}IP|*B5E%+-- z`ewfJ+gz`#$enZ8Y52j&(>#~NMfQiZ7c|Ek9V%2iENMt-Nw0kFlyCEUe20dPo}H!Q z<<$~Gry=je)&uWJOv>XO8HuWjH3*Fv_ z+zfUC>u?WKDLpMc{bLZ0ZbXCQH4ZmE9aJ;FH3!df5Pz0OBiD|h(txpdE=7O?!yfy0 zHx^#kxU@|P#MAT=Xym;O4J(gO7s8mevw6Ju(_Q}DPxsDs7kw+%f%yqE?XxCazS@)G z%aq4p9_7ZY7UnL(r#{#79A)K+Jf*?UlMGv(xlZFy{Z25`n^^#(sB?O452#e`6Uly03#~D2c{C8PwU_kyC>| zp!n<{{!<<{sw4y`{>o=s;$+5+gB$eo+l4;H%`WBVgpEY^^Fur4@r{1sk<)(M#to`s z%f)zW7?X!%?~GIR>ZgfGN$hc}EWPxXW{mTM+y64&>?>6u1!&*hH2riCZ>)d`tL|L8 zPWVF81FUW*2zM!8ofqk({o@S*`ALU`n9QJSUw=uNol1h&+D>+^$|~z{>A_9g37HkQ zAvvvvKtzZ(3ovY2-a9*}3T!L=3{FEqBOSpmwRAK%LFM5lrnixl0!3QLvkjJ|_H#B$ zrZcb+)2cOS{ipl6IoE@C*tvUsS>b)}8Kj{N>Tq+Rn3{JdQ5fO<*XnNKUTgo|9EJ0a zz6ShVHTy5?Q|$g?ffk6?N-Kwe4e}J;my~zgVG1;-Y!Q`281DBhJk1T555DL9b&^bU zjmFfagc7~YX3!U5eLhs?5)2m^c?BT3!H;7#)K>(at|FUmFD2(caB{U}IK3kX62n83 zJ?^qyh9EwUx7Ncj(S}j#`Q1ad3YBw*cn9Iehp~PXaOzpQxW>VR5bFNQ;!;bL%gr(Yp*&@!P)lZAhzIOe{ z3tq10{8erH^Q3Y|uXllsMVOI`FmW=s}u#!K_PC93w?>#slc+mo9VGSA(# zC2)st-QJ^^X9{TV!TGxZ1t@iCw;QSTpgz9g7}4pkyXlN=QgkG&ryZ1+NLRz=V6Vlm9Ro;DMwol@R4 zgAB9ET6eaRgJD$2uVY5CXLDJxP*~fl0cqt=#zSfdl(gkfOjrf0c7^;Mz&y1J^UAkN z09h)+eZuZ2lu6D2NMFy5`2MngIUvlit#OP3h*7o0^5~5m*Vv=JgP?8=Mi!ZMiouez5+p2o0dkq zwEtE@k|Ee{BEB~lM0~ljY|_$J=AF})Pxdzx6}!0G^Uu#L+pV4ol4%t~-#(MyhPSP- zFlQH6FN^ut985<%kx$-whRAkvHgcg~lrIuTS$erRTRSIZDVg`FhxWBX5=`+^d$Atq z$N97&7dX)4zAf4`SzbUPqZ=U^ZPX@b%1)H>(0~VzJ|-07XN_LzTAPOg#HO5A=aw36 zYE|Duq#612?V!O~N{sOZr-wkhzVXH7LXcEIqyxa(SPFHL*E-&mDhp_y0}9}$_qvF# zGt8tFipcS{tzcp3(01LkNw!n{0`4Ss4+FTsjZ||~@D>xyI2?b~*|9=@XtI1SKA3{7 zj<1&#L_vS0(}DK2seUiW*6}g`xWt2=rN^M(3T1!DCEnx;mW&D(uE6Tvn=C(hs%V@% zW$-4;iBg_Lrt_+q`h0Q$Efl7-;^9s~$dP+F>O?zsCaL0Z7 zv$Qlez)#=g#tfq_)eQ)NvJSvCy-;&G)q^ns&E@{|;5((sB>6~sk#`7hqpw!8h?wXS zWpai_Wd^zQWEhH8Uk9^%vexf^n2%G2NEU1s>Z9M;Bx&8fQhlgmdWm720^V#BBblV- z4G_cp?psRye@h6aml)+Wq`uE>IhtMm?_j5t^2br=zSKDBA~S3?Ui5b1`Bv~)hmu)t zllT#L`>a8`kQmzF-R{OXUmt(^0{)(_{*2J%F{iAq%V~~M=xdA{_P=0UDqIc6T%2@U z2+9j)S=3Y^04J4MR?D&8ixZnTkK<5RO5=KXKQkC!nSgkR0XQ^3C_o|nRyo!!C%U#5 z`|>{A>MOJYjU>-LF^L&^EO46a%>ih4(V)Ig@VCzudArk{Viw>6)1{z0rSlQuuP}3A=&B#mexp{0yE@sKSWlGC&)!xaUt`sFUgjAn zeANq9ECHf#8NxJfsO8e}QU`9VhNLaH0iprgopJ1+Rg>r^&Tk5*8lw}pV(GSiZ79ra zeeMpUvMQ@Scaa7@=pdzXDQ7{Wir;I2&Xyt=gjV;}yMgS2R;3ohsVX>6agCr~jR{0* z{=q5ltTG*vzI*cT*@Z`06_Kuwq$NiTFw+J{*Frg^B~5RHV`gC&TZA+Yt)!J07;k9I z(DIGi3*!YV2geujQ@%(|@4abB+%E!Sxa9ooOJDUNj~Y{qjp_7NbT-9z(AwK5l!U19Tr!ilFxtZ~Hk|Y+;>c(hbCDj2q~) z(b1qSxYiEBW+e~>izoPu2hbuJLu)GvXVkQAQG5OogNV8!FwPo{q&gl2Q=6(3kyMM#f`KJ`iKKRe%nw;SfpAoP;tTVUt zC)4+QGus1}jz56TQY~?fC`m~yNwrEYN(E93Mh1q)x`qb2Mg}2wR)$8p2If`< j2KlV=ttc9D^HVa@DsgL&i&$<6)WG2B>gTe~DWM4f*~xh! literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/public/assets/css/images/ui-bg_inset-hard_100_fcfdfd_1x100.png new file mode 100755 index 0000000000000000000000000000000000000000..5888e51ee1d2cc7043dcd7e68dd0e5790740d7e7 GIT binary patch literal 292 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 E19GBNuK)l5 literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-icons_2e83ff_256x240.png b/public/assets/css/images/ui-icons_2e83ff_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..84b601bf0f726bf95801da487deaf2344a32e4b8 GIT binary patch literal 4549 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 F{{S81aohj^ literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-icons_469bdd_256x240.png b/public/assets/css/images/ui-icons_469bdd_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..5dff3f962cd744033b2aef575491451a8b2ce6a8 GIT binary patch literal 4549 zcmeHK_fr#0w@yL`geFb85=9ZDg(gT1B^U@Dr1KJ_sPv{N1PD@H@YH=}zZKeS^c(4K`ClOQhcO>Hi=9RlrmxV(U~O+aPme3jja6Jebk6?NN@* z#hd;JcZ>j++yLtZH6Cpg8g|}Jzt4&o&-@Lq= zik3Np9XDyTG$8i7UtF9`AGi09bg5NFc0!mME*K!j%)!AS3%ZoL)&x}@7uNfX*!+2! zJfYdnQZ~@ZsV&LQZ3wy(ni!OsOBMlCg0?IXpJg=JJUB-|*MU&)lr-aNmS*aFS0N_B{?-o1e%%&s57l^Nqau-bmrz0Xlrgz0 z*39bsb)dsz!O@{kH%1P^6&#^j>mbO4$D&3A^GiA9uoAr%2h>~m` znMQs)9wwXLETH(XPL_cp)P}~bq*xKlAQ@wC@>u!61{qx0f7Fszi3+A>9b{c4O9)o- zp8X}VwSCF=joZ7>xyvxTl7r3QKo9O&TbJB4S9UnOTgX5yb+^z)$_Vbb273~c`2*))d?YmyfhR7arb_;7x1s_Ad7L@o3#Vp z4^4EFKK{hu%5hP3lQ;&4Ff;_i#4JMDNN!8l4W+?(2K>41@2< zDq*W&h3_Q^xGqk%os!Tw@q8cqJjhd~lL0)Ei4)Ci+sHhr+fIs;DjtDyZ04Vp0M??t z)LV#Axw(dzk(@(p+vPmQdY=@i^D&qa$}uDSGm$O9xR*;La!IikDyBdqztn7sZQP(B z|9qT-Z;|z}p1Z#)p}_&!`rYYYT6PwwvR|^~cP7M|?!x7m5ab2DI=+s2X=d(fv6~hs zGq`Jau(%~p!4C5(r?QBj~yjutyJ>+6h_;kBQwFSsDs*bpiA`=N0PLWe&>{YP8%HepZuQ zQ3ok5pKcslG;3oHi{Rv7xBD0zab*4CNNB;CUPkCrf;8pEpC?R7y7rlTx;7NydC}jq zY~0B0hr5MS@^4VS;M&cqr|6G~qPN2}d>#wIcpFf_rNl7t4dysQu8->i^U->jmBpTj z2kiF^K`s>AD=ap@6!bUqY=rN6+Z(#o*VH+cD!s{{hvy(PWCdV0aIN3p>|$03Q&uj5 zMQ4#|RTISsYqdi+A0MF9My22St6nA zK+rxbNUJ=V4W-R#h#EtrZ@JJvqbG0=3*YothX6bZM&^EO@46TfMi`FTEoIJdByTuQ z(PwG@13H|^PtB}$LYJY8A7`_8B<4LDxw6yJ$~i zyJTY0u3F8CAyH7N%YMJj9zG8ljlYMV?w;JS%Wqh;s_H%Iu3>MxurA*6Tan-UT)NJ7 zebU~L+#td5VcP9OZhF<4-ksL*w0Gud%Rf>)tXrHB`IQK(T*Dzz>nd`0z&&+4R;Go4 z;`LVbn^T{EDTc9ZWiM3=6?465+a4q>DZN#_CH5k2wr>LHV=7u57`rX#8KqFq-o~{! z_gneHU~#Ho4SeB8uk6#CN4(6|bcOf#J>SbJyZYC>O|WcE9!o?DI{Jf9$}Dre)Y74i z=^I47oZ3y6h8{FQn4Ge`ccro*fciKw>I}c2Nx;fceZcxa=|1KBwTl7_?tb`GAe9hRKr`)2C}1kAD{@iL+t>oy{C=P9oDQmg|1}dxch8N^-ct_qD~PvR7Ddt{^{G~ z;xB$iwVsQN!ihGalOP;N9DF~;&ZL(s%g!OS5qf;0lm^v{hM?5r!z;n=!6(0vQo`3h zuKSA03{+gP;VpBM)CjM1b30ncmSzI93icU`JJiLYu1}B5rZHi>ruK=^73i`J<0m`) zkCuk$4!Bok^25dB+76$Y*n?bYChCjw$VD%9#VfX7FKPawTdGw`^PUC#NawYT2odBS zE0NA~sA8Ow{vI+bTINJoBlxNjFB*kaZu z9``kf(t#n+7H(aTbhW+yg)0+mPg-ma#OUxY8IaN8awK4O(OxUGVhx%wc1S+dFrIy-b8r(jQcYF zn?!W#E8-8ZcGkY;n!WgJwLpxnj9}3n2(l+&lYdt%R%9~CC<4tRB1;HjKNM{630+;J zeWh!--RdfgJOm3l;@qkkH0AC-^jo_^Mun@HYZ}$a;l*FTm|-KU?{3EpS^16g9B9}1 z)T@Ka=&{y)gOv_%+N|JC&y;0NCZc=MAy}*zyQ$OHm7&L7i`#Kt4{TI>aAOAd0BVdM zvW;)s3xRw2wj9+Vqby=nW)UIB^8NfJ;sk?VET1X;xkBgaoR+)0M+ZMBaeVQCEZOcA zV@y`rz!1TyeMj=!-0ZRS!a`Dr#srsD060Ul+#QgpIoLz}320@_;xX%xg%B)(T$twA zFh&@v-;>t(i%v2WJjh{X*PmdSlri*tG(uB0|zq>NV z!O6?;q+<7BKc6?8be;b+w~R1bw5U?{etX0pp6pc#D#B&}Eq7ytbIpFoIVyR=r*5vy zyos3@J9neiQ_!Y^^W~Osg1kt5!;Y8jcH5fMaLI#Lpt5f8j0b3@{(3wKvm?S}1ho$- zU?^ij-!pLv>2K4Wdc*x8;c96WgQtnX8SZalAVHyP1>E#i?htP7_@HkWXyBmc`GgHH}(A(+3VPA{smjz?G$Yqqv~9P6D8 z-<|ziz;ZlG1Yzgg=-j)~zAix@YfO?}QKD|NU_m%j47+Jbv9gXVdhB_cR?I+>TD9E! zPST@;&-CcnfEX_X$dJhp^t!fwaA6^BWrPI+RL{FvzBpb_obt zH@2!A;G^5^HE(rld#-k^$WOYHzwnH7-0q4r@cZ=Hj8u@up%PR`U;nK-+$+whq}|A07_Z2VOE&Jlh1 zOgqEyS%idAOnivq!5pZXEpB@!D9cGEjr8T$N)AOyq~C&)T?kU*4EUd-jrDw}C4pJ*(kJoFA|0 z?1!MTY>$n{?eQ{j)qfC4};~9^h?_cIeqK;_d~JxMDP&~_27M+FZ9d*^3olg^ERe2)42i2rTONO}SH)FR2!s83D4K}Mfw z3`A!?} z%Rxw+AXn!gHx-uvw^IXs|MU z|2M%#{eko;f&Whg3t#u3VCMigfR?N8EjO6HxASc`b2n$#hyJ~8YNv+)`bcBlDs9Z8 F{{RRLc7^}| literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-icons_6da8d5_256x240.png b/public/assets/css/images/ui-icons_6da8d5_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..f7809f8566cd0aaef9af00e7caeca9d3720cf1b0 GIT binary patch literal 4549 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 DTfr$v literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-icons_d8e7f3_256x240.png b/public/assets/css/images/ui-icons_d8e7f3_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..9b46228fb1e80406b2a9a65b694e5674494c2775 GIT binary patch literal 4549 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 DwY1D= literal 0 HcmV?d00001 diff --git a/public/assets/css/images/ui-icons_f9bd01_256x240.png b/public/assets/css/images/ui-icons_f9bd01_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..f1f0531ad5b02b7f891d84a6b6db6ce7290b65de GIT binary patch literal 4549 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 D=xKF{ literal 0 HcmV?d00001 diff --git a/public/assets/css/ionslider/ion.rangeSlider.css b/public/assets/css/ionslider/ion.rangeSlider.css new file mode 100755 index 00000000..052d477e --- /dev/null +++ b/public/assets/css/ionslider/ion.rangeSlider.css @@ -0,0 +1,126 @@ +/* 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/public/assets/css/ionslider/ion.rangeSlider.skinFlat.css b/public/assets/css/ionslider/ion.rangeSlider.skinFlat.css new file mode 100755 index 00000000..8618e1bc --- /dev/null +++ b/public/assets/css/ionslider/ion.rangeSlider.skinFlat.css @@ -0,0 +1,89 @@ +/* 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/public/assets/css/ionslider/ion.rangeSlider.skinNice.css b/public/assets/css/ionslider/ion.rangeSlider.skinNice.css new file mode 100755 index 00000000..51063a75 --- /dev/null +++ b/public/assets/css/ionslider/ion.rangeSlider.skinNice.css @@ -0,0 +1,85 @@ +/* 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/public/assets/css/jvectormap/jquery-jvectormap-1.2.2.css b/public/assets/css/jvectormap/jquery-jvectormap-1.2.2.css new file mode 100755 index 00000000..5178c188 --- /dev/null +++ b/public/assets/css/jvectormap/jquery-jvectormap-1.2.2.css @@ -0,0 +1,36 @@ +.jvectormap-label { + position: absolute; + display: none; + border: solid 1px #CDCDCD; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #292929; + color: white; + font-size: 10px!important; + padding: 3px; + z-index: 9999; +} + +.jvectormap-zoomin, .jvectormap-zoomout { + position: absolute; + left: 10px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #292929; + padding: 5px; + color: white; + cursor: pointer; + line-height: 10px; + text-align: center; + font-weight: bold; +} + +.jvectormap-zoomin { + top: 10px; +} + +.jvectormap-zoomout { + top: 35px; +} \ No newline at end of file diff --git a/public/assets/css/morris/morris.css b/public/assets/css/morris/morris.css new file mode 100755 index 00000000..ed0b490c --- /dev/null +++ b/public/assets/css/morris/morris.css @@ -0,0 +1,2 @@ +.morris-hover{position:absolute;z-index:1090;}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#f9f9f9;background:rgba(0, 0, 0, 0.8);border:solid 2px rgba(0, 0, 0, 0.9);font-weight: 600;font-size:14px;text-align:center;}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0;} +.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0;} diff --git a/public/assets/css/phpci.css b/public/assets/css/phpci.css index faff0ad0..06aa9163 100644 --- a/public/assets/css/phpci.css +++ b/public/assets/css/phpci.css @@ -44,31 +44,7 @@ h1 { } -.build-info-panel { -} - - .build-info-panel h1.panel-title { - border: 0; - font-size: 2em; - font-weight: bold; - padding: 0; - } - - .build-info-panel h1.panel-title span { - font-weight: normal; - } - - .build-info-panel img { - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 2px 2px 2px rgba(0,0,0,0.1); - margin: 7px 15px 15px 7px; - } - - .build-info-panel #build-info { - margin-left: 90px; - } #loading { background: #246; diff --git a/public/assets/css/timepicker/bootstrap-timepicker.css b/public/assets/css/timepicker/bootstrap-timepicker.css new file mode 100755 index 00000000..873e0c72 --- /dev/null +++ b/public/assets/css/timepicker/bootstrap-timepicker.css @@ -0,0 +1,121 @@ +/*! + * Timepicker Component for Twitter Bootstrap + * + * Copyright 2013 Joris de Wit + * + * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +.bootstrap-timepicker { + position: relative; +} +.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu { + left: auto; + right: 0; +} +.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before { + left: auto; + right: 12px; +} +.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after { + left: auto; + right: 13px; +} +.bootstrap-timepicker .add-on { + cursor: pointer; +} +.bootstrap-timepicker .add-on i { + display: inline-block; + width: 16px; + height: 16px; +} +.bootstrap-timepicker-widget.dropdown-menu { + padding: 2px 3px 2px 2px; +} +.bootstrap-timepicker-widget.dropdown-menu.open { + display: inline-block; +} +.bootstrap-timepicker-widget.dropdown-menu:before { + border-bottom: 7px solid rgba(0, 0, 0, 0.2); + border-left: 7px solid transparent; + border-right: 7px solid transparent; + content: ""; + display: inline-block; + left: 9px; + position: absolute; + top: -7px; +} +.bootstrap-timepicker-widget.dropdown-menu:after { + border-bottom: 6px solid #FFFFFF; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + content: ""; + display: inline-block; + left: 10px; + position: absolute; + top: -6px; +} +.bootstrap-timepicker-widget a.btn, +.bootstrap-timepicker-widget input { + border-radius: 4px; +} +.bootstrap-timepicker-widget table { + width: 100%; + margin: 0; +} +.bootstrap-timepicker-widget table td { + text-align: center; + height: 30px; + margin: 0; + padding: 2px; +} +.bootstrap-timepicker-widget table td:not(.separator) { + min-width: 30px; +} +.bootstrap-timepicker-widget table td span { + width: 100%; +} +.bootstrap-timepicker-widget table td a { + border: 1px transparent solid; + width: 100%; + display: inline-block; + margin: 0; + padding: 8px 0; + outline: 0; + color: #333; +} +.bootstrap-timepicker-widget table td a:hover { + text-decoration: none; + background-color: #eee; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + border-color: #ddd; +} +.bootstrap-timepicker-widget table td a i { + margin-top: 2px; +} +.bootstrap-timepicker-widget table td input { + width: 25px; + margin: 0; + text-align: center; +} +.bootstrap-timepicker-widget .modal-content { + padding: 4px; +} +@media (min-width: 767px) { + .bootstrap-timepicker-widget.modal { + width: 200px; + margin-left: -100px; + } +} +@media (max-width: 767px) { + .bootstrap-timepicker { + width: 100%; + } + .bootstrap-timepicker .dropdown-menu { + width: 100%; + } +} diff --git a/public/assets/css/timepicker/bootstrap-timepicker.min.css b/public/assets/css/timepicker/bootstrap-timepicker.min.css new file mode 100755 index 00000000..b59d6f76 --- /dev/null +++ b/public/assets/css/timepicker/bootstrap-timepicker.min.css @@ -0,0 +1,10 @@ +/*! + * Timepicker Component for Twitter Bootstrap + * + * Copyright 2013 Joris de Wit + * + * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */.bootstrap-timepicker{position:relative}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu{left:auto;right:0}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before{left:auto;right:12px}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after{left:auto;right:13px}.bootstrap-timepicker .add-on{cursor:pointer}.bootstrap-timepicker .add-on i{display:inline-block;width:16px;height:16px}.bootstrap-timepicker-widget.dropdown-menu{padding:2px 3px 2px 2px}.bootstrap-timepicker-widget.dropdown-menu.open{display:inline-block}.bootstrap-timepicker-widget.dropdown-menu:before{border-bottom:7px solid rgba(0,0,0,0.2);border-left:7px solid transparent;border-right:7px solid transparent;content:"";display:inline-block;left:9px;position:absolute;top:-7px}.bootstrap-timepicker-widget.dropdown-menu:after{border-bottom:6px solid #fff;border-left:6px solid transparent;border-right:6px solid transparent;content:"";display:inline-block;left:10px;position:absolute;top:-6px}.bootstrap-timepicker-widget a.btn,.bootstrap-timepicker-widget input{border-radius:4px}.bootstrap-timepicker-widget table{width:100%;margin:0}.bootstrap-timepicker-widget table td{text-align:center;height:30px;margin:0;padding:2px}.bootstrap-timepicker-widget table td:not(.separator){min-width:30px}.bootstrap-timepicker-widget table td span{width:100%}.bootstrap-timepicker-widget table td a{border:1px transparent solid;width:100%;display:inline-block;margin:0;padding:8px 0;outline:0;color:#333}.bootstrap-timepicker-widget table td a:hover{text-decoration:none;background-color:#eee;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-color:#ddd}.bootstrap-timepicker-widget table td a i{margin-top:2px}.bootstrap-timepicker-widget table td input{width:25px;margin:0;text-align:center}.bootstrap-timepicker-widget .modal-content{padding:4px}@media(min-width:767px){.bootstrap-timepicker-widget.modal{width:200px;margin-left:-100px}}@media(max-width:767px){.bootstrap-timepicker{width:100%}.bootstrap-timepicker .dropdown-menu{width:100%}} \ No newline at end of file diff --git a/public/assets/fonts/glyphicons-halflings-regular.eot b/public/assets/fonts/glyphicons-halflings-regular.eot index 4a4ca865d67e86f961bc6e2ef00bffa4e34bb9ed..423bd5d3a20b804f596e04e5cd02fb4f16cfcbc1 100755 GIT binary patch delta 19858 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�&-&G!WRnU_dGhO~6@ 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 JDHiiDCMB)T*>@ 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 - - + + - + @@ -46,7 +46,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -71,14 +71,14 @@ - - + + - + @@ -93,10 +93,10 @@ - + - + @@ -110,13 +110,13 @@ - - - + + + - - - + + + @@ -127,14 +127,14 @@ - - + + - - + + @@ -148,33 +148,33 @@ - - + + - - + + - - - - - - - - + + + + + + + + - - - - + + + + - - + + @@ -187,15 +187,15 @@ - + - - + + @@ -204,11 +204,11 @@ - + - - + + @@ -221,9 +221,9 @@ - - + + - + \ No newline at end of file diff --git a/public/assets/fonts/glyphicons-halflings-regular.ttf b/public/assets/fonts/glyphicons-halflings-regular.ttf index 67fa00bf83801d2fa568546b982c80d27f6ef74e..a498ef4e7c8b556fc36f580c5ff524025bb11c84 100755 GIT binary patch delta 4608 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 Y_=v$dDawI{ma%FsiY;MtkB0WY02poREC2ui delta 22555 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 O(9J%VfB5J1as3-`K^%tw literal 0 HcmV?d00001 diff --git a/public/assets/img/ajax-loader1.gif b/public/assets/img/ajax-loader1.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc70a7a8b3d426c30e76686fac70c0dcd4c70125 GIT binary patch literal 8238 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 literal 0 HcmV?d00001 diff --git a/public/assets/img/avatar.png b/public/assets/img/avatar.png new file mode 100755 index 0000000000000000000000000000000000000000..0ef6233d1dc80547a382d0cfee2c3d15b9ca0849 GIT binary patch literal 27738 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

      8*SIASA6s*S%H`VI(iYexc?be}fdxH{d z-8&DF61dVH03H{QzrYh$eY!ryn*-x-?8HOE-x$F3nsg@0R1&#uD>6(aPB;5&!s4 zp_@Znl1*D_KS%U!S+#zCeq?o=mi=Sr+%P9cTXmU|Uko(3)&5Z=`Wy=Um^Qt-l7!B; z4MB$m%czyr9tyh;-+rU?J9_a&ZQJi$Agt|qZ3=m2@)h_acNe)1(7D~{YXfW~hQx&~ zIQ{ekIR#gQtL(aH%=YSInXh&02fgYYcrXA5$5k8D0pWSQCXg^PPnoZENJFX%T7r*U zta>plJO$jn`hUAUp3>>~5}%O>DAPBY2(y{~1u@F5qPtB#vOPZFUAOwEA_}af?%C2uq-vGnc!~DqFilln5^~K&9n(W05JK~d#s*D{j;2{!6uy#UH zN^DI7kE8@#H-o>|(Y^ z*eBsE{XZczPBI6F@=rSV<+sUx#J`KAb7mJL-hCmqa zgK)TnkkiQ*xkc6N9Q2uFIRG`|E4w$lpVfGjS71__eGnt_lnx_DR6;2e5ts9vC)m2!KAu9uy&7oo#!vBCJWxzyyu6#a(V!0`V_h*+_Qt|AT>Xii>kED zX9gNKT6?Jf{39PwdzY;o?S)Wdh)wRJC94&K7kf~4Z;n_6%@MUJ_ z$L-Gk@bD|CZ?GyBpgV}doeT*(nd&n{P*U;nkF6vY13uuf@rq+Y$5gaYZ?$G$SBgIB zjV|F}9H@|oKC0sB@!sEafY{(OR@lWteLPa)uebB`yk%6m;#1QfY;*oS%j6N$T4NtC zHNE$1qG{_09A{|Xeh~8-#`o}isu^d=RP^9fx60mfUvjBQyF;EB9z#FOqQzo40|V3R zrv9wd&v5j$moYb0kHCt}^MbDoCQzvtzc&i`()%@N$1+`yy9V*Pp%+&}V}ZPU&3HQB zQ&9{_bFbM1d@lfAdkrxT=N0k}^O5(nCR}2frGdCB*+QmY|C*Sbn!WY>{7irNF9)|0 zEp1Gjuf(***leZHE>6rbL4&l?cmDEf)~3=Hdn7AR5W!{oOvY(49mGc#kN+*N!mYsMh( zc~ywKCFpwaTWA3PvP$4FY zVU0I?CoOe}3p(g=Vl<%~LbYDV*#Ym+N*<4hygsPV=&Ef87~)+EYtw=(8UL6I8NBm% zfhf9CE$Lh=F1xgiiz*ZYci}xTCX)!Tejn<)IiNUu;{FkTBlspH;u8{<`suQ5GZBI+8rj5nr|IBu0J_Cz zoBe@oqfxQ9Yt8c2CY~Na(3`AQ-d~!3Bjz41Juc1CS0~nI)%|W3H+wy>ZrG!yuv$U` zw3Pe1Z11A6fn}h@mCG#dw}DI$bs2FhyE|h<&aBhps&*k}3;*+rb_kUov-v~JT99Qz zsq~w_tJ&1^-N6r~cMq9O&F4yq$Nk5LfWXHANwK`MoAb-HldS8vBDHyhE&bPZA&#JC{ak7) zWX`D(^oulmk!y zVjPkA94{58ahXG@0#2nbCuMQV^(yttiP`ka(5ODsXdcZ&^|PqWN}HU4l}%9dYHw%Y z_uRGC@$cU?UG#=>SO5CE7F0s_b%_?ru17K&Zc`}J#?d>`F6IhM4+X#}=MlM!dZkyc zCY4RjhSg230ZPtmr-@63*NJ|hOO=yWeJJn%e`2hDes{e0!N$QHWWvU!{mvx5nedKl;P(*X!EmflnFNaiZRTPBF0zYRry*cV4em z{%zgMr891F%D4`2oQGbLK*;%Q4EN$}6_UH%EKGVHsh8_m30f}VK9_$$0}dno4Kr(S zXd@(8C^Hf3{1@tY^rii5B%7B&1e2L)Ul_?3?(4EMx=#d z>zy#oJ|n(t=cGTe7Pr@mTGi7$^8EObTcIBmoM${1H2M=y;=}%G)%|qcVXxC zXMtzEbt?$X2Rf3l1sjhF=n+^4kOnl`bN+B2TjG8nl

      *-`d8R5g^GAe7X9kwhRR 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 X7JJ2FuUPCAi@jp8S1k7bKNkBxb#p1P literal 0 HcmV?d00001 diff --git a/public/assets/img/avatar04.png b/public/assets/img/avatar04.png new file mode 100755 index 0000000000000000000000000000000000000000..63fa709b904eed94a502a53c6805a43842673e7e GIT binary patch literal 44586 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 literal 0 HcmV?d00001 diff --git a/public/assets/img/avatar3.png b/public/assets/img/avatar3.png new file mode 100755 index 0000000000000000000000000000000000000000..b1afb21b9096261bec3fbaf033e688507229a13d GIT binary patch literal 32476 zcmeI(DN^c07wYP zzmrn;oZr{S&QzD3-r};m6bx9|JrH+*NzK%i27a#i@~4FDGaf5_Ar^@(eep&#Hv++p zh!4ldz`&59l@ET0Ci~yV1p03q^jE$Y<*Rj5QyLf3`)zOiEU(W`vm)|4l{6f)U6x5o zD9w*;`v!-1+UrXv^xSO5e)QUmkCS=4Pxz4}t{-td`RkLI%7^wXf}NwF${H{4PxW>! zJA5x=qmaEX{(QU;&6wIa$Dv2-|M$`+(sF=4Q^Ljyv%(Hj^Jjnom*yhQf5?Gv79JlD z+8z46IW##kgTmyAgBV(M@kc2}f8F^t{+=IS!+~m?k)pAk>e`uH5I%#K%!5KG(b!yg zD^~4;g-!ULX}-g(U_HtZsnUujjqZyY!p&*5WAU%|)5EM7xDC#xLt}$lm|XZc^x*|+ zSi_7_v(phe&y^02`T}npzr+m3#@I5!Gz2ZG_P$?yL59fCY(+NY?a-*7Lzc=gwC_6u zD#t0y27;q%x#9(gr~9!ahiz2#K2D!zPWRgoXp*97G9$yv03&TUY7;$fPEtibm-D3? z5F$?(#P(y$NE@Tu0TDc81!dc__KpqF2!q73VsO3)@381ag!1HIy&ogcW}nM>8+@}3 zi5=MjHcvYR(M`(7vojjVXc~6kE$6DiE_c_ zAx=h)W}Hg<&5N$l%u7`N>iakr1PY8sXe^5c-c=4*(Q4Yj`d=%PQcTpyYjk+1OO#g0 z>t9dtXqWTaauhC4@H|_+81mY6m(f?XR}s|#4$J}@$E&u8y3jzp z2UplJ{#p&aEtB2RbDaZ8t)I$kY&qVYO_2T#8~t%J1cGKogU~#e+fGI2#j7pR;R?$R z4E(zPoz{%zRYEr2*MG20uYKie!O#a3f)(qQ9{LHXI@I2f1Y!lH&z>$*eM?J?Lphs| z8%!~ln=7k~Ul|1-`|P^2m1DUO&s-Th=yAaFhL>Afn{9{KsPa@(|V@i@x3K7$) z)-L+EeJwxt;0Xly;$$2BZhloMWZLX-B20)9AQSwI%Bh1ujtxV=a0gLuXJd@g1?|Z1 z{+Lep2V_yf&BBS>{;O~?n0bH)gHWBVX^7-uHv@-Bu?#|46y9aGQ+Zy3OTPUV_9B=L z+s6s z9O(-wh%*X4PnQwn)8=^wNB4BP5~rT02Y#4-XHZDa(vX?Xa$`3pxoCj^Y4aBU-alw> zGEjME_opQUQ_B!qcvBXq!_q7z^p5ryTM8Y8 z#_I*#vec@HlVo%#3>s20!+WLE_d^n)g-t)@t6nL^@=j8DHY2oTWz&LEy6V+Cgu)9! zMp#&=ztEM=m@o^h*eFSYFFn+NJ)hmj5}&x;X>j`U=a_e^OKJ`5hR=i8CjR}>qXT{1 zc5aae#%K1w$_%Ams4>RXunxFTs+gl>e^&jhy;>$ssdFqODl%Gq$3x$b6qK5@hbY*> zD?ueFUgmqjvI_k4Zh&B4{@dyD9yUh7e-u>40t7Nd6?vcWMYdH)fnizUU4ZfGFSqHh zVfcKbT=4iVTT{ySUE$08`0Eyg`9QE``%eWk_!-E|s2H_IUo#@NK03MnC4;HAJdve}Ydd0G<_U{~$l0_(VnId4E#g=Ky<^FzH_rk|dcT@F zu$V9<)`^j&Rdp@Rt`O*f0>^@*sQg%{7I-%aYp#GUM+;su-Jw9Y*bCwhIS1eO>vYL? zUgnOyz!6_~93lU3njeA8Vhq)6sJ%zh$6&Up7y6B9WD}b;j$P?H4zf`O&;NsOq@{wZ zzxGQHRPBH6CmnbO7cCW`rTeLJ-H4R?fe zhq|N=M;QwPi+6lF`R$PsfhlU+GuaPz?kgJ@Rc}o^4~kMB1Az3TdE%tfPVh@Lm=nj| zwGP_lygrN*z_Rk5;5kZ{PrNK&J&_sovF57mCxA88hbWRljf;~A^|+gKwUs)|w51cL z*HnqEUaGyuv6O@Jgdfd8NN89rS<%cIeLK}d23r1L?&O9!EikbpGs3Wjo;N2a!UDm7 zlZ-xx&2!;cTqyZ$9&)qy!g<1g`iPKMkgSIcCN^R$zeYd`hri-YM^x(}W?1yH&NMLw7>FX6 zZMiCSxrFwaBVGm<;et#H_;1>b`{RiS;Bb|2dK&byDQU{D_9JwbHfeR3%R=cf9cGYk z=yOCaI0RW`=c@fV>NifI0{Oy_bjo}*@HIUONl#AxpA60_rhaA)S&em(V%D&=bEQ*o zClo*7%Z%GreLthq1Z~aEkj{ft2-^g1w=tuDG)9HlYfqu_Zb3L*Oh>U?bC-_t(bSch zu$Cy2d7IkXd??eGPQZnkl#jD4c|5E5S@=ofSRh;aJAJP5?(XpHTb_n!+7wq;0ckAq&i7~ zm;1h@-w|lsgwz3Vz8jXQYFkn=7N*#wx0hR(pN>VnowO!an=zI+<`QCjO;aa!6D3GV z_Ew;y3Pa%)VpFJXlZ-#b1vkX#P%<1~1Q^NTp)oDXj;t`8EH|G=GTUlaqH0DqT=F~iP zOI~yQwgL|;RRIP^gAh>ux>9zyPaQtUIuQv$2m2~gsbUBOr5CRA5pqg&e|4Z@Eh3O; z&lJd$Ms$x5{5p_pQcq7_6Vh#~xsD166tvoEk}MCe0NB zf>aU6cj$r4IpD(kxc;idI%ruZm;t5VkXRxuM&!f3ZEf(BsY9{kXRu;`i!Bi%ubSuB zb-v@jXyu5*Zj|(8Crf6i-(eY6YHr<2u2b2A8nR6-*hFx;)q zc_Csb3RPu}A7Vs!1wAUZ_Z4n1;hlTI{~fhP$w>w5v!EAgJDW-}puhmDo!k1<|40O# zvSK0flI{AwF)|nQTOdKK2i@zVS4jrN8u%3uU;-Z=XW^>74cv|wojY>=;q*OP86-Gr z^S0!e;%z&%**Q9Sph<0Dzu9L3`jBx0UO0@dFo7~TcGQes&ZQj{}h~Wt28)F!Vi__NHMzYJmiXZJr4s$l^lqbr1q1^C^mY!XA61QNo>5cf5s)C-GRI@W#hh(b0T|l10DMSA@k&H)-77DKFu{N0 zzPC#_(AV)4b`gURhK-?b#@F6e{vtdLkr%po=tdPI1VH0i$=ctF@dbQZ3>{eB+~sqY%0O*l#g7*leN zi(D0vl}^w>IbRI?6;loq4DP_+NyUyN|7|rPqKcKSbA%OHYB(aF5@ht|B^X)$lRO*lQl`L4F6mc4g+c$hY!<)k!EezT1Dt0SenM3)iD+ZBlqSFrP#L(U|Y}JCG9AA165EQ8g=>W^I z5}2%D{qqBr4F=1l1scc#2kI6;_+eB1+WATThM1}Y+d<(mvE1V~ydW4I;RxCL6D?l% z-2*f)al&yuf;L^Pb0-a|P&;**P`1d@7v(Ls&0IRLUICaI;uPi<$1!4b{-^CeNRiaf zabD{r)@a0wNG=|_{1`G=*h#DsXk9538w7fw&0R7K-1`G*eO)Kmj=|CI#UvHp_B+YD z(OXQ4w)LlG-pTIznYHwGN}c6Md|jZ;)E@_a)G*n(H+ zXWRmQ$T>Epl~B%UP^n|0j(npfCp>y?mgqzW|V5V_DN%>U=c8~$Y_fju=eFb*LsdJ>7B-` z8122t^RZoir={e`P$1OilUUw>IC4UJ}H$7GDv}_LgC$D)mQd0n#a0Y2YlbHpMh!WGeh0(%u0& zehawlpw{~T$v0Xs5{B^?wyHUc1#Pn2Sb)cZyu#4)gxh>aqJ9aDZ~A3g-_+)C3u3g3}`UqJgU7Sy!i`F#1W51GY#~haIn3j7x)8;x$)5T*3uzNXp#@F}G7wrWQgb20e zU5ZjBtTg;^2qyfwn3~aDzx~vY0fWmkg(9kWw9%q2cLp;+x~&;EwHE`-~vP zhXYs>msZY`!P))wk`VW@+2%+WD{sSR0n#iXBkWzFw6uxTvx2 zTS{kwF{fuE5#vFMLRXq2IVeb-lIzKL**cH+ZJL60*7U)ZR11PXFhDH7!Gj9LcD|g+ zA^=@sFLEWSw`nIg7vlqE9SrKC%()6Io4>n^@2s~o%>ON2Us&g2^f8rM82*0jQDoiS zhRm+8Pd#|scL+#mwsW>lU!v{aI47o|Xx;8N`VJf^g4{Mj=3M=^b&VNwR+@TvaKRJ# zHN|!9b@6Rb;pCK9nvKgmFZC_<=jJ1RWFj*XZx373{@cFzS@Rpida2HLUXwpdoMYgp z%5|MH86rTKa>IMTeky61E?F^?MdVP0q9U1v;K3dfT$dWT7*Dm<2jcwM=ESYTX}BsL z{S3~E1HIXbE(|#Zh4~8DzSvI}e4$Lpo&{Mc%aXBde@pzUC)qs8ss}E`KZrKFC@*8J z-G0Ddry^7y-M=qWK!{_hLM}~mvhuy2Ej7{R4SJ5c6u$qZ}Gt}LnqB=bN*&xtZk{D z*9JzHu?>L5p0ay4dWAcSwm^C%7Cz*1WXMMK5dIXAxtSRF6k;_Pnva_>u}Yu?Ych9$ z?Wfob!>~ku+Ek~Q5~S9nPUcs;1dV5a(6hs)DCIJ?0{ujn=a_9{O-vDWGjOW|b~(MX zpXsJ9R{J#~|5i_U2li${fbIc8Qt$sAD!9BPbmyOy%t%{_m@bD>dXycu&&fq-ri>NG z#LB~cWP-(J;8KeM9=@x`bbxwpmHz^Abh7A7Wu|;?yN+`?59f@MP8THd{6@YxUzcV( z&D2|T->3_hagmB#2$#aRW5~y{ffs+xlDrZl#S$~)R@4}M|; z^V97ypX`N~eU}Vxi_Lrqhp8uW@tm8-g>Eja;=Jq@fTGof@1Sw)tZ;G438lc@+kt8) z{@ZS%m!BJ)IPU#a#NgD!WweP{+cyq=>E{L>b_)vMvE6=JW8GOH|Dn&fTY}4Vn?tWX zcH-$pmX-_0aWSmV;nce`2NVPQzr|NQ!6VtD*7bhlNh?fLiJM6MA0FaH})h<==p#ftm2|6l^# z*84Bg8<%CZdupqq6-T%?JxndUhbC@wqq)h|WV^RwhHse%>m|{lY^G-F_NrgN7XF#n zMLA}A+DwQ79*xq$qUE+$#@Il2?eOTqKkNMdlxXS?AfWsAge-^mFoByJLlaQJYnM(A zMeMEoMN#@#r)b0`5%lCs_d*>y)Hb}XU{Q-|4|&$T`);m2g)^Wwkuz8LT`HHsn8EgT zu3cfrA}7DOrw1$LT%twHfy_G4?c1lj6;fW7pG>52yGnd`-V=4t-WJ1Pme<~+?lV5^ zzPqrirUKhfO44eX!P@3-I#P>{z&hJa>g`TUkpQEJZEfFXFN_$P$+@OpTJ?>^-n5`> zYonQl$?r=6VgGzClroZLvbUo5NMaV z?^-#nImpy>zUXapsnx(VgKgD+X+eFu7tAdCw(>tLX3wQQ7EH-$?bxvWTZ9^?J==H1 zUo&qK*Z7)!ultA!C#GXYy7qP;Rh;}B?Np>Of0X&&pXa4xz3pnBi17ISy0cjnwJWx8448Fycb=e(E~()SuVUck!&_h1jpjH#5X&TWKrff6%tIOP^y={>`LWyLG4( zP*k-3i;Cs<(iYnGZ+>$T9`*yA9KEAdOY@p`N^x;deY>`}(`VwibERu#WlqiY>JM78 zuTkc?sJOmr5;v!#xHnPx&M{;8?mgosf7=^EBbKVP=Rv1R)irjQU`GbC`OPjeXp3_` zL(wzn#fp5Yd)ZM6fvf~%Sq0qf=k7ens4H&&iX&U}bBYqx-&=joOP{$(WL<+9f3}O} z?&CPR`U@%>#tOJJn{qDpXAC~;vpsjruU9u5G@~52X!7uSroUW0&VGc1>A!5B2)4h7 zEsyn@jbPbu{~<3!qm(j}UP!pN_Tg&9)MeS}Ab>l2?uJKS9KO_4Ipw;uuG(B@UUB0^ zqa$SN+5xApgZZ8Zk~@Wnzp9enxJtMYDd%f(rhwbgAO7%+Y-*ce;yx2=-kzdtmZF(Y7 zY`vN)SF68Hq(j@^#%9iJo`v$HFa2_(hSSeFr=nSmzqbji&8$qBLQ&2fH6$UrMZ%++ zTga*CMbtu=_3PD&@dlJO_7+9zEC0AS{`%Urr}RMc^GuaPUp_UD`aKQFj}jU-e=dgD zh@1y%`UY$NPOtFhLknhjOM`tq8km;lf#c;NW2qEPpV@#2tMtZosU_7U+hG%2c!d(0 z`SM@vFO?UU;dkOX4Jv=r^P05BHm2Cl3!X!p+2bCoJ}sqG0{F%}?J_8xk9;x+f4!vQ z8ZsDO2c99~?Tq3`S~sXEe9z)Hd!RNo5}zTYFZXhrkT)2##Xw2q)!nx71D%FgOQmnr z0G58;y$~ElA=4y39Q4g!{cbb>LjJMJwrG~1GZX``RyWOb(bFI<+6pToUNH6JZ}53l z4~96g(*s&khSH{1j=#Fpp@I={4FW_`cKyekDfJV*=5+8DchPEG#zC)e>b>Bsj8w%^ z>^7;!rH}f0?y>UO@_f${3EgyR8s>P4wW9kZiHIdo9gfS^zqt=+^Er6E0z~Peux7kl z%mR(v^IIXP;Q!j^UQ8)j-X(3q;>MtB{D<>`>OGNFdH1~#R|;t{@9e|AnBw=9r|`L z=VBbWZ^A&*S9~P{Mb_7^uTNg(&UCvA9qYn0+S&GWOZ!pM>pf<>P4G#{iv8g1kr3xH zxS<^YttQ`*|2rAciv1Kf5P*1x3_WH8lt4wI*P8@ljE$-g06r^S@Ll zXtbSZ{)-7dSK%#?^a@gRH<;2+|rh18Dho#1y;iMn*g`^b=rHQ!Aoxu zCJgZpyeQT~HEm)hSJ&0gU!G6qpZV-tf3^OWGJKSVGUO@`16EeIj#gY6I>g8|?G)WE z?=Y>Hzl1NIfLamE*yJM9%!iRf9SyCK$-zbmKS^K!5|%drfxqRJn27a;H@aC|+7ecD z05%=iDmgR-U5XmF3yr@a^Sz=hkN)Ajq-^9s!diP`zol8JY3Fk2yu$ys!)jwpz7+tE~MoT81a zVf186*O0=C9kfeDwDSUk8*~(LL&9Oo$HUCYth_sd8#| z5F%Sv!iqi_=j3`kx#<)#s#^Zrz^Gy`Ettrf;E^c8nD=PoAKR^7rVFo38X?U5dU@@f zz{P(L8w#-qoc#!vx64{?z2}&J+b-!Y6;e)@nAnPP-fMX?iVYW@E;yJd_+nq^C5u;q z8ybbj3E+$t34XobjGjC5T>J6(FEi;EvplYId;+rg5Od<{*|k<2Xt-p}Fqw4ozTOfL za_-c@`1z~|5&W0SN^cXf*^9lH`VbBP3-U|`fqXJoT>xbh`jLQ;^ZDkY7e2_%l!8?- zv{|x-wIO|rl$ra^6)``5%u~(VJC&+|R&8#x)Q2C7eR7aaC#H8`X?(j0;H}f@M=d{t zyH;12Aqy5f#Ts@+l>M|>C<7~kcgMO$MiiFvd~?k>r^^&jc!5L2{wpWHc>?U5YCR1V zl{v{L){uXJsjn3~x!}U_e}SA;y2fc{e|AHSO7O~J9$MoB>)KQxIf@G@V+C$%CHPgh zykWY$7=?EO)&G`~9I8jR#nRK7m@w>?emt84ajMbl0JXlxN%DTXbO<2}j|}I~b3=5P zA-kSY?wy)zDA-=%(r5PJBQHfk6R9E`rYKfk_BwoS-~0WaRJ9~fl3yN2n5hIDj+q4v z*aCb4{pv2T$FAF#Nc3{%HtffFCZd4@^|$iWw+OfMGUB^(=Iv~CBETrynDcgB{n!5& z1B{*UIHMO+$Wf}9Z!^&Qb5H}^G?g_WHz$U1` zDdOwmFW-x}eCs6*EZx0eb|Z!9qw&??nME0ZVH$smw|9=*!H8IzXOJpe)&ov zDBtRw9;sl_cVEK+rzfFWdVfb#3XEP$J^g6`hA*1vpAa54_`L8jw>IMyE=?f+>sWp@ zN@G%Ew|72CR6bCm9X&{Cce6Yv2`>o+N^ zA5)I?Dh#q6j$BcdElg8MA}kRV3DaWzafcZfM|M#_nde>iWU2@Ny;bq(g+J3h5bhq}m&OTg`41ztxoSRv zQU{Autqf$8AWz5zbFyd|mb@xw;|-6Rru`ZsG(G$|w;cOTiA>nhQx(e;r`37WpYg*xG=+6Ex+~keA+M#MZBIk; zX)B){VvaVRF*Bwm>W-djwhpxMAk3YD}43Di*+P5^r4AI7@-Y>XDbG z5}53A&@RFa3oB?SWsR~=kEC9a{>zG{jxmobp;)-W1jCZ-9b9X`6?l2@jVhi4&a1zm zF(vy~VC%bo6p53iV1?{y4ky=YuMao&jQujpvWK2F6U=MuxLMG)tb4;g1cKW2Iy`%P z*c`a~g9mnGgkN)2P^y3jdr}7R?$84-uHGcKG7!u-qJ6C1J+-(P%Tlf!|Mt5RGct%h zMq^O(qxGme|7mwbJqk|^PrV4Ssp;J@N8ykWbR%Zz@yspV>j5j68x{xEfUww1wv&-EKw{k52(GLFCQkJeTFD}QXRZil> z+4T!S8Jr?V?`3Qd@HoQy2d6)eE%p{%C^vWs(QSUu^x&7+a1p#hHbYum!1>?iOTfT; z&Nhi$&I+hB7(7x4GCehs{3R@O>chBT(ZPpRX$qh)qkfn3wl?%6$KHw`^nX{RaQFxy z+L*m05-4_e+-?|o;z889f~Ay*Uu44T^g@5}h(Uk;ygDA_66Jqs*AX9`5#4Z~GV$J{*lpAjrwjj?-Oq-nIWF;QE`T-2CNvChmz>W8=;*sn+NIF1&|tuS*QI z<`=7D&OL-_V@t6z)>l@&FXstUF%LcF9pHiDM>ab+khT~qp(vUc}EnI&M?WiS<4!f&*iO^105P6HAcJ6eGl83Um)aOJT~OwmtnU#l##g=7xF zgk|Nd5ZHS4PNjJpXy2q9Ti>ti3B~z=sklQUhj5r5Dzm3t2?b^wN<%q39qBS!_TMs zx(evStRnAIu*7k~$YZNU^A?Z!0kqk$BjdFL{W$p8u|=at2QdL?kLl9$0IJ-m1VKF? zfm+L_ak8kI7`Ni9P){Ptf#DbG>F;g>>_Rg4>t{Mz>cAfjprV}OwbG{Q8KYhU7HGe1apL*5heP^z99rC1BBdI>sK>Hb+o*qn&v`J zHH77FU_J<4>6J}+UbrW3SgHLK<*?JGy+Gfm3QtP~q@al%Aynn@~+z8e>d8jK<^gf4uZuHo=)tstwUkA@X-6M9`TU3vE$dEt`0>uZM& z^}kCpn8}~kMnT*mw&#ije-?{Lp26)5WcLlCO>vKj-C7apePij-S%jT0aMoV^4e&xM z`{vV+O{*SWSb_-TaopN2s86HeCw+6$AmQAHwH}LAb1@Nz<3c=aO%Amy5B+2tMh1;~ z)A}M%U`OH5Lrt8)mgDSnJe6uZ?Lj(c&t7-O!EC2sHh)U{PngvzWFteB-xs%Z-_8e7FE$->v@YJ)DAHhNZOMxSaejT_CV} zmj!f_-mwj%gqE&&GZxmn{(I9~KSp(n=%uRbZ?AbjffnsTgoHMsu`g9u4zSbvFU}YC z>!CT3h0loVwpb15f}~7o;PH5*TUw8)HC;t;c|>F%k$&nyhm=+0_<#6NWcvdrwe7T# z!wb2|m9c=<6nu7(k7azvQ?dQzhSR#u!=#=Pjoitp>UgkxN{a3T&%Rw&Y>B8K^W8GM zUhoP}dAw(?JR!Gc84{}VuJ_>!<=pJV0gI6o%iD*lYP-*14Iue_cx0vGSCAgiw*UYR zk>TJ#dj%(I!PRd0wxcN*PqVNEDSQl2IQ~Ndxc}A|?{d)9x1TEyxnYo{wN8@eJSL_GB-*;H|)TWv$NGV z@R&CcWsa5Ypl{V{FRUI@jR}!LIEUHSo>XLk)Qb4Hje;2BA<*~M6} z3cxwD#O2veynhc_JV1=FT7B8)v?f{+{BwXP*=eIf>A|XV(V_qN`qIG;XeJ}yj9@zu z4`oCJ{=Is^ICOh7`!OCmJu&2ASonz}HxD@~@D0h4OD3MyFIL6Fho;OGu8>kN+ST}} zr|b8pvz-!X1q6|h2wMuQ|Djeoo95eG0~y?^k;if8hWwJzd@YSZ|HkD6GyAQJXu&${ z7eE4$fW&eRc^UJXEQJ7oQRP~!#9BorAh3;hFki`P1~ z+Vh(TJ|>JcY)@`Bhr^A=uEY*v0J+IM*FVR~2^j6&WxnjOA>|1jeyHlLs3C)L(@A-! z1u_Ts#vj6 zJa1Z>(o|4XPyr|t@mI}{QxMn9TKO@aZUpRjMrZ;%ALjf30IP7uQ?=Nbhiyw)1}s^%O%fez98H--Tuz<=vJFxo$XFV z(R!lLuJ;`S6eX^I$AxZ4+zM&Ic1mog0$t4U_?b?nr?q(_zh?xA!dlf&GiGaVu2lRX zabo}SJS#lgN^rR{Ll>b%H9z%$e5F`$&@5zu)VU>Gde!9i8ykK0P?_A zukQX@N_?k#xa`Fpg}d+1|C6r$S&VcG$Q$u6q_f>99&8E1Vu<7FS>*3|OnCbihiu9D zUq3G5&>KI$-PLOU_HeiIP_S}$;K5@IGdA%%abV&(w)4*6n`5x$ambGm{-mAg*RA|Q zD=^FkFs;e$rZk1-q=6pW)9GRY>mPldf~X9*vpt3|cpel-(~$MyK&}0av2OcS{22q0 z=y^x<1Hs7d?Z@xHZJQ`eeHg!V=#|5HP>Q< z5(I9sNm!8iWPwv@k39+vn?TU(z;k7~SG%&MZ`3xi!frP4N0B z8}jtnoZ3MkbKs~eb_NDfvo+~f<;wjORBC<-n*$iUEpmmHYG`bW&fN)!L^eRbB!g5lAKr&>j)xNuKG$f5o3Y($ekH;WWFA z=M6!1BDhTu@q+{*WgEV18+{fTC*mPpaE=YT?*DC{90*U{nA+P|rq(P;@29LQ7Vist82#yjC?5xsI29m-T z72%bk_02Fhthf)UEiy+M5b(B8X1+gm0u(X6{WgOo>9=PPUQ|R3MU-WrskryuR4_BX zGelSny-)~U3#(PP!7d%4jD^K{No1?Hv@;m-Y$K4lFR$Os#i`Tw%t|hotRiFlq9S&r zqpCfR!0%+_d-bWL>6{g7T8zJ6Cqen)1aEjT-e&@8wU|^{l)^fwj-B@U|Lznl=t5TV zTZ(T0`r7=1be*If9~?=7yvN2v>SL7bWa^k~i{dtS*q-*w8y5Z-zN}opF-Fi zbTSxE`X>rgXfhcThj%SMq>#Xd9!*^k#M7i^yv{9e@5c-AhWP7b_M=w?9th$BitmAe z=&;sViFmdnx+Py$Dx@@k@s(9AaiIh>@RbY`Mzrx5A%E}t!a!P9UpBY+H2E5(CL|94q902Y z+$*di8_ZUg?V5OJA0u%mp7N`hrf4u`d$)GUx)n(970`>&)M-;p zO#@)FND=^^lL`t^Y@-L@fz1+YBe0Rr+|!S%(Gq6>+-MAmlyKS+y-ueMY$i*DDatkS z7rgO-zXa^r{K9v| zGgJAj9*|n^S#vkhVfC~E3#b=l$HGT^IyQ{gQD5s8Vmg-=In}~XMi?5oD=4x_a{6Ps zTpd6BvCFtc4`8Cp)oN1TzjX~%G>ea5XEG4LQXBSwihom6xXQs7J`b3ZuXF+31`qSo zp;=ID7zA3N764@#R8@h_Tt>$~lISoK2`)J}Q;_jC)S=nXIRir8H?%|tjqO(&RT;M3 zX=7wc&aJv7g?pC{l|Pt^Dmn9{x_IU?z9yrkvL9cy0D4Xr2H)`qNBOZ^p*NB^wG!O$ z5JR~&G0Fr_e2P`;sjDrOcHHdyY3VGK#}+ce%g-oE7g<&R^9)eSE zWKh#S93{|>ZOpM%@LDINiJ4T3uR2%|r{@K>RiI~^u=s0DJk1MyggW1x*U9OMlx2?# z-hV?`l8Kfw4eh)bAcjEt*crG#4bSTkAb5*xD^2X6I9Ma6RLjuM4H8oAjB-I6GjPe} z5G0Ax9xk7s5v)$wflPlC+tEN67vPwjoR);F7czl-J}g*bU~6eN1ehCPHKo&;KzCjV z8B6k5lZMWXc7bm0M6rTg=Ge(@_0$Sn(czLB^XO>w2^y@nuNqo4UlHwNljucYJbToJ=GB)#D_w+Jfw5Adp88M93A}{YuBV%G{2;uR zmdn#Da~O{#Ih0reByIXz04n^ z5QAG4if)odb0txv(SO;#)Fy`z>SBu&`O@X3sttb@BKy=KR+cwJ(8Qo5dhSXnYMkmv zAy_~AP7xcvffaP4x%SrGJVB&kh*ne0N6oYP#jcrUd3U0!0l}rqf;t&hIb$Nz2|eag zBO1OouN!m>Ul1#i6iGWEt|=O5o|*m?B9;hNy4@4fe@y}F|I5cl(7tU7B50ANhQpg@ zM&E5ln&hWI4C>!ufGohyBeadS?T4{42HVw+k@5lL#^ncm7S2rx!M(S~Lf(dts~(Csat+T&yI*OCq8uxl zoH4XTy$1$4N@OdM{8&}S&w=(SruRo;>LmXKn`B;jvL^Pqq=Qe)5JM@Xby@<-ZYQ?S zPq6y_XbI>vBMN$kJqtjhZ|LX5Wd79x{*39N7hGDQI%0%AnGYcpdmCh&PgSj^T(8`R zo)@k+opxD1Wc0qBil%-ff{4wUL^IQZF@vd%*_7N6r|??Nlst4sE0|MNh5%XZXDMDy zF=A$ndCUa25dyQZ!1oS}At$~`=eZfVR38#x`0CcNKaE#$=S_?{6#Vb;8}g6^w2Ikp zE(2<|*URE;vgH2Eyug%pOHBX1yaNQU04lRCwFDF~tmB`<-=ZNZ9-6YqD_IZwzbxT-qZHG%Ai#OiMH~bPT}8^(?MAmo@KFhVMdu{9Q_H2=JirPq9)(%;+}pU-$ZgOHLo#re%6csqOdCoPNz| zoaMPGG_3-#T=>e;Ua@><1V-t?crwB2TUwPlYJ6$iVw6HJr%1_kDNvJ%hGN(T-Qwe! zxN}Sz7$NK;K1E7|5i~_Ps-Qg5;(JT4FaA&VYU9RAa|%Fm(Ah-C&Ip%iH~%0AdeKAd zA`Qe}UUy2e#bA(1zj9u4C~@g{UsAx-QDLh}Vs=kq>Hh~1E|q9+p8n^AgSpN7|n zO*J{pS3DnQ<1*bun-v z(BgkyF?imcpJ7&?(h^pR$37Ci+NJaOu+7TEugGJYjX^2=Y%jQGmm1%o&eN1V2&2y= zSxgLSPmN|V&3xO(VISJiY4+F_s^f;yTdDxvW3pP;wL-XyHpZFK=ggztS5$l)M$!)p z0kuSv<*DJpBUbLeit}v!UAOXWSentIvEvn~j>bg%Eh*J++iDJ6(*_E`EY3Kic)^y~ z$XfN@uqc~3Xlf)Vn}WPfq$uU;XXeo7AU2ve{2B9TnB}obTlsk0BHkSjE}1O znoQ@8)>_AeKbK;}WmYjG=R0DaB{9=1obbX~(Y4W`QrqE8Q`KZtx=(D3*;CZIb z2e1o!`N4cCi6gx{Bf(2KZK$TcLw5zFy_1o+lM%vl6<`&bkQOsMO!w&M0rIlS?<%B? zf+L@_{gbwT()Lf<{z=^{(k^trJ=(B literal 0 HcmV?d00001 diff --git a/public/assets/img/avatar5.png b/public/assets/img/avatar5.png new file mode 100755 index 0000000000000000000000000000000000000000..29ce634387f662bc995e3c74976f4f0a66b16d36 GIT binary patch literal 24988 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

      W9VUU7~UmyFp*>RoKf!p8p21Tp=FiCC^- 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 z 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 K`a)jEf^u?>fhOM5YL7bk8WeSLLV%X{eU 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

      UyQ@#a_Yyqdl7FjMkeRS-n=1F~$C{R+EJI6l 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 QPX7wFlm`|E-~K)I|9pP=5C8xG literal 0 HcmV?d00001 diff --git a/public/assets/img/blur-background08.jpg b/public/assets/img/blur-background08.jpg new file mode 100755 index 0000000000000000000000000000000000000000..de91f6cc57e259e3e1c4fabd583e01f35fba7c40 GIT binary patch literal 378156 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

      wSZ5SUkhB8s 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

      ~lsuK>hR+}cKm2{Q=04lZ4 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 literal 0 HcmV?d00001 diff --git a/public/assets/img/bootstrap-colorpicker/alpha-horizontal.png b/public/assets/img/bootstrap-colorpicker/alpha-horizontal.png new file mode 100755 index 0000000000000000000000000000000000000000..d0a65c08b0ed34d969cb0e93165a2e8b0ef9dbd7 GIT binary patch literal 3635 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 FV1h0U4od(4 literal 0 HcmV?d00001 diff --git a/public/assets/img/bootstrap-colorpicker/alpha.png b/public/assets/img/bootstrap-colorpicker/alpha.png new file mode 100755 index 0000000000000000000000000000000000000000..38043f1c85f20fe8ce37ad380bebe2d42d14fb29 GIT binary patch literal 3271 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 literal 0 HcmV?d00001 diff --git a/public/assets/img/bootstrap-colorpicker/hue.png b/public/assets/img/bootstrap-colorpicker/hue.png new file mode 100755 index 0000000000000000000000000000000000000000..d89560e999f86c349ddc78c298b0328293f13e1e GIT binary patch literal 2972 zcmV;N3uE+&P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0002TNklYh-CwU?_WJFGiSuyFI7O%ZCvQLI&jSS3X-a=Rj zn_)Mqp$2~JsJ6GkQ8*9R;Xb^De32J&N3O`3GErv#oc>)7$qv~dOMEUi-vaKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000-9Nklgd{P=F-nx5QO zZEx=G>NhX0YhpROPrO4fr5v{5J>1>X=ZItO-r?HTd++YPxqFY#x~_d$mbNTQ`{}2j z`fKm~zs&4E?E7aEFS5~trY}Md&w|)WDIH#<2}Q9m_w(FcDRdL}YjDl%JvwZ&LK+>% ze9i{oRvnOX0>x7J$htJ}8qbzRH4uKoFZw)gk<{`KqE{^`>v`{kEk?B}0< zw%69$I+XELtsexDq9RjBv@j4}rU3Y}Bo=bWz>zZ>Uw*k4Jw_)Jbh zcDlX}fwCeTuLr^7eslLaln_GSFBpn=>Ajb2+j?uQZ`)?;x|Zkj>Fc`MK`KskYc3hVLp-g_v-TWhv$n~kNf>uS&E^JQ6<@_0P_{r%m(e*Nli zZ*Ttj^Jn|xk3anD*RQs1n;#Ss5G3|N$a{=Yt08=)NR}B`F#3NNPl~Kv#(#j z`j;vzI^#o-rwKLvMiCfl0 z28TQz4|{uiv-kIRTi4axy}oYSmLeoUOi4_U1q#&u1WDMkGv%2=0oZzp3=q2Gecb(p zOj9MU2<|XI#!lj`wHMg#gDVQ4qpa)N0v+Sqmt}c2eE4}wJ6jj{4eg}mc6MtfE7$MRWg@8j*V_yeE)v^Qy`);~IA?Q&BcMQ{IgFnjn zT6`amhdrN98*z!P>sp3FdWsMcXGr9*{h#p%D5wB(_N6d6crQl6j!1A<55i{C6ig1T zYdl9CEgw0gjF@}9Wm!DPeO*^umZhxg+CzcEk;oB(=m@2S z@NgZDBaehYk!#QyXh7iXRv$PANVy}QaO=l?An0Od$Pr<(ib4pOEFZ+(gT#j-jLg@r zgz&P4%e#A6%d&)me3+;R6m4DCK%H;fX71j0giH{C`<1J!;(~I84m2b2Q$xXZw3Y+8 z54&$k%RfZi@lK$K!|#RQL--+dM#E4_ED<5SwN{6xwFiJ`vetF=ZQEYRgq7fw5imwD zS;sS1rI1tZCgBYv<{8RR0g+cKgbrh`3KYkPDV$3RWd~9R0$2$c;1xs)dQ<4)hC+}t z!c;{tNKttK;qS2tD4~q~!5xwJ3KRRoWGO+i`^oDcA!GE4`gbTCxJ020&NotIMP~xN zBtQno7(IA|+}aZ=Ff9TB;K8dJ*>ewNgsB>F$nNfjf(D8EwrzD?*WDqA{MUGwm)C&g zj7P{z^2vD)$~t6M@%-L9^32Xlfk15G$S)YL08$Rf7|Ylnq#s1zk&8!_v)&(jGxU|j!y%AYU1aM2|fYHoKYYn-?$lFpJ!sx*J)Ye*u zfY8FRL6bEE76D@&rfcU7G+Qb-WL_D^JDMx93MURJ!*;W2NljIpk4q%(2o{;dGh}2b z5aJTfNtr?h^8+OdE99vpheWXnichJjLS+o4?TJR*4wS&}V#D&2$r9$rCum_JSLkrT zA-5HgokL#O2?-pBFh96^a6=%4zsw;gg#Gg zhB8CQ0V&Kc>>(xO?C5O~a`-+cg(OjTX3|U{MImE >YjDHRkjMe3FzWUPlrRR$Vj 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 literal 0 HcmV?d00001 diff --git a/public/assets/img/credit/american-express.png b/public/assets/img/credit/american-express.png new file mode 100755 index 0000000000000000000000000000000000000000..fbe9ce2c7f56265e8e1445ec561e472d4959708b GIT binary patch literal 2796 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 KMNUMnLSTX)3WT5l literal 0 HcmV?d00001 diff --git a/public/assets/img/credit/mastercard.png b/public/assets/img/credit/mastercard.png new file mode 100755 index 0000000000000000000000000000000000000000..f709adbada2b5d93cbdb7aa2117d19bd4a994281 GIT binary patch literal 1988 zcmV;#2RrzQP)ZUGZQAe+tRw!7KeIZsQb<7nK3WNTm0&&-);&dcBV z|IRb>7tDRwWHK2x3RnW9aPjGsupi+ktd0K#`Iqt~%D8+)Z|%n_&zDDH~hN6InCqGMN8U1(g+3Yq_iN3zAGh zhSS+^;>m-B{H4}OP}MO)E|Di5@)X)b}|!vF3M}S4g`utUroWMs6ghA^8Je#rIPe@u-lmEnk_nGZyr zjDn=%@LwtJJHvNDS`~sDQjy6Dv1s>MnECROfk_QH8Aa2O2nJj1Zv3x;gqOslF0k-* z(kzHohSkr?q8c9m^fICmNc2b$NCtbT~q!qo|&;15SE_ zaYQ3hrr$TXW=!#&V|VS#{4Ye7#1mc`PpnqGJDc*x??!q<8h>+an!eLA>YP+bk_=}=NaxTlx;+t)C0aw@t< z7bB80A!{P?P!$-A2*)_+=w$aL%eiX)-JJT;g*~GillLS_q7&(DLhG(WNxK5+YlUzR zB4He#H};b~{VCGUKEmXT_YqPK5e5l^@}z}*0Q5Ph;P(en5tweek#p_ch+|FcdwLsV z@*L#nkHPiZ2e3T+ApZU^{S}pHPA6J+I*07PVA5mj@p^hmzPy30?;U38gLiQ5!+%gb zuY|qtl+joB48D+&-0QYrG8xIA=3v(gcX9O%&*1CzaBxo*SCssODVO=N+H8c5ogmE` zh#p3OUZ|46j9LVMc;^Ia_tld##!ksBC#`KBavJJM-Tn^V(uK4vTS9B$3}&Y!;#>D9 zhn{|o(&o>oed%5dzq%W5(|#)Uce3oKrN~x|UayZgtE*UZ-PIKGBr@O4nJx?dV;eZF zpFvvMwfM|M0PNcFJl8D0mp!lE!`lrLch{+HorCV>oqcf3RkVRkP zF_LH9KwbHVIA%|yy*EVu`#X5~nVsC0k%arxJ^cP`nEUQqOQzj{Ex|(1!Q)I`mckb` zeFSu2_P@57-0^eJ9o$K~n*r#I0MyCll+0Ph$FG0HkL(Hb2F>*Q`lvnP;X0kdG4$RL!ELY>i9677kL7n?dvTzhN-k%$c1ZP-RGyE`Z4# zM?rENwr~q)JH13Q#{l5Sy^<4+EzCE02^{^1mXJbHX*$XGS0nbd;pyzbT)dT@wi<%R z$6{4Fm^wZYfUroy?>MJ7m=TtK*d{cA>=ijYC4TRw3V91FblGFv3SA( zR;?{#UP&%>$1Avb%0Eezd3=0a8S(-UnUhx!UI8#lm4=2*n6(JegoT1ZY5-^mR3W~4 z4+tIQt0-_kz@%0plSl0A{mMKPc5R^6CZsA$aJ0$Bhwk= zcdosx>G+KAl9sI}_(UqP`k>Ll%55` zVMgnXgmD}l=U^3$qy8Y86g>99Bwnn}XCxFx;5}O|r8zeZoFjE2&d!Rl3s{|bCC~0D zU|HF04mPJSQU|_FW$E*CMjQk{IK~gI+3=h}H;ek3SkQNpOT#_i_@7*Q3)PlOsIXm1 zl{JTmP#ElrTo+eOJj>ki=Wy74d|ivj$|uLZM`isO_MJ>)lw5#c-^ z!f5CeNxCh7CZVIxG*GM94TSl1GsrA1dZI-ES literal 0 HcmV?d00001 diff --git a/public/assets/img/credit/mestro.png b/public/assets/img/credit/mestro.png new file mode 100755 index 0000000000000000000000000000000000000000..c22ddeafb083900eb2f93c7a47767dc2cb15d940 GIT binary patch literal 1981 zcmV;u2SWIXP)I^#Zgvg&>IjfQWlwWt9-JTp+lU=~4osS`|_U2@*-f zgn(2#WM_fR2389g4B+!aZ!cVKgO-bM^(x^Qq@>u{#q`eB&^^uP!K`a^8%;D@;y93! z#%_BCZ7~)iB><3!_!%!(0p$?~$;*YY#i0;`YHopJb>Qp)K#`JJZOtrh{Dw52m%-Ge zX7Fxa5sk6&M5tQCm%UUa5Q7J@T9IW_!EWQ0NQpRFN7~`Tym7LYQN0dsg(d{+atqlo zG@rppWVJ|~{?gzTN=`1)HmvXjP?V^5V$SP{5m3C~4Y@HxFdB zpgr<1SS&=t7z{F|@l5D$b9S@h{dZ8LBpO>X^LTUE=s^Na`OUzAgg~GD5Hi)yw`I}R zk6EzoQ=;{9K?yrjvjz;LDpE%x2uJ4S+*X(wUmxW8P3!4PNXhM3dcK~Tlp*-T3;_a( ziVQ6XM=Kr2?MQOD*!0jG`pdi2!rXmd5)HfG%VU?%vn3;sa8!XLTpnq+A>-q@9iL4r zC!7Sgi`oDF3WKf@jqi0_;;%z;xq$!`O#=k|>A6Gc%jom+&h$*A5NvMtQghD1?a07}O<(hNZD;P@8U~^(0uL(owa=p-I)Q8bXGE&N-9xg^i^FK*|4CFK0c6+; z^;LAHo+lQM1E9{;j;L*7e#saVMev{ftvs4-VM2-tX*BZp3ohD|Q`kTE5hj(5#$+I(is0aTs?E%K%3wd*1q(<96YNfAYn;Bh~oWIaPstL-b=5qF28wJCLaN^_z z=A|ik&j%P^lE+UU%w|f%Fg{o~fuqOHlVVHY$*IM>_TgThSzf`;n&Vuuns5%!1)$TG z!siq3;n%M(!{-ao@Y!xMUswQ&p!P^36$>6i&9LKma}yze&F{P610${v*mRK&e}J<5 z4AR?L0T}9V(DK_qVVN}(fbO|VQGW6y06Q1G!KLCN7AD7W=;5F9#gP_DPkn&;=nUu+ z$gFD!UDBV5)FE7?V2}_%>2gpwJ%ghcdx-Z2m^mqfFY7N8rwTfIy*wL#l^;#WVa2*# z6o0>zhW1|U=}BDa>Sg=IUbuEO9y-IR-N$)pIvd;Y6*$gz;O^`urnQ6I@%i{Y zKGHXD!#$@QfRws=3QTdtTFrEHIO(fLQ9;TuJp^GMfYR+mPfG>B(9y}L!m(5yYNOQa z3-!(0wXLk0oW=2$ZVGG`bfb~HarqRE$l`A&+o|1unz^$lkU47_?L8h&do<=$Or@i( z8~0To0ilqQnT*k5MtkPy&ccq*&yulb6QA6BAFXpHqPPNF z*nNVEefu!$I%)51=9ftBxo;%0xq+r7uOYjf+-;3P_PBAXMjFl5ut!d0j#*YE!;C)C zY{tFtX;2g*qG@0-5CWJ3eim*0gn*`DQUm}&DNzs%Z@tKr<6q-b6bw?LN*Q*_b}I%F zv>^ReCZ+T0U4`@~p!#|sDa#4NS8+dqQH6Zl*1Yv9_nxdH8al9G_yihaV(Cu^aV=2M z(gBB48EeJ$v!_5c5QWf0uyXy{(4^gWmYY<6f@oDHrn4$*#K6O;&?N}M5-vBE>OFWK zoIx~tV&hoz*gPhOssTx^9-i85QHHr}jN!$s zLe812ASDA6C`8D7;4rbDZbP}!MZ~1UbfTX4KYzpyx8#NFBAQHAA|*pTlg8qlV$PW( zdru*9sOOr9-|!bK+joW5Xd2-tE*GXFb;MoYi|}{=I2fDEg4}VuJ|sW14h~T5PSwQL zq>O8OOG0~{1|yLY*&~)zfh;Eq(quwUwV@{_fDqshVCZs0Tt%y{aktM+dccQ*4E0H~ z$r7q!bVT*FK#TtY%;LM@pNbIF@EswftWuhXr2RoivGL9iBQ`c?roa7PBUJ=$P0t9+ P00000NkvXXu0mjf!O+2j literal 0 HcmV?d00001 diff --git a/public/assets/img/credit/paypal.png b/public/assets/img/credit/paypal.png new file mode 100755 index 0000000000000000000000000000000000000000..a7e1458f318a5527491ebcab32d0ca9becaa0953 GIT binary patch literal 2664 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 WkqHC+7qwjg0000tWo1YuT|$8h0c)) zxTfZB&(83!pTRp%vHl!OaD(!q*TR!i$$Bj$-mGZGSHD_l{9I8c4n27fviJT#^Msfv zSU%lDJhB@SvkP84{mE~*WVO+JeTEvpytVVz48WVX ziyG&?4tv`Xq`Oano9_eXItwxNCCYJoMErQU9};DTY;=uILLxIQo(gk(at^!RJC9-K z41!sqQc#Y>$v>^yDX$wuR-nMM^XRoZdB|o!VBATAmI@gaqL0|h=7>6-??-K zU|(Ad=Dz`g5|m&5?*j%(C0IMucaC#^fddF&W;OrxQ5oD#Ijad>1y zI*r?hg@9wWlKO}9HIS%k>_hQ8HK=YLL@=LU=%oIRCfsed$}#rX z(bR3HgvSaquqG)M8LauZ((4FmjXZ#m5_jaM`>mBjmC22Y`d*sHMk`UWSxY&N8*@}c z(s5G9Mp2vt@Ih$-st*{jIqObHoV_xH(@g`EbG+69iP9}Pifz&*fk6f`;+(mekbn1_ z*^-+==iJBFzguyAVwT2x?$aWEg^I?VBl50LT?A8bcM`sTZ5s^hHITU4=ftRM7U!5S ziLx&mu<>9u8H~i`Zu^qG17HhQVuMx)4{tU z5m@{=8Y+I=wJHXdu^Y4?KUCOH-LJ*VJF-#P*pJCsH^sN*rJ;ny136LG4RfCp9ix*s zeR%qGaAvc)OQ+Li;y=bUy+AD~E*c3jDl9cUJv~+>ZWGMesD;e(M}Yq&%O9Kn*J75x z18_x%0l0Wk6u%P$A*|K-*6-87fnhS44k;9h(s2Dr!|U~y7Zem6{R=>xP-Ct6+1&sD N002ovPDHLkV1h_UH#h(Q literal 0 HcmV?d00001 diff --git a/public/assets/img/icons.png b/public/assets/img/icons.png new file mode 100755 index 0000000000000000000000000000000000000000..1663a0bdc58d8a2cce6dc3a34aa465028cfe9403 GIT binary patch literal 1896 zcmV-u2bcJXP)WFU8GbZ8()Nlj2>E@cM*00zuSL_t(&-tCxwOdIDJ z$G^{AJp1f3c4d=thaym&hM>?TZ6+lOVMOkxi9{9jkD~n1X&^bOtP+hbTB@QNS`n0P z`6EcMu|%uJWF^vEt1XFI^3#DTNS#V5Sl!uk&44AsNPt$uvEzsB+aI&Ni!o8`rHnuL zO0RUj_qmUsuip2)d-M=CNUQOL6~Imay39EZ%M3gL{w@GN1i)wEcdCC=>Vk86Y5{Zt zD9w20TL4Gop88SF>1hMdDfiSzb2Ys8(qiZ2#Q1T#LV9(05r=z^?mso-g{~B z`sBoTDPk+g!jAzsC->C1q)l^9Pc5|k$7C!75n{cC$@}x+*~yUY zG5BZYp8A$;06?6ni+BsHCA)gV4g4Pg1Ob?V?^^+k6f}9e$XM7wIwP2(-S=}%YIf=$ zuL1yc1tapg7oShA4iBKHpvgN^SX$OOJ4p?S#C8Gb%Y$!A@@4tli~1!0X#f=kP2Nyp zX_;?!l6EQ*dm2Cs06_2hLNT-sE35HDX>#Syb576RPbEhksbj|IbPjr4IZA=k%N>-qNhB$c>!SbBBzDb)++b zwm*CApHAZ&8kPy>nv|NKZC=AN6Nc8|bX>mt+N*N4p(FSKmZhTfq?Vtqy()LBH~wXOJ3XE}pJ_q5N%i+_o%ROt_O&>Y-Z2+w9e20pkvK_0EX7#GY_w{mY+_(wAxa}&sJ)^4;=hk1x?-v z=k&A@Z%N1HtPFmp()aV{Cjg+Z`NO-b@x;N^c;bj^94u`9@UA+J0HFE<>Gbed!C$TW zoijWI;!OC#bGzRhe1-pY&fD(0=YKN%Rq*Iz@IM`Vg+E5AimCRh{Mz8x_nRJi^Ql&< zde4sTzL&TQ8kU*Orv&|u`MYYb%D)->`o0~@5|eEwRPWj0>wAfNUBfaVdYsxAz!HFP zJ_&6gf8E*}fCS((4aWmu=veQdE<%qEiwM~@zTkK;IrW!a)rr%wI+^5x4z7cXAC zU^E(=x7+HEH?^*aK~&m*QE?!xpL(VBFec1 ztmbEZn-Wdz-@iW{moMLFH2$@+vht(l<>hpDMyu5(>~_0P9k-?%+Su55`_`>n4vynY zD=RB?I-M?USQN!g-S_VA??00|%PAR+My9{N|3~V$HT|THj*bC`!*Noh(MXww^?H5p zX8!)x)YROvTCE9D6p{8o>oj(lZh<;!bUTC3GgCqG?nDdQ(jobY-)p0`9%j0l3zW;UDCak(m! zpQ+US|AC(XfT5wGIU@Q!5p@#LKyrLOK0f|0bsPf#hYlS&pWOfN2!fypf}n_^xFCw+ zHw?pkYcv|)QOD(~Z2Z(HE-qG{06+AY{A=loOi>i8%jJ5_=kqnG-+bzovfJ(5?d|Os zh$!ba?FR4qPY5zW1YQV{yuY`5qep_nzlrzG=twH?y z7AOJK$iSdg`ekD6S=0Bg9-p~)Y|Urg-PKz@PT0Kef}-ptMO)Jy)tv^vm8T;g)!xi doyiBv|6sh=Dt;-h=9&=5I8RqUmvv4FO#rrLh+hBz literal 0 HcmV?d00001 diff --git a/public/assets/img/sprite-skin-nice.png b/public/assets/img/sprite-skin-nice.png new file mode 100755 index 0000000000000000000000000000000000000000..d62f81887e2de388a22efe13709d8377a442bf01 GIT binary patch literal 1022 zcmeAS@N?(olHy`uVBq!ia0y~yU}OQZr*SX?Nq&B|BR~P`0G|+7Ah&DE?4D_J&!0d4 z^5sh)NjbQF{rc_Ox9{A!^XAQ)w{PFR|M=;{r_Vs}<;$1v-@pI(@#E*upMU=R`TO_p zzkmP!1Hr9Z|8Ly*fBibp0px*a&z~b}T)AP}vUOXw?m4()-{D;ckI!GVasJAU^Hy${ zw_?NG73=3LUpH&%8X%gvWX+7ltEVkoId#E`Df5?2oV~bj#{Ayt^B^QJOn_`4>Yg$i zi2er!{TC4U&&T(lm-jyp&wmC6ncJJ?fWens666=mz{bYN;^ge&<{lQ;-Z^vDqW#xz z+`e=7)0dyWKpsQ~S1w<=c>dg(QzuUxJ9^~sp@RqZ?>o3DH$83lfyWQQYJdOw^&6(? z-P^YlCrp@lto$a>HYR>g7srr_xVJY0{VxYdw12Gk?`BBu5j03Rek?($LSla71PN2- zq(?j!J#OqR{V%s09oc&P@+OO~$7VcWo%8(qvbUj=_lc`7uY8i&(CAmV%I?>zenXbF zh8GS?^B12vDIxq@`I7UqPiN#S*J=2rm9_(|1OtaJPapqONRYRaeEIq3@6DGd%-!qb zGcCPwwT#qr&6IPgYGE((R6f6YySwhdy*+j{f|`~EGmkBLZ@zd>&*j3LFB_gjh8@e8 z?Bj3gd*tGE>k4a_xtc+d5jQ#84hTpvO;PIQGclA(-FbShim<3pN*DXx{Bt|^{8;0p zxAMmt3(qg}VVW9Nwm#ju^=Yd+*TlfYb^D^?SN$&DYPZ}WR64pWXLVrcglE^w-}>)< z{h2FZ>Bi*xjh9zwSQOscxc}vnjZVgQx3r$U_pvblve>N4T)t~l_kIh!Z=DsrJ~TKZ zY}?xFucudCyB!x8(KG4Ew>Ym;-a>Z-ik4rH>@}*~>7`s5x$J^Y-k+TYc{*Aqn|-4* zzWe!A$(xAffuReuGB8&&S z*K~qB5jsoDcj_{);H4`sg}mJR@afY6{Wn^7_wM+nx63j7<-^iU51_303ZUfQ+pUH6 sKsnjCSl-?BYcGXlt}=n@24!V?27U8=_x^tMP6rw5>FVdQ&MBb@0IhXYe*gdg literal 0 HcmV?d00001 diff --git a/public/assets/img/user-bg.png b/public/assets/img/user-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..75e1b46c9d44d6147040250b068de339f3c1b9a9 GIT binary patch literal 73815 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%0Dx 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≫|qDTA_ksYE887Gsxj@VQavgbjF=H~47-IP_3v-L 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 .header").height() - ($("body > .footer").outerHeight() || 0); + $(".wrapper").css("min-height", height + "px"); + var content = $(".wrapper").height(); + //If the wrapper height is greater than the window + if (content > height) + //then set sidebar height to the wrapper + $(".left-side, html, body").css("min-height", content + "px"); + else { + //Otherwise, set the sidebar to the height of the window + $(".left-side, html, body").css("min-height", height + "px"); + } + } + //Fire upon load + _fix(); + //Fire when wrapper is resized + $(".wrapper").resize(function() { + _fix(); + fix_sidebar(); + }); + + //Fix the fixed layout sidebar scroll bug + fix_sidebar(); + + /* + * We are gonna initialize all checkbox and radio inputs to + * iCheck plugin in. + * You can find the documentation at http://fronteed.com/iCheck/ + */ + $("input[type='checkbox']:not(.simple), input[type='radio']:not(.simple)").iCheck({ + checkboxClass: 'icheckbox_minimal', + radioClass: 'iradio_minimal' + }); + +}); +function fix_sidebar() { + //Make sure the body tag has the .fixed class + if (!$("body").hasClass("fixed")) { + return; + } + + //Add slimscroll + $(".sidebar").slimscroll({ + height: ($(window).height() - $(".header").height()) + "px", + color: "rgba(0,0,0,0.2)" + }); +} + +/*END DEMO*/ +$(window).load(function() { + /*! pace 0.4.17 */ + (function() { + var a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V = [].slice, W = {}.hasOwnProperty, X = function(a, b) { + function c() { + this.constructor = a + } + for (var d in b) + W.call(b, d) && (a[d] = b[d]); + return c.prototype = b.prototype, a.prototype = new c, a.__super__ = b.prototype, a + }, Y = [].indexOf || function(a) { + for (var b = 0, c = this.length; c > b; b++) + if (b in this && this[b] === a) + return b; + return-1 + }; + for (t = {catchupTime:500, initialRate:.03, minTime:500, ghostTime:500, maxProgressPerFrame:10, easeFactor:1.25, startOnPageLoad:!0, restartOnPushState:!0, restartOnRequestAfter:500, target:"body", elements:{checkInterval:100, selectors:["body"]}, eventLag:{minSamples:10, sampleCount:3, lagThreshold:3}, ajax:{trackMethods:["GET"], trackWebSockets:!1}}, B = function() { + var a; + return null != (a = "undefined" != typeof performance && null !== performance ? "function" == typeof performance.now ? performance.now() : void 0 : void 0) ? a : +new Date + }, D = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame, s = window.cancelAnimationFrame || window.mozCancelAnimationFrame, null == D && (D = function(a) { + return setTimeout(a, 50) + }, s = function(a) { + return clearTimeout(a) + }), F = function(a) { + var b, c; + return b = B(), (c = function() { + var d; + return d = B() - b, d >= 33 ? (b = B(), a(d, function() { + return D(c) + })) : setTimeout(c, 33 - d) + })() + }, E = function() { + var a, b, c; + return c = arguments[0], b = arguments[1], a = 3 <= arguments.length ? V.call(arguments, 2) : [], "function" == typeof c[b] ? c[b].apply(c, a) : c[b] + }, u = function() { + var a, b, c, d, e, f, g; + for (b = arguments[0], d = 2 <= arguments.length?V.call(arguments, 1):[], f = 0, g = d.length; g > f; f++) + if (c = d[f]) + for (a in c) + W.call(c, a) && (e = c[a], null != b[a] && "object" == typeof b[a] && null != e && "object" == typeof e ? u(b[a], e) : b[a] = e); + return b + }, p = function(a) { + var b, c, d, e, f; + for (c = b = 0, e = 0, f = a.length; f > e; e++) + d = a[e], c += Math.abs(d), b++; + return c / b + }, w = function(a, b) { + var c, d, e; + if (null == a && (a = "options"), null == b && (b = !0), e = document.querySelector("[data-pace-" + a + "]")) { + if (c = e.getAttribute("data-pace-" + a), !b) + return c; + try { + return JSON.parse(c) + } catch (f) { + return d = f, "undefined" != typeof console && null !== console ? console.error("Error parsing inline pace options", d) : void 0 + } + } + }, g = function() { + function a() { + } + return a.prototype.on = function(a, b, c, d) { + var e; + return null == d && (d = !1), null == this.bindings && (this.bindings = {}), null == (e = this.bindings)[a] && (e[a] = []), this.bindings[a].push({handler: b, ctx: c, once: d}) + }, a.prototype.once = function(a, b, c) { + return this.on(a, b, c, !0) + }, a.prototype.off = function(a, b) { + var c, d, e; + if (null != (null != (d = this.bindings) ? d[a] : void 0)) { + if (null == b) + return delete this.bindings[a]; + for (c = 0, e = []; c < this.bindings[a].length; ) + this.bindings[a][c].handler === b ? e.push(this.bindings[a].splice(c, 1)) : e.push(c++); + return e + } + }, a.prototype.trigger = function() { + var a, b, c, d, e, f, g, h, i; + if (c = arguments[0], a = 2 <= arguments.length ? V.call(arguments, 1) : [], null != (g = this.bindings) ? g[c] : void 0) { + for (e = 0, i = []; e < this.bindings[c].length; ) + h = this.bindings[c][e], d = h.handler, b = h.ctx, f = h.once, d.apply(null != b ? b : this, a), f ? i.push(this.bindings[c].splice(e, 1)) : i.push(e++); + return i + } + }, a + }(), null == window.Pace && (window.Pace = {}), u(Pace, g.prototype), C = Pace.options = u({}, t, window.paceOptions, w()), S = ["ajax", "document", "eventLag", "elements"], O = 0, Q = S.length; Q > O; O++) + I = S[O], C[I] === !0 && (C[I] = t[I]); + i = function(a) { + function b() { + return T = b.__super__.constructor.apply(this, arguments) + } + return X(b, a), b + }(Error), b = function() { + function a() { + this.progress = 0 + } + return a.prototype.getElement = function() { + var a; + if (null == this.el) { + if (a = document.querySelector(C.target), !a) + throw new i; + this.el = document.createElement("div"), this.el.className = "pace pace-active", document.body.className = document.body.className.replace("pace-done", ""), document.body.className += " pace-running", this.el.innerHTML = '

      \n
      ', null != a.firstChild ? a.insertBefore(this.el, a.firstChild) : a.appendChild(this.el) + } + return this.el + }, a.prototype.finish = function() { + var a; + return a = this.getElement(), a.className = a.className.replace("pace-active", ""), a.className += " pace-inactive", document.body.className = document.body.className.replace("pace-running", ""), document.body.className += " pace-done" + }, a.prototype.update = function(a) { + return this.progress = a, this.render() + }, a.prototype.destroy = function() { + try { + this.getElement().parentNode.removeChild(this.getElement()) + } catch (a) { + i = a + } + return this.el = void 0 + }, a.prototype.render = function() { + var a, b; + return null == document.querySelector(C.target) ? !1 : (a = this.getElement(), a.children[0].style.width = "" + this.progress + "%", (!this.lastRenderedProgress || this.lastRenderedProgress | 0 !== this.progress | 0) && (a.children[0].setAttribute("data-progress-text", "" + (0 | this.progress) + "%"), this.progress >= 100 ? b = "99" : (b = this.progress < 10 ? "0" : "", b += 0 | this.progress), a.children[0].setAttribute("data-progress", "" + b)), this.lastRenderedProgress = this.progress) + }, a.prototype.done = function() { + return this.progress >= 100 + }, a + }(), h = function() { + function a() { + this.bindings = {} + } + return a.prototype.trigger = function(a, b) { + var c, d, e, f, g; + if (null != this.bindings[a]) { + for (f = this.bindings[a], g = [], d = 0, e = f.length; e > d; d++) + c = f[d], g.push(c.call(this, b)); + return g + } + }, a.prototype.on = function(a, b) { + var c; + return null == (c = this.bindings)[a] && (c[a] = []), this.bindings[a].push(b) + }, a + }(), N = window.XMLHttpRequest, M = window.XDomainRequest, L = window.WebSocket, v = function(a, b) { + var c, d, e, f; + f = []; + for (d in b.prototype) + try { + e = b.prototype[d], null == a[d] && "function" != typeof e ? f.push(a[d] = e) : f.push(void 0) + } catch (g) { + c = g + } + return f + }, z = [], Pace.ignore = function() { + var a, b, c; + return b = arguments[0], a = 2 <= arguments.length ? V.call(arguments, 1) : [], z.unshift("ignore"), c = b.apply(null, a), z.shift(), c + }, Pace.track = function() { + var a, b, c; + return b = arguments[0], a = 2 <= arguments.length ? V.call(arguments, 1) : [], z.unshift("track"), c = b.apply(null, a), z.shift(), c + }, H = function(a) { + var b; + if (null == a && (a = "GET"), "track" === z[0]) + return"force"; + if (!z.length && C.ajax) { + if ("socket" === a && C.ajax.trackWebSockets) + return!0; + if (b = a.toUpperCase(), Y.call(C.ajax.trackMethods, b) >= 0) + return!0 + } + return!1 + }, j = function(a) { + function b() { + var a, c = this; + b.__super__.constructor.apply(this, arguments), a = function(a) { + var b; + return b = a.open, a.open = function(d, e) { + return H(d) && c.trigger("request", {type: d, url: e, request: a}), b.apply(a, arguments) + } + }, window.XMLHttpRequest = function(b) { + var c; + return c = new N(b), a(c), c + }, v(window.XMLHttpRequest, N), null != M && (window.XDomainRequest = function() { + var b; + return b = new M, a(b), b + }, v(window.XDomainRequest, M)), null != L && C.ajax.trackWebSockets && (window.WebSocket = function(a, b) { + var d; + return d = new L(a, b), H("socket") && c.trigger("request", {type: "socket", url: a, protocols: b, request: d}), d + }, v(window.WebSocket, L)) + } + return X(b, a), b + }(h), P = null, x = function() { + return null == P && (P = new j), P + }, x().on("request", function(b) { + var c, d, e, f; + return f = b.type, e = b.request, Pace.running || C.restartOnRequestAfter === !1 && "force" !== H(f) ? void 0 : (d = arguments, c = C.restartOnRequestAfter || 0, "boolean" == typeof c && (c = 0), setTimeout(function() { + var b, c, g, h, i, j; + if (b = "socket" === f ? e.readyState < 2 : 0 < (h = e.readyState) && 4 > h) { + for (Pace.restart(), i = Pace.sources, j = [], c = 0, g = i.length; g > c; c++) { + if (I = i[c], I instanceof a) { + I.watch.apply(I, d); + break + } + j.push(void 0) + } + return j + } + }, c)) + }), a = function() { + function a() { + var a = this; + this.elements = [], x().on("request", function() { + return a.watch.apply(a, arguments) + }) + } + return a.prototype.watch = function(a) { + var b, c, d; + return d = a.type, b = a.request, c = "socket" === d ? new m(b) : new n(b), this.elements.push(c) + }, a + }(), n = function() { + function a(a) { + var b, c, d, e, f, g, h = this; + if (this.progress = 0, null != window.ProgressEvent) + for (c = null, a.addEventListener("progress", function(a) { + return h.progress = a.lengthComputable ? 100 * a.loaded / a.total : h.progress + (100 - h.progress) / 2 + }), g = ["load", "abort", "timeout", "error"], d = 0, e = g.length; e > d; d++) + b = g[d], a.addEventListener(b, function() { + return h.progress = 100 + }); + else + f = a.onreadystatechange, a.onreadystatechange = function() { + var b; + return 0 === (b = a.readyState) || 4 === b ? h.progress = 100 : 3 === a.readyState && (h.progress = 50), "function" == typeof f ? f.apply(null, arguments) : void 0 + } + } + return a + }(), m = function() { + function a(a) { + var b, c, d, e, f = this; + for (this.progress = 0, e = ["error", "open"], c = 0, d = e.length; d > c; c++) + b = e[c], a.addEventListener(b, function() { + return f.progress = 100 + }) + } + return a + }(), d = function() { + function a(a) { + var b, c, d, f; + for (null == a && (a = {}), this.elements = [], null == a.selectors && (a.selectors = []), f = a.selectors, c = 0, d = f.length; d > c; c++) + b = f[c], this.elements.push(new e(b)) + } + return a + }(), e = function() { + function a(a) { + this.selector = a, this.progress = 0, this.check() + } + return a.prototype.check = function() { + var a = this; + return document.querySelector(this.selector) ? this.done() : setTimeout(function() { + return a.check() + }, C.elements.checkInterval) + }, a.prototype.done = function() { + return this.progress = 100 + }, a + }(), c = function() { + function a() { + var a, b, c = this; + this.progress = null != (b = this.states[document.readyState]) ? b : 100, a = document.onreadystatechange, document.onreadystatechange = function() { + return null != c.states[document.readyState] && (c.progress = c.states[document.readyState]), "function" == typeof a ? a.apply(null, arguments) : void 0 + } + } + return a.prototype.states = {loading: 0, interactive: 50, complete: 100}, a + }(), f = function() { + function a() { + var a, b, c, d, e, f = this; + this.progress = 0, a = 0, e = [], d = 0, c = B(), b = setInterval(function() { + var g; + return g = B() - c - 50, c = B(), e.push(g), e.length > C.eventLag.sampleCount && e.shift(), a = p(e), ++d >= C.eventLag.minSamples && a < C.eventLag.lagThreshold ? (f.progress = 100, clearInterval(b)) : f.progress = 100 * (3 / (a + 3)) + }, 50) + } + return a + }(), l = function() { + function a(a) { + this.source = a, this.last = this.sinceLastUpdate = 0, this.rate = C.initialRate, this.catchup = 0, this.progress = this.lastProgress = 0, null != this.source && (this.progress = E(this.source, "progress")) + } + return a.prototype.tick = function(a, b) { + var c; + return null == b && (b = E(this.source, "progress")), b >= 100 && (this.done = !0), b === this.last ? this.sinceLastUpdate += a : (this.sinceLastUpdate && (this.rate = (b - this.last) / this.sinceLastUpdate), this.catchup = (b - this.progress) / C.catchupTime, this.sinceLastUpdate = 0, this.last = b), b > this.progress && (this.progress += this.catchup * a), c = 1 - Math.pow(this.progress / 100, C.easeFactor), this.progress += c * this.rate * a, this.progress = Math.min(this.lastProgress + C.maxProgressPerFrame, this.progress), this.progress = Math.max(0, this.progress), this.progress = Math.min(100, this.progress), this.lastProgress = this.progress, this.progress + }, a + }(), J = null, G = null, q = null, K = null, o = null, r = null, Pace.running = !1, y = function() { + return C.restartOnPushState ? Pace.restart() : void 0 + }, null != window.history.pushState && (R = window.history.pushState, window.history.pushState = function() { + return y(), R.apply(window.history, arguments) + }), null != window.history.replaceState && (U = window.history.replaceState, window.history.replaceState = function() { + return y(), U.apply(window.history, arguments) + }), k = {ajax: a, elements: d, document: c, eventLag: f}, (A = function() { + var a, c, d, e, f, g, h, i; + for (Pace.sources = J = [], g = ["ajax", "elements", "document", "eventLag"], c = 0, e = g.length; e > c; c++) + a = g[c], C[a] !== !1 && J.push(new k[a](C[a])); + for (i = null != (h = C.extraSources)?h:[], d = 0, f = i.length; f > d; d++) + I = i[d], J.push(new I(C)); + return Pace.bar = q = new b, G = [], K = new l + })(), Pace.stop = function() { + return Pace.trigger("stop"), Pace.running = !1, q.destroy(), r = !0, null != o && ("function" == typeof s && s(o), o = null), A() + }, Pace.restart = function() { + return Pace.trigger("restart"), Pace.stop(), Pace.start() + }, Pace.go = function() { + return Pace.running = !0, q.render(), r = !1, o = F(function(a, b) { + var c, d, e, f, g, h, i, j, k, m, n, o, p, s, t, u, v; + for (j = 100 - q.progress, d = o = 0, e = !0, h = p = 0, t = J.length; t > p; h = ++p) + for (I = J[h], m = null != G[h]?G[h]:G[h] = [], g = null != (v = I.elements)?v:[I], i = s = 0, u = g.length; u > s; i = ++s) + f = g[i], k = null != m[i] ? m[i] : m[i] = new l(f), e &= k.done, k.done || (d++, o += k.tick(a)); + return c = o / d, q.update(K.tick(a, c)), n = B(), q.done() || e || r ? (q.update(100), Pace.trigger("done"), setTimeout(function() { + return q.finish(), Pace.running = !1, Pace.trigger("hide") + }, Math.max(C.ghostTime, Math.min(C.minTime, B() - n)))) : b() + }) + }, Pace.start = function(a) { + u(C, a), Pace.running = !0; + try { + q.render() + } catch (b) { + i = b + } + return document.querySelector(".pace") ? (Pace.trigger("start"), Pace.go()) : setTimeout(Pace.start, 50) + }, "function" == typeof define && define.amd ? define('theme-app', [], function() { + return Pace + }) : "object" == typeof exports ? module.exports = Pace : C.startOnPageLoad && Pace.start() + }).call(this); +}); + +/* + * 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 ); + * */ +(function($) { + "use strict"; + + $.fn.boxRefresh = function(options) { + + // Render options + var settings = $.extend({ + //Refressh button selector + trigger: ".refresh-btn", + //File source to be loaded (e.g: ajax/src.php) + source: "", + //Callbacks + onLoadStart: function(box) { + }, //Right after the button has been clicked + onLoadDone: function(box) { + } //When the source has been loaded + + }, options); + + //The overlay + var overlay = $('
      '); + + return this.each(function() { + //if a source is specified + if (settings.source === "") { + if (console) { + console.log("Please specify a source first - boxRefresh()"); + } + return; + } + //the box + var box = $(this); + //the button + var rBtn = box.find(settings.trigger).first(); + + //On trigger click + rBtn.click(function(e) { + e.preventDefault(); + //Add loading overlay + start(box); + + //Perform ajax call + box.find(".box-body").load(settings.source, function() { + done(box); + }); + + + }); + + }); + + function start(box) { + //Add overlay and loading img + box.append(overlay); + + settings.onLoadStart.call(box); + } + + function done(box) { + //Remove overlay and loading img + box.find(overlay).remove(); + + settings.onLoadDone.call(box); + } + + }; + +})(jQuery); + +/* + * 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: + *

      ~c$wfv6O&5a48>m%76|EFS5cluephNem0-bX%OOD1r?SJI2gV@-7|I*~f~6Pjw{> ztt=1__XQ-#Bm=Q%l}Mnv&KJi9@A55jPzLwLSL7%%woq)@KU3~2Y7qdl2s9cfK_Fb+ zR4*?%0~HkTD5KPJQ>U$HI|AwND!sMwG(L_%|UQt z;Tanp$O-I4g~{kse`yZXb3Pa>wryu1uG^Y2`&eUKR>GOSv2ywO3P1BID_l)^g-<~( zQHSnP9*_)C@1;nl{M@V3@Fz*svh?RSelai=t&(O04kJ`+d@**l4Wv)(E!<;}M+zZ~ z?L?afoSLcRYKgVbXOpF`SoMWLsO_`FxM+T~^~l0P!YIhhM&0vtW7)|4)YfQXI^7BG(n=Q1iHWNWcJqOWpSlw zfr)LvBuyCgEfc&(;RlCREOW3t_xK!fRrZqKclBTX>g3dr-#OkA*_v7{F*a$Z7H1^b zn%pN$bFd7jfHYq;jmSE)<|j(Q!&SvS3P{!zK4V*h0Ri^G+k<@fhCMa@VMbwaQL1ak zAv~+-S$ag)i%z)j@2u}8G7&SZUBGrwy$SU22ql;=%>Bg8Qc3CaN2FqOWEsjCU&JD` zN8>DtPWV{_idvrDl8J(-Exal~wpBr~($3lY{c2XAO%SpW9OgcELj@vIze~*#)s#O$ zVevIS=R)_A;+)A1aK*o@Wk@;Dn<{02YJ+d19|bz&7P*#|5Q>MBi>3D~l4$cij zXCi}R1Z1;;Wd;F3hlG!Y&xt?5LTEQ3Mn$6n=9u2bI{NAI2;{P+la@00ZL0Xwd9%Ko z!D9-K=`a>y?$vjXtHz7X<|6Pb;zD&zWblwfxLh(WB&yLi-geL0!0QK@t3L|`@DMeRM zq7|yX5Z9Vo13l-Y@PJk%MVLh_4K^`u+%;Ih&IW?xHWsJyZSb*9aGoYOkoT66quPM( zF`_?kw+-GuCIME$?N+a|Kz2idnAv+N2Bn%_DTzTMkj%p;v{O9&tK{8Z?d3@q)3|Ng zFy$I7RB5P2Tx|2aGm;;@RWQ#<9>m^K;;z*ssxOpjk1%V4_{6Ww%;-ZnwC6^y^GG42 z7czGS(RGEPWkcnj_Fw9T(N+P7Xgb5B(m?V~ae-9vDUobn6KXX}XK>U}yB$XB&H@^I z>Ujnv+aX$k30X1`!iXTw0-vhE;!*|^6oW0Xk`<_U=V==U3GNM#p-dz^*K|%UHt)BT z(u^3h6K6m<(=kZ@2LnsSWg0@$25yPda+m;*WW6KJ$#I>d0#A z*v)E~$Ldj<*jokOHD{YT#|uEq8GDZ!YRTMr3$+zMrZ7Bf1HBj20bvrg?HFA`f7k)@ zo$@Y=%h>9kw>lC=!s50M9%}KH%@4I`J%wNfWgCJ++&xgx{qpW00ccOaWyLOQ`vtA> z6mc{ayoUuA+*Dk8G?kFEq-bYaf;`ePU~>DEVgMAo)4G}jsFFuZ`uSHL>^{>A0pU$1%8LgC? zVevw~c~}S&x~M>A4tL(%#g&`d`g^vReF|6K#5QDJC&>j_?tsh|CX@$qlnb|oVVobr zP1xwH@?(7AW5AbD$$E5g9t7>(fF_}}L1IwY8b3syvkecJ=8FVrW}O&&|C}jHEBY}O zU2Gw0#wdf7!J#5dT{tQb-)HJ`5a|p?L`2MOjp;yB(GZuU9I;?X1eTdcH-p4Sl&IRz zIE}W^MBcz+40by(dQi@~Jr)Qkcse1>sK(lMoQB&_VCOc~8UEZd@#SA0ou>~XCqcc6 z7)g`VGR!p)k$IZb14*tF<$UGbKIQx>PEPMak-`#EC7ts)6)iFoext;6829{<(m)k0e5DwyxTST4T%778~z4NgDOyF2#Zf)!I^TRDsCImw=W1*_k);=tnH(@fTNw zxImIUwlN)@KyMN9dvUi?$UtBfub4iDVQjIvsFT@G38f5;wx6oU<08Pvch!3&{r1Eb zl;8r>P4xyejnPdK&*HvvZqL9?&KNzgqafVhTig*0{~ETKweE;D*Rqy)glRoT&5JHD#w zgrl?L^GzF51&9U4O0R`wondWi4Ytb)i0_m{L~BGzsdPy|mCNWFLqfHJ>WZ*qx{;gh z5-cFD?jtzz(1-v@RK9cfK1&RuY`^0OD51JqqC#W*^_ zthY|WTE#MqIK=4Er%WX38|A$2ut6(^-J3N=B5!t0e6Pf^7W`sR*>;pr!93+wVz1yD1g6{rYCsbpOj1DFozfB&)J2q&RF~#??Vdn^d?v)%?q-rf@062N#=gFr6Nyo`gId%BQf4FM+X>8 z0sHEHK2Y*~mjb~$%s7yhaO>IL8gFVlp`fqDKILu5luj?pLSe9Z{ zGg)$_BH@HBhNrqODQviBj^N;Vo@XnU<$ezGPrm>eC@m)<6OpEq%dwTEKN?sWZ4}-t zEC^+-&Cf2GU~#P6(@0+t<&5P9GBPndeIN(s5~~Mh0DA!D`drjPRKfdjC%GjqD(r~B z3Ba(bw9DY$h#mxLXnfn+eD-rNc3QOHtsfW6OQ0nw1-A<3qWiEKd~Muerdm28Xk5Xe zvUd@RiD`4``vj#!z{gU)fngRP_^Ed;G$IVt$_*?a+sXo^z}_-5nYwuCn5z>Dpn8LL z7@^^chnlhp?r_i{=9nTnV{}%U0Gi2bsYz6FVQCBYbc8@=nZl?o2N}!lkctr?h1jKeEC>L^Vu2EJhJK zmF2&$;tnH|nGqy-qZWEK64vhbl!gi|2@n^g7Vu&9SKT*ce>Ze zg4%L&bQ-8qsXSB9^Irs11Uy)D)wW*fE3)~EJPHf##b}wwDTnnLXD)-i#f9Bj{ANpY zmuEu}1=;6kTe~C)mLm&k48|5VqNkeSEDL*bZk0khx~_;9tFe?we_*AZ+6OzbHLyH_ zU_=hKgF*~+-@78Qz5~p~GypjDrf9)j_&)+VnPcRB$OAg=9IkHzwg!NqzhJPOyCouW zy<)U}0;9!ZUJKC07BH7YV0RP-1Tg13x$xz$&L8l?I$Shn90r-Akh(JqPpJ3G-m%xc z$Z>yRl5YSPZX%WV5!n2ooDRT~oA%8oQ#b(`pS7eb0i_Ho+Y?5G%Q$+ukiACLl7iP* zdS+jt|AOpQn5zO((_OwA4?>+544}95j=C5FvozYN z7$8a#u*gVGnR344sN=@M{Hh{K#J_lOzd7aU9n zbJ$nq2q%EqbNj)&1%?z+ikow2(8FX-aN~W^GUP2ybtgT5PjKJfW8`CjKpq_|>SpZi zv~Azo(oBBbK8g^s>!&GbV;@)SF>*hn3!C;V34|GNuaw{StB-iANg(~Ox-T0rkbK*Y zz9iayJDhxzI{XQGj0$X6B9fj2RN-b6 z`=$DJt^rp;NtSYoOxYmHqz>FRjj7}mh|mnoIhUW?qC_P{1`?mS$0ESMwnxl))LcAT zN{s1BjNPBY!aqWz-Iusw$K*`~itcxezzXFaGM4s~P84$aX&crCDRwEsDE+I$|2xM% zYamcZWnW4!xN2J?QUmF%DChzP8n6^o?3GxOFWmIu6b)aI_)(m8cveg-F{3<3`szPO2DNsU*y23YC%ZIphUOF zw<&ss&keKVQa;Sq`fr{@pbQha@X$M}`w&R#8kUrUz-Bv6jGI=mw8N;R1f4n^i#Yl| zqT4=a2#9+KZamMoWRKJAeG=}v~7E# zL?$38!wTOZ*QcvHx5Ty)&^1KEFiEBv@`v3F1oj8C^42&VgkuFPtvB)~_1))QXJUZ7 zpfE8CD+4?x#%eSu(NZEm{4vTv(cZfDb8dBf=4gD+KwkiJx6#riXCnW8z0M1anO+w9 z1%-@$G51g3<167J0*gf!eFAe-$Ew9>StAb~2jMQN0EXlfWFe;sOET7f;K+-$v-pfx zm{f-N?kvc9cGU6EC`ebT+M^}W!+3VEs-@8=r#%~x)myt)aKtxa6kxcDIzu={*=GQD z$pk`$60R7CEsu;9Ietddu*zHqTil|WHWmjBB=qfb1t$md#^N{!hhiVj1|mxP;w|T} zWq%vWO`r%(Amycqt||EHfP6cE>WoUki2(FWL^rZpx{?S4{m5WX1OOH4SB-12DbPv* zYF6T<QSc2{T;-I1yZp1-ZDC9bRS< zP|KF%8r#|uX!B{H#e6`YMquuyAcBQICKi|HhIO^JvN|KIy6bd6CnU*INxoRe`uGUw zwFEbWv&0w+>5SK`tAC-~WVZr)Ce1p0L(F^gy%Xne0<6GpHOlCSCA{b}&texc+0$P* zpNu}soSjtIp76e^bV8pMJ+Xv|n>cBiaIPKmxGL!@%K5Sv{TSWsBuecsDiyAdO;0SV zfN@h(vNHqq%efOv-5EMW4ptPVZ3B@wbn5+FJr=C4bKGqU$?&qb#kNbR8QGc*Ztf=6cZtmypznd03$ApWOo9GU}uQH8YF!gyhm0#LJQuiufAi>wkE)2G)~Jw%fx= zcT(aUaCl<+<2=hc&)Dpyun#JeH=UqeHXS`faVSPh~A(s5ld2dfe~C&j9PjY_kK$mkyG zp|et4B{CL3`>OryIun0F45z^?Wyr?FIj;I`-Zq1!qoq0wu61J;=K`m6mQt*ww&>NP zG3g$M7P~yh#!_rD_U4Zp2P9oaqeSpI$04f&3_9HoA}!33*4j(otbZw*jtY0)mFWe9 zX>!IROh*q8d$Ap!1uk1~aeu;f{)sI~C6)51B$5rG3p>6Nt9w4$D5S_(SGVKx{InG4 ziRk45=uRvFSeD?xASt&%xSVez%SR1Cq93#A^Y|9<2gJ0ed$`w(l^PT%Ff)mhT zRffbxH`*(qH_`n$PybvQfbQ7+qZ8(``PiF(-*_dvP}sbdC}rj({$=hAi-=9TfE8Ti zHWBBYP|$DAQ>K|ykeCIw0Sq$@EqF)o;wZDbku{e4VA-v#+&TlxPg^6YNz&j7 zkKTsmfiDI_1F*NgVga%{o+ctp_ERjlO%R998deA<;*^DN>7;Xv+M)4qD5k}dA-%$GW4Mbo z6mu127L?Bbw#}cLl%zDiD94cKfjR~-g-oh+^^)Yq3*XEBgi2Og4oh1iMo|`KYP@>G zq8{7)TiK*AtUbN6Dmc=&Gt``k***X*_nQ9+>S;P+SyKaqIc3o5PblTrbk4cpRF)Tsd z>=3H}atpFL7W+DmT^} zGh~*pWVUL%kwU6D>usHPYTASLBsU4xYF2WpNsEaBWI_fGh7j_^SmM6DT|g0 zlkb)eIZ3K;CR8$VHoey=pQ9_?qw%@W<Q_yDra3ULX+@tNrWIV0CZ%+R|5uIMKRI_i3vIz-CfFQb>|?i~~dIZC^jqUE*_ zw60kl;Bh1n+kEB){@<+bBOFX5A*bnhh(AVTCV_c!V5RsWz7;emd&olp-5w@4uJGyh z`z8pM@hL1|cyOW`hXFJP>4Ob$SrNvb)Tt!&2XnvrfkvA-j-SKUTvH%#>5nUg8^^rP z5l|iW3g4>4p4=3Dahh(-{HlqJoxSFm(1$8T=>hj!Rru1#LmRB+kK zLdvEbg-hh}l!3(QTVM zlY$cwT^gd;F*#tmrF(?ZVj|eCcVw_fxv?uz+vc!x!`HOTrA%@I&2B#<}fa`r=xeSIhHjy>3~jims#gB zPz0HX<>fv;En}gD;g{aSXX)eNQTZc`8gK7teW) zLCHIP`#GZ*%e+g(PTf2ED~z5J!Aca*AI^D_hlWtE)4o^m(1_cs1Rs|P?x$cyf25@| zZ$71B6_@m11mSF1=tE>-G>> zJkcGDOZ6t1?$J2|gS(#}*O&!15EPK&dWK5gX-6qtcnB*o2+_{v`$#~6atVhBeszNl zL7Dg1`F`_gp!n!Rid)+`(!VTJnoBi0I}*s@V(B$j>AvE&?m=8wljmO}wEx?;{`2yJ zUODwNw^*>=d9)|>7e@h{pH08ZYUcxl7hW9u!YjHq-F{y9S>)7x(XYzySz=Sdotx2_ zFLRVIYZ{HZDus86(H6;QiL2D!z;U)rDj@59>sCE(vUx6`F)gd%TCGU%L05OG)egR9vFs&K@vP1A90lb@-3xW90 zKqn)*2`G&@K<>P9pC6bgH;}^=#l>Q7f=;-d!D39oQO+!~7@XY9Tt0yvTw;g?@(8nu zJI&!0N19ZO;_kX>arkd9e)veA<% zj`-8l*v>#JnFKg{wApmjy_TDlXB}DFdO0j!j4BLE&Vx9W#MiZnX)o-?QAw3ocsq72 zIRrb*ozewtYhO7T*$)g&-mPU)qELJ#GYsJ%|d6O}bvU~mU!Y{s3hGmpf{^j4YXDHFH-l~k|g-@mwFe7m(-$E_P zNLJOz>2ir4qo)Vmlccw-#WgXLSiM+I?t|Fh~J-u&$`H7-L63wvi)aHHj+hG6D%Ao2XdqWQmE~mafj=6+MK-cXVu^QgA&r zlB_8|!*g`~e4xAPuazEW)R>4}9Vgwie4wd->o!JI*hA|p4y zR~;U6u%vvhINt%85fCfckD>AC@NQ;gyyz#HrahG6b>I=&ZkhcSp%8O%R z^$)c?kNUc8W9D?|;49G$vb>d4IaTc3 zkN)PD8Un`KGmfb<_K0_Mwy={-ci0FMyaAn&@qa|4hwNChj?E^RfPjblp zQOG$Zc*1Em5tcN!sh#IZ8k2Zd4zu3l_#I2fBso;x?R70Z9>Q*;i4Cj1A_rq$b6bke z{eK+2eO#J%nlF5VVDVP6gxnZ|W*;zO5in6JHgR^&@@f&Z=Y}8xu|B?_Q81k}v9o8K z-91PUl^7o+Lew^A0l@;IAx6{Kt-FaPMvci)D<-zx+0C>urky^sXPY@Qd(Qdn^IUX3 z^O?RRe~iEUe%JNAzAx8p?@!aL=CL|FbXGCZu}-u1Pb=x%NTc7>r%daAN5hs#6m7dU zu#SGb;#d-Or-j{p?>27u<9TK*QSZ&||R#B=Z^Sp`iI~b?&dC zmN6(=8X-Ug4jpya7(B6vO;(hqv<-HOQ1G5*2M&n|S41o-?Yp}h#!7{yfQfJ!mv0EA%sZ>^fO$^1U+mGwDs-oeT+3Eg z0)F=Mp8mF1YYyQ)=Vqw6H%%Xc3t6C5Q}sPq)UT?g%sIJ|Vx^&dpt+(1I-W&PBBf2z zK?u!P!e}!?2Ir`OII(C8NRIHBdGlZ@M5Jo>AxL>dN_1M+cDM&UllH2oyB9{92y|4hE>0XQbY@D#8J$wOiivD{UXLNhY(2OE{XQ z=$7TPuuY%bYjww{8O&V~jVIL{|46{h3&amn@%z4iNbLQq22w4c{c4{dC?Ik6!{;B2 zB?68X#f#>0eiq=mw*t?WV6J`YgP-3c3Gtx=_GUR<<^Znc*vON_g z-KUDa9xkvQN?mlU=FRR>4k2YKM9@9Yuu8zZ!&S!}OL7+6ZB{0j#8I{gOz_My7ab8p z5nvD~To#LR=!`A+M$wt|QqgBrm8gN($7Poi@w$dt{3}3DghDI(l8iJpOu%A3=fItN z0h*dnjk~}7pMUqZZJ@%#%lhpXYXjrxTys|Mp9%Y#`=*a<>hDLj#WxgEC+B?PN>`eG zN(yNAWD_<`OAJ_?1%|EKjDWU46ABz`oXTB1U5 znlMGyEg`b~&?>-Cn@W+^-IJ9{#S{s17!(Hxu>#Jgh^(yBG9hNaf68XFe%W9I-w($9 z_+RX#7~=M6zob`-w5PTSeW;is#@%ZqO>jpveGO+LBc$!7nWOYy(SLhk?p2m*Q~&Us_N~C&s{^uWnr8_rV5q6YFQvUu`qPYl zkd5U%{4A$BOWiWFHLSgSq*w`SRovitsIDpQn}JX=)Om%aWUbGVU!rhG8zaOO`a!Dw ze%Q7S>Y|GcKQbjdy%_Rsi`is*_qd524yKnpX=JBpd=jF*1EH8x12h-*ZYM1wnd!mU z()KW7WosN;v;q;SR21Y9(Nd9gl-iDn&@z`&il?5kQBgMWUq0U7!7Hnob^;QjwmDdB zG)%HBnRwR3)|>CLSy{_|&Cfr5^t>rco_VB#V_rLk=9Eh7-8YYN&R$x~P9`*{kUo=(eyTBpemGy5d&xI$J&H_)DG^!PRl zag}AWiPBMk`D2S9%n|!=A4Lk*3mI^=1S-(@n{is1D{@IzN?=h~n~^p>l4=z}v5=_F zL;DLLZHP;XW7;snALZJEK8BT}0J_H$_=>d&yg;Tg*LYe-Njq`@wNr(ugdcuWOT<`< zw4q6Dgc*Kdzn(g+E51=#ckKAwVAk_K^NV-nulN&{c;fm2ckxpFxK_F|ZX#xm6HYm$*3X3Clsi~N!uad2Z z)oAk1zgyzEFE)jh`Eft1!<(He8sb<9MM9Qj2-NhM0sLjh&BY_{0&^h>?tCZ60^FgK>TpG zMWWR1!eNTS7bfb8G8h(a*8lv+W7E%bPd9n`n%YC2#VYosXTbbopQ{Tk=5UkUuitoc zNicg>d>xE?G4qp4_0C5Jn85ETS5aN~yk~GHj6*w!U@!`J*P;&?vmt@^3%2?9`Ks;bLqODJXcrx+1d&M!a;b!r`awQdC6Dt@Kb}1l;shw2T59#pb|% zH7`j>Oiv@K(s;<8%zKe~NKau7OGK%_`P?K9v&FJf3C-#xGAUXT3Il-%*~A$HGLyiw z;Yf-I6Q^!uE4XWEl4so?WFUD2t~MjPD$ZymW%eL5vdRvh`My<|$_eJt9}NHJU;K~H zR%zahaV=L9Y<`cI^~9MtKo2z!=+DacV^T-h?C88)SP?t_G&rSyc$5KFAso>0v`)X4 zY>viBgY4u5KSd>{1ZsFjPQYlI*@6WJEi0F^HcvBe)*k85hDt0f#Yq1Z4Kzb7$J|fb zR)ARJ2)F~7eM)ARHrj?z%t2Lpu`;YrthZN+*x~G}YL4x$1nFjjBFiF!$wK5RHM7E2 zuE<{0QAUeU=|&2rG)1<@KoH1(BD9V10zcP>7NroUl&A>VumXB+J0`h;927~KNu^Y= z319=2A@kE%6z*sfvw=fIJcZVYcGJwlKQ4dI9(nXmCh)nMTWMYVBP~+U<5sJ?_{o>h z%P*IfvL}0m8&KIC1O51!U4u=|x7MY9%^0l&a5aSsep9YPhW(u7L20ohx51w6LYK+VpTu>Pt?6p-`u7Xv{yRZ6NErguZ_87(}c zT>YDe%iqmR^>IIu+>oCiyrho-@tx&AN?PD69mRw6Tfhi7PCCB{%o|^Ot}~=VX?3wz zC&aw+6Y^JRbVceJ%vuYZL(1pTUU&v-9(}iCSeH-(7p8k~WD*O3r>IiDT-9HOFyfmC8(`lXe<>?34%qfR9()eU-Q{ zar6QCb=pLpV6XT7jFrMAf4+?n#@{bGOzg9a zyxTAfTC5eJoMRhPJ*HEl9$OW9992<#6Sn_(c%Re?*8 zBQXf_B+Rtf4kmQ@Swgb?9xAhvB?ij+jDa8;me}tqvZ)R$MVS|Hv8fIxsCzU!D#lBt zvQi?=wgmK%YlA`{lUoR=^Nn&APTRnn1mifOu3I7_=P=eb!tHJexXv9cq>mMK0BwFy z4Z(tLu0Sl9u-geKIKx{gHvZq||Mh=ux1Qlc5>)@F@V&|$j`YY@`+$`7e6XBfZ|gnE zcqlhN<^wXcPjwy8#V)+Azhno#;DB?rknUGL=i6gun5=)>HxtrqMFB4ihj?4lPVO9J z3O5Iuj>k-i%6tL%L;G8WQaSWP2^*Yr9_~csA~sRk$Qep{H4fDc3kCPn1e7+dB)gc1 zy=)AOIgeJ!u+y*v0rPNe_hiEg+7MA>;1chG5CrqG)8!urW>Bl9Aprz%vs#1L<~KE2 zSX;M9toa%e8Y{)xR?Dl?by6H50aFy;K&@L+)T>Y0@ z*hCOIJ+5aNw6PVpuOm-5I)ZscYy!`4WJ|Oot>{s5E%ZglU1VrfvZ_WXqEV_UH=EU_ zh6%b9?;)dJ47w~yh*?1u3!p5DR8E!?Y=J8@Bz?UUp`Gc*Q3;B%uu`OX<2MVLb4{0dMGp3L z#@fS-^WGa`m>FL2%lVFz`?u@DX24DFaquUXJZsOdXd;@|<&<~=cy;DHluYOJ=q4U; zYT1Rl5^oJ!037)vRbg>NS2wZ@Ht7hpwRl{2i*%pk>Zgw>P+^~Y9ZR!G45MCfXvkn+ z%3VxI*H;aDY36K76%eB=*dg0t51`z(U>GYq!nsL>Ri$nxyrYq}9i)xk2csC(&Y-Eu zR-OfczKQsJh+4*?6y{BvkaL6#5@t?Si(VSUTyixMiN}abV>IOUN}2WJ-|-~bigRrJ z2!X7@AtaI*pdHDW*@6wJKmYId{^ge(Z%v>atsS#Zm26Vs{uj4Ek5K!U>W4Osw}RY# zVbe8UZPkA9+BbolHx!zXw3hD(zdAr44}_!lw>+SO@3)*4PlD$GQV%*#)DLuuCRE^k z6!6Z0$fgAgld9mV+`TDu!L*u($|hVJ97h26D@4yu=U2ad#k_RoSS( zyeXr!U7l8|nSTb${8sGw@n;fuKMnAs?|>a_X^ylMSs9bo!B$uF@kqTtQxMv$Ojg*( zCZi~e*iY$g*1f0nI#f&G6;;RTQ$Q{kt2p|qz%B%5nC{i zapc^uul4Mx6mvNzl`o{aT#t4km3{p!!)D#dP`&$B;N}uo6m_xLYr&Jv*8;Z!^SI}P z!t8%2=6fD(mH1)i`ttdK8h*~K=5^NnC^r;vvWKB&3hpE>YeQH|==NC5b-$|lxNyGs zP+sZCYFcYdX)mVvOSEihgJs&tLzi{XL^Xr*wj#G7j4X5^n`=>gO1!MaQj5SB3uK1lwvOfj)qO9${4!dbn^6{#=fVRycy);lUFKr0yxe_JU z%nn!yv%$cG56q5;!^i!28z&RhEFDsI^?FYg@(eK8uQqTbwTEow1X<)1BSKS45w8j)p@yZ6RzHtl49;db#kmDrK-Rw;gehBe+OX?UhM!pY7B-?AT!G}g9lvdB(|t4~3y zs8?$(ZHuAccG9CH5RpC|A^Na3vPdi!wROw0e7=j6wjME;ZnGi1LJU8MXOK(9B9>3d zAHtEg#~A6hk%B3CqOgoq^p2?av;X+7(+>qTM@iES7n>TCW8c*!>ei+#coHqi}xTMVXtbMpSE*2s96j z#!36>`~m$$)n_+jATPHHp?E+5a9fg{+njeRi)%SZJp|~obj+z@nf2lZXtc_Hw;tDm z#Q~Hz+dVy7*aL=0d^ha&X|x%RB~!pf2wa?Q3@9N=^$fR?SYjDQsG!o-nnNRPwneB9 zAT9$h=fX7zfg0c-XKcPQtD~ab&F zWL3~lblIs;G`uFRG$?_UkW>k4drvk;&!==y(&QYl_UB^k)?}!GBYLJWaP58Kx^BGG zOya`yiGU7K$fmUU0tjgD06xEzLR>OnWo;ltM2)1h1wIQn5enDNBl=LTx?7)4(3V1i zIz}!P`8=W)Mjj)tRFeHczeJDr>4?GduMYjw|Az<{f7@d$eo!9uEHPW8pBzn{h67M8 z-`2hr6rNSQ;v37)dsMalEjWxWNlujhy50$u;=;|P9EbxfeHw`96Hy4=y-@a~;UT3n zcTubMbi`_u5OC0irj8e=I3=f<{;AaShr9FB{B%IRI16VRm^;;jGIBF_E5nnEgg}7DD|w(-G>l$I1MSI zZAh2|Fu(Is8gT~q97gK2c>N}BO z>99|Lvc^-pQDgpeJB!BWMl1iG4`))mICQTZYwqROo|T(&iXXu>fbz-t!2TATgL|&o z&e6>6&%tPV{`q7rKWE`^;7+sWItTpYj5&R1KY~r`!XLcD*B0nK(KBiIRDj!)74W3B z4VX5o(TI0=;);PCTZSOOvQots^izf!liVfv!v!9J(5;tvN-&Tk;`AkXuEcOPb?Iyg zJ3h*h-6cD!8{^xR6{{x7>C{D_u*v{|r1oW4p}Hn_7twGZouH(Vkv4y-oeegmbR=ED zy-{SxwD!_M)~SzwKoG8#Oa+52O3;uAJ`}EseY$BD!QTC_8)uVg%b&tJRRCw!CD9>( zVdNH#neoTJd-Shr8ovB9cmu`DwN$7EiNV^8{l>w1XJW|_GbbkNhdfK=t$*L8e6fGh z{7oPwp`2mWkefM%L}>o(>(i~N#$v5C9p#`ZYtx6zM&niZ_f089j_jN}OiBPQq~xO>G8L%hVj)Hnkk7B+1x zz$`<8R7h59=7)qA2{ig5OszmoIDAP)Uryl>8n}_bq0uK>Na}`?r2#^dMo^OXP=xFg zq5+?Xfsj96svwgHvt-dZVOxZXd`U<8DClMJ`-30$T|8YO#krG+Cj}>wi_ZMnU;Uqd zd~f)ncv5!~f8u_v0W$Z7{K6^ylS^mPjCWq8y$4g-(_l0!6#pgw&*k9>@!G?qoaWjS z;>RcVrEVciQsZjHqI=O^0!5@q(9a(gfG}{4 z_2ygbjUZLYRU}OvD@4#YH@Y<O>N3_=ALIRQ|A`rO9n?DmF6HY5G zY=Kdhgb^=N#1%H{23hq1w-gVPMf4y_ih*6zP28Yq3#CMVxbl+eie~c{pZ~|1*fPvt zOUyg_k#>&qiOWA(p0Ph&@9<ozrk75*JB#Hf6t52Grr~dup~-jM z;r+1Yv+uy+ru6njADj?lu;r?zkP%)qp5}atg-UN%NxVZHjw^*F=GEA6mFYg4&Rn+? zgQ{6M+Q{bX&DzSwunNWO^Xyx6C!9h-jEm=o9U=D$^DPe5wT&AtN$vvw?FOC5oJy5> z)-h?_Vh`+GkakcV5Hz8Jt*ww9I8u$|yk-Z0_SLe~hCz2rS?1NZD}N14@ifAvt`a)9Ckq^Uc5g z)BCo*lS&v+3TvrNk(}6Baq74o zC5H@X(?P21c7ttYY`mB%8rxInDxu}#J)@?G8q!tAAyh0&OEbj{QMSmQpldnlWEILB zxT_Y4wxtzuZa2pYJ1%_^uu#dV7*E3ulXw!E8j(;DE(z@@#jM!j5rSM!3x|;cAA(?# z7AQ3Y81?FZsoWEFS7*Jf`_3iA^jIV=z-?Qg%2kRyHYTZKE|jrpw=vUzppUs_VSw zd%otGG#ZRI*B+(8Oc(*Pvqw4Te03ayO{QB;W4N`rvG5l2rs{Zcboh2tUeZaJ)>@l6w6p)6z1kq;EIW3ms!vL#c28GzvS$g7sFEK zd>z;P1&=XgIS;puE~{->GB(T^9~f_&AOV6 z7n0gST_?B)`wfk}8eT1BiROL43x~9WLlY6@nPS*lJrF6p$!X>cSlE2}Vm|XSxtJ8L_56>3*_7+s0{O-yvgV&OXu3 z+(UT;aqe0v5k<_Kf{S4*+vj_;oL?ywOSSQeF978b5N@ZVGl^FCUbL3l1y$!prT+O^;)eLC{K7okliPaE z1vs^{(!kBM4t62rfrK;usUuGA!~|P)xv-$>bWQP9)n(l?cW7j2U@Y21^GYh>{@CM~ zyT2c@@={aPh?m*V{o19+cj>z+rr5`;CXvl)5xTsjdtzCcRA1WHQHJc&X*;xyYFPmY zN@}s5M5z|Dxc>MC1+bhVSVr4G5VRWyjzmO+K^!O63g0MyLs%+qqez0K7?L<(BCKP? zY&l}Egh_U5+LHm>&wis-p~I-)jdc(2|YOB zG{!cb26^z)D_?xDasIdcUGG#HHqOdlosjQO*JhNwu6MuIEwCSL>~oY)0oC*>E>=%W z)5pPzlkD(o_hU*w4=d=R1egg)ok80)7;$nZo4hl|<&u^MvG^(v)JD%FLs$vs5_jt2 zXraq~tmKM>eJg*49p9FUQ57n?tt=313s~`M~`?{0+3x|WywLxjQo)29cI+*cR;I&6uKa}X=dw65}oes|0 zaW6~w8JZ9nRNQ1dp(5az&U9%D8yq%e8mG+e9m4_q@mN&Se$B(r|Ms0r!I;zkWiNlw zeMftZSAVIOU$MY`C=JFmUj!F8K%fA=)pcGA#+E$&6Hs~Xyn;b7G3mLXfNI?NsV~HX zUppUCzBsEeC(s1122*|mzO7-4^0tOjW+sjy`-h z$_{&Sq5P=fTPNwL%xmh7@5Fc0&X#7%g7a)xS}6&+7a?LZgZ5KR0ec@o4&0n*b4FnX zEDNz#{@8g6F(Bwk}#GU&lYiQn+;?J zX_kg5Nu`J=bv{D%3Hz8~3ff!l6dM?{Z5tEZo;9s=zkd47pJ-lQPG`B?!)ML~dNZ2K zrPl(l9i1NdiGfqmarQfFk8;jRc)A4+U>oJr*t9kbHCdG~jt8e;N^p6Uo}&!qlgnF2 zY9z4Rz@WcBd;YSy$ll)eLS8grUcOv&Fq2VSWl8`eOHn5Hc~abM^3s{nY*fW@ugY^} z%OY@QGw23Ef2@zL6|2cAm?NLW!QxT+{s)3GxEqh<_lJ=@ zGRhv8Q^Y2+NHlB3q|6N_LZ(5dA}hF77@>_K1_pC8f_#~~fwU3iO!OQk`gmVF+g(je z{Tjs(nthu~BJnQgewS8A0O6oLiwlH|oE@ZpvhcTm*>gSjC@exNbKe{koDQAbKLzZ; z5d7p@+Sv=Qu_?pG{sMb4XUZJu0^vV7Ii62IMTS{&OIH8~V-Bss`0#*N4!z1l)keqs zPVjyOJneRU;GnLrqN>diZFxY~C)|cBn)RFP43~#z=x<~nu}4gWL#QfOl_uzhk;tb| zLC2AKEhX8Apsy`B!L`0H0S%pB$H5beIbq9|_6vbfLc4rI zGUajB&B_ZkTRn{So|<;&Sn<^}>00$^`ns!NG7E0ZW6hGL1imaW;#CQ=siP&?plu8C zDjVYyQaNXAMMZ=@?#)Ie`i}fcIoSVY3<0{89@nZjg)#*O3U)HujzECV#BKPZe`#{``OcX&Rg6ZT8odcRnA)B6V*C7g9UN_NU7w z^cUY-2A$sor!=qOmGvHF;@1K<;XI%cU3l$S;GC^A&UYz65S(nm6H7Ie{pnY0fQH!& zJtS$i=vz_jPB^+2$Spn>sm+?;j7(JN6X+SCsQ^}nf)Z{nQx^2Yad1ZZU~_AO^n#$D z8w?NSs!(Ma=1pe{JYXHT1fj;!A|ZeraEA8@?n$r&Z8Mk2vKyZqpc%b@V1%&;t(erQW7#Du9H^Wb*zt) z9cwPHl5+aLO(-0ztweKQX&H0HP}<==0@cak2Z)##aQooh>C;RBWjBRjAj8t^iYxF{ znh7Uzk4jTZf|wW{QiP(#eE}=bdmsUzDPj?lE}jB8)tDmM`#hTS82DT?sUf0mHY-qD zA4)Vv0gHM_^<*8nT6>}dFC^-yBN584pZ@m040o0`!<7Ms%KUs}f8h-nv4406lwrk% zZ+<$T*fjlhy=UXqQO;y&f2vD*E!b)CB_4_&RvKShf*j4A{myHFSHN>a|57eb^Im(> zV1dIAH)T_uuwSP@_f?gF_wB@FP3IisDyp=b5Q~pF=Iy9?m7e8=PgeoNxdllg@K(|F z9YVT#CQocqx|bxYjqtXFBPMS;b>wZ97iRGiFd$_MvF@<@TYDMx)UNH2n$68waoiKJ z$8jNRUxJn9l>+||Aj81z=&S_L)?#P}jLAMKk|96h($_Itz89>JrUnk9X9esm8 zX4y1$_5uqbe*9rMIIil4Uwp8oJ2ibdbhZ-kb24|)n}mnD>15IQ%?w<#md!0KM-w`$ z>f#H8;KHdX^qf)iLs@a}GA|nVl<|S(2(T5*qUdgaYn6c`JwwkA!$PUa*05`p>n~AJ z;f7o;8P9i0^ky(%SwK9AfPPlSOKSIbn_4*+L@aZe{%+|MdQw85PNS0W1FUX|U}a zoW+*zt>B<;s!KIEUf(MXPSq9Eby@<+qkva<6y6%}7~slSgx^B_bo4a@ zR$dP}FY|Qj!W#aO8h($mWK%ALPl91H-z^JI>#C2lVRIfU?g_ zze^*6jW>r=W+6i2+u!>Lwzo5$ z3D0N%kMqnVD3cjxr!f9PT{CdouY&FTMN^T1XmPbZGD&+NY-X;EIO3y1Q-rAWn#!;p z)3)XyaOT-m)v1XY=w;GKR6UUq7b!J}GGF4uA_SbD4l5TS%-Vby(dI-nOf*HrUuTh#FqKT0 zZVdxAE*&|mN;U6IU4*9rOg z7cjFbpZY?t`1P0JOl!#+f3$Y&DOB+}`N5jBI?W(+%TrU(-oq0%4Y4ae_Q6(+QaI$AAw5Xh80xT%=A|xg?<=eR8DjZUEwGMzVC2oBB`2 z83~Dju>&ku;`e{q^9|7D3JZ+thA)nuRJFrEb_*WU>W*&Vm@hP$fL<1T?dki0@3|oj zb_y0ax}V@sXDzQDP}6kcBdAW-{98JX#lv&Js)x1T&UyxB=9Kmt++GtXmfaRiN1GCY zW-M`~qiRUll87zmHi>6;X0*~)#ZW^>MBs()#p=j36}UF1E~Ye=SVm1V_)Kk*)6lL6 zbIla)ZtU$m;Sn#*KsUfT4@@Wk7Cx6swR>qhX@U}(qyM<5QqsrOA%u36QAUJx_=HvD z6FwHT+4>MBjPP6vK%|Q}%1g&tAU*(th-_TD?yv&${3F#jtJQ09qLLK1VpS@I0)5D1 z11P=SJt+p*#KZck{@Wk_^cSJ>)1ly;HqM55u(nP<$QkQr+$PUI5S6{5#A! z3m|}&SAyhVM(z3uR7-(wcF$e7Iazz6=6vG5mJ>}JR;cGDUI>##%7;U}tCv>`}TtyU~?{hB_}#3CqC zG}{&f@c|5g6QXsC+6s`uy^8_3Tm<5ngM*Oe=-x%LZ#YfFSm$vO{*%@BbDbz{gG^)3 zs(qFc4~eD8`5i0p-f5h1B?Z5Cn?O@wfBffr%|6eL_T>4e0jM-N1?D@Jt?~oqM-N=y zs(0b}SmtA*~nW4?}Ijp0b93igQ# z`UN`xhdAk!>JMVW?>BUCJ4)MjM`sTi4*ZhjmFT6KMXI8KJp&f)88$~*0BS@$DdQAz z)u4+f$wNDaS*-yk0s(!31{O>(c?TLk9pMtU$OLK=*DwE-&04re+hDaJ82p}7o7}bn zczQTKyE#iP>fm+IU+lSk+|A=-w)+ga=$81iercoO?81M%LB)T&s9QK36XM?l=2|_2 zz%WB2bA1D+5rew?iTt|-&iNPS7Z!MYx@n7lt6Vt-h>2QP=6>y2s!fh+_3rWDw7$g* zCX2;0s8$Uh5sTpe1~%jhYkTXC12=g}@Wblnqxl z%m8j$y@30tOf&hn43Ei<)kdoKabtC(@8c~4e2>PFq=q=|71A)^rtZo{c&?4?q{)Qf zvydgoHZUMDN}EwcOHQz1+ZOl?iA)~YQVDHD=N_5mW4siL_@mc=CW6TXr*LU6@i)rB zpY>8SY*hkVg3`j{72Oh)?Ng>jx$&v^Ht`XB^oQ=bsJQs)KmVuyy8QfxTyiZbbWUbH z4JuwGUtCV-;N?vqIX*j*NLFtE*CDuICk)e05Yw5rN4InzdZNkmk?0l}OCP~t8}&@i z#ju#>wFfQy!XAryGH%vv^&F3JpV#2EAF0l zPBwL!;{`o#Z#2sP#nC#h{ z?b^4-oUCv2_AGQ^J$NoYpa=Bb!32zLe(%l3RP z#gfZ#aOiii>q)#WeEch$(}|G5`Np7N#0?{f>;h$x&>kpG_&88R$CzBmV$4gm+Y6R9a{rS6ZTw6e&NU zS^Floz<7Kt@S6D=$by`Oq+4U~$|>Nu;R6#}n|$rG_GcZ_ys&ag-Dr#)FS6fx;7OD= zJsW7&RkgSC@@HyFnmN_D=PGegwxhag44Fz5>u^4%d7;1_-{n<(muY&MSIX1BUnz(P z$}CjJJdjDZw3QbHq&UnglJ!IquxFD^%xpr8J(CBF5rJD-_i?$99x1aDtz6r@i@{;6BhzMcx4c2?v-KV5#Bun( zBLXQy>d}HW@y05x0CdSYPPJ&}zyI~We|^FKP?7<@rLxaXh_B~90`v`izTWlZ^7dJS z@deN&Nz9$Np#`W34e*`H)9)Sj`5$d|&Ax!XjwjJ_KuDhdUxRQHRqS!NlY59vY}{o+-D1tYt42Ai8K?%Ft7#?>8jK; zL#B@AcVBN*px4T;I96e!MDmD$j0CF+?inmowvBH_8p&=zRLpL0yHSV84XIYJ zHre87VoIBpf!X&y-~V_K?9kvJChw(Ju464&idg(uF0ySX_vEE8;yo>b^fhj@eZ2ilyXkXblc{&nVs2i5sf4KGiG~03U1!#Ed)?1qsI7gEy=0$C za{fR+KKTUd7SlWq45Tx010En}|E*x>waNEt{h?RX=_JtNBrStL^53X5&Y7P8Qh>%M z^^R%+H!AVVmVqdJSL4@lFBcZ~XhZKQ>x}(T=Ilsfz#WM#D^#QE!X}xt@s=+B?2xw7 zRKf%TfV87JkYw`LXMo7Q1@@<;JTg<#w(Hiz_7QeGAO2m%ii&K4rP^@HX3=gRtXCph z(<&BS45BTNem+eM35sD1#Ar3q3R5vH^GC|z>$EVLv4685W?&;Z-vcpuLi|b1KES90XOav7klX;YIz5jz4V(Ij;f2Hg zo%a4NaG{?mtSRIs29yD(adxsIH(IBGPs`t)ZFx}Gq{}re7oVFuo$uCF8<*sxt%@L& zq*$MjGg2mbi>|$e&)X{-w>>m}Q}#z^6tMZg!J)(tg&*Ox9sHi#cV zLj+ZgP!KEWaFZ!4m#Wr^__cGe!m~OXOt?@I2ip4^zo7^CX)AqdUK=AzeAAYBc#Go8KfF<+gi`V7kX7shBg93s3pzz+)tAHnZ{vbMJH24K-7 zYXB(06;h7D{B!*uN_faYLuhq`;*??etn-} zBoQ6WwG_lwxzA3M$}A9608v0_2O3vuI9{zPfw4Hf#AfnR6+=`vI2~-O>QTwc*gX)I zR#cqq(MGZbW%iZ!we1oN9MZ5@%%SJ`U|$~WqU)8=zNDc1C*3KHr)(Q3V`F)^lE2Qz zFZv+cf(H<7F(7sX1(+75D=f zs9K?>d6I{7I5?dXIa37_;OpeHGpbKKX0Jh3YFj6aKc(W{#VqIS@?_x|W|ZTIHjT}V zUifyo%IsCHI;E*F08hkwN|^aG`VP2Ykoz+Ty2Fp>p}E2T&6lk+dAIV&?$yS)ZEqrO z;HB=VEhc8DrY1Ub;LInjw=_X@**iNJkS`hJzEJ+^b?uTudJ zz4JX}Y;KN-cB2iE_!)_XbLh>_|9bBZ4ltcF4FLVXx$6gpw&;oPAoX)PcpK=a!OJ`F zZNnRiec*o=j)gjtHwq>|@frZG`|UISTQRJoKrk#=n zjJr9j9n1GY@CF&XCn`HvXzeXwkLzEWYVf@$9N8a#@zM8FvF7sQJyiYPXV(w7;OO2v zq4*9Y%gUOC{LgMwb{*wN2H}1kh3f>O0nCD1^`BIR_>iZ1vRm75*Zfs;9bwhEfCpIMiQCSCff7cIDKQ|;FPs;Of*cFDTyN=$;Z*Lw`^z&W zwC~G9*zo(Erm}RQ`<|(~HNN}kbbg$^3ZJ*HZkW+mUQF?~8o18{J0gSN9_(Rw)9Y28V(H;i^uQ7#w98??k9DIiJqaY=9dtn%@%>|plYYT$we$;mn` z!eBK)61xM_>HGYi3<=VJNk)7$BkfDc=JtkVqyvdvj43I)@0ivi!Ej2Wq+fBoy6Mk< z|KpX;r0bc{1(gcy5pbQhazI*0;?T1HC4_SVRs0iRU}~V6x#zxzM#=f^si8~i;b|8* z-zU$j{W?3^t^$%6cpG8M1%I@hS3k;GdtS)l%=k0gDX*AOf7Wu{F@tv+%UixhpHVud zvihUiFPN)&m93M;MS4Db+kTgO3x0CRUQJ~Q-!MnDt=L|^S*S8_94ljsm+-up<8iCc zv3?0>Z#$@$PSY2UR+-AsGFchABho3D1+an;?H7>Lb^EqB5B5^|sfba+pb#OjFBL1q zV)1&Jl~7GD_=#Nr#p=@$aoyd|pLAMA39_WTfTyR4aRNCVDa0g9>cy;1nq@@5P4ROA zt7g+PZA6jIAvvZRsU%PAkG~lEVNoaCkBujB*5qcFbTImW_pTcr<7V9g6Gmt0wODKN zs!3sb3{Jn>Tk+W=IMA9457e7oFk4U8$33MlF5C*teE_TkRKhD9OCx+trrC2qe>K2h`qp5Ka8yFbt%L9$Gq+xiUvq-XXG2ak^sY`%_FX~a&sSPOj9Rxy{ z#8|tVUfnI`4zPT|H-AROURH!;wfP&cNxN*g{GuF(jY^7NfAV-19%9Y{+Y7BSDY1ag zGU%Rp2nkofpm57nTje)&u8=tdBlS-se|3fW$64)Ur;OQ(`?NtIm&sKWv7 zCEF^{o`Ty7ppR8#bN_L<Ef*ceXgzQ0nlC4nwdMO|?QM!nWWd0bS zsZW8cN7W$mc~L9bF>ftPSAOdt(u_n~4~?BLj-p^y4pD<1vtfN$(EXqP>fdj?sc42W zRo`dqRzjtzsP`Vq)j=9x|TwbR0yP(jNBh2=<9GxKY=pAK?*VY7j1 zQZT=i4KO`XL*CsPZSpKsxt0=)G2LPv?%2tuj;%vJ;a1A&v2#_UWH?Js5M zflh?HrxLYUVZOdscdza)`ewNkved+e)Zerp9wnH3D2CUb8dt8+3B=1(U+>ST%&zXD z6v?Vcn4+{RUz$Wpc$vQd40cxPyB`H(h6+%HG_=5Y;CUzc0{1_J@&@^@r}CSdT?djF zLuv{9;T?W`uK`}=;}$4p-@zDuI7uMG28N@DgL8GlSB3OB)rQ$4amNi9Uk187l*NE7o9E z6^>GEOJIYW8@*bwvO1$4zv#y2A!n#*&$y&;+enERx8vS;1N%vc2HOWmK7{3Tr%f7> zn)>m-s5w^Px_H3yS;nl-v@Q($_+A@Q2s|JGXR^r9GaF9Xw$L|fsBf|gt&!u013aabu&6osM^Z?Yb>2m(H zKw|&Hm+NF$Sr_O^-9|TL#>mPPOFHEamIAB~!KL$`Is3vPVFe7YcgIy|PTR zmtI@6DFkc$CIs^-A_D<-$AgPQWb4xsS`d5Y{ZgWDFZ)+kRFqslTS|~uuCrzh>li#x zkl+uE@<$3;MO>nlMhp>I<86`+p^|`tiyote<6q(5fk_$|Y~q87?jU@X>*rtWb?x7H zJNQ=M_4Lpn=ruq$9JmZTmtu3XYjUtxe(}A-vFY+F#{HkXW1RgD$6$Ncb?B4zTd(== zWj?Izn)L92lMl?-h2iX~Pny5nKOIP%?=95ze^MxjMV&R#o^w}^7s&OG*}A@H97nrTNZBWc>$mMmn;imMF=d2V3~RG;C8SaTuVePF z&~L^>{?s7yJL@(qI(_rAzkc*Lhm%*#^RQ+T++){k1An*%ZdH#OWSb=9fY#}qdqvew zLw86Hm3)w1few3Jf9u_xDa{-Rg$sv$FCbfD0o&Q!ex$CzP%)+D*UjPMyqwnXgZGUF zb+tBO*Dv$FFP_Z0U#;J1*cQ5>V_I^}Tgu@>hHxH?lm%A}1YiR@ydQmhRH`0XrMhni z#jQZ{WM+N{MxnW}%f}Q?Dl3*+BMoAZdX`L5)A-r9)L{#Uwn=s@5)Ire%4r}A-S=>0 zyzX8HqD=*xuZ9WR|879Q8`;3^up{jMXX)MJ($3F(aX@eogG&q=gW7|M7%ynlfE`HZ zw+L#y1Q+lIMqP|(6m&8X&1~%17L5`$Y84fgXbOr(1P!8Qq8+>DX2jcg0gNV{wv)u` zWcK&!B<<-ryW8{7J^$oo694+VzMs$YJn!2R4?{L;Lypk{=B!1a)^G$_A7U-C49Tkj zLr$G)x)r2(rIT!&B2aGO^(zP4d9FHySQOSHC{dvXl}}uL_lrW1HGcqCk#Q>CIUoX8 zaV}A|;iznfi}|tT&f4LIv(cwJG9Ln}S{0^*u46U;y0j&`Q?f|13_w(7Md#uhh>QR! z-V?wPxlzf_E50*&jb-@o25p_htaN_il9AX?PxE;)B7GL1@^MJ*p052c0;p4>uLKSh zK|`VD2utU$3aK$thdaIp&)OanN8|%N=An7AY!;mm1&gTmRcrnPX&3PMQd+2p`r-mT zj_6j@uk24Ix|KUuY4c7K9H|l=`w2kKaWU2mKoZji^M=6~hPaZZcWyRNK*xSRu3QT@D4v9;F zIjVkHbU}Jj>FJaxIHU$u;6$cQG7QLbxD)v*n&`Wm)^kffa^6%Q217Y1q?Bpxm-Wf1 zdvP%-FqN+kh|S*1&b*Q2y&_Oub$ci8s;Y10(+M^ZaaL1s0mFphHMAFj2RH>zQ5Vlb z0Skm6qcmhb%YDJS6{Sc=)q^Gt$?{sokUpVxR_8or-HzNL1Y-!iph-6&vGkM3m%t~o z(z!ZY$TE$p!da40$r7 z1mBH#W!QD|R0m!1@RhV6g3?n~K(hK+L(?roG}U0TXakT~SJe7dGtWmtV2OHXO%(}`Z5ya0lz z21hL3Mu=?#uIub+1+iF%iFb#~i3LfuHzFWUJlQ)3JsJWTU&jg#0cZn9OU>7U%8@i@ zMxznIKxCtd;f?Mir3g$-og#pYEwhR-z8FQll+rBW3!W5+R{J@x{_E=U8=V85qW$yQ zcj^y$ZEJvBRKY#Gn0RP$I0x}8Kq_<_S=U5WPXYUJ&YWiePJ}zz=fupeuUFB*wE*){ zqkU<^a}eM&HuGvOWn^UWS%_d_aEv-F%C>B%XS_o<<}ark<7QS!x;teQmG0Ohp!v<) zVV?9h`ZQe3*12=&{qg)K=9!@-O-ZK4;VrU~bb`-BlM%WtUwRt_~+qsP<3 z7&?(*IUuzv4xNBgP?QFO5 zCU$LqCeH#)5_4%ordzvicWV1$W?)We7y;JJK9V`&6x?iAd1QERg)+fY$9t2#{IDcG zbUbY2iaM7xe(5s*SjH6W$4Uf`>bw(SO^UFHPKrtw0B`kt41Ai|Ha#R+r`HUEd`$wu zm<{Fh({X!-;BA%26ce|jY?M!=TZA%-S(w%*i_ynsKh0-s8(p6Y)rjRqGz{?)EnxnW0w;H_byMMG$bsriWDVGIGz&ihA(63m7hxLpFG1Ia?r32UfY?>|AB z7LiKE{Wy?;l|pQgVL3Qh6kb0prB*nurxbEATY6sYYwz^}0iazCLh-itgYTgCyw1mN{KCNeL--$m1k0A~mY zZg4OcuyI~BaDF^g?QN#QjKYv`FrxsVZONv3b`a@^wDgHAnqnZ1$Pq;m_IWQ|1Pdo# z{~~`?`S<3G12t1-)K~gdtp0C66)WN4BD{e|?6xTP_fACU(8&WdIzVa_S|?M#iVr1y2)TGSv-x^UXJ<-hLR4tSApMGi zMtL?YqsMK_D9N2hPr5r~15n*e3!Ln!6}E3o8>MEshaoc20j$NWT3oG$G_v_+n24}$ z$vHah?g8dKie|J9)BC->b$uc;HXlgLnyEGnx`QK(A@)+zlhl{}mfcOU0v4ck9Z?mhp zkX4VB9-;y~v}W+tFn3cZ#5waJit^dhUH@K?t^=asZ<0AK5@n#=cEDu>Om-iXCD534 zjZ6XQ{db5K2KM{Tnt6^twUIZzRsbXE%AvuTOB6q-;dC0m($fV{W8G<85KIBng7;QL z&yk@YrqxdY-jubK#^}*@* zI1ukcvKa*Z5xfxkuvOh^eQE^?<8{(0>{6f+lW6E;Q4K3Mo#tTZZ`mAPKMw059>`g( zTqY0u9+MaILmRaCW70kJhs{Qv(oB8&5tonX+~$T*iR zeJAJyi0F1KZMA14D_Qy^eb&2K`0Qcipgx;^pF^@^E$`;(dYV3Ilt*Igu0)T!Xs zu4p>zupk{O<~+V;1>{{{<-7`1_RBXxENFV@i&3xeG0MlLCqnA8i9qPq=qB%E2T%ai zw;d6MY+2A#J{{*~6eh*uQ6i)O>K=)%VDtNHoZ&Ua!{pH5Bo-N@%nVR$haj@L*c`PFH_7z3+-H=o0u^ZB0mwX#C zxOgo9Xn{tR!z}J?WHvdW4R6v1CP+)*z-F^_4(3u8*l&Ou0CEY?#&aCg zX!f>feGE$Oxs2;hy(K{3VEEh8Ge)*z$2uxlmwQN(p zaiBJIk4|=Yr`FMBc&nkvtT(Inqy&*EV4_cAr=myMb**ZYXxOukpn5DsbHr;4vTirl zA{OKXxB$j5VE?{}=?XGK;oShUfr5pJQPixX6bN}gI*>h;_*}Z%x~ps$4oKpK1P9uXoFY6*NYoB%bd~sfzx&eK!KqB?SoSjJ}cyeQ;O*ln5|iXiN4> zvZu;*OQ2;nYOZpUm549)I9 zJVl0S!;k{Nw4RM2(Wq<1>5|M_33Z5_WAb6dOGpxAY0pMF0m*ugeCXJqVS}Pdc2Wg# z@bo(;Pq$S?nYY(oJR6Y}jhd7qVj;F!Ij=1aK&6n8!|W4e8^(OvRhx)->CI#3dbNG_ z)vo_(D^(gM@DbNDnmvaSga@Vr%Ub*)q|S1JHC1Eo)!Jtu=(aX|tz z7pM$YD%$mx=~G}+VTNUnW%+wiA1-YGq?!G0~Xf{e0|Cb1#Ssya4*IL^yc7)Hi-lM=lZd@P4Wq=upN zULfjGykG`H0t$kKacX>*6#_yCj0XV}1fXjB!}yvt)wg26D5*%E4)gE{iNNcf@~Ff8 z$j$js?dft)7t6-G)6pUEVsp*gntD!g&t+-I`@bO~-cJ=x_2u`4!_9e z^s($u7Y*E~FlIPyjOqv;eH#5;-!aIptv$`pBF>LyFQYq~2@a`OQ-}2%o_hH*L$&Kb z#j9nM-tQgK5E^xEMp|FWtXb})yW_7&eNiNbgjhNm{L-z+ zRv!kDE1Pjz32eJHAEziSjRBy#07oXlgaN}ppAC#0gdCvOT)N8;Ixx5Ekq9=1h}8!m zm-kqESD8fd4qF}zUndGd%-BG!i>o<2A;R+nui6XpX^<#f4BPMEWodnBD-~Nzh%vU6 z{!{5+Z_A-?&3}-6kPDDD@OIzU)y}%k%Ev%Io~EyC8Kv-F9)y8vOs2C}T@+P;x2|*K zzrV&3e+-DFM&81t5C$%(X^~yDp8kLtPn>xbMzTE3r1W=%&+rTT)6)cvGa+Gw$z`c! zyFB~ZCFx_%P*juZiDgQ28lNb62sh2L-MSQ-b3}0wQq@wmJ5~AA0B}fv69$n_WIErs z6iUrt&59^G*;|I`?kEMb2N5WC#J1`20DA%V%=}VH<_I9529^O}TzY~tWBFime+nnX zu1*F4A^}u~3buT*76+LlykHzAAh91Dn1C6r<|C+(*s{k$c6C#|h96J5*7;-5yO8jc zc}YE2i!j%;RHLq(ku0NFPo}PWfdnCS{&w=G;fI-t?9M~OQA$`1%eXY*R{L8g5Ff~L}d;= zPxYcA2Y6m1n1VC0fMc^fL1Rv2yC1_vBE0r^IHv(|k%~jIkPO3wMiUT#K=eLlkr{RI zh+wk<$s&cGyr-OFX))-SMq03I^*6kL0WZq(rlv!M!&aj1;v!2-*ivsqF7sNPmnNq`irkHW|w{>`y`pr$9JGFGvcA zpv&kQJ?mxZciyp{L6ixY?HK{SOW zBRnctW;Ci1iTV05=&P?rhL{P}RhqF4%iV4_$!ruLA@0a-95$MV1{Pl?|WRn zmQ=D{T9G3(j>-xL)Jx!!E*q5A4_)?IGE$FQ@FQQ#Dh|qjIX330PvB8Ze|=!^NVo01Ig$1>bv=9-D3D zw?T@7w{*_Dj+dKo9i^_?T?B%%V+=@C5S zYK=ljcCA%-EpGJJqfYeHE33cBAEu&N@w=@6{>y~-T&On@o=GWs{D<2 zj;ilbNMo>_n~#5F#}l0rDtfnVxjz!3Eh+rM-6PnX_j||fk1|vB<{zRWw$m+5j zi!2(AE{)Obm6u_Ihs|{)M06!S*}ifbpGFxCjLk9rWb;Rl-^U-wm=_aMQq>>FZo@4- z33`qi&`}+oi#vqL6G{Ypa68FU&Vh6mp1wjDOM$ntgY;29o&B*zH3i1nbFs$G-4Ff& zPct`f)9lbnUv%T=(>F>kwpc>s1(*+UF;}2yNF2}$KNakO55QE@qMb;;bW3mw zuX-u~F_EAdKngohRi%4^=D6yO;0czNwA<>2NI@;3{(xbD&q&^nP(WC2Ba3h@68KRv zSomR}KsfK~oECv=+$HW3l|s3BpN{TdErt|3!b{W%@}oxH4~=BAYYpz1C6OnhdX4yf z-#HQxSo4(i=U;dK1u&!rkeGp8uX0TNG0Q)|m`ORfYde50&OZylH&fq9tpmE+%Dgt1 z;y1oB(GTc0z>rebb3z2r2d_DELb5>fLHS}7Ts4ol6^*mFvCv1{3xnZ=0piW+FGe|E zg+ENFFGxwee7ylSYBWi$!!}c?jw3OGD$hN}N_r~jmqmtdYegf0z_qC5qeT|s2@zL3 zAa-0oAqyIU0IIrK-6O>Peh~weH%@1U4Sna<&ecUC+(2=A)I( zab8_LEk%=PuVthTEcj^hBx(c3(q&*^6fqqLtVcdXgQQjzBD5~u=>U?ja2qMu3SzL9 zQR}tB(CdV|wGMX_F>rw0GAwy;;q>L3dWp_M$H|89&{8yGn{aRC$DjO#1ID6Rk6X2~ z9#b3NwypEF036!ShMB;0qw_(Av%j+)_C(9X_4TPLJt*SmN>O*z?Y%OOvvcvYY}EF^#w))zjmZxkXXbc~-K0AQR~h zyuhGj`7N9lNSj<2y46ze%MATQrVXy^skZFZs#a^ML(Vk}JC!ldCPY*^wP}f7Go(*R zc*{@9Zf>nhl%eUvo{(#VTkrNf^m-Yamq3qZi^?(c2P-bw`Pf2K&POUMZr^PU>; z;d4pjg+`-~z2SHz$gza2#oPLMll%3Npwt^uYeW7-&JmevM`kA#dFW#-vOqW{uVG=S zb#Qv-fTF>iJ|UVqbGk`mHT_|~)W#88JeLxlNcR$+3Rc9!-Na(FIvH&OW#sX& zo-p|27`E6_0C#zwS#7)jJYTE@LfS0Lal&-mASNbSkYy0(x^us=|Dn&4r%@Jzrwk}WpxSxK_pY* zn=S%&3#@VuXifGX0`Sg_Hi8nqEPaHTpnj0}e2S*OQxXvs?=#h$QT|rn{CQL}Z(f}l zg%r+PJR6Ln)BNF{Xj11`rPB>Z7OoBei||xn&E6FS>tL);w*-MUi_bM3QP3LA6vTt~ zmt9get7@do6FEy{I+9A`N(OkhnciYgt9ZB-zNuQ86s2{`v7x}=?nNPjmCJ_+o?IT{ zMWh0ONBBK)(fB4e#=ySK_+C&nM0zf`baSpnpQVAv5-f5ot-HCz6@ke1@gTRm$=qtXmY=Uab z@*x!_SE#NRVd{5UPG+;|meQ=;~1_Z^Qv_EpZz_bZOKYjG-B}WJh!MsjQNm!;x zF#f#6nnhPmJ_&t;3%MhFF3U_G|3XNX52_>a4WLJ8bndR`8Axf(@b+h zfiO%e!-^&=qkSpF9n~_lC198LPt>ePJanVtl%la4$#zrqM9Wa9Kc^@q=ff_}R;o-& z(DL|6VtOrIrfKET6>2xGf`$cYDSbs;TuWpDl|VwcEe9Y_+C2=&8}ceaY>Gb13}65_ z=W0fZ5eT^fp_Zf2dt%s^o?5kRK`R*Rsl{}(Z{+a$#-$VYw4AHa1hJQg{QyyS;!arHud!UE%pLul4QWR+{0zMMxZwm3qL~kW*2+l{o`= zk~5g$0cUcPSWzPBY)*$9p}#xo`u~`cy`OPCyP&qHH^XA-5j!@c8m05p>FdhpIy%M9 ze{Bnmuh@Z5!) z4Ag_ovzXeclHwXnw%||F!1hDjRskttR7MGwwMrxmsd;`HQms3GHed+|IE(4!;1Sb3naguj(s+ z-cGsHe?tZ!-NpFBN}%=+XD@>Ac|spH=A6lFhnu&-yBQBP1eRJb1Q4O~KqMHx8ZYyD zuGyy)W`%`5vOFJgjD@U!@%=olz{l7{@r`se9sR@2hl!7i>6f}U<{j0Js2uy#zs*b(b6y=$Jk+0@-Ql5)A0%onGA`Kj7#%WpCfE04`L z3)n-=C}Frs@%rh@-(K5aZ#o1oT_XI!@%&J`1*ZhpHqU4)j{>BruRsr?Bw$|)fmc1? z-uDjxy4C+AC?DF^!DH9uq+fxiPJSodq~}kq@z=AbEd5VQ@Pe1p??#$`dNHY@a3FX^ zXzfa%I_QC4eQKwuMz8wJV{ExTcSc-=5_@%azbufXF5o47ZV}br&JvxfHV1Jp3s5WU zU5erUg=ks$vN_#VwXAw_S0M7Jl0~~yG!~quMmL4T7db&kv*+NdP8frW8g{j^)X5~5 z9;D!9jn{03 z-LxI+{l3BD298J=n&?xnN_2kTKQ;?Jqr-Q45V7LqTLO$OpUYkb+1 zPx$l{1kbc}WpWdWmzqTsg}t4R>9!JHg~AX)dYqE5o1KC9kJX;?Kwwu~VGmZA_9KxToQ zOGCzjH&FojIiEmnMG%4!9>t-675HMKk$}j#Xylw?ZSVdz!aao!*4jy?hr)+`&=ci|{3e9TIvwZwJwvwf%lz&JcOKq-X(sk^I z=h!PW%cK2`(}tXkiR8A-rHr05dQ{U){BYAF@Ou_yL>Wo+wo48=hsxNyF>dr*kxU#% zHVfubqEpBfwullH^u$fdI#so42Nn;}Rl7V$y($E0ekS9PWHosgh=%#PB1b+!G}#bH zlEEh=i*$j-buGFzQnj&!Fl$)@M4}omC(cXtZpN-V= zFbxO=Vk{l2s3+HKio5z0*x)Q05rmEI2qfE8$G=Kj5QtV{#$w}fKTf~9?ol`qFe-S9 zY%MD$_iN_PWX1gJmwS1?N<7FswO-Yi1&F7A>K)sfeQHBys<=Ax5e|oWkw3y*vK?+E zfm2rSXTQp?M!udgW&=C+G2>iZ%7$z#7m9F63-J5ShcGN}JWE$J+~tu|p*c8J{N3o~ zbIHa|HPzwYLo0k3e$_iS0yg*An?$D%=bNM_1g{H3v9#>@NLIGJT?4!9+<|&fKyN%~ z$mbM>CWBl{vr-hK9W5H}{Ya^%m(jcHD^KH?fZrJ+lAuPbr2u+Tt4E6{@*tfS_e$9) z&a@zQeYtUHRtnN34xF86)EtORk`cALga=F@z!b<9F=mj_8i+a3>(X7U!^ywuLkHF< z_DXOreF|^ioA+rMr(%9IC(63PRl2%R*Xw?_#Ed2)O>&80JUUKpen}0ZA*az%#)+`6y!=lNLZ2su(G2c#L^@DBXQ3u!830--JaDV>mkohTB11OW0!0^KD`V~_ z;ZTzQT6l2HX&n7|GT=~v7FTp`Y5)-&hl0Wb`@%?8N3?xEb9gDDQ{7>^f4+$?GCh~h zN2Pg>w>xdeg<&gSOQvf2uVp5V$EqCUW15wCz&7DT0O8Xa!h(QIsTsT+-UfVrv8Tw` z*G9j4$=5@<>uHtrbBh8e$QwZ>Wiu+>Oj;55xAP8G$C3JB7t|A9)O4rll|A<53Iv0SIE4`0eslMK)0R? z%)WAV@DQ%D?fY4eaeMKbk&h>G3-q&L#@s+4#K7gyp#Su6w2I4cewh#Gqj`;ggy%BU zZx&|<@>Vc&)85%}6k(vX+@Zur+Y4#0^ICqE#){wACfl z#~g!akRg9qV*iG>Zi%%3FaH@uK@StMA2nUulnLbR(Cy{w)fj#Wq@t3Le-bichXeZ-v68I4+)b; z=SlzuJ*>=w@?ofYnlM_`0@qpA|97lFx8XJG1%74Si_Dp)dFyKvpcezCRu7(rjN}ae zqVA!d{Kk?tf$n)%|ISjDX<1DdZ0m%DnFU^^bc4+2S(9|*jgK8WR7^LLmQMkwC+^*u zAC({_Qzpc)d$@YFXd)AqD`mqW&ZkzjLWoJI6ipW#MXyTiJI@l!lEf6XnU1dxl|r$Z zxTkEE_0}|U$zgrKg!CTqr_pR;M_BA+O&!a%&ZV2D=x{40qlh>jtgw$mD6qSPSIb_6 zi;+&43W2D*ST9r359>m%Yd zbB%0La3yMSuUr~E>{;UrCwQ+t>skr(Z2U;e?f*G*3~C2VY*GG&@9#RkHLhPsSu3k# zUW^T6z5wPC%Cy%5K>K2Iop`~Rxd~9`t%zGw+{*T`Wc#(GAx8G#7oEnH!$$||DN~+m zxG*zw#%Cgf`K~=Z!@!>aw|5#W{62a7`mvJA0-tB-*Ytwpoa~i|sMTx7=~8!Wx0HwEf6ajhlU8?*pR&i0`sOzmc{vcSlv;CTe{wGx20@xzL|gJX@Yysd+YFeq-W-YXmwnc zlkBR!%P}0YnpO=G%x!j2(cq@*Q^C`ykwb!GQ^?~({D}c{DSY!9)DV&_IAF9KC3EeL zc2Cf`A%_$y1#hiiKHOi=f{zb_m-E~cQ@;=+vB5j!`*bWA;Sh2*0Wzaw1I>uNxZ^80 z0zaUp_kD1nH+ZrlX0@?CmLAFGpEJMBo0x!c>} zkXy)`A}MJle}La-P=O@7sF-Fwac_vOspH&h=e0geK~jmOv^3NT&kND}!M?m!5tHcE zA^{0H>qMU((eEt8$h5e#k&@Egp~tRk=rGWOg`jb})rhiPH!KgR|FJK4K@S74h~D=b z=)J2nnylx9CKPa+pV{lwY3KD+PBm`% zpR@qn91p&T%DXbn(OF1Z7Hpcv!V(1^5;yWJe++F=ZC{VDHD>o@e3R0co+&bMNH4GW zJpYM&Wkl#GfRB>X_ia?eU1VjVh3-9WOkkKs#l@|3?A^4i^CFc{nmMd&)-2RaT@jsn z?1;azJ^3uP3c?$9R;S6MKtW-ExNLd9okNORWDHjA{XdcuoH*Sb?G z`7}c7<4vR&uS*`=cHL2k;!?G>y(qP!6nji*Ef3|Vl!y9R#pc(V+lK#gfr%saRw{%L z_{(%K0$2Hm0g82N=CJR|;?dV&i-TU#0TatU=rC*}U6VmG&gmsM z+3U9pUS1W=Y%tj{On2g#lMVEZgemESQ9wL1R;l)SxVrksw4w3!-e09b0g2)UMKzZ) zull{Z(i5KGXTGg!ixRjF-n~@QDA^$arcmk)N+5?= zSZZ%-XQ`I)T**YS+tmy74z+wUGw2piga;o!lVmQ%P?A1!>T;3aT zVFj}l0Z3#if^s{uj-eoHPhs@1=@AUA3?&YM#8UR+8QOkN)Z@6_o|{^>%RS{8@?JSH z0CTEyB&{#5K3KGZAnX?liq2lZ)b8bXIDM=!)%s+$%{0d6IEzk z-l}j;d6;wA@9|a5AfkQ$Q+Oxgv6SsFFQ!!apPqc@oS>bY=HwQvY65j_3)4TSZ6hm8 zvqBRXt5z69L)B;&(K0Bt&qFj+(RZ}B#-PzKbxYApQ=MiA_Xf&J%k-Qy{L&S$!Gfe>Q9FO2Xfz*HM%UDrI=rt-h4j-`au&Tz4*Bq1 zz!-q5p(`7vVzfHJih*z<%`-N^8rOL%|IC?GX>hvPM5d}SYL{-doQ^_3>TKK?6qV|@ zS|XCoi9@0Y$-FHZVquGkWXx43Xgz}&6RXX{J@M9l zv*_cP(VhXhus;yXXPn`{$79*q3d({m4xNaP4CUXt8i__?6G^wDg~&iH0kBjwq+{%A z6^SQ$Nn{jux4KY1agP@`RzaQvY(YqgK{HR>JuSfPYUXO@BxDLClj-oiYeK@SN$R1u zE7u))DzcPb8XQrHBb$S!0}Frh>;Lu3f7W*#R-D@S)=~j>-%+~Y%W3X;gM-=UvBJ0j zehM&LI1ldytaT=-MCA3L9eid%9xX@AlJz8&@b zr2Cl};a&P-5R4v{TC1Wr8v2H4#W2^IO0L(gpdC@zM_?Kb$tm!Oe*SDCh>^$54opem zosTc`RXytZR1GY;axsoXnok)n*6Y#)os`==jhP-DM`Gu^5AWUA+2*baS4?O+xH0RD0VO&flx!pI+lL2n@uG5*S?Eo<93N;g)fVDJGgh0PLR0d z`efd$8GQF8#B8f z2kC3j(ZJgXBDBz(v#C&=L*e1OP*iy$6{hRZyGJBQ0Xho;n5=N(X!1mIOZ%mXB=2ji zmE?o)oS5s5qK?a}wBmVMA?O|_h>7RR-}uz#6s!LL;fbas?xUvt7ct+x37m=f!z5|_ zl)DkQkCq}%!ni4z9yMaa`MQEpZ>I;->c9s?6q0@#vz$T!fXN|Fw=vl~o06OJy^XkT zduDdEig5@B#5}+T!WE1!7x5Ac`eHI7-g602%(CsdHhpaq63)^h-AWiQ%aKX3m*VP? zY~<=(?JiIy;SE2gZDG2Gw#!xyDtwB2W|M`zOgevqP< z+WXoVIfn}Es#)06A=~&H;`q@AW;5T;Y{~1iy$?&h&7W-V2cR0jzl5p>zyo&2Q9@XF@n16<=PYpNTBH10%CL{FOLnkXs&0sRqyeSM@{N zA?78#&|VE8+sg%jZ7pQ0@i6kXHrPpREHb4dyfctT-!%ri%v8pkBKuES{qx|Ml(3WWf8*;kj7y}UJ{ z09Mfm24LIBR?BL!XHrCsI|}_%fdr5mFfj03YayaF3j-I_(KF&5K?@}NLVsem;2pD^YE46$D!?UQ`J6<_vc54VD8 zYzHXk?;;P*3PepzGr1p_{;r_?UY!}0ZdxC}H_3$1GUDtPF*66W{^Z-V)v^LT+nCzr z9y%xpi5coT71cO({Y=77emtK_Z}QC_(TrEa6FKi9?E17ZGn`iQ{i|EluSjpRgT@C) zEh;ll)P(C)1=%{>5{4!kHRDSRGKIa4`R>xyQJQ7Po&-5vxeHp)t z^F;6E=M@tJ7;CrKb8R<=R6H%Z{b$BL$tM>m)i_Dunsyo+e)9C&xFGFh;8oG^_Hq~a z@Hxet!mC25@E=nCS|o1_nD zd)o^8<@yAd+WGo<^dEEH_*m@Entd|Gd&0+}bg0x*#|lX9e2Rva#L4deaYnu2xuZ;! z|Hj@i%8qjY8oS|(;bc0lxbQ7f($IvE)m6fRileYYGDQq&`H24YzUZ6sc}lCT^5%YM zAXxo!HcaM{Kt(iQV*Rb}iZKWgBKderCD^y+CTwIZyFT>`Hk!y9Y)x$X(+s**i$d%K z?uk#!d2NvI{iB(z=zpA`l!pcIW09**LH&CQgQoE))5^*7D~y+=ZmUmfcjWZWHi_2V zJ)kGyaarpSU}9>{#xMQhiu<22tihCLOue6G%mvjX)2OfLIjsB&q?4A)yqcMRkA9c= z2nzJ(zn(Fjw|s!0(8Jl2L%FGq&pVxG>3?$g9q)iUb<~sbKy?2!Y&e-cgUjBEP1cV_ zahaBlrMiOl{^GWariJ;Cu85{9;SFlz6*ISZExQx;6`tqKo5U*|Q9~QQvQaL*TwO_V zNXA!>MD^pWOtn=@m(}!7sdo86P`@3ra&gY0ElmnmK%`s#>jf|{o2g8E6#gpHA(p!5 z7fU%vN(yr2bmKy$8-ap3q4{x5*#yZkg!D8qUJe zLS@!$p208c#E^-!@sIxBgWL$nJMGRF+lNm2>E2ZUbM%`%`+Zp>A5sCB#s55UtN#P> z{N(S`^s}kP^}MSxu+aDa8S-WIjhPUx$~68&mW8vcW)AM!(_2cml13^TLV*}~!J#c_ zo=2PzCbpY2^!y3f3v-zo)l|H0^mrW6BKTEAlu`86y?lI1U$(LbGUs|%GPR{KGR8inyLefH zOKNJ8u6~xrXV_TcwQ9q1BhbkN1sU&)W%X(mh{>8*?Jf3ccNXs*p|`R^$#_Y4!6er& zFiN6#tMM)!ie+`3;$&ced03b8)@|%&?VdPRKv|UVQ`3Uh^T!e+Di`dOuz;Z6HT_i$ zm+`uDVd_{-jW1)n@>duCLV2~_I76O&unaGjy_ z*da>|e7Sv>OpL>-FQ3feml{0K!en$Y(t47C&>J#l=bpy z{s!*(;Y>zQ%f{s>2|rJ=k9Ds7yT9wK#{xvtz}E&L4yFp`)H)NqS}^Hwm~em}m@5ovNcM+X27e1~ zedcKTL*`ieq+mer@Uyp%JP&i^MudD@^!kl^boYEz_BQN_TOy5KNx(az8t+o^(uiiC z$HGVRXij?GmziYW`6$HzS2!<>SB~9Se1;VqzE720DvQk?kGLLjg^STp?xv9q`r)`8 z&9r{d$a<|KEWgWqNH1 z-$!r3Fg*?*Zt7^@e&0!hQ`f4qy+4yTWzXa0RxtN+Q%5WO0Nh=JU=e4?L*B>>%?ny> zFn@i}pHxsX*ww#0GnNs~vsd#=g;mBv6 zRvhzueZVK|q|b})Wu0YLO4OVA{oTx3JF>`vNqCZ4mF}gzo!INhCh#pteC;VxOa~H) z@MS1r6_oq2-Y1sn8W!O`U6ERR+He2esoh$)l@umQKH`R;hAr>O15f_XAJ|EF+@AOr zd*Wwn{6zQmlJ1a|zMSuG)4cDxP-1GDS8(pAr1p4>d#9LkpJyrkX%r)U`ok|5e|`xD z>%J4F*)YS}0kQng39~14+kUgDQ;xh=*oEt{|7PUFm~k^=3SbUM%uPQJ3JKFDys6M6 z`GeFjaUTM^oyqYr9l;r(MjSFm(Kn*M9=3)-Uc-S0KPCMl2! z$HDX2R2KO;z-ooJN^?n3HMXcGc~nD4j(PXn7|jT$r;BjM81m3>QQFyZ@?RFxGB-sg zG??{WEkn9|h$~h>zW)1Ts<*`)y@kikUddUrns#&m{l=*gpM0tA4v2QaP|7EZSqbry z<78A#ZAW75uFu|x1Q2i#Tlcewkp#X%i9osZDP!Z>dK9d$w-M&xL?uJ|qb~4jA4h}O z$3ogtYmG#!t?tosa@N)wOxuhfew>Jw)KeXhq7FtMjt;-bk32Wb0K&P1v2Qm&1KH9T*yZ52L{2lrrzwzXka!3^)9fb@`pFr{ z4L@jSazhVre)NOT^f3sq_@I8Ou9qhb1}QhCW7e+VpnH}cZc_Skmlst!)j-NFTtAZ# z(Oo?=-;|Uue$`BhQcPcOK+&bq&+P;1>Coh76u;M3UKZ&lV>;hDLeqETzwvx~Y{za= zlR6`=_-1NH6im&OuSZYRH)%l>fA+1k<9P50%n?Br`)KP-V(TtiBey%A?Mil~!KoD$ zAuIBqy|=E4P*#`NfC0~GJqz*D#qSR~MlF`81tiFA8I53D2SQjHNKvY0yd>)Cd#7&J zJdH+u{W7KzB#)(gF9GD!jP}||Bb7}Bg`WJ#wOt;|=4mr@` zU4~Z^Qo%ob1#WD{P{qoX+y6vAC%T-JS@@OS;Vl#xayI~GC{i0Qlc+}ika|%SM^w{g zF`q{@IvRY2HVJBLMSS!dpZOS&;S@HdB=0}g#5|vqouYKx{I;dT{!L>d*#6ld(5Gh7Fvb~!#Ot5JsUdQC% z=2VceC{)uemhUlNgapS!H6g0eZXUzv8a!#wb$q!ktXteWCh1=-Y$dy`?r9Kf>PtV` zcZc3uR~zNAyl1JUcNvGL!1hya+i=IrIYs?#7=gVLya8EGohP(R?foB_BS1ia z+vz;yGRa(Z&bvM`{y&psw53GFR4qKs9yDU=kvlMF+Hk`nAS3Q`b7F`_Xt*MCDqmJ zx*70LYevnr#>@p^S-9X*B9C<|9^p~mVP9sTz2~gUY9AU37l}+juHbxcS_wM0#m8hb zN@)G6bG)_psW?f%5wn!vUYh4BKA|m8X{T(#@zd{gl0byWAun?1^2fdmx)Zb;8`RS- zx!U*JTYvriWy8h{E(_S#wWHkBHuxC%JDTe@AP*aCN9WSOYuA5jo#{U`a~4`nnQ4@{ zy4kbi2VZ=HwP`42zU+Rr6^DJ3?K-LXgq*>yL@!wq9fb$n;M47*_) z(I;lHTNm~7w)wDZXfbL2IY|`-ai^cdS?&S;_IRe#@_1%G>Kl?x>ho9~VTxBjQ+wgB z985*EoaeK5>|5<|`-X+CFSd>))Iv<%^s!F*siwQ()!drL67wZ4(&b95 z{KP%@F#r9Zb&eT-={ulcoTmw<|H`p}#w`$!<*6!}P9GWbL4G6iEFissN9VGgCCI4= z08#vH5wG)sPzIiXM_1$b9|Vr&)vVn3;G0aO@7sw~d#INYZU0I?RlzT^kEj;6=T9(& zrQ;(@#yHwTk|%dhBiO0ouRFqW(im!AC8R*9F<>)K<3Ob{Y4l!zl;Nu;UcXr-Z4Z*fVq8qdXC zxeE&eiWuEqrd>!b@e~$@p6HV&kr=%nTo>+Nz!vW1yIECUyU^F4=p|gd5U`rqx)<;A zvp?{X(C>aTloEg>Si-$geuvSg_QbjX*FpEwbIDCV4#eIoE}fem7Vv`Z)4C}4ZU6Ii#CWLc!DRB3HKOY%fykL!^)QX&{r~(>_5-SxCw!f%(H1QU$!}B z&WXS#3XS_3L_oI4Mm}VmO&YtM&=Iw?8Mw*B9XwgNF)c8uOj{Y5NoAXhqh0>dOIgW( zq+ANS+Yuw&$*_Ev&{Pnyn12#U08@?ZHThBC2q^q#`Eks#a?teuNBoq+Vvq& z?^t_|Gi<5la&xttr!Y-}z#O}sdV>(Vaen1qMX4M4AnmS8dQhwj@BW2Wd~!lTAd?mF zsA17MEX!mAFqf9|pTEET{f7yilbMCZnOVBc^P`ncI=j!qnDJ^e!f12eduWF`mp_&? zUEkPqYDS^$1PvNz(kVV8n!cFdoO-+3o*VLZYarEc1nzw(=tM^{Qs_$=Z1s+go0j|? z9OYu;a{i^4Z37vXBLa)(qrV?-x`Htkua(__28sBp`FJ$zcK~Lt8{7Y7J}N>oBoj3i zq##R1hemzYtqWy$S1c(_T%5ak@?rTyU>W=GCaU&Mh+H>M@c6NX#!^UnLNXk$9ha1P zdhdq-j5Juvg2;T6`8cBuQ3}?*UDVlN6)Ib%!jexXeR?EFRGf`Te*UhU{357utzF}V z4OTLgczKH75A0`e7ZQDGHFJO;RmUD{PnDnEAT|9dR&1F#*_UuLx-x#X^^;igG}*?I zY!kMTU+}grkSjw`um5Dp>>+*g?Z4dHigUJ^9&I+~N{ZC+wL_TL3k>!$h*`)o0EFq7 z=>ruIXCfB|77b{UppIuB{N3|%05Ypo^Sc9CMrU5^Nu^ zEb4ND1@A1DciB%mh3&_4p3@Si?f~Z2HV{!SoR1{UM+S|4kzJU31FC((eSP)@r*cqZLZ4g^o5>_*K(?~(M% zKH-ps@#umD3iGa7OkE{QnuPbop~xGFSag8-c%dAlL=(tK*XW*TA}2tr-3*$ZOS%?$ z=~fSr-?~q@1&&JdY!I(I@*B5_{icCG-{5T2ee*ZFNGTOe3F;xznpSd!bvo zte`ei>gaP?>txVy%Ds}(7+?G?;oo*(rxOx^#Gw9{;BSblzsvbW+xmYAf7$U*8y)}r z55H{q^&c^7XTFy`{Dtk`Qhx3FH^iw2>PK%{n2+8}zwmGQnFsUhmKPVZWXAtE{q@rC z|2ZzN=Rdje|9|EGsr$cFeGfpB=e2$d5d#P&F#$|rCLw4HfW>y=VPhAvYfqE5=;y={k75X3(4Sm+poU< z@lUMMjI@7P)|;df`uxq?-5pBZd*}LNzF`jZ>Hae~d$Z|#S^K(AJbTL3_SIKkt+{&8BFke6`(o9tiG>qpbiy!Xw8m>^GgfBpOZyulZ|uFGWu zXUF^p%6}C}r+3kQxsppMJ$+>{>qkppsVs}}-}>1Rugi6Ts@HuOGqbN?cl!Qk%VKO9 zx{I#A#r%38aG&;9{r!8tAb)!Q`|o3u?`o+7f!M2O2PCeCwIbJ}sy|3v-&DA6Qm^tU z-4Avhr|NHhl8_c~{g&E$q4qy)Hrv-aqwQ-Y&p+?_Y-eAv>y@FemME3);CGR9AJgs= zmCF)rwzddcu(d8hcjglP7u)B`4xP^68muad$!I$K`PsKJ8g=xgf;;Oyl8b(htxfr3 z>VP!;L?d@^is8NE-hj5uC~=LrY+on-Uf1Sz;l1-E!?k&T``yrUJJYZ4E=j-9IkWTZ z&(@W4LjLQ!xQ5_|5qH*K@VY*5ebBe>+1(%hSjn@ki;WpHW=#C2%>Cb&m1hEFvCmfM z*JH}n<+?3#&6GXBJ5eWHa*e;6FlLjy_x($^ZIW}+bsutUl0aGd`{_I1*%J4H*Xy#; zK`!+ib?}Dmi$Ke^!(VslDtFR-ye2gJ>w^z;y85m!?v}L0e71KRb>vTbT`s!q1%qoy zd2sw)-GdYFsourEHn?o~#dJLS^UBLFCH8-3v+@+(Pbqa=1AZ|=e?MiQ1Ld;2J1^{} zGrGAve)}AFF`r*3%W1O_1>X(gCEM32W^?0nSCYH0ot#p z+eEg{6SHdihMJD(lry{Z%F2J=x1pSO=AGkZC12Bn>pln$1okdD)HoY#+qJi^tWDRT zm)*a4fTEs-^o^J5+jZS=V#&F|v*xqQhNY5082W>+1LseSE&Od(G7zw>OFvMl@6+j; zp4+)TeiLo`8rGaH`yf4W^AFGd)SvJ{+mGvYJpb>OZ@OShzqz({-Fdsw0#5&yDdcdF1`6&GleM)5lFCpzsW#vbMeZ9&A<-^AvFYVk`RaP?b zX4x;!o(Qy^xR`#o^vwB$C0D4by>Ysl^>&kYVBLcQWv-Fo(uhCok=<{;IP`qRka6&! zzK33zKf33Ij0x_}zGn~r@oZcB?HIf3_ht0No61S*@Y#Ppb~tk2d=TFH&gIZ;yZNJm z^-o>Cb~EMcgEM6|i7UA4hWV@5k8N@6k)7*GCWeP&CO+FT^`o6^US_PL3>yuRX+c+P&{+QAA+p;gNcQhXUz;$bP%)}Sky;k{McuMP` zuE|~8eUB$HH$I5K!pNWW6Eh=$U3%ArDt$VBM9E8>SUOO4<&%@WX9Sbd43<{@P}%>> z2O}}orzReR(nGaL3;X}-y^$Das`y~j%-!{ZSH|MxZ|rB+cfVa$8me60)4%^(E_bg% zUUUArvQk|`_eNdSo)t~|w+Q46e#B_&D^J#6n*UALo~(+6yx;Fj=CSs(w%2!GT^@I6 zHcGxED(lcU+#E|%^T>#FbLYL2pZ{qxt^M#{ZrlGlA2BNTWXBdMUtE83S-~=M?08bs z{n5}fvV%7+w!QF@B4JsT!26MOL#&FIcr5qWaq7@RMv`*LSls?7;i+H#{GG$Gw!Jv)&$7haG$}c9O-Y~~1xXHbV`(Jq$n>SisI%ZFi;VNqLtDW%-A)(kAh`29HSUmcH}7sKmG2xxdpdfAP}ov6p|N)mF30 zHdcMO>N^*kTks3k<%iB!t~xp?w^r~H+G9qSDDPa!Nd4pTHh$&N{QU{BOYVG8`h0M2 z-_tHPb3|Z1x?y;~e)-$p3oXyfVUv0Wmw$&dvgzT&A8ed{Ds$tQL~wq4Std(2n; zXEG9*nMsP3iiEbP`X(h$TXxp4@W~nY!ml5;Y@EDcj#aTKimJP$J$NGx#^8NG(217N z*!}Bz?hw*MeW75+w927k@UYqE`TE%d>+)&vgyKwZHy2+nKeZH57GTl?6HBD z?oY^IbCdrPsQEE_dh_E;l(%D>R9QF!>zFiSS5fQcqX$08o^BiAFdwy!)ar{magPUMopAZupWj*D+wVmmDcxCH_N__}J&)i4MKha^%zcpSI`f;v>D!Z~VUSH90xD?c1vpm!&f2*L?6+ z)L#yqzx9%|=PmmEdf(@5DmLSZs)<$7y5!ZLSgwECFUyUudVgo^gz9ms&g&hPTMoHD z%4<=7_HsNg;Z4_6P2a{}*H@TFYp(MWV^7HMFVB7W46EiO`_Py)N5%eP+m#uK_r=_J zo~z;4`_JU4-uUYWAN=sCCq8cJ*$_t^@(x#WS1o<&t>@l%{O);5dCpjuQaG_v_4pE% z{8aXO!z)IK>Vj|beN>&mVJ z?ae>W|BqNjlCsE~w{+u;yr||+_7D87?x!8!PqSSA>YtB=nP>!IqW^sCSNQU=H-5VB zn}i>RpN{;$Pj}blwCGp&@gSK%GzaRS{9C9RZheH=we)9{RjcIiq6 z4Iw*|Gizq1&I_sKHfG42n`%x^j?>XOGQD>pwW&YJU!I}sPoRT*azV@V!}}sbM=}m& z)X8=hi+^;1_v)rAuPqo(?u!kTf5RQtxGT$}b<(u0^ZiRkvySGJwCXaKC>4H*lftv( z-Y$+!DkZPq&DWOr^pb9dK38B*nm=V`3LR6gE)(Te*qNzj>CH%;aZpd+Y`z(*t8Jo( z#_-wb+&PBd1Fk#rLcOeL@@C|nH_}+L;*>pjtXQ=oWZQaZxhd~gOQcVwjdW@HbGvvP zS9$DciI0+Q)3~$+E^VoaymA*0-_VwJNYiu*x~p<mvK>x1ZtGy|;AiX3VP` z?eln%-txNeCYvWN+jnh(uP0SvlcBSz7e#P|smhX;kP+xcC2lrrW z(euBG+`?}-QcMl5k4-t0$kD2QxIb(v*iAbs3a=N|@^(kKZkOlwwu+tEhBG!}m&m7Q z2I`8I)sHd`)ma5CR~U8jWcDb}&h(Sx8!i)d)D02qX^nlj@RCF9&`ozZDGs_{$f>ejQ@y0p4dlcuISMyG`*;l##$wqkMj zkpu8yox;zv^%_#mxfSN`B`{N)iT8>IM}n1oI6Xu7#Qx{CcdD>`V?SP;{v~c$=`3+8 z>csPvoty99Usx3xxboWlg&m*w0YPDAEROhC+SOMx#Lrl^zi%;~&Z1W`s@*kiC~n+%>4OeveKZR$_J zI%-?zH;OxT{M6A`(|vy)zkmP1lamWcKZ`6sVDD?K>kakiG$T?HBXlLLE0kkhoSrl| zDu>pokFPEzzPnchYv?8LT@t<`+EH|SG?{uonWd~8P?q@-FpFlNHTF@o%;29jc5Ewi z`|N>)P81@}ev_ddDX-haXW5Wlwq5$6v*(>gCx+$UJ_&643;;f1tr(|D#S zDw7MRq`P>yfgy%0L~)6P6IL~7fEP0Gy00RTlQ-ZJC&R$voTJGAtt+uwvm}fh8PxQ{ zytGxZx<>fn?_i~!Blo9G^EsvBANkibJ-m4F`~S$U`a{#hHM3i|zl!W5Mrf_C_!vgl zl}NfsG;}`FmiU`Ua2&6n5D+scH84YfO^!lPiVv8=%ycnR?aWzwQYefi6ID$?pC5hz z{0cR^`h@GhkJhJVJERa z9MGR-he^n(>|jje^#S1II5K&}L$ExA$3&HxfT`fv82pi3GO;Wee4=tt?}cgImw}!} zyWOEoNfFpC!VphriA#DH%0k9|hm7$srzq015P#OR{hyCL{_yAOV@sq(uXRV1M-yYy z-LDY~;Dtno!iL$lxB?ge&ko`!L_SSAi3odAs(mGcB@h28gm28kO9zxyfOW1O+ir*P z!zsl*`)|`{*>v8ONUQ@m8(v7CCaRsYWp%6AmXD=$JSpuT9RG67rXQNJ7T7rP;qYtg zq)%o10ZY@Cys;YQ>BXxfps{e+kPj@~e z?0l*?RqQ;k{;jwZ0N7cQ79S1#f}H^@ILO;Fm5(^vZ=Ue5RrJjjx+9sb!TF+ys(H>l zCsb<66rZ6xTB$l@!LFCca@ChpeB;4%Ob_Qby|C}(WR)e@g( z0B!ZT{D(aOibnKI7Dc)}BFS8^s)Ls8p1}=_txvd$7_J~$PSI`IPQ`S8f^YSqf8WRb z^X$bn;|oXnb1pH4v6!Rc=(>vM@uE1_ai{1Dpd0I7PL!tbb4yw|7IkZ5Y4cj1P0j_L znbXP3vx;U5T&tF`3DQ*IStH_(q(>jG)--=HPsVGgDTGPfSl+~*eX)JPWyhcEKQ`Lf zSYwvVE&MFfKc93mW#4NjSG9LriC5KEI2XCVYh9dhh!Kd#S~#KO#iB3BIl8nqWu?;) z(5GYX9!(f$NPI~Pg%8KVh@YN}$g@qP+N41da9>tbw6kdBW~{cRp`o^e9@<&76QtqU z&S#o$uJA0Ya8A!x^t_k2Q~ylttkF0BUXt_By}C4o$IkHENKAKeJUgRm!v5o<;O6in z8(aJ)aV!!7WJNky1b_p7uCPlGY8LtO=CFg~xj{Wr5}^q}e$SA~doNOZgi;46pI=+s zED7$5?awVE&p$X=T0c~@a|HSKIu)D&{>Jtj7f$Y26**hkcq}@TamG2;&0l=c(8uB6 zuJ6^-P7`MwdEoynCO}CM+lE;<$Ca?RSQRWKtMHBm?lVdfv2BzK;CE|{9rf?QHc#Bacjo1higSndJ>k~X+M=ui zGn>~~+3*wVaAhl-J3$V^2ewTdL;Gu~1)piH4xB|u05iO-nl24!ry8E*4ChPd2spNl z`HfmzIBU+WGJ`;cGv!1X%z>y5@>BR&f^A3**7PPHSIWwc9jWDU6#cy=^Fu`=!7@Ru zW@~VMO9Fi}a`myMV6b(1ekimhag;$xLsNLsy_`jV-TH_odErno^{?e~hiDYZgHq@K zYfGD?y~R%|ybdh6fUH;~LHxnde96&--8cxyFj&JC$0jVmz$7p|fo%vLErqj&6G%#` ziI$->0KKH>oXQSm*rim%0wWG{7Ea~X9zmfpdG9$nBhh2GpFJi!lG#UP&A*qdn;#@u zO!RuLC|b!Y?3w%pD< z!h)*-0Sp1qjt&^Da!}>HKZyV%i$kP6u#p6jr5fH7NA)LD{ZZbV&2tNT?*`#`Wg#p} z=bim{_-BzT0*BTji2 zJU1VG_ZiVEoc~zM8B<=SoXHU-aL6#{Jir$MdvfXKvXBM7pG~qhq{WD^xWLsgX9-jGSzUsY8Z!K z+xl6*-5%(C4#w@cQM0gT&r7ped0V(N-XSs?M@g)zEj)|`(@t4=bP`PtI+~Zp?v=L(D+)Y&DpOy#|4p1ZkhdU`teaB$0acZRk^3G=oj1%9ZY|HrIn$=Wu6 z%#JuWWc)i0I?SL*_7SxrTqZc5by`Z-YllTnLUF;Ps_RC-!^jTPn(S33CaR7wsj09{ z5O~F38m3!Yg~+WT0l}@BCHW_B3v>2JqPQW~y%&Cf)y2_UqI)jpz4z3bk%fJ?(+nom z>gCR`nabA^vkc!2+b1895Mu#?cz|l7n_4S9(Ub(y9QM9%$u4TvO{iJt$3XPpkdZpn zBUsHK{113G?OFshKesACP2Z5reT48pgaT!waOdYrasN}^AWrbrSgh^Nk!S$P&BWVB zq{mFs&6eSrel=X*3CusU48frF@xDDa%b76Z4~u?*6OGso#7#9xl>&fU0PKW-$@>Bu z2(XWly((F>7#2uHBrK4{!%&L^>0=-y==*aEds1EkhnNO{shV3<{)S@7Pm(hzAW6La z*yzg_vbQ8o&b@QHvGIy|?q?CYW6^)ox|}23F%)45#B&I;X}wM^iBhrj>N@xmSB<6C z^{QRvS>)V8%|**t@>NYZu~T-Yf*?Ow6ntsO05S|J8t){a>(@0{l&ctVb)%-wP`UmA z48qu_>yKWyP-fe*rby+zy1IX?O51qkhfVVr2e-(I6j%PbSQ+|`Zbr@{{=-(HDnO~^ zv3+e5!{Y&L0TxL_*gDg*g;943Yp^*AgnBm9Lh>}6s3n}I&1*?M0<*Bm^ey4#XpMtA z)&7)KaGT+z;2uDk-@V%25vS{4v+K#*7ZHG6oa~x~m8qWBQB?R>xc$6Uk*W5z$t1Ym zx1T56GR;5^521#mB>a4X$YAmDU>+oCl#`3})9NATMvA!9QM-aYD@WcAC+u(rAjc{R z3fT}tM8Mem`*ZiW4UIOL8l0DU2oke3csfYS#)H)#^M4jM-5)iK&g3g~LlbsbXmax< zrmK*I*0A_W8E8{$y&RHI_|U>EQ=>dAMsDQLq{8S`i+n76A+RYcY;s;RL0FvJVge_S zkh}=70}5iQiL$_!DEivmwV;Rq?e#cnn$AN_83x=AiY|&pNfA74$0Z>gPr%Wi);2WO zc1*Ya<_SM9Wnbi=sL>uSv^Acag!2(>mz&otu1~26*+dHB_*`3>LF7bgRSK-cXar}G zn3xdF?lc#|(}`|Hmb%E#*#^IkAQd@EEfV_s+$#SLxDPx`yO=W<7YFk##GyKeVfpT| z&dvB65ABgm`&g9@bo%lFl$jN?4bDH9GMVu7R^1APkLYRPEO~}WGA3{{O-t%PTmwT$ z9@VO`AlMQTg>9n3HcIMYc>mF`ElGxgyvG1sRoL?HCBL8pP$(-=i~}<7V+E*C$x3@* zJgkqFl~cric^8RUBX_90b8|s{sBz?t`wJ)Q$8PdN_9$W=^=wIJCf>dQV1;8$+sY=% zDU9oNy;`y=4y}Osh=Iw9d1{ot&_~E=PB7S-Z!6{_b>5b5g@X!GSm>qKHLPpFRMdrF z8dbUmqq7JH$wzS!UZm6O`S!}Kn*iOO&69B(MpLz@$HFN0+}RE~Ys+`_O=^G0&H!9| z=Q>I2Ind__$_rGv;RR7rVJ1_6REsrN!iazpry_jl!q#X_`VxO-ZDnz9n;xtDUOZDk zmI#Z&Lnq2YwjsSgIliMV8$8mfBF+bqhfp_SL{D8cVIhPckz;Q4Q2nciv#xB4Q{P+> zGIs2c;gAR6!ojk{SV#kDisq1WF9}+8a9S!R)&f5wD1xO6&VeQoz*FPrd=c;l4U|(# z>MG{352iCTB!Fk_%PW6>V%=`%i{<*eyPcKe8B>28{?k;`ui~s<>`n;1i=AwoKGEmj zKNEb`x*J#Y?Gq_JWA^p>ou$+SmTk_(V!`x~K9DFDmklU_HMiAYlR z9G*1}j-ZshwI~S0--f=@RY@xDFk`|l{)iRgffeT z6X+qf4wF!@Lc~veAAmrnTBG;Q!B>yOjv49CRsbDmd(u?o+(Ghw*9vdc5WptPjyULS ziOqp^dQ8Y6QsjQ%Wvd2d#0l-T^=ewdRxkxl9>m3gqL4fWIwzbUe-XItQGS%cD%lR; zwZZM7?0v}nMmu2y2-T19Aq%5FyDFAQv|mArFVlDOF9-+C>90m6gbL9d&u60N?`%v2?ZDBcw0N0qqS& zQg?JvF2mIfVp^z%9pI|O#UnBtM==yTRo24zoMM)uSII zfiBNd1KuABk%Q_0yoxj0kqYWXe~F5)ENUs5ljzQ71mYng2lK&*6BXbRlnWUMkxYb1YF?)H z=xEu&$^L5I$wPiX1*Ji6rPO-v?5-yfu?c;)WtR zBY?cZCeA-jR!cjdrU*iT66)ZX;c(ho->U|isy&p{L!1|<8Z$68Ym={PVX*$E;6;Nc zSYc1XT9l+rnk3{xlbezPVo#q3+*AJwYD(rNM1z)XP)182OWVL-^kpfvn{auq5i`w`+EWKNB?r z9IXuB8pQ^@?*5-d_piRRdibOO0n>`ja$MWfa&X1$Az)w52Jg@<9()%ZbO-NsQGwRX z@H!c6Q2|sPggDa^tyxK$4rZo@H6?ORENh0eAqUYm#aNGQC}N065OGNp#Bc{(!>_gE zgRa>oQiO5nd!YPeXe8f)Wv+;<6NT#H6UQ3hvDzAY;?7XT$7DYvCHQiejCVM#XdyVJ*a$IcgJp)gw*KDS0zoz_aqb2yw`CC|$?8L<4Ar0C1GTR~ZyE zGU0qdDoQyxZyy+^jvl1*T!WA^h{_PEHO)xE43k*Xo_K{zPF-1r(^Yw=#kkH9YPz>>Fxm_}~jjNA7vP-xWxLw<#;_j|e#ugWj&Z4be<%5`IYz9uGjghNpqSpF?m7 zwT>>FEJ8zo<7deu!1BmtvO>R>!Mewgj&cE;W{G(f7sn2h5ALUQpMo`^fs3oBv zXski(6Ac853#Wd*n}SQIhDC$pFmm~d%awh_k)U$K@~gw%VPC2e_8CbG?yld0d(kH# zn8PWq03omGq`;y=8X7<0PC~~* zh|tko;kOJ_4Vw#WdFN%QT-EN75sbAj-Z{z*8#9;+B@#9^cA$v&Uf20n@_?*;6g}=7 z0|kWQMbZ9a6NNg!>JLVY)@se#WVWJZ0GYir-0paZpccRshz?Whr2Szk3W?MvP8%~b zK%+PwmK>qQE$~=}))}rY@e%D$Ukg3fQ=Q8t3u2vr7 z#1DX>aFrr!s99NIktcJCw=hIpwLQs|&V_eeiID`8UoSGGnu0Uwa9wOKN4YAJh{f5k zGbvmaAJdEImVZ2&7+I4mFz0TU#}5>lDw%@j z!dY9YS@Nw6MBo)we*F7d^CLj60VRRn$26Vxk!4P~wKjkR>Ix(UxTdFWh`<>97!D(w zyqb3G@I@Iml5{J`+mph72sr}H!kaO~eT83E0(}?TGGXAA+wLN#AqkVO7Aq`l3WzKw zIt;K(DX?=ST_TjLt`vAITaBTH5kT)eaBUR>iu~ytOur&;lvhI<8GYb005cOU=c2>{ zd`G#6B0>T%8U97VtpR6QST9O}47l^W3}P_1(Rl2z3_nL~?^OA^LPN^K=w>3mY*i?+ zutiUrIKN8(Q?9NdAP4GzXNWs&K$Q>gwS_4er1E@+a}nFn=Qpoi27jfvW;W^P9ztEy zq(H?b@t2c!hQNe(6a~py-JzQyV7S2dXqFOslRrfQ0k$M&_2>xaCQH*1|5bl9O>c?v zHs|FCLAQ-gH81Qhb@(!GXyjTmjV4Gm%9VMsJUPp7BMib@W8NUN0E;6z#OrYUC+qmM z1gqY$SbxDC;7vGBIYTEE6i6TtBr~g7!<7RM80(`5EQdOItOa4+Dci($bRC!hO%$H= zu=UNwsmPF?Wew&i9}ig?izbc%8)D_i!Ok}c0ESsb4ZH<)d71n6Zi-fLvWxVW61;yZ zDjKyx=@@Hi?pO#@W~M?4>{!4>Ll07QVhq!*z-)({XUoX}QKDSZY3>Cv8@li8Wsevl`Gvh&7hN1dGz9E`(<4^2##pS#JZwcYS#8+CT~?75xpU)*b;X-&EA``@_cpIx z^5NTtO#`n~d^P&H`I`^_vbpr3eA%zIB>h|G>cNjLSF~I>{F(DQ{@&PoFS9$4eW&-{ zk_U&ge4C%4&Xk+K^Z9?R++3V=|K4GFW_Mb9cagYTTz!$K=OrH6U{i|FG7tNVehndd z*qYz(Rv>}We-5kQ&?eNg4aQ?fPx9Rl`5_w^9a?iF?HqrjKs%wq^wAEmXO7769Cj%b zehI@fd=c0Y)Es9-G&=&>Q_f(@xn?FgnAeMWFR4L1W^r1_ICyi)We8f5Y9O0Nd4rYj zkOt8x*GTfbl8<~Of*%n?Bxq8k(0_jQiM03}H#8HtKLL37(KP}$#G|l!7s@7F!Qsvr zq3Ntzp*5Zzt)9k;=|7P}0X0?k*Wg0by0SrS5-mZUghN8I^hLA8Vj)>H!Wm13VCT|e z(aznRJwz$r6%c*Onu2OyVJQgvQm)`w6v#d*HZ;11)R2J%FqX)XfB#yr(xFU3OlYF4 zsaCAiCAnw%44)qLU~7wuMnn`6jD!qDo>11)SC-)<+y&T6Lv2$$9P3HAw8%%Tr31Q;$lk)aN- ziXJns#5f#|Kwv|k87;6DJ>Xq3)!6wIwA>UNlE5}{?E#leabP<@bTs`DsR#l;&(^Sp zus*1MsQ!RKePAy^z71#t+4K$fik0GH;9^_AdgyidIq2D8oR^B#&HqbPe%GpD5Cs{4 z3baRLkZMo?Pbu+X!%lTb;ZghW`ecBvX_O~~LiH=K6cf`X22~+apXi+GI;oEgqW(aw zEtl_E);Ugv6+dLANG;Mt*c-~+DP)F6RjLmyC{EIB2m%;ncsxA*MDd&Qxh zAyddUW$0!Oh}%04q5PNjZk^6Vi4s=akwvv6W;LQ#@Q>(xhu7hZk~*9ukE+cdHcPs) zg%#By zLU)jFI^qY5^nN%ADQm#NYiwH*@Fo1D-B=SWgH#oEpEKn9Xkk*P;X9#=Ls}O=u$4VB zY=ERz0OxoENl7Ra>X4X<1{__y=xCjxV2753Wvme7iG?>ydfTihdJOpqB>=iC@|c0b zw6P(Pm2h11D(KUYS4rXBqVg@de=}k&ux|*2uVeU;HQESr$SYx3Q0Ynp_GAZ1!J6n>HnCVPVu-9-^V(!FTb-t0kH%Ze)23Xc zZV-2l6JCoAfFk-*?PA*)Ss4@pQAb=caV}&kq9L^RJgq;lDbWpH(nu`qeiFWYGa;IU zE9e3AOx^ShF8tcjo*X4w`)+OJ?N_-l`<_GmP>FNvN(|?yF$u|5Gy&P2oO{p(!vOCp zC}%=(wO}uf*7XYTS`LTf(b*>8_yrkirSHYq73x%T3acR0qR0k|y}}SNGq*io@Tr~Y z!c+*77ej-;P?-gw55nmDu;D@4@<#4)Z9|cWKQ?TLbcL)677J8VyM17_-r&kqH{UHV z1*cEbIr;CTB!x>1@3rYZ_{_s~arHx!n8<(BSklTuOhwCk0DT|?82E}V#`=k+u}D&; zpDLlpcoSsl0%C9md-8SRIVP(`0V1=O0cHYhAt-5Zkvt1n@qLFOg*QcN$&8j7YcflN zLKZ3@tRGCA=yO@FwOq60Cf4tS&o|_uthn_f_=Q6zW+`A>J^s6Y+qFpL9g z&edS}$VAbGo{uxv)t&!A6VW?GYaAe5b*jA#MtqIp-_w9 z1&@qz>>X5B$9o&h>Dc~?9l9zHR8d>Dw59=kNdrG2Rht95hrWk{L0c=F*OGukhmQit9Q9THjlOMVHkq2v0vjNc4s;jFz2niECAflD>4a(EhhgnL;}do+|_Rp75wJfq)d&9C64m)-2+#}4OMquPMN!p z#GD+59|rqJuJ+zcrot^LwN1Qf8dL_op;0a&{NZqD96nBn1K|!~;-iRJi%EJkib{~| zt!S_ruzEeSoXLY=NTha{o;w)hu{Hux3&9_73b0dH7byd5M2UNDKvp_h8lKZx|uqS!2_vy z6A0y6L5Z&ps}f2T(eaPeC03+dljICy!J{4t!;}Cym|@K*y(pGP6ex7UXp)XxR)M-e zLMZ2ysC)C;N?wJXWk%P4Xv#;jG%Lk3Y-}<_VpOzt$#f3(3f%{{(W+zfWJHmKi62@j>$-zR>a3C z;l>y#UcfdfFd?C|Mx3^FM~)iYKYF>SAbLlHi^TP7o!D4`BAO{@p#b$zA`tnt3@~gc z=qnkT6wn5(Igv4g*)Q}@GMd{QA6pzj)u2V@mi*9M#fITQ?m5(&@+0wvUMbohaj+#Y#y z1XJXxC*Rt_bmg)hFzpFMvI-SNYOxJ4Db2FDxnDS+Yq=$@v8GfFNRkiElbt0Y zWj*59i;NvnP)=44Ka+Y0xgt7)P$*(TD+EBnNszc9$kMvY>kQ_V5r0RO)5RJV*mD)E z2WWaQ11zj@6w;?7A0Yvw-sG~-jI|+3@`Ky&CCAl~J%r^#`1#Ad_ae2V9D90M17g?3 z1kYs`A?00<(?rowS|EBcARYOTAg;}MgW?~#Q7znU=uv+-Emel=VZ=jNq#(JPF3>=P z!_w2V&6Xy_d-&nCx>(2_;{D-$v6br7dP2Zmi)0#H1J)#Rr%@^HDGY^YT;N9BLJtlJ z=a4sw4h}kdSb~|kUT|Ejhr)jV0ackf zlV@-WL8$3DHMSht*gXC<6>3+#h)!^d6+ zLd(;k>W^k0_K3*?ilWubAmCMiip|3kpdY37=-0*%OakfeMt%mnQHLdPKtue}b?fx~$qvvF*mXSXf9hT*MKqNjZ>ZU$^Cm>j$HTtOE zQpksCic=+TuzOH3Bjjl>>Q59!?Sn`dcu3_YCNiPK0nSy$$bN#gdrrHH(g{Tjt58d{ zFsxZ(Q=$zhva(!kW|M+lyiR_&C>f5>y6H4s7ytm{GXY?xhw3O!#=c!R z69T;r&mmPHzHy9`B)Eslu#YNj71$Iub7SaP@~nx@>Y1jqXkZu#ouML?%ZVF8I-`7O zPUoa4QQG-1PnNUTvv?QjQ4tL}kI-L&TLp`s%&28GVp)WCqS7iB<4FZX7BfaECy+H* zshBjIs%HP@H8q)5;_b(V3ViYC&Dq9LH<8&dl{M3c9R%X)NZ4a4`r33dC^+Wg@HBce zfFt#XixssO!Qa6aFO#$K@_@gQ=3u@VWpKh3HOf^R*u68QmW^8V&aOQdsyiO9ty)6@Ed@$V_BlzyF9t@pp zqI?m#kWJbf0V@DvXi(T(aX2?F%fBAq-qVBQF}aua9N;S=cHrLg_;W)!VbV^;K@SQqwJ4|+?nE>JfMO_G?qegh+ z!}cjcA8-)?&d4^nPzFY?v7wf&bjW#~zqbDPKpLU!>6J*NrP-Jw0c~XZ10txdRU{oX z*q_LjOyWo|A8mNB` zrJ#8mSeCLfaD?fJi^H>+R+s=x?<2l80?^jcr{HF*qtu{Z;9)f;uix$7icOkMD=7On z8*;$%7x;V^BFc^NKXPkd4SH`nu=~qpqE`MiP&!Q^BPj;rlv>?@W&4;4ruIiM zqO1u0r{lZ%)p4~d^%VoZ2Rrg!pT1RXKfp8E-(P{K!pNJkBiaD{4uvTnlTP6NPM4HE zK5Zze>Cz;H1x-}$Ne=80Cq)+&?&NSxsN#{5>e9ps1)wz8X|s@Z%ghS5THuI4DDoes zm{j_mdR7c!8jy|xvo z&a>rT3sw-4sRcW5>#A0Fy9?b=!;AEX<5gBsR13r2QI~)1+Bw`qtezWZN19dJQuu+r z9pQNEqX3D)b)-(vz3d;%>FHIRLeB*yK*0_*4MItZ`3-4WaoYEflVc-nSqyTJj+B~z zoPAj%P-{(6VFZ2>=ur8KUF#La^@*9tom$AEx8;n?ocb|H;*iCK^TL_L$7vMsl>xY2 zMNI>!LJir$C{NAY6QGzQA6>7@sKIc>z+X98m;f9ZkCWzwISr_pRCpH)x2j34zFC4Jfao9N!!E=X z1s8}r;=5i#L($N{30V_kP_jAXT!RVdeG5P*bSU>vCzBgjL=u}r$yS$3Fv6&jc79|V z6PdN6ERF4YG*Hne4(It~vz-6m@ zJMNBBHJ`wTcRF%A;2Tl1N_3Z{+?DEqA`OAb4oB_c3$8%9gSE+YUjdALS_m+63)Cuw z#d1nj1Bc^a>?6z%Dhf{IV}};26KEhg&iq*DAf4#~4f>~Mi8DDuXJ+bbr!Y>z6e`%7 zz01H#!-K^GNTd_|S)`#Xmvmz83MnZ`kv5=AH5VNQ8Z7!((*3z{?G@6qIHSgm%f*p| z4B#t5Jf|5rLIG+VnX0@Y>$CRSrqj4a{zPw}Mu#HeI!YQcq%I|rk?3ovDbOOcFSGj7 zL5FrhG24om=JJHUYehEr1(C)|Fteu!OpfFa^ln3=e% z;%j>~OTNq=%ThjHfFc;89;x)_dPq3H#h!!S$9I#6L3M`qCUKe%e@F z%%B!FC{wDBtfh21QKneQa&&FLCNMQX(kG?nz~?|dORS~!80kWOB}H2oIj*oSh9-`} zDxBuZd1+ecdjYnhPN^wQvxeymMt9IoDAbYG=31gUlIf#(hcysi3zh(i2(bh1UMn|(Fz0w$Ef6~>g?Rju@tEukUX(lLqjL&N(2(cmK>S7 z9(-pYuP8<`&4ZmiP%0w}fy(FtNUq&8=H-AqAdx(YvLVVlz5iANI{xHlgD1stak?sU zG67r!`Es~ktOAPM&@YMaGRpXP(WA%-FYWc-yri>u9eBdl~!SQW?007qBPKoQnaG; zBdA8=yom}(u%0@It_DHPQRfZmq}78u+wI5vFW$ibSOE=#@EXETt1c517*f$6wr4S4 zP69AQ;J9#7&^|G)<%dG9h(j=y@jd1CL`DZvPm96rzMQcws%%hUp^wKn(xN=mM0Cl($9o`uFo6zX!hlxpv`{!#*{XJU3pm1a3_$^$BQpuppgE7wL+2KXD}EL+ zPVS%+IUsT~1MCrO+kzM>m|agaGd$5^5O?y(VC4>NQ;{0Km$WnMh7>pkb;di*U>8mO zh~!bg^R>DAXio4wI6gkdt*!3nS84J=OtGCE>Ksy5o7z%Wrk+rugMnERb$R^V=xBa) z^fn%-jY-0WT4PlM915>SG01kb{)BJ$K_738fwVd5Jk89&L=NbjCOGWCuxT5*>nK4P z6w@Y;x8in?a{a9)h4tA7v9IAqH>6im&XH}z>5yA+Nu3Zm^4# zt{PBADmsX0tb8PwqErQ(iu6~YCwJ!MC>%Mmt;?!ysy8E*?eXmmC=a5Vy3ah#$Nu0v?LiEXKMl zCb=x&-An!u(;Q|6g*a4@Jxx{D5j8~A>0%>xxSa=LdKX0Sw&WSq4RAaqXaM#{iXo34 zckYV76!N;b-XmWGiG{8$6d2`OiauWSa-ZnhF(aPBU_4OU)uQR-InQfB2V z$)pU*e~>zO@NQgfaq={xjJ{9E5dLkM+a0Eu?+l zaoUK*l8+OK8B4g$f{@O#d?XiJ(00Ndb3)CMr6u?#ge$ayOKo58(2X)OlLTf(B1C6Q z33Q8(8!Uyl3l%4l!sTBXrt9F0f@e>%)%@E-&ri7(Y=iJd?4O_~_){LBKL#2HR%nho z)9(CAT%|?nz+aa&jcF>B9h;Y?YVv2U?hl^!A!Ko^OVRv@YSXClfQej$7#j2X_2hj$ zv~74VkzF}v<^Xzbr-e|W#mal8m8_B_`=ixe0zJzCa&18}wVcwkPTb}=Q9B%kn5Y+{ z5EM>l+?#Qv0X0rzg!d$;fEJ?W!>lXrT4E~d$558%3_?J}ah7J2F~@tL+{1AiRD=L+ zQkVCjX$D~YXgS8{&=6Kojx78%ycyF$ZnwChfy|M=oXpAk3>(9Ho}k$g=?9(jMHUtm zf)?em(~g$3R|D@5d|y6Uaxq7?vq+JHy8Nu^19tuNr?#h8sC-;K4+%=kqF^!Ef&dgmYoDLE|XlCBr$phb`wLl13%mgsVBiq$(TXiXOm4fKRrVRqX){JZ~Aq%tl*3^xLI-qt|V#) z`yuW(JRV2R0s9iv*q)BxgTHeiex>Y65UE$Drc41d6f8r7$;GaU6hC_(WD5KVfGKB` z*Q?HS;Js@+Kt70@siI{}ln|}~i={(BoQ(LHDcU#=x8rJ1prAC8?|;%G2v3 z+&xZZB{S4=VafP7Yy8cFpO0@_?Hogxk?tBYF6#leP%#7GP>cFfzK0c;{v(K;R@SxR=1NrucXGB^KT|&WDd_O ziNH(-GC?vJadOEK;*QFs;C5xweUhXUER=pNs%C_juEs=HRO{w*Wa2nL$^>bu+M|>3 zQ>VTDp*WsqDv>$tr_70Q! zy_Kn1%S3xojq~LMvZsnpL$gHJhlRHZv8KM7l=>#7O!Z8>{{RCW-j=aFoL$pEdC~;T zL6IT7a(MJ$(Lq8BYp#qm`|gn&pV&pk8M`&t8+!6`^5>w*(OE$nby5`(hv0#FYiCq5 z8T`c)iuevvAfnM#=uTQ_Oq!eY1`$=G1Z}~r6le9`kP}-gebc4bYqOf9E*XagnnUtd zFbhHi=~G1-*;tN(^G!!@JG1QMp6Tom1-hMPSxC&kerZF8ozW& z+cNZe>;pJ9JnIF`C__e2k#giTJ?L{67HVHkS-C=mcQMDLk|&OgX{C^qMe?0T?vh^R zzt};Yu7^g>Z78{DMI~FHJxmER6zS7K2>WavfC9d^5|?mA?HrOdp233!Y3X?MGE%Q- z^ z3NR0B)6771;$2uN>%6lq*qN6nM!F926X20-M!BxEKE}sJqXJN9k!InnpiT%SJYYqa z;2aBjk%q(5fca|M2#AP*8$@X#nTLhC9TOfrL9=`*Qj_&|=3&j<6L^<3Gmj8K#g-(@ zlzFdfRwUWQ-Y<8xV-G$tF#N)5;}q_4M;6oN>h^}J#nE|{=z4WKnN~n$Z1{X8%7U9}fFP{=YvXz7Jmbh%lPJ1qcof-Ioe($G#5;<`H<+#z zp#yip3NGYW2+^&y-j*M3gorS|s$`-}V7nmxcn`=G%6znN>O_zhQeT^9K<3UBHy9oH zxWv%SHPGCYIj9jb6|_ro6V-Xb6lVmaEas=I>`^Ao-L3MJq0S_9qk|<+fQ*4VzgT~U zC{UK5I>}FrxQr!Z?re<1>6c*f?M~8)0e<_A%5h>8K2WlV({vw!%nM3RGTw~9wpn77 z_ZTro{2*eFPS;)C#F|6FXj8IF5m_L(s7Fxjnxoz2EOZ1$f_OIyBr9c#KL;W7dhzN` zgLArbBg!jm#i?rHR@*z|ocyrY32N$9PotfTs>(fZe^Mp`h&0w5ST>CFL5S7V7*bkO zQ1+u2a6g!WR1Ljjr*VQ$E0)Wl-eJMT^~hIt6f0Ksb?!<86ASE#3`dz3ca(aXTRcd1 zCi8moyY`=BSny7cn)LlUX25I%*{FS2W+JD0I?H=T8FeFn(~sk6*1gCOdFK;`&WSh8 zfn>3k3k@P=$|H11>M%+@UYCWEcBXf@EL3C3aqhQ&K51R7tuVUC7uox9yFAJ&Z9`*~ zzfcR(T!oOtM(vMY25Bcfe)P|y&e%KZF@r6VAu@Pk+(T>NSu(~gsbco&8DDgMlR}L5 zJpfiL%KuMdYVbI!eN_#a@`WUpeh_m{3?D-yu_20zOgM__1R*85dxI$&NZZ#5j>P5> z6^}4>LfQlIgQEuzFqRRRXs9*ua&q#}wM4otD#8#>J_JbABk}D&0+Yy5CVkkEMPIy# ziw9)b^fX$5)zed-ck|cf`rSxNWDgf12w?tYk0hLKtxj4<`J-bPdu?VNxSgE=kw}Qj z5dCkUTq5dr#8J#ixE{jBVR_COp@C~Df2d6}xD?rvF2PXMo3TH6{bn;1|J?GdQKN7k zGK$bu%0h6+RF}AQq@b<9t)vm4JDb;X4|H!{ie!X51o94E$A|g?Z4Y%XG7SOWDkU92*05|z&O;%5%(~`@2b9r9{ zn04biIoD|Ai@*TmFtJdGVII-X(-0>(L;ftPCv49p`EpBaxMLQHd;d|xV{Edfu}W8S z1kuw__5Wyk6S$_&bZrQP5bha zCK3z*5)x`v&J-%43IP$co>D)jgf%d&2T@T^r!!3gRirc1MD3g~6T^4?ncr($ts?L& z_j29Wy*v>Iffj&yW-DLC=K<2mJx>dU?%g3nLX*Mr&*73gn{Jb=t35X`jq*C_oDWEym1^c2kK~K0VoK|EV>R8usZrE zww`~g@?(mUNY5foG8VqRke%PWFKS_H!;Vq(VtNu8nUZSx^BQ8*$_d46=e&0M<0N?f z9vTs&H~Kw3N!;Z7>-fp+N+RIY*G^xXR=`zPG|Ih9(if zwK+FRb!LA{&j;y!(Bfp;BBYDhj*MVec%86oP$opa-Rzbo!0wGnh=1#P-`Wn=925#t zw(gk}w6h2O33EpL%{pNpoYQtPaj@yr1$$lsXvI3&M!< zwucC2J1+tTs1mbFPNH=Lr>YE-`}%5U3B6B(ef~GKr`KLE-1sU}>jAr5A$wS}3cXPT zv|e<M@42kbci#Ed{e9((uYscHdivk1hK5k;0k<4h{;^f$hWF_bh=49CO$ z`dZSb!*rX7x|!-q9j{!}84*#$Mh@9P2Cw~uuzN)5*x87K1~Q;1isNUW#cC2( zHVHZab@9Ik182n!$cS;VL4T?iH)i0yu0ldXnNgno6^{gQ)8x{S1k4VjAH+wG-EMFd!E0AZF zF-Zm)lSb=V#C*W3LMB^hZJmu&XmS_s(@r3Si zYQ*lbvw`I;^^jE2oy{~ru_YCdjHg%ETq|J#q7VlW%7iV|BRD;Md+06!O+#ixM(bs2 z64Hp-^{EM3KEEi8IarDQp1|u7rN0qY^7>xf4e=EOa?dZ$zyb^bO4r3*AoG3)c9I$l zUa>_^=8<_orEKP}ByTXyaHP~sR6^tl8n&a*8r=__`MbYn*mfbOR1i5%$*A?w31d6f zhi@l(Y$tMGmm&FeoJ3h#O8ovUXuK99Pe$h=kllb$>v}(QVBr3bdn;6lDV@-^>)DX0 z%qH#B6CyGS0ZwBIusIKQ**9%~tOxI_5z`VSWlgv~eI6VFtaDx;5xO>unVa3sxAP%S zY<6W_xg6;+_C`{XV2_BL7Z+D;$nJzYg{a*_T_!9YKFZ#hC16&d&X;I5MeTK86@o*J zdu)A)oc3`LOZHccn*_|nwK#~Ffd)u|nR;X!s!WJ9Wkyvqm_+D6Cdz&0p*#rQ*aQp% z7)W8imq-S4w0?a-)NxQg{DK`xFah$Y>k$#)UA88{8{p#*Mam+`75JsDtNi!okj4^fWn^1Sz5Um$uM-ig+-v#l)L7Fjqg$NPV?L8 z_k63%aEzC8$G{FlE9O35A~O64-PCGCJOr@49wZ{Hrw?ta4B!q1$VeN&g1 zo#SBzg9?RJyh)Z7#KHf)iRBVEk#$5MXc)l%AiN=C(cVfZKAcL!f!eR~W$*OIwr(xK zW++2UB}=|12>($s-isU;&6$JZvkqDY!(;pMJ2!ju8p!4o@=YEkvHHy1g{D8i{?FA- z5hvY~)V32UpFv>$43GFU#U#NE=<~z^Qxf4$kmyIk_-hK0YRNAP3)_;Nl=^LO5i0X% z)lJn%ygUhftI01GWxWwh&(y)W*|`gZKLKxu95_J@ z5V@ps(JX4jZv%9ls80ziMFtuD4{<*z1sUYsnk2#1PTo}tu7L_>4cr>TM+VX+j<^M{ zLU)Y)CGZ&q1GgAV>n2(7)+K`?f9%QYL0wg&@T4jI!eqs5Rr;fW=j=f;imdLWF#A-d zHJvH9lMD9*F%n;{mNlakfzblL2Mz!MV+dhSao&H+7EGh!N|jYKy_LWrKv((AR6)ou zlvHG6Z$I$qMHXe!V9LaPvWY&X+uxDP{!q;7W#5PXkI--jY#;aJFSTFPUCCpR^WGsS z(9I2EBj6*f?f=8Z1g+6scb!1`=+KJm+}YsW@UFn0i8YXetlC`4&7!=lH{VWI36s#u zb_Bht1u3Ylg({ptK_zK@zQNokEZyWG8o{(KMCGO6%T}!@E94Pz!h|6$0->2W9}yoB zvUGdtZiviqV-V%Y1Ib0u+XxKIqE;d?1irA-W00k1x20worVU0#TY4Q_0+lZ#fCyB8 zlCfEdU+}x^Sj-KVkqapOaDxOFii&o)@^e%jnMj@H7m7*-D|wbZ3TDcMywjGEK;8F9 zQib)tF6vqbdAQE*Ji&Oz{i_~RsK0cl;~sEL>@0gdjAZuY~_-t<{_Q8rljpmM+szs zXkI2W9PM@6){~M8&cC+@f?kquFwPZMJ=A&jlIyeHfcf-Rk2k$1_iwHP^APv8wDh(jN}-^v z5>lqfR6ybcS}ze%E+(JSlI3w{3Vp>t)|Y(4ZaiN)4u)u6O}1A4*GFMppMf$LdNm`= zI`ZMG2o+v!1Av^X#_vt3M0RHGPR9^)O`Z23i7_MEKWvjLSr)YlU(+~2%*aoTbM{lLtYG2asX^8_Vc$v(CU|0cN8w#0D2$o z=oh?y6N*RNccXO8vb*I-d!|m9=FTbV67xO&$M}x|@(++m!IZgDt$n>YIC>DHjK-h5 zC+yOtY!U4JAg1M4RBR%FM@(QbW%r;7qFtZ4|4!dqlm9kT6y$5Q0CcP5Vw7=`fuTp$ zWzkI)xXf3YD*M{5zpj3M9KGC7n%wldtsw(-aj>OIh&r(m9yLr^h#Y3!#*x5#4a}Dw zwtNbvk=h0Zm{QkBMn8SGBEP81yGNXk65P*5E2r5ipCDwOgW2sN^RoVwKJmms8%yrf zS@{b|oP?nTz<5c!^j!txDC+b;QOs&@!@*wqnhUUuX^MY@m5UL&J**yDB@N(w!4W`e zicAFwo#df^Qwd0qg@yIO7NJWgA~dKMDZ&pn1g(Q2gux4t)xQ1=A9o%Pktnu+KPe7F z_|Q^UM|?0!sY_yIY*raY{V%S~%knqmro&}e(18PNjcE`ptxqW_MaJrE2!3_b;>Y22 zulA5$H9T0~{eUD+HagZ9tTQg?F;HPt^(}c@VZkf+*BwAI;iBR8-KhHXW%5GuRQ=10 zmR%tyDci@_@AyYiC6Gr1J>$Er@WmjkSCdA4#D*Lp4(Kw(jGz!smUa1oap;Vl4ag=s zV{^9^bRs!Rg00N%>`dg7M0SSv`HO-fOhkI}Myvu2TTyvD8UzSDJVW?ytC@6c{HRLWMnk|<>l{IDf6ChL+4zS znlxlqvwM;Ti9uc4b38DI_()qiy3YTL?tvYkmd-dwjEqPDfp%{;u*R>Fs21&9w+qKs z;@2#C9)30g>-Os>qA&o{JmaJQnGt5+$+FP*Fc3Sh0_Pn96UrQ?;4KHhj^^08@{=Eg z)L+NkP+qXNKa<4Rf6l<5FuaNic$5J)dox*}?CgZRc-J9Um!6M6)SuF=AYw7f5Xu(7 z|1-oRG##q3w+t)7MSFBC!hl)is(?wgNvIwZ6IBr_c5cokTU>HGj}GsNU0>EleW1Z1c;yh|$L;R_ncL zaQ>^+q8K#@B&1bW!eL=`>qVG+w^}LN(oL`z@J0#nPpj+;3gYv=s4hcm*fhIY7=gAA zQv80LXd@Gs+S6UPkx)$%GnvpzxKv6fe=xI$gc+V$QG4VIlV>AZsmY_w`AocJ^8cE8kdiv^8o5i;?Bh=J%8YMh zPF-aHV(wJ(f=Kb?jDyNN)rD0Diau6~VqApgNM7FF-1N%=%zBD@2riZ-_bVOO37PL( zM#A?|!&9O!i_`Ck6D#N52;HbG!HaL->4c?mj)Pkp*y6;w$}5V$f=(F^(wF#tc&YpL zz#TKd=4vN4!ForWCN+IVa9Kn+J75+s!nh}*YgiaEeQ}-9gzhAQ4njj4?nAXo^LrCO zv#@lZ&?4Xkk^gPe>n=|~Xfh$|jNCY|-CyH3nQdnwCw-VLf(?L$EW%4e`Elr!M6q1~ zC&h{$qxU3j=E|>8sbo8-?+P}5lU$*?iU%kv&t8W8J~@P*UkCu^(_^^q))o*vUrris z--%C69ef_$H%o}dzYY1UcfzbK95#O!tUm#0iY7*H6D>QS(ebiN?rPKU8?TiHWnM9t z2#N^RyX?c90tWDg9>S8;eYP=^s9j@bZY=#{dLNT5^xwKRv%BY3eqIkLZmPQ{Sq1rE z8R2wgohjvQ$;P?=8}~PXC0VG?mayJgmyPTf9>^%6pgawo8-XVi?xaMOdUh{5R(ogv zCIm`(0{$VtthYCUT}`Om`UA{3lOXKEETThfga{$adOI`GwgXz_&=mwTfz6qHkX{;_ zw=23~)z^55NuB;dBnI+wK7l-AHzWpo@yZvqZT8MYVGZc*&JwSzytAF17Imz7PkqXK z!mW}GIxQ#+usQ_$};9Z)?w5Ac`Ve!r6$>Dli5}$0Vg}$rdb5 zUM?(1fbs$M0gxnU*}i4wGB(t)`egb4nM3>LtBZ3*SF$r;NJQuLdDRMV!O4w2?#6*Q ziUEeArH+x8x3P@Iqg;i9q10uK6I-AK#VIlw`CI+1yH(mu49_)Ox)exB|5QB9wvE)j zOtcqZ#Tu`<&c(LWRO15=IPV7@s4x!O#(xiOFJQ}Hvhc!BL`h3>U?rK^uh#V3BhDI_ zV^)3nCD|O-9JY0Pf-T|S#%^&g%)c#Ru5&Z3T!_)12>DQ0@vUcFazUqZb-D3A?gjn> zSS>GTt&D=T(z38zHYx{TyE}s_N{EW`F5%RfHUFEfyv(;TfV4 zw7w;e`13u?l{I*C$V|9!J-ZHU)BUm63or+y;ND_W_llgr+NWSpVC7putZ4fo#DAkGM{GM+hd+7#F}_{SI{ z0W`2yyh#&6uzD$BktuZdY+)(o$(!Svo~2io2xHtCiz*um5_urKWk*<9UW7+uW|8Ldy~4Z=;A;$-znA-)ubK~e1&rbm99HGlSiIoShoEucJOIXe zv5+KbA>8-1g3sT;FpRz$j1{C3LNU5DTXk`&Y!^x_pmzwdQbE-9V<`j>>ouOeP_gYnZ`>IN^7DE18H_rm<#*r9$z$9HNxhrWP4-q?NoP6dQG zNFR;1+2XLh;;s9T+-(*MzO(Vyb}v2f*q@rV&Vc)`NlTrn59pzhc5Ga2N25M73M-;_dow2pCr znYoK%APk2>b|jO4pxv+eGQ5>}7{p9M^>X)T*Gs%4+o!D8qrQ1hc=_}=rgQnZc78Tr z8T%}|Ua#nm9!NG4)BW$>Z{hmRh0%TTVF8fb1Wh$pG^q@!<7Hvq+AdJjU?3v)!hOId z6Lm?w%)Sa9LDeC@c!4qd7ex2Hd5!tAb9Z8w6h_8=n1a_H>4UP`fIj^huc$I{u-yoD z^UyQl|6@^)H$?hg38{M^u0??t4S4d-FPj{<`3)e^!@61vg&Cg#fz_Ia>)AbTKE{Y({OGIJs-FWvXP?eaMp;`jpBIIGV^G`Yf5`WqPQ{{gM>MPmThYo{cDTnPsk;#=6)0oeL2ml{MNH)W6vd@ zlC28`dlEX=#p?Jp^{x`Yr2=wKyS`-Rz`c`yKO@RuHd!N-Qd;0N+o<2jtuz4C|<~P z$f6afKX&pJNWdV5x1v`m(en$;6~0&2ccK7&R;HrsuxKKTIP4=A1q@tVdn)5dQ4oTq z&HK9_#k?s3f(u%!VzYpPjFh@KRUHBG4M5JAi@F()hcdRZ8!1Y5G;1X5W~ePRNxp7$ zI{Gt^`WOSMD=J-VyUs6S!jTEt&HrI^v;hx+%O`I2MuLrC^@!q~g`uT6_RHP3>xjUv z4rXGND}*5<9A2{!m61*IsA?i0iSTb~Kv+Ula7klLql@D(Ap2<1ZPf5RaCq@Pq^zJ! zhIjW~-VovBj0zc!y&LHXYiAJZfAV1-@iGIj9Iy4adv(X6`fWKBX665>S32+&1Daro9|ytF75 zC{&q^On5lLU~GaKih+yscv1Phpi06HufD37MJrRh4jj)?p`1Hu^<^K1^3nxz1utrl zEW^y}uuSH<4HTs)ypa-8mw`X;^+z#6rl+zlU0IhLl`eA+Bt9z-Kh>Y&k(i#}1pNRI zxn=M_8mR-d!l9`Vqzo0# zi11G+bg!Va58m)LD)a~jKz3(ccIu6<5cm-w14thY54};U8z>n0?{g7FPXene*NwE3 zP`Qo=s<6n|Hv27#R<;8|3q()O1LM)jR2BziX`zkX1_h#Q#{O;vl3Joe%C>&ekbhUB zOcLkZpFxuB6Mq|Q3irDr=kv|i#~lZe)AGA4PUg4awL$vsZ-Wt9@c$4I5y~oy^a7Iy zCxIX8{yxk(RktKz>Y{9}SA6bQ;}a?$Yrc^_*?k5pI&c24cc39!2}}v?0s)NJs4m_o zJXUrTrnru9%lQJ`%Ry_^?w!HjofA;KHiO{zXQO1f5y5qplH9QQnjD2KBYcMd1MVtx z5_%m*A?Z+O!+u-0&^mhi%zF*&at-F0C%+Sn6i5gdIpTpZ)DRL>DW#+=TCGdHF*w_l zWtcq8FM@bRu$2*b_5jAMKe-U>-$l=apFTN5h^G%5kv$np)e_1zm={0m!{nLq2MV6y z0xF2f`5E2~C3z*AlZz01GKCfm)h1+_<+08W!53oO#<#(i>*I5gm$-Jn%cpus-f=FU)_9755YYjF~UVOpF-7NFVD{)UW z+zO_O{Dtjnt(`w^mR&x#BkN0F{IxJUmG6f@b@#by z9>lGjNBQ*j>RHyMD^z`r%nL{B;>myXZ)y{T5eo%{5>GA)$`Wq(4`V8fc?F%;cya&Q zwr%Uh2~~;rRM#!Tco=K+*Mfaf!zlIb%9Wf?8u+W=&(jty#?=~3g-GA67fn~q;@Q)6 z{OlAx8zlv7!uTLS%Lhl*-ZWFpC|mQ9Wkf=Q)ld%I73DQo5YkEJjkr%;jXUSv zOv0m(`PFb+C$ePXptWrb9}=Tz^ETfzh9O#Epv2X+9=v5$+PV=Bk?|KikEM~Pyb)2} z%JE`RP5Z41I^P%&9Wj99hrSS^>Dj z^pxuA)WKO4;8a&P^!6GeSO-&Yq>+ZSRajz0J_UnS>Y@Q!FHk1h&f#WBrK(2ev}Y&f z>gH>KdBs7;|5z74SMWjqr@I%tcAE2cKQGy1JcK!WAeiR13X}HWvLAe6pPY`?1WGJ3 z9ur}<4OVH`fr%w*;I}lg~ zjKZ|$5yyR)bXYk#B>FgE){t;N`nOW^ZYz#Y$)hwuqp!mFY#xlQX83r@gFanVBIcB~ zzVfZn;vh+wPk3o&YvxvWfjrc=#79w^vfyF59a z7uM@PfZPb|yC(1>e{C$X3oWoq#*@|M;#7hb1KC051<-C^)*gXkwE=1!tvkY_(X`z} z3At;x=~>Hz}QZk>wIebDAlk`;_GV zZlubPDrGc1rg;ivkLd|v)}TqD6rJ56I`bUDrMxouOTRCx^N_~xO-sBTCKNImKqnYEY@QS zs9=HZ535UapIK9WU)3wit-RkW4;p`&wfB9-EHiTa)ebxhB*dG?G3h_r(}ITHV7D>Q z*cHA-qShqo1bbCCZi;URakLr|o4LT{yb9SY5vFjgZ@mW%_BftyY(o_+88FiSC@Li;l+Xn4`CgX_<`j zJjM~3s3Klf7sI2G^Wwd{N{V~DW~-EWMYLe=TLo*|wyteoU(w@k`+|57i}?4KRJGoK z%2bm7#y_6-$L!Oxz2Era=hw7GMoXHTmXuc=B9CqPp@A~hnc3jaXr_D|tMw>_duM2O zC2kb`c~@doS@%+iy8QiA<)gIHotkrXNm0A1>KSjRk8e>f@R_i0si`+E1R}DyjH!(Y z27##{^+v+%UDhdcf*OZY77!)0Q0-GoVPP=am=lRNDRamiV}Gf$%(YOc*qK{fRFoyQU$mthBx?0 z#<5SXW!~ZiRVdot+9&b9m{;PZTT&F+$~yubZBd%F210xfRZK@;&aJR#5B(HSl7m7z zmKiNob9fUNt-HOq4o2-pqY>Z{FzW^IHt@NFcaUpMO|Yu#Q*RQm)weO%^K^Dv?0pS< zp1DD9PQ5_R=Rq=no{WR}+RY6O4-fiml!O1;;@imVAscxUpn&&?eB8Hp-V)O=vxOGG z-W_ib_GY*9+P)lP>vDW1qBNoAZ`cmM$}=C?4tpF5D0!{#o1_Ze315|vRc8A$UV^$s z->`wLy_zjpTAT~Bf?BHYc7!ZGO&zon37`;rLAPvnZULvMzr|cQsLlQq9OOaUIb?$R z`_;-K3Tnpcz;OhvJ+(_zp6TPM$vD~xH&I?pr2?^>T64shO&jerHc)h|!2Htfv^}4+ z3ojgNnlKtl_GbhR!i4=e>@&>~XL#7c;{H5su3ckGo_yeA13RI1u1Bh9X|A;YZ1^1^ zQli=$H&+L+W)XJ5gi_?xgqCzvlNc*6M#erX#ECD|tjpbHEi+d)6V~h{SzvW_bt!Hb zCk126T0<;U#n`XBo`_h0+O5!fTl09vfg|_}#_nd)5ytEh9(ZyCO;B1?+H-7#PCYtU zY}+sABvD7$I)Ov{TUWE{`g@zxwm(25E_o^NBXi{y;-~(vF?;tEV{W!TrkyS7t@=E~ zo}HQ)iw1;<&_IY{v44ga;_Z)mdqWJ8z5}~)>HSU3`(k17CMr`cW5HnWv4)|7%YYmY>g44>c53UQFjCPEe$r|2H~s7mddb(g=# z!NmuFmkEp)9m(#zK+Zg*fJ>knI;la>?J%F+(aIvrz4%!#-J?eL0?KJ#X9z0P^auC) z$GqcpS@NBV%o?o?KqI_8^{Q|~WXk7}nE(4$4@6>Ln1y(Aha<)_y8yH|XJ;QN_4< z>I}+cf+fiQ6eS+T{z0f`$^HsXcq9Y?iqEct2n7x*^8W=LKjj@Oi({%V=~Lg?f8np& zJMCw~k@enji#_m*e!S+T$n6hKaj2t<&je-_2jzg-(;<$7`h3|1t6HP5YB*b{eC=Fs zbCGamWxE@DXa~KOMO}AySJL)h%Zv{ZUu=l;A80k$lEsz6G^XBpOb~Ul zoXQ`6#HgAe^AidRS^4Z7pw^f6>l0^*~G#AmZXxCATIij#!e1> z4<~dq-%lCZ?Z_7iWOEPVZm`olcJ)&3-}F{wdNsNm6AceQe|FDsnu}H=OCpC z0vblmizmyZTaaz7@8m-gsH?@Xrl;2vd`GP?uOy{Sh>Xb%VVtEdF4>Mu{*u!3rYq;?1%i zwfejW+{DT18c(G^y-qdre(>9faFMZ=XA^GWZrgy7oMQhZS^<5 zmB|R3^;7q{8?3UZ1`I}DpBVX6FE?XA}~cu&>x}@BZF3E&I)n(?gss; zH{V8ebWG7ei^EUJo2tw5p%n*Z!tk6z9QVm!X1uCt6Yz6691l_l4DUhS1@G?s(bHL{ zGLBy2=gY)wt(dhf5(ES~4v8j63X$T*FL>24tfuko*5r>jPE{^YzPsBaK1D81eZ?zS z{|32Q_Ej*WW%Bd=-!&K2A8N@U`KHhLU${>BuGx2Y7kqyC`Vv*duE(kM5qa;k&do(` zdb5k!JqrROER)gOas<&6^yg{n4bGghqOxDZnuyG1Cwn9j)NASh0QW4=cQv**H40+L ze=Mwbg6_WS)?wsnHo`e!Q=L@*3GM!Yw}D;a;<6^%Xk;Vkt!~3toyIe?f;ib`@5%v& z`19%@$?n#?w;ZiT$4>#)jPPyA2>z0)-S(%&j5>Z` z>T;+yPFg!_xXFZ9i}=Q+$(u24cg^-!WfW_e`*>WS{*jf#YCrucf+L z(yQ0simY(#RdH;Dvw7={lzr-^n(R}_p#hn`)kg#K(icr?&)+KUs5OB#>r~lwAf(mW zBxG5-;RW*%9pA5GgsA{9m|N>R69Xs;`P-H8x9gA>gsC)^tmVZxtyb{Vr<5%XxX6~9ho;O37{hDxp z!84(?W=HnW>(Q4+?FE;|7agBR@=q2Pv){t6#Rw)Fz$0Z7d^03pUlu3u@-h>u;-Kcek?ziq*d6QVWscu%Gdi~S>C)?{? zpa8n#2u=%r4na;Ph@+nUihSO!{QZj2cu{Es6VKpmU28OSV_g%V5x@$*D|=io0pfPN zb0u;|q!;^S`Rp8fHued-sk&y}=sRi+t9QHpLu=CFo621T%|Q@wsn`7QzG#0&_%VRR z&Mny-(L!lrlmzc7;zxtP0p%27RXD0sqWyra_}_E|f&oHllTlU^cn}}%42mr_(2!5+ z9yFGSQInYAzV~zr<8Osoj=K)b`(0NQ_VorE{gWkUkl+d17K2&Vk=b~G_>BnS2QZ6W zP^QbLq~B3-G&q%rNCKSNVNy>T1y@6se!+9zsp*T8Hv{u$+c3|(y2gjOoj9vH1{H1% zu`98vx+C!-pJ?6;g<`1Nx|Y{zW_W)IhBrSyzx}1VDx%YeEXN>LA{x{(GbtsjPsoOq zE6Wo@{aU8*#}@f&(TVRaHVcFT==c`Ig8#)XsTZ_7tWWyxES??eB4ZR#$X$G-?6sC% zQ7xmPzV8$Bf_>lK#b{0pdH5eBd^GB9fhwwc1OJmX4|$CBXyQGMC&3UKe#`2$zPXRD zYL7J)>f)XmC($l2*W;m|-?2M=acL1*gc3YQS)PewMzT3-&nIw?5X`B5HiMvPz+b~2 z9nWhp7`yX$28yB$q^nuYgKv?l3Du)jS3Y(uO{ly04v8JUdCTt!QrJze0Vkd%A#@&O-BP&0+k=M9;tl=_N-0tVN z-l&b2b`7Tq>Atq%6}R9&vO8QcTxVj zkp6+~(2RAs)^MF$qzbmpqtAjLTrZq^e0_+01G$eC-+6A*pSTbK2VBDGd^?xc%Am2;ouAyvfxs z^%k<*z4}_MIV*1U$DBK3j2*53&^}zJpXBi~c6;oK+vv=)eOc=wt+@U2*cN>?rc5ui5DNO zxP@_-Z{ld3p)o6N7ju?Ryx6qj<}ZC(<-(W#>)GX2S0?`QQ*7!lIj-x{D`}iop|uSs z7~NslPiQ6&FE6jS{ZEeLcQN&wxRx2$$I|8R3na`|SDcNt;CH=N|&ppPv%EEoK{@Y6=yBicFpBmAhlJw?yR^i1{C$-tDjwQdsTOW z))6UvRq9CG%yxz2My{{8b;CU34I%ujnNZC%qy-9%9HSeYvr=+?7PhDjg&W zq`RnNff|$M#aCEOi%$Am)r#A&ocr`PHm!N=oQ`?%khrC%RgT->k6m9mcDVLBTCKQ( z9dd}QIXCAN9cz2~%$4M-w(55 z^M7KT$1QDq>j<#{safxgA;f*rJWR^P8S-6F8?GnW8MA!NbMQ@-xnnzt4fzP3nYp z=pH9*x9}YaR=ySA_@A$@ zxZyss@y(ylJD2S&=W*y0H;7YVo42uS^W(&&q*yW*}FRYgw74(8S~63t~rO~ z*w6o0!bn-H^GEmYwLGOqRmsHJ9r-f4?EFEKQ zGl2yukDo?qMl}AM5F5+Ryk@~`gpw*NKTvvx`=8u}8AbSkxD?@O7&7~>yep6P8dqaELC{+FfZCUS6%{@g_FA9YgWH|$oIuWd%b zdEezrT~08Yn&}$)DemcToTf?*wTc$n9@{TXblA#ltQTa9W?ZmHbwHFmRRQqJ|s% zdODIrod^#w^TTzAM>RpXph!HH_Vm%UG48KIZX;Kl)ShDQz*n~&k#oq-|0A(44~|6o zx&p-}bI$TL^GrC-KR3smqex>*0xW!-LF)vTZ{}NbPT@=fr5)ka14l$fFqrSHZStgy-h?wnA+< z6#gj=baXjkfQ0cVW@K#JpPsVR z5TIv;&hsm7TcwfQNJ#$CR`ZOEtL17S%m38EK%0KfvF7{?rMgp7%o zr;%%(hH$|B6|9Pvr=-mO*ViXI#x$mmX&pC}8zhaEJXT2_k9OE%#&tEvv76G%@3xcAMsVriFfF`w*?(V|bB_(5(?I{bY1wB|^V>1oQLUAaM4SDGYmR3VbWJjW zp3)@cI#;-KUjH=4&eV)|gbC+s0vv>3&8#P|L7a3%17kWpynq9C9VK>@Qr`ZGHDoDyeBmjm_> zR@@;fj)DFZ+ZNhP4FE^2D{lX(@t59h-(-7SU$fJ>)7_&Xyy$>XQT zCUrGJ^VhC-q{jBZ;fMHksa#0%oeoonZ3`haj-AfmS-EQ+&&)YL=a5`AIEYqPwToR_ zQX5}2jinXYj@jl{+`PDtra1?eTj3$6(|{9zp8gJJH)w|6gE954DYljCgtlMz)b17M z$hhV|J=Hry2*@=FQ~w=g$jOl^-kns#sE^HfTyK~o2)*ZtNXQDjN+WlHf0}-p zyYSPC*!lLI*7i{6&UxwSjZ*~lx8yWLl3bZ$zC+~t3K#`2(tL}hunn6!Mmqc?EV(2` zF1e(ZJXTA87}jtO0Q9$xahG@6E;)fRK8Bt5o2>0V2x0!ef5QWFR=kkys9L^e&1vAmMRL#6PtiL#{yEFfimbI*a09oQ zbHK%>7Ow&XX|#)D&-vK|-Oq`D?*mpm>%#rmVn#Gm8qdvXNv#tc>U<8V6~Zz9mus%; z4f7q&n~q=Y#{iGIbdoOUr`LR&iFBXqCq%&1F+MC~Lh)a>>7RCW5JAZ%I1RcvXFkXL z)3fM7#}3BLn0ic9E=7o~L+VEOt=(rHP*4dc7yHkEji*lC#S* zn!`?#eVPr7wy*S>iTgPxfDo1oY!}{SOXIjw5C4rjBK^;B!ud$3LaPSAX@uLF1`p** zm0TJ76823rVq04O-_+a3+V5dc^Lbg_ZMtE>9i!*?~#PbCk&91g1435Xju4;vZ% z(;4pPaEyq+VprTgfZV<&xl}LpuGwitV{eCF%8^63$akLwTOQjV)ZN@4+XT?q3!$y^+WZycVHvH1s%bnN0b`PeRV5xLiE|oj@h$wM zYa~x|)(+beT>FOYR0~X0=e6Z$%R9{5Ml{adc7NMrTg;>u(GJw1S~Ctg0mS|vLiBe3 z1iw~yGlezTvDW48yyVy>10;Y=ta$~ue{+*1@37^H?GjMI+A;d?hnXBNTXmA{H-PV& zP-oA4hnMs$RM7FuWXG-Dt;<)Qm8nvai4SLUJrONC>_W39a&sEVaVN(zGY?S!~hxNzTeRu)Xs+ zr?~SE2TLc0U#;b>xJ{WhTx=)R##4*gy5Fi11Qhqx2DO z)G}^R$}#(bPH653BHQ5WPq5E+IjEo+Gw7$;jsx?2$BBBVZO4qpFQv?`S8*yVZK!1$ ziDc{cMX5JAKXPWx=QMCcL=fIK^r+X^o@^Y_t5ftZD(qzh_LO?#Jp|##9(pUSeP_(b zA(G>LOr-B{=f0c*+u?l6^`qFdoUo_LcorZPmWq-E$n(E|-6bcWp37Lg^apjU9b>)b zOLBz>YCh*S(^WTxU3Ovep?H)~+xafP8W>|w0N4*5A|bmZ!J!3!f}Q?kD0&dGW8p9B zau#y_IWrr2IuQ>}>MG$*YBnx^XVUz3sX@|c(t!wx8SfaaO{(>w``A9;%12k2 zIDN>BfCXFlsh(53;uPB8!)Rx+(`Dh?`My-X*`$WU&GDsL z4v*COO6~%+=ctBv7Dzq0G>MOMtz(Z}U(a<<>5!2`H%zi{swt8gLxjnmK6ifHY*gjU z3jrP=07Ba~BPKDq!mJ2%sOmxUt|$e88|1@b_}f7>`6HYFhnLiP%vQK?#k~^6&@5F- zSv{xFglWYVaKqdA;dsl}I?dJH#LCx#8A-C|{ImC2nf*WJx&CDP7nsC{8uVtwRt|Fe zPMG9FiFpVH{Ds(@D-cm4dsgD_I09SdupRd4k_^Ja8Eg<(pPoPWS76~5)m#~yE^Zo$%vtm+hcb7T^QkIyu!_#|6`_%Lzap;g;x zgrco`ZLK3`v}3Jg&okDullC%IoKs-K{ME9t8ee$|R_ttuu~{2O53y&fglWDmA6sy^ z?aH&Gy=tM82C$D(Zo1q_#@5ZlejKtLjEWTxN)ft;(Q*U#~^d|f}{qU`}8Imiob+Y^B zT13axvG4>yLDL3%nVM7NTt^aNCHqAsJuBcC>LcPi44bKWp6vq{^(>WP9)kV(%+9&GQ4P)^CYghRt>)P^@QR zrP`CnZ)O>9h6dLS{Zu~`9Io33{^EhECN##RgP;Yalugub=&RxfN)oIik>1V^0bpz6 zEQde2DRc(r$Qy70`aV01*@F$XhYCl4Wm_a6bzLq}72kZrB!3eAlAKcrmMS>kZ1|lk zv(?3Po*W+@uVotO>Si!hGIfaUBm~E|ieIl_pWgB6nEi>oCbxlcOv@LVHR7$I z=Jt&%ZlAY%A#M>`N_K$N!e?NuwZ3QyCrP#=F$~n9TErwah!c!&JK10^@maO9!OCHK zD%^~`1_Bi<3$MbBMSA}JHLWRpe-=GZ%$<<8sF;5AN}A9{k~q z3)bXu4AAesS{QxDmsjkUMl~yL8%*FzI|xoy$bE5W98uH!kfm+nD15qQ0)bEIwW6*S zw_lHFTyIs5kgD)tne_SHWr9Pbtrni*gfNLRJb{?*%WUC4$_UgrVT2T1=c|(3eOnK& zxRt>rxc~$0A;Aig6jaarH1{#i^(q{<>n{E0Y4(cS75sN|#qDKDd57!evkLmsjN<_K z3W8XkF92s&E^X#2xbwr{U!Rn%xV^$%{?Zi)E^xfVb(y~W(2nJQlCzLOH*fnMd-BMj z|H60u7x&q_&Tl~CVXYtM5P;E>;B`eSZta?9m!5UOIXdH||B&Ewx6sei|Mj6G08HoG z(qX#uxBJo`HLiEC=68DVQ;PE(A_T6>hpq;N3*0=VabkJXIL)j0e~^JE@ViUPRW99% z+fgoMQ`j~m2wl;N+O9YHWp!6H&isLPvI+^WK>aJJ`I&n}H?TL7yjV8!fdE6CFOGe`JAB2(l|wS9Q75xV-{9zFEFzO2F}rv5q`jxSL-X4Lx}R=Tx@_@ z%ONXnSvV+xQv!K?W|nhJnrC1G)*_IekaH*HWFqdG9{vsAB{Y&`<6BJ&BXrbHB<9HI zj{hZM^==LJ^o8cx{Dj6?Mr_`gg>|x=DPT$QGr@Mls^#G<=1u?F&tIOknk=TrBlN{T z!MLrs<#LUh?=^qaIDKo`k_2-G{b!Sf&||t|o$L3td!<(*<7>+$RM$Aw`s1(+k=13A z^p{m*4+X`)APwEQ)5QPb-=Cco;PuZFIg&D%b@~(7Ng4e=Nwsg?tbmLMN|$gj`E(fw z-!nw_JkiJixB zNl#-D)MXnU1mMo7W38&0M*1l%jizyz0KG-2ak$vcirYT!FFBV*rGkeMTdOXQy>hJLFK8|9nR0;w*n7B3*;h@mr)WbjfQ z|BG`X5YQKzDbV8JgvfSQJ?A6B9<3)y?DPDfl%oUxKTlr*2xa%hJ=QEKgbE?XR+bi9 zB}0*!BvDzSC`(N|hTawxGbjqLZHS^$wl?d;j5cFUQZG@qi5W{tkx^naOW%3=f8Y1! zZDD5az2~0uJHNBs`+%IZd61n*1cwN(T*ij{gB^;uksseX#F~U=5LNS}LAIO<=FQX|fA<0+vzK znkG9IZ|kks1~#SyMUY4c*n!t6I*-A>+fgi8gvbYi(@+d1dr|9DB@xRL3}4 z+d+3-%|@>g_5(x?Sym$`IzhJCc3Y(LB~2w>HINLDI;6Fiav|RcZMu!gPI}F^SIz1* z__>3Mld+K3)}&-fdH{8VWFO?~UkN}%?Q9HStv@-ap-M);)b~Vmrckut!RfeVwo!r; zAUjCh1ItY_F6KIqw2e6c2XxT>?3|>96*)qLLrH?qretcvmU*~Ik~PU#Ft|%-3TGXZ zO^X`RVDcJ}lLe_ZLSZEpcGa1;!n>GKB&i1JZ(~rUI7qgmTc@20do8JJ6Bv(^ljpsI z;0T<$t)ep+Wr`LUHTZaG8$Cf32Xc*|*2!@3tu21Gup08xN{e)XEEaNTAm)vbT2=yj zw*m09GhJ&b+0oP1NVggs_~OPkEt3dmO|mW75flr|9&F7M&O3?Qt^#9~(X9sl6_v@$ z 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≻RrM455UA7$) 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 z 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 VTZ6H3`AC-F(fX&d!vFpL{{V+j?7aX0 literal 0 HcmV?d00001 diff --git a/public/assets/img/blur-background09.jpg b/public/assets/img/blur-background09.jpg new file mode 100755 index 0000000000000000000000000000000000000000..0da84072c42f6da7aaf60dfac3b2c7d51fa04f93 GIT binary patch literal 390733 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 z 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

      ' + + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '' + + '' + + '
      ' + + '
      ' + + '' + + '' + + '
      ' + + ' ' + + '' + + '
      ' + + '
      ' + + '
      '; + + 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/public/assets/js/plugins/flot/excanvas.js b/public/assets/js/plugins/flot/excanvas.js new file mode 100755 index 00000000..70a8f25c --- /dev/null +++ b/public/assets/js/plugins/flot/excanvas.js @@ -0,0 +1,1428 @@ +// 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/public/assets/js/plugins/flot/excanvas.min.js b/public/assets/js/plugins/flot/excanvas.min.js new file mode 100755 index 00000000..fcf876c7 --- /dev/null +++ b/public/assets/js/plugins/flot/excanvas.min.js @@ -0,0 +1 @@ +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/public/assets/js/plugins/flot/jquery.colorhelpers.js b/public/assets/js/plugins/flot/jquery.colorhelpers.js new file mode 100755 index 00000000..b2f6dc4e --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.colorhelpers.js @@ -0,0 +1,180 @@ +/* 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/public/assets/js/plugins/flot/jquery.colorhelpers.min.js b/public/assets/js/plugins/flot/jquery.colorhelpers.min.js new file mode 100755 index 00000000..7f426596 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.colorhelpers.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.canvas.js b/public/assets/js/plugins/flot/jquery.flot.canvas.js new file mode 100755 index 00000000..d94b9611 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.canvas.js @@ -0,0 +1,345 @@ +/* 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/public/assets/js/plugins/flot/jquery.flot.canvas.min.js b/public/assets/js/plugins/flot/jquery.flot.canvas.min.js new file mode 100755 index 00000000..826d2177 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.canvas.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.categories.min.js b/public/assets/js/plugins/flot/jquery.flot.categories.min.js new file mode 100755 index 00000000..552dd90a --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.categories.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.errorbars.min.js b/public/assets/js/plugins/flot/jquery.flot.errorbars.min.js new file mode 100755 index 00000000..a7bd0422 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.errorbars.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.fillbetween.min.js b/public/assets/js/plugins/flot/jquery.flot.fillbetween.min.js new file mode 100755 index 00000000..5bdad05f --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.fillbetween.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.image.min.js b/public/assets/js/plugins/flot/jquery.flot.image.min.js new file mode 100755 index 00000000..60600241 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.image.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.js b/public/assets/js/plugins/flot/jquery.flot.js new file mode 100755 index 00000000..965e78ef --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.js @@ -0,0 +1,3137 @@ +/* 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/public/assets/js/plugins/flot/jquery.flot.min.js b/public/assets/js/plugins/flot/jquery.flot.min.js new file mode 100755 index 00000000..9620fc00 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.min.js @@ -0,0 +1,2 @@ +(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/public/assets/js/plugins/flot/jquery.flot.navigate.min.js b/public/assets/js/plugins/flot/jquery.flot.navigate.min.js new file mode 100755 index 00000000..a69a9399 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.navigate.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.pie.min.js b/public/assets/js/plugins/flot/jquery.flot.pie.min.js new file mode 100755 index 00000000..88ffc9c9 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.pie.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.resize.js b/public/assets/js/plugins/flot/jquery.flot.resize.js new file mode 100755 index 00000000..44e04f8f --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.resize.js @@ -0,0 +1,60 @@ +/* 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/public/assets/js/plugins/flot/jquery.flot.resize.min.js b/public/assets/js/plugins/flot/jquery.flot.resize.min.js new file mode 100755 index 00000000..29838425 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.resize.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.selection.js b/public/assets/js/plugins/flot/jquery.flot.selection.js new file mode 100755 index 00000000..f8fa668f --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.selection.js @@ -0,0 +1,360 @@ +/* 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/public/assets/js/plugins/flot/jquery.flot.selection.min.js b/public/assets/js/plugins/flot/jquery.flot.selection.min.js new file mode 100755 index 00000000..6e319781 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.selection.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.stack.js b/public/assets/js/plugins/flot/jquery.flot.stack.js new file mode 100755 index 00000000..c01de67d --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.stack.js @@ -0,0 +1,188 @@ +/* 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/public/assets/js/plugins/flot/jquery.flot.stack.min.js b/public/assets/js/plugins/flot/jquery.flot.stack.min.js new file mode 100755 index 00000000..57785ebd --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.stack.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.symbol.min.js b/public/assets/js/plugins/flot/jquery.flot.symbol.min.js new file mode 100755 index 00000000..3eab213e --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.symbol.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.threshold.js b/public/assets/js/plugins/flot/jquery.flot.threshold.js new file mode 100755 index 00000000..2f6e6359 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.threshold.js @@ -0,0 +1,142 @@ +/* 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/public/assets/js/plugins/flot/jquery.flot.threshold.min.js b/public/assets/js/plugins/flot/jquery.flot.threshold.min.js new file mode 100755 index 00000000..a53849a5 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.threshold.min.js @@ -0,0 +1 @@ +(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/public/assets/js/plugins/flot/jquery.flot.time.js b/public/assets/js/plugins/flot/jquery.flot.time.js new file mode 100755 index 00000000..15f52815 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.time.js @@ -0,0 +1,431 @@ +/* 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/public/assets/js/plugins/flot/jquery.flot.time.min.js b/public/assets/js/plugins/flot/jquery.flot.time.min.js new file mode 100755 index 00000000..aaf319c9 --- /dev/null +++ b/public/assets/js/plugins/flot/jquery.flot.time.min.js @@ -0,0 +1 @@ +(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')[_callback]('ifCreated').parent().append(settings.insert); + + // Layer addition + helper = $('').css(layer).appendTo(parent); + + // Finalize customization + self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide); + !!settings.inheritClass && parent[_add](node.className || ''); + !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id); + parent.css('position') == 'static' && parent.css('position', 'relative'); + operate(self, true, _update); + + // Label events + if (label.length) { + label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) { + var type = event[_type], + item = $(this); + + // Do nothing if input is disabled + if (!node[_disabled]) { + + // Click + if (type == _click) { + if ($(event.target).is('a')) { + return; + } + operate(self, false, true); + + // Hover state + } else if (labelHover) { + + // mouseout|touchend + if (/ut|nd/.test(type)) { + parent[_remove](hoverClass); + item[_remove](labelHoverClass); + } else { + parent[_add](hoverClass); + item[_add](labelHoverClass); + }; + }; + + if (_mobile) { + event.stopPropagation(); + } else { + return false; + }; + }; + }); + }; + + // Input events + self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) { + var type = event[_type], + key = event.keyCode; + + // Click + if (type == _click) { + return false; + + // Keydown + } else if (type == 'keydown' && key == 32) { + if (!(node[_type] == _radio && node[_checked])) { + if (node[_checked]) { + off(self, _checked); + } else { + on(self, _checked); + }; + }; + + return false; + + // Keyup + } else if (type == 'keyup' && node[_type] == _radio) { + !node[_checked] && on(self, _checked); + + // Focus/blur + } else if (/us|ur/.test(type)) { + parent[type == 'blur' ? _remove : _add](focusClass); + }; + }); + + // Helper events + helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) { + var type = event[_type], + + // mousedown|mouseup + toggle = /wn|up/.test(type) ? activeClass : hoverClass; + + // Do nothing if input is disabled + if (!node[_disabled]) { + + // Click + if (type == _click) { + operate(self, false, true); + + // Active and hover states + } else { + + // State is on + if (/wn|er|in/.test(type)) { + + // mousedown|mouseover|touchbegin + parent[_add](toggle); + + // State is off + } else { + parent[_remove](toggle + ' ' + activeClass); + }; + + // Label hover + if (label.length && labelHover && toggle == hoverClass) { + + // mouseout|touchend + label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass); + }; + }; + + if (_mobile) { + event.stopPropagation(); + } else { + return false; + }; + }; + }); + }); + } else { + return this; + }; + }; + + // Do something with inputs + function operate(input, direct, method) { + var node = input[0], + state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked, + active = method == _update ? { + checked: node[_checked], + disabled: node[_disabled], + indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false' + } : node[state]; + + // Check, disable or indeterminate + if (/^(ch|di|in)/.test(method) && !active) { + on(input, state); + + // Uncheck, enable or determinate + } else if (/^(un|en|de)/.test(method) && active) { + off(input, state); + + // Update + } else if (method == _update) { + + // Handle states + for (var state in active) { + if (active[state]) { + on(input, state, true); + } else { + off(input, state, true); + }; + }; + + } else if (!direct || method == 'toggle') { + + // Helper or label was clicked + if (!direct) { + input[_callback]('ifClicked'); + }; + + // Toggle checked state + if (active) { + if (node[_type] !== _radio) { + off(input, state); + }; + } else { + on(input, state); + }; + }; + }; + + // Add checked, disabled or indeterminate state + function on(input, state, keep) { + var node = input[0], + parent = input.parent(), + checked = state == _checked, + indeterminate = state == _indeterminate, + disabled = state == _disabled, + callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled', + regular = option(input, callback + capitalize(node[_type])), + specific = option(input, state + capitalize(node[_type])); + + // Prevent unnecessary actions + if (node[state] !== true) { + + // Toggle assigned radio buttons + if (!keep && state == _checked && node[_type] == _radio && node.name) { + var form = input.closest('form'), + inputs = 'input[name="' + node.name + '"]'; + + inputs = form.length ? form.find(inputs) : $(inputs); + + inputs.each(function() { + if (this !== node && $(this).data(_iCheck)) { + off($(this), state); + }; + }); + }; + + // Indeterminate state + if (indeterminate) { + + // Add indeterminate state + node[state] = true; + + // Remove checked state + if (node[_checked]) { + off(input, _checked, 'force'); + }; + + // Checked or disabled state + } else { + + // Add checked or disabled state + if (!keep) { + node[state] = true; + }; + + // Remove indeterminate state + if (checked && node[_indeterminate]) { + off(input, _indeterminate, false); + }; + }; + + // Trigger callbacks + callbacks(input, checked, state, keep); + }; + + // Add proper cursor + if (node[_disabled] && !!option(input, _cursor, true)) { + parent.find('.' + _iCheckHelper).css(_cursor, 'default'); + }; + + // Add state class + parent[_add](specific || option(input, state) || ''); + + // Set ARIA attribute + disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true'); + + // Remove regular state class + parent[_remove](regular || option(input, callback) || ''); + }; + + // Remove checked, disabled or indeterminate state + function off(input, state, keep) { + var node = input[0], + parent = input.parent(), + checked = state == _checked, + indeterminate = state == _indeterminate, + disabled = state == _disabled, + callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled', + regular = option(input, callback + capitalize(node[_type])), + specific = option(input, state + capitalize(node[_type])); + + // Prevent unnecessary actions + if (node[state] !== false) { + + // Toggle state + if (indeterminate || !keep || keep == 'force') { + node[state] = false; + }; + + // Trigger callbacks + callbacks(input, checked, callback, keep); + }; + + // Add proper cursor + if (!node[_disabled] && !!option(input, _cursor, true)) { + parent.find('.' + _iCheckHelper).css(_cursor, 'pointer'); + }; + + // Remove state class + parent[_remove](specific || option(input, state) || ''); + + // Set ARIA attribute + disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false'); + + // Add regular state class + parent[_add](regular || option(input, callback) || ''); + }; + + // Remove all traces + function tidy(input, callback) { + if (input.data(_iCheck)) { + + // Remove everything except input + input.parent().html(input.attr('style', input.data(_iCheck).s || '')); + + // Callback + if (callback) { + input[_callback](callback); + }; + + // Unbind events + input.off('.i').unwrap(); + $(_label + '[for="' + input[0].id + '"]').add(input.closest(_label)).off('.i'); + }; + }; + + // Get some option + function option(input, state, regular) { + if (input.data(_iCheck)) { + return input.data(_iCheck).o[state + (regular ? '' : 'Class')]; + }; + }; + + // Capitalize some string + function capitalize(string) { + return string.charAt(0).toUpperCase() + string.slice(1); + }; + + // Executable handlers + function callbacks(input, checked, callback, keep) { + if (!keep) { + if (checked) { + input[_callback]('ifToggled'); + }; + + input[_callback]('ifChanged')[_callback]('if' + capitalize(callback)); + }; + }; +})(window.jQuery || window.Zepto); diff --git a/public/assets/js/plugins/iCheck/icheck.min.js b/public/assets/js/plugins/iCheck/icheck.min.js new file mode 100755 index 00000000..d2720ed0 --- /dev/null +++ b/public/assets/js/plugins/iCheck/icheck.min.js @@ -0,0 +1,10 @@ +/*! iCheck v1.0.1 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */ +(function(h){function F(a,b,d){var c=a[0],e=/er/.test(d)?m:/bl/.test(d)?s:l,f=d==H?{checked:c[l],disabled:c[s],indeterminate:"true"==a.attr(m)||"false"==a.attr(w)}:c[e];if(/^(ch|di|in)/.test(d)&&!f)D(a,e);else if(/^(un|en|de)/.test(d)&&f)t(a,e);else if(d==H)for(e in f)f[e]?D(a,e,!0):t(a,e,!0);else if(!b||"toggle"==d){if(!b)a[p]("ifClicked");f?c[n]!==u&&t(a,e):D(a,e)}}function D(a,b,d){var c=a[0],e=a.parent(),f=b==l,A=b==m,B=b==s,K=A?w:f?E:"enabled",p=k(a,K+x(c[n])),N=k(a,b+x(c[n]));if(!0!==c[b]){if(!d&& +b==l&&c[n]==u&&c.name){var C=a.closest("form"),r='input[name="'+c.name+'"]',r=C.length?C.find(r):h(r);r.each(function(){this!==c&&h(this).data(q)&&t(h(this),b)})}A?(c[b]=!0,c[l]&&t(a,l,"force")):(d||(c[b]=!0),f&&c[m]&&t(a,m,!1));L(a,f,b,d)}c[s]&&k(a,y,!0)&&e.find("."+I).css(y,"default");e[v](N||k(a,b)||"");B?e.attr("aria-disabled","true"):e.attr("aria-checked",A?"mixed":"true");e[z](p||k(a,K)||"")}function t(a,b,d){var c=a[0],e=a.parent(),f=b==l,h=b==m,q=b==s,p=h?w:f?E:"enabled",t=k(a,p+x(c[n])), +u=k(a,b+x(c[n]));if(!1!==c[b]){if(h||!d||"force"==d)c[b]=!1;L(a,f,p,d)}!c[s]&&k(a,y,!0)&&e.find("."+I).css(y,"pointer");e[z](u||k(a,b)||"");q?e.attr("aria-disabled","false"):e.attr("aria-checked","false");e[v](t||k(a,p)||"")}function M(a,b){if(a.data(q)){a.parent().html(a.attr("style",a.data(q).s||""));if(b)a[p](b);a.off(".i").unwrap();h(G+'[for="'+a[0].id+'"]').add(a.closest(G)).off(".i")}}function k(a,b,d){if(a.data(q))return a.data(q).o[b+(d?"":"Class")]}function x(a){return a.charAt(0).toUpperCase()+ +a.slice(1)}function L(a,b,d,c){if(!c){if(b)a[p]("ifToggled");a[p]("ifChanged")[p]("if"+x(d))}}var q="iCheck",I=q+"-helper",u="radio",l="checked",E="un"+l,s="disabled",w="determinate",m="in"+w,H="update",n="type",v="addClass",z="removeClass",p="trigger",G="label",y="cursor",J=/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);h.fn[q]=function(a,b){var d='input[type="checkbox"], input[type="'+u+'"]',c=h(),e=function(a){a.each(function(){var a=h(this);c=a.is(d)? +c.add(a):c.add(a.find(d))})};if(/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(a))return a=a.toLowerCase(),e(this),c.each(function(){var c=h(this);"destroy"==a?M(c,"ifDestroyed"):F(c,!0,a);h.isFunction(b)&&b()});if("object"!=typeof a&&a)return this;var f=h.extend({checkedClass:l,disabledClass:s,indeterminateClass:m,labelHover:!0,aria:!1},a),k=f.handle,B=f.hoverClass||"hover",x=f.focusClass||"focus",w=f.activeClass||"active",y=!!f.labelHover,C=f.labelHoverClass|| +"hover",r=(""+f.increaseArea).replace("%","")|0;if("checkbox"==k||k==u)d='input[type="'+k+'"]';-50>r&&(r=-50);e(this);return c.each(function(){var a=h(this);M(a);var c=this,b=c.id,e=-r+"%",d=100+2*r+"%",d={position:"absolute",top:e,left:e,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},e=J?{position:"absolute",visibility:"hidden"}:r?d:{position:"absolute",opacity:0},k="checkbox"==c[n]?f.checkboxClass||"icheckbox":f.radioClass||"i"+u,m=h(G+'[for="'+b+'"]').add(a.closest(G)), +A=!!f.aria,E=q+"-"+Math.random().toString(36).replace("0.",""),g='
      ")[p]("ifCreated").parent().append(f.insert);d=h('').css(d).appendTo(g);a.data(q,{o:f,s:a.attr("style")}).css(e);f.inheritClass&&g[v](c.className||"");f.inheritID&&b&&g.attr("id",q+"-"+b);"static"==g.css("position")&&g.css("position","relative");F(a,!0,H); +if(m.length)m.on("click.i mouseover.i mouseout.i touchbegin.i touchend.i",function(b){var d=b[n],e=h(this);if(!c[s]){if("click"==d){if(h(b.target).is("a"))return;F(a,!1,!0)}else y&&(/ut|nd/.test(d)?(g[z](B),e[z](C)):(g[v](B),e[v](C)));if(J)b.stopPropagation();else return!1}});a.on("click.i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[n];b=b.keyCode;if("click"==d)return!1;if("keydown"==d&&32==b)return c[n]==u&&c[l]||(c[l]?t(a,l):D(a,l)),!1;if("keyup"==d&&c[n]==u)!c[l]&&D(a,l);else if(/us|ur/.test(d))g["blur"== +d?z:v](x)});d.on("click mousedown mouseup mouseover mouseout touchbegin.i touchend.i",function(b){var d=b[n],e=/wn|up/.test(d)?w:B;if(!c[s]){if("click"==d)F(a,!1,!0);else{if(/wn|er|in/.test(d))g[v](e);else g[z](e+" "+w);if(m.length&&y&&e==B)m[/ut|nd/.test(d)?z:v](C)}if(J)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto); diff --git a/public/assets/js/plugins/input-mask/jquery.inputmask.date.extensions.js b/public/assets/js/plugins/input-mask/jquery.inputmask.date.extensions.js new file mode 100755 index 00000000..18f76c81 --- /dev/null +++ b/public/assets/js/plugins/input-mask/jquery.inputmask.date.extensions.js @@ -0,0 +1,488 @@ +/* +Input Mask plugin extensions +http://github.com/RobinHerbots/jquery.inputmask +Copyright (c) 2010 - 2014 Robin Herbots +Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) +Version: 0.0.0 + +Optional extensions on the jquery.inputmask base +*/ +(function ($) { + //date & time aliases + $.extend($.inputmask.defaults.definitions, { + 'h': { //hours + validator: "[01][0-9]|2[0-3]", + cardinality: 2, + prevalidator: [{ validator: "[0-2]", cardinality: 1 }] + }, + 's': { //seconds || minutes + validator: "[0-5][0-9]", + cardinality: 2, + prevalidator: [{ validator: "[0-5]", cardinality: 1 }] + }, + 'd': { //basic day + validator: "0[1-9]|[12][0-9]|3[01]", + cardinality: 2, + prevalidator: [{ validator: "[0-3]", cardinality: 1 }] + }, + 'm': { //basic month + validator: "0[1-9]|1[012]", + cardinality: 2, + prevalidator: [{ validator: "[01]", cardinality: 1 }] + }, + 'y': { //basic year + validator: "(19|20)\\d{2}", + cardinality: 4, + prevalidator: [ + { validator: "[12]", cardinality: 1 }, + { validator: "(19|20)", cardinality: 2 }, + { validator: "(19|20)\\d", cardinality: 3 } + ] + } + }); + $.extend($.inputmask.defaults.aliases, { + 'dd/mm/yyyy': { + mask: "1/2/y", + placeholder: "dd/mm/yyyy", + regex: { + val1pre: new RegExp("[0-3]"), //daypre + val1: new RegExp("0[1-9]|[12][0-9]|3[01]"), //day + val2pre: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|[12][0-9]|3[01])" + escapedSeparator + "[01])"); }, //monthpre + val2: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|[12][0-9])" + escapedSeparator + "(0[1-9]|1[012]))|(30" + escapedSeparator + "(0[13-9]|1[012]))|(31" + escapedSeparator + "(0[13578]|1[02]))"); }//month + }, + leapday: "29/02/", + separator: '/', + yearrange: { minyear: 1900, maxyear: 2099 }, + isInYearRange: function (chrs, minyear, maxyear) { + var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))); + var enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length))); + return (enteredyear != NaN ? minyear <= enteredyear && enteredyear <= maxyear : false) || + (enteredyear2 != NaN ? minyear <= enteredyear2 && enteredyear2 <= maxyear : false); + }, + determinebaseyear: function (minyear, maxyear, hint) { + var currentyear = (new Date()).getFullYear(); + if (minyear > currentyear) return minyear; + if (maxyear < currentyear) { + var maxYearPrefix = maxyear.toString().slice(0, 2); + var maxYearPostfix = maxyear.toString().slice(2, 4); + while (maxyear < maxYearPrefix + hint) { + maxYearPrefix--; + } + var maxxYear = maxYearPrefix + maxYearPostfix; + return minyear > maxxYear ? minyear : maxxYear; + } + + return currentyear; + }, + onKeyUp: function (e, buffer, opts) { + var $input = $(this); + if (e.ctrlKey && e.keyCode == opts.keyCode.RIGHT) { + var today = new Date(); + $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()); + } + }, + definitions: { + '1': { //val1 ~ day or month + validator: function (chrs, buffer, pos, strict, opts) { + var isValid = opts.regex.val1.test(chrs); + if (!strict && !isValid) { + if (chrs.charAt(1) == opts.separator || "-./".indexOf(chrs.charAt(1)) != -1) { + isValid = opts.regex.val1.test("0" + chrs.charAt(0)); + if (isValid) { + buffer[pos - 1] = "0"; + return { "pos": pos, "c": chrs.charAt(0) }; + } + } + } + return isValid; + }, + cardinality: 2, + prevalidator: [{ + validator: function (chrs, buffer, pos, strict, opts) { + var isValid = opts.regex.val1pre.test(chrs); + if (!strict && !isValid) { + isValid = opts.regex.val1.test("0" + chrs); + if (isValid) { + buffer[pos] = "0"; + pos++; + return { "pos": pos }; + } + } + return isValid; + }, cardinality: 1 + }] + }, + '2': { //val2 ~ day or month + validator: function (chrs, buffer, pos, strict, opts) { + var frontValue = buffer.join('').substr(0, 3); + if (frontValue.indexOf(opts.placeholder[0]) != -1) frontValue = "01" + opts.separator; + var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs); + if (!strict && !isValid) { + if (chrs.charAt(1) == opts.separator || "-./".indexOf(chrs.charAt(1)) != -1) { + isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0)); + if (isValid) { + buffer[pos - 1] = "0"; + return { "pos": pos, "c": chrs.charAt(0) }; + } + } + } + return isValid; + }, + cardinality: 2, + prevalidator: [{ + validator: function (chrs, buffer, pos, strict, opts) { + var frontValue = buffer.join('').substr(0, 3); + if (frontValue.indexOf(opts.placeholder[0]) != -1) frontValue = "01" + opts.separator; + var isValid = opts.regex.val2pre(opts.separator).test(frontValue + chrs); + if (!strict && !isValid) { + isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs); + if (isValid) { + buffer[pos] = "0"; + pos++; + return { "pos": pos }; + } + } + return isValid; + }, cardinality: 1 + }] + }, + 'y': { //year + validator: function (chrs, buffer, pos, strict, opts) { + if (opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { + var dayMonthValue = buffer.join('').substr(0, 6); + if (dayMonthValue != opts.leapday) + return true; + else { + var year = parseInt(chrs, 10);//detect leap year + if (year % 4 === 0) + if (year % 100 === 0) + if (year % 400 === 0) + return true; + else return false; + else return true; + else return false; + } + } else return false; + }, + cardinality: 4, + prevalidator: [ + { + validator: function (chrs, buffer, pos, strict, opts) { + var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); + if (!strict && !isValid) { + var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 1); + + isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear); + if (isValid) { + buffer[pos++] = yearPrefix[0]; + return { "pos": pos }; + } + yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 2); + + isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear); + if (isValid) { + buffer[pos++] = yearPrefix[0]; + buffer[pos++] = yearPrefix[1]; + return { "pos": pos }; + } + } + return isValid; + }, + cardinality: 1 + }, + { + validator: function (chrs, buffer, pos, strict, opts) { + var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); + if (!strict && !isValid) { + var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2); + + isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear); + if (isValid) { + buffer[pos++] = yearPrefix[1]; + return { "pos": pos }; + } + + yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2); + if (opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { + var dayMonthValue = buffer.join('').substr(0, 6); + if (dayMonthValue != opts.leapday) + isValid = true; + else { + var year = parseInt(chrs, 10);//detect leap year + if (year % 4 === 0) + if (year % 100 === 0) + if (year % 400 === 0) + isValid = true; + else isValid = false; + else isValid = true; + else isValid = false; + } + } else isValid = false; + if (isValid) { + buffer[pos - 1] = yearPrefix[0]; + buffer[pos++] = yearPrefix[1]; + buffer[pos++] = chrs[0]; + return { "pos": pos }; + } + } + return isValid; + }, cardinality: 2 + }, + { + validator: function (chrs, buffer, pos, strict, opts) { + return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); + }, cardinality: 3 + } + ] + } + }, + insertMode: false, + autoUnmask: false + }, + 'mm/dd/yyyy': { + placeholder: "mm/dd/yyyy", + alias: "dd/mm/yyyy", //reuse functionality of dd/mm/yyyy alias + regex: { + val2pre: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])"); }, //daypre + val2: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)"); }, //day + val1pre: new RegExp("[01]"), //monthpre + val1: new RegExp("0[1-9]|1[012]") //month + }, + leapday: "02/29/", + onKeyUp: function (e, buffer, opts) { + var $input = $(this); + if (e.ctrlKey && e.keyCode == opts.keyCode.RIGHT) { + var today = new Date(); + $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()); + } + } + }, + 'yyyy/mm/dd': { + mask: "y/1/2", + placeholder: "yyyy/mm/dd", + alias: "mm/dd/yyyy", + leapday: "/02/29", + onKeyUp: function (e, buffer, opts) { + var $input = $(this); + if (e.ctrlKey && e.keyCode == opts.keyCode.RIGHT) { + var today = new Date(); + $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()); + } + }, + definitions: { + '2': { //val2 ~ day or month + validator: function (chrs, buffer, pos, strict, opts) { + var frontValue = buffer.join('').substr(5, 3); + if (frontValue.indexOf(opts.placeholder[5]) != -1) frontValue = "01" + opts.separator; + var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs); + if (!strict && !isValid) { + if (chrs.charAt(1) == opts.separator || "-./".indexOf(chrs.charAt(1)) != -1) { + isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0)); + if (isValid) { + buffer[pos - 1] = "0"; + return { "pos": pos, "c": chrs.charAt(0) }; + } + } + } + + //check leap yeap + if (isValid) { + var dayMonthValue = buffer.join('').substr(4, 4) + chrs; + if (dayMonthValue != opts.leapday) + return true; + else { + var year = parseInt(buffer.join('').substr(0, 4), 10); //detect leap year + if (year % 4 === 0) + if (year % 100 === 0) + if (year % 400 === 0) + return true; + else return false; + else return true; + else return false; + } + } + + return isValid; + }, + cardinality: 2, + prevalidator: [{ + validator: function (chrs, buffer, pos, strict, opts) { + var frontValue = buffer.join('').substr(5, 3); + if (frontValue.indexOf(opts.placeholder[5]) != -1) frontValue = "01" + opts.separator; + var isValid = opts.regex.val2pre(opts.separator).test(frontValue + chrs); + if (!strict && !isValid) { + isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs); + if (isValid) { + buffer[pos] = "0"; + pos++; + return { "pos": pos }; + } + } + return isValid; + }, cardinality: 1 + }] + } + } + }, + 'dd.mm.yyyy': { + mask: "1.2.y", + placeholder: "dd.mm.yyyy", + leapday: "29.02.", + separator: '.', + alias: "dd/mm/yyyy" + }, + 'dd-mm-yyyy': { + mask: "1-2-y", + placeholder: "dd-mm-yyyy", + leapday: "29-02-", + separator: '-', + alias: "dd/mm/yyyy" + }, + 'mm.dd.yyyy': { + mask: "1.2.y", + placeholder: "mm.dd.yyyy", + leapday: "02.29.", + separator: '.', + alias: "mm/dd/yyyy" + }, + 'mm-dd-yyyy': { + mask: "1-2-y", + placeholder: "mm-dd-yyyy", + leapday: "02-29-", + separator: '-', + alias: "mm/dd/yyyy" + }, + 'yyyy.mm.dd': { + mask: "y.1.2", + placeholder: "yyyy.mm.dd", + leapday: ".02.29", + separator: '.', + alias: "yyyy/mm/dd" + }, + 'yyyy-mm-dd': { + mask: "y-1-2", + placeholder: "yyyy-mm-dd", + leapday: "-02-29", + separator: '-', + alias: "yyyy/mm/dd" + }, + 'datetime': { + mask: "1/2/y h:s", + placeholder: "dd/mm/yyyy hh:mm", + alias: "dd/mm/yyyy", + regex: { + hrspre: new RegExp("[012]"), //hours pre + hrs24: new RegExp("2[0-9]|1[3-9]"), + hrs: new RegExp("[01][0-9]|2[0-3]"), //hours + ampm: new RegExp("^[a|p|A|P][m|M]") + }, + timeseparator: ':', + hourFormat: "24", // or 12 + definitions: { + 'h': { //hours + validator: function (chrs, buffer, pos, strict, opts) { + var isValid = opts.regex.hrs.test(chrs); + if (!strict && !isValid) { + if (chrs.charAt(1) == opts.timeseparator || "-.:".indexOf(chrs.charAt(1)) != -1) { + isValid = opts.regex.hrs.test("0" + chrs.charAt(0)); + if (isValid) { + buffer[pos - 1] = "0"; + buffer[pos] = chrs.charAt(0); + pos++; + return { "pos": pos }; + } + } + } + + if (isValid && opts.hourFormat !== "24" && opts.regex.hrs24.test(chrs)) { + + var tmp = parseInt(chrs, 10); + + if (tmp == 24) { + buffer[pos + 5] = "a"; + buffer[pos + 6] = "m"; + } else { + buffer[pos + 5] = "p"; + buffer[pos + 6] = "m"; + } + + tmp = tmp - 12; + + if (tmp < 10) { + buffer[pos] = tmp.toString(); + buffer[pos - 1] = "0"; + } else { + buffer[pos] = tmp.toString().charAt(1); + buffer[pos - 1] = tmp.toString().charAt(0); + } + + return { "pos": pos, "c": buffer[pos] }; + } + + return isValid; + }, + cardinality: 2, + prevalidator: [{ + validator: function (chrs, buffer, pos, strict, opts) { + var isValid = opts.regex.hrspre.test(chrs); + if (!strict && !isValid) { + isValid = opts.regex.hrs.test("0" + chrs); + if (isValid) { + buffer[pos] = "0"; + pos++; + return { "pos": pos }; + } + } + return isValid; + }, cardinality: 1 + }] + }, + 't': { //am/pm + validator: function (chrs, buffer, pos, strict, opts) { + return opts.regex.ampm.test(chrs + "m"); + }, + casing: "lower", + cardinality: 1 + } + }, + insertMode: false, + autoUnmask: false + }, + 'datetime12': { + mask: "1/2/y h:s t\\m", + placeholder: "dd/mm/yyyy hh:mm xm", + alias: "datetime", + hourFormat: "12" + }, + 'hh:mm t': { + mask: "h:s t\\m", + placeholder: "hh:mm xm", + alias: "datetime", + hourFormat: "12" + }, + 'h:s t': { + mask: "h:s t\\m", + placeholder: "hh:mm xm", + alias: "datetime", + hourFormat: "12" + }, + 'hh:mm:ss': { + mask: "h:s:s", + autoUnmask: false + }, + 'hh:mm': { + mask: "h:s", + autoUnmask: false + }, + 'date': { + alias: "dd/mm/yyyy" // "mm/dd/yyyy" + }, + 'mm/yyyy': { + mask: "1/y", + placeholder: "mm/yyyy", + leapday: "donotuse", + separator: '/', + alias: "mm/dd/yyyy" + } + }); +})(jQuery); diff --git a/public/assets/js/plugins/input-mask/jquery.inputmask.extensions.js b/public/assets/js/plugins/input-mask/jquery.inputmask.extensions.js new file mode 100755 index 00000000..c89f91ee --- /dev/null +++ b/public/assets/js/plugins/input-mask/jquery.inputmask.extensions.js @@ -0,0 +1,122 @@ +/* +Input Mask plugin extensions +http://github.com/RobinHerbots/jquery.inputmask +Copyright (c) 2010 - 2014 Robin Herbots +Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) +Version: 0.0.0 + +Optional extensions on the jquery.inputmask base +*/ +(function ($) { + //extra definitions + $.extend($.inputmask.defaults.definitions, { + 'A': { + validator: "[A-Za-z]", + cardinality: 1, + casing: "upper" //auto uppercasing + }, + '#': { + validator: "[A-Za-z\u0410-\u044F\u0401\u04510-9]", + cardinality: 1, + casing: "upper" + } + }); + $.extend($.inputmask.defaults.aliases, { + 'url': { + mask: "ir", + placeholder: "", + separator: "", + defaultPrefix: "http://", + regex: { + urlpre1: new RegExp("[fh]"), + urlpre2: new RegExp("(ft|ht)"), + urlpre3: new RegExp("(ftp|htt)"), + urlpre4: new RegExp("(ftp:|http|ftps)"), + urlpre5: new RegExp("(ftp:/|ftps:|http:|https)"), + urlpre6: new RegExp("(ftp://|ftps:/|http:/|https:)"), + urlpre7: new RegExp("(ftp://|ftps://|http://|https:/)"), + urlpre8: new RegExp("(ftp://|ftps://|http://|https://)") + }, + definitions: { + 'i': { + validator: function (chrs, buffer, pos, strict, opts) { + return true; + }, + cardinality: 8, + prevalidator: (function () { + var result = [], prefixLimit = 8; + for (var i = 0; i < prefixLimit; i++) { + result[i] = (function () { + var j = i; + return { + validator: function (chrs, buffer, pos, strict, opts) { + if (opts.regex["urlpre" + (j + 1)]) { + var tmp = chrs, k; + if (((j + 1) - chrs.length) > 0) { + tmp = buffer.join('').substring(0, ((j + 1) - chrs.length)) + "" + tmp; + } + var isValid = opts.regex["urlpre" + (j + 1)].test(tmp); + if (!strict && !isValid) { + pos = pos - j; + for (k = 0; k < opts.defaultPrefix.length; k++) { + buffer[pos] = opts.defaultPrefix[k]; pos++; + } + for (k = 0; k < tmp.length - 1; k++) { + buffer[pos] = tmp[k]; pos++; + } + return { "pos": pos }; + } + return isValid; + } else { + return false; + } + }, cardinality: j + }; + })(); + } + return result; + })() + }, + "r": { + validator: ".", + cardinality: 50 + } + }, + insertMode: false, + autoUnmask: false + }, + "ip": { //ip-address mask + mask: ["[[x]y]z.[[x]y]z.[[x]y]z.x[yz]", "[[x]y]z.[[x]y]z.[[x]y]z.[[x]y][z]"], + definitions: { + 'x': { + validator: "[012]", + cardinality: 1, + definitionSymbol: "i" + }, + 'y': { + validator: function (chrs, buffer, pos, strict, opts) { + if (pos - 1 > -1 && buffer[pos - 1] != ".") + chrs = buffer[pos - 1] + chrs; + else chrs = "0" + chrs; + return new RegExp("2[0-5]|[01][0-9]").test(chrs); + }, + cardinality: 1, + definitionSymbol: "i" + }, + 'z': { + validator: function (chrs, buffer, pos, strict, opts) { + if (pos - 1 > -1 && buffer[pos - 1] != ".") { + chrs = buffer[pos - 1] + chrs; + if (pos - 2 > -1 && buffer[pos - 2] != ".") { + chrs = buffer[pos - 2] + chrs; + } else chrs = "0" + chrs; + } else chrs = "00" + chrs; + return new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs); + }, + cardinality: 1, + definitionSymbol: "i" + } + } + } + }); +})(jQuery); diff --git a/public/assets/js/plugins/input-mask/jquery.inputmask.js b/public/assets/js/plugins/input-mask/jquery.inputmask.js new file mode 100755 index 00000000..cfbbfaa6 --- /dev/null +++ b/public/assets/js/plugins/input-mask/jquery.inputmask.js @@ -0,0 +1,1632 @@ +/** +* @license Input Mask plugin for jquery +* http://github.com/RobinHerbots/jquery.inputmask +* Copyright (c) 2010 - 2014 Robin Herbots +* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) +* Version: 0.0.0 +*/ + +(function ($) { + if ($.fn.inputmask === undefined) { + //helper functions + function isInputEventSupported(eventName) { + var el = document.createElement('input'), + eventName = 'on' + eventName, + isSupported = (eventName in el); + if (!isSupported) { + el.setAttribute(eventName, 'return;'); + isSupported = typeof el[eventName] == 'function'; + } + el = null; + return isSupported; + } + function resolveAlias(aliasStr, options, opts) { + var aliasDefinition = opts.aliases[aliasStr]; + if (aliasDefinition) { + if (aliasDefinition.alias) resolveAlias(aliasDefinition.alias, undefined, opts); //alias is another alias + $.extend(true, opts, aliasDefinition); //merge alias definition in the options + $.extend(true, opts, options); //reapply extra given options + return true; + } + return false; + } + function generateMaskSets(opts) { + var ms = []; + var genmasks = []; //used to keep track of the masks that where processed, to avoid duplicates + function getMaskTemplate(mask) { + if (opts.numericInput) { + mask = mask.split('').reverse().join(''); + } + var escaped = false, outCount = 0, greedy = opts.greedy, repeat = opts.repeat; + if (repeat == "*") greedy = false; + //if (greedy == true && opts.placeholder == "") opts.placeholder = " "; + if (mask.length == 1 && greedy == false && repeat != 0) { opts.placeholder = ""; } //hide placeholder with single non-greedy mask + var singleMask = $.map(mask.split(""), function (element, index) { + var outElem = []; + if (element == opts.escapeChar) { + escaped = true; + } + else if ((element != opts.optionalmarker.start && element != opts.optionalmarker.end) || escaped) { + var maskdef = opts.definitions[element]; + if (maskdef && !escaped) { + for (var i = 0; i < maskdef.cardinality; i++) { + outElem.push(opts.placeholder.charAt((outCount + i) % opts.placeholder.length)); + } + } else { + outElem.push(element); + escaped = false; + } + outCount += outElem.length; + return outElem; + } + }); + + //allocate repetitions + var repeatedMask = singleMask.slice(); + for (var i = 1; i < repeat && greedy; i++) { + repeatedMask = repeatedMask.concat(singleMask.slice()); + } + + return { "mask": repeatedMask, "repeat": repeat, "greedy": greedy }; + } + //test definition => {fn: RegExp/function, cardinality: int, optionality: bool, newBlockMarker: bool, offset: int, casing: null/upper/lower, def: definitionSymbol} + function getTestingChain(mask) { + if (opts.numericInput) { + mask = mask.split('').reverse().join(''); + } + var isOptional = false, escaped = false; + var newBlockMarker = false; //indicates wheter the begin/ending of a block should be indicated + + return $.map(mask.split(""), function (element, index) { + var outElem = []; + + if (element == opts.escapeChar) { + escaped = true; + } else if (element == opts.optionalmarker.start && !escaped) { + isOptional = true; + newBlockMarker = true; + } + else if (element == opts.optionalmarker.end && !escaped) { + isOptional = false; + newBlockMarker = true; + } + else { + var maskdef = opts.definitions[element]; + if (maskdef && !escaped) { + var prevalidators = maskdef["prevalidator"], prevalidatorsL = prevalidators ? prevalidators.length : 0; + for (var i = 1; i < maskdef.cardinality; i++) { + var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator["validator"], cardinality = prevalidator["cardinality"]; + outElem.push({ fn: validator ? typeof validator == 'string' ? new RegExp(validator) : new function () { this.test = validator; } : new RegExp("."), cardinality: cardinality ? cardinality : 1, optionality: isOptional, newBlockMarker: isOptional == true ? newBlockMarker : false, offset: 0, casing: maskdef["casing"], def: maskdef["definitionSymbol"] || element }); + if (isOptional == true) //reset newBlockMarker + newBlockMarker = false; + } + outElem.push({ fn: maskdef.validator ? typeof maskdef.validator == 'string' ? new RegExp(maskdef.validator) : new function () { this.test = maskdef.validator; } : new RegExp("."), cardinality: maskdef.cardinality, optionality: isOptional, newBlockMarker: newBlockMarker, offset: 0, casing: maskdef["casing"], def: maskdef["definitionSymbol"] || element }); + } else { + outElem.push({ fn: null, cardinality: 0, optionality: isOptional, newBlockMarker: newBlockMarker, offset: 0, casing: null, def: element }); + escaped = false; + } + //reset newBlockMarker + newBlockMarker = false; + return outElem; + } + }); + } + function markOptional(maskPart) { //needed for the clearOptionalTail functionality + return opts.optionalmarker.start + maskPart + opts.optionalmarker.end; + } + function splitFirstOptionalEndPart(maskPart) { + var optionalStartMarkers = 0, optionalEndMarkers = 0, mpl = maskPart.length; + for (var i = 0; i < mpl; i++) { + if (maskPart.charAt(i) == opts.optionalmarker.start) { + optionalStartMarkers++; + } + if (maskPart.charAt(i) == opts.optionalmarker.end) { + optionalEndMarkers++; + } + if (optionalStartMarkers > 0 && optionalStartMarkers == optionalEndMarkers) + break; + } + var maskParts = [maskPart.substring(0, i)]; + if (i < mpl) { + maskParts.push(maskPart.substring(i + 1, mpl)); + } + return maskParts; + } + function splitFirstOptionalStartPart(maskPart) { + var mpl = maskPart.length; + for (var i = 0; i < mpl; i++) { + if (maskPart.charAt(i) == opts.optionalmarker.start) { + break; + } + } + var maskParts = [maskPart.substring(0, i)]; + if (i < mpl) { + maskParts.push(maskPart.substring(i + 1, mpl)); + } + return maskParts; + } + function generateMask(maskPrefix, maskPart, metadata) { + var maskParts = splitFirstOptionalEndPart(maskPart); + var newMask, maskTemplate; + + var masks = splitFirstOptionalStartPart(maskParts[0]); + if (masks.length > 1) { + newMask = maskPrefix + masks[0] + markOptional(masks[1]) + (maskParts.length > 1 ? maskParts[1] : ""); + if ($.inArray(newMask, genmasks) == -1 && newMask != "") { + genmasks.push(newMask); + maskTemplate = getMaskTemplate(newMask); + ms.push({ + "mask": newMask, + "_buffer": maskTemplate["mask"], + "buffer": maskTemplate["mask"].slice(), + "tests": getTestingChain(newMask), + "lastValidPosition": -1, + "greedy": maskTemplate["greedy"], + "repeat": maskTemplate["repeat"], + "metadata": metadata + }); + } + newMask = maskPrefix + masks[0] + (maskParts.length > 1 ? maskParts[1] : ""); + if ($.inArray(newMask, genmasks) == -1 && newMask != "") { + genmasks.push(newMask); + maskTemplate = getMaskTemplate(newMask); + ms.push({ + "mask": newMask, + "_buffer": maskTemplate["mask"], + "buffer": maskTemplate["mask"].slice(), + "tests": getTestingChain(newMask), + "lastValidPosition": -1, + "greedy": maskTemplate["greedy"], + "repeat": maskTemplate["repeat"], + "metadata": metadata + }); + } + if (splitFirstOptionalStartPart(masks[1]).length > 1) { //optional contains another optional + generateMask(maskPrefix + masks[0], masks[1] + maskParts[1], metadata); + } + if (maskParts.length > 1 && splitFirstOptionalStartPart(maskParts[1]).length > 1) { + generateMask(maskPrefix + masks[0] + markOptional(masks[1]), maskParts[1], metadata); + generateMask(maskPrefix + masks[0], maskParts[1], metadata); + } + } + else { + newMask = maskPrefix + maskParts; + if ($.inArray(newMask, genmasks) == -1 && newMask != "") { + genmasks.push(newMask); + maskTemplate = getMaskTemplate(newMask); + ms.push({ + "mask": newMask, + "_buffer": maskTemplate["mask"], + "buffer": maskTemplate["mask"].slice(), + "tests": getTestingChain(newMask), + "lastValidPosition": -1, + "greedy": maskTemplate["greedy"], + "repeat": maskTemplate["repeat"], + "metadata": metadata + }); + } + } + + } + + if ($.isFunction(opts.mask)) { //allow mask to be a preprocessing fn - should return a valid mask + opts.mask = opts.mask.call(this, opts); + } + if ($.isArray(opts.mask)) { + $.each(opts.mask, function (ndx, msk) { + if (msk["mask"] != undefined) { + generateMask("", msk["mask"].toString(), msk); + } else + generateMask("", msk.toString()); + }); + } else generateMask("", opts.mask.toString()); + + return opts.greedy ? ms : ms.sort(function (a, b) { return a["mask"].length - b["mask"].length; }); + } + + var msie10 = navigator.userAgent.match(new RegExp("msie 10", "i")) !== null, + iphone = navigator.userAgent.match(new RegExp("iphone", "i")) !== null, + android = navigator.userAgent.match(new RegExp("android.*safari.*", "i")) !== null, + androidchrome = navigator.userAgent.match(new RegExp("android.*chrome.*", "i")) !== null, + pasteEvent = isInputEventSupported('paste') ? 'paste' : isInputEventSupported('input') ? 'input' : "propertychange"; + + + //masking scope + //actionObj definition see below + function maskScope(masksets, activeMasksetIndex, opts, actionObj) { + var isRTL = false, + valueOnFocus = getActiveBuffer().join(''), + $el, chromeValueOnInput, + skipKeyPressEvent = false, //Safari 5.1.x - modal dialog fires keypress twice workaround + skipInputEvent = false, //skip when triggered from within inputmask + ignorable = false; + + + //maskset helperfunctions + + function getActiveMaskSet() { + return masksets[activeMasksetIndex]; + } + + function getActiveTests() { + return getActiveMaskSet()['tests']; + } + + function getActiveBufferTemplate() { + return getActiveMaskSet()['_buffer']; + } + + function getActiveBuffer() { + return getActiveMaskSet()['buffer']; + } + + function isValid(pos, c, strict) { //strict true ~ no correction or autofill + strict = strict === true; //always set a value to strict to prevent possible strange behavior in the extensions + + function _isValid(position, activeMaskset, c, strict) { + var testPos = determineTestPosition(position), loopend = c ? 1 : 0, chrs = '', buffer = activeMaskset["buffer"]; + for (var i = activeMaskset['tests'][testPos].cardinality; i > loopend; i--) { + chrs += getBufferElement(buffer, testPos - (i - 1)); + } + + if (c) { + chrs += c; + } + + //return is false or a json object => { pos: ??, c: ??} or true + return activeMaskset['tests'][testPos].fn != null ? + activeMaskset['tests'][testPos].fn.test(chrs, buffer, position, strict, opts) + : (c == getBufferElement(activeMaskset['_buffer'], position, true) || c == opts.skipOptionalPartCharacter) ? + { "refresh": true, c: getBufferElement(activeMaskset['_buffer'], position, true), pos: position } + : false; + } + + function PostProcessResults(maskForwards, results) { + var hasValidActual = false; + $.each(results, function (ndx, rslt) { + hasValidActual = $.inArray(rslt["activeMasksetIndex"], maskForwards) == -1 && rslt["result"] !== false; + if (hasValidActual) return false; + }); + if (hasValidActual) { //strip maskforwards + results = $.map(results, function (rslt, ndx) { + if ($.inArray(rslt["activeMasksetIndex"], maskForwards) == -1) { + return rslt; + } else { + masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = actualLVP; + } + }); + } else { //keep maskforwards with the least forward + var lowestPos = -1, lowestIndex = -1, rsltValid; + $.each(results, function (ndx, rslt) { + if ($.inArray(rslt["activeMasksetIndex"], maskForwards) != -1 && rslt["result"] !== false & (lowestPos == -1 || lowestPos > rslt["result"]["pos"])) { + lowestPos = rslt["result"]["pos"]; + lowestIndex = rslt["activeMasksetIndex"]; + } + }); + results = $.map(results, function (rslt, ndx) { + if ($.inArray(rslt["activeMasksetIndex"], maskForwards) != -1) { + if (rslt["result"]["pos"] == lowestPos) { + return rslt; + } else if (rslt["result"] !== false) { + for (var i = pos; i < lowestPos; i++) { + rsltValid = _isValid(i, masksets[rslt["activeMasksetIndex"]], masksets[lowestIndex]["buffer"][i], true); + if (rsltValid === false) { + masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = lowestPos - 1; + break; + } else { + setBufferElement(masksets[rslt["activeMasksetIndex"]]["buffer"], i, masksets[lowestIndex]["buffer"][i], true); + masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = i; + } + } + //also check check for the lowestpos with the new input + rsltValid = _isValid(lowestPos, masksets[rslt["activeMasksetIndex"]], c, true); + if (rsltValid !== false) { + setBufferElement(masksets[rslt["activeMasksetIndex"]]["buffer"], lowestPos, c, true); + masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = lowestPos; + } + //console.log("ndx " + rslt["activeMasksetIndex"] + " validate " + masksets[rslt["activeMasksetIndex"]]["buffer"].join('') + " lv " + masksets[rslt["activeMasksetIndex"]]['lastValidPosition']); + return rslt; + } + } + }); + } + return results; + } + + if (strict) { + var result = _isValid(pos, getActiveMaskSet(), c, strict); //only check validity in current mask when validating strict + if (result === true) { + result = { "pos": pos }; //always take a possible corrected maskposition into account + } + return result; + } + + var results = [], result = false, currentActiveMasksetIndex = activeMasksetIndex, + actualBuffer = getActiveBuffer().slice(), actualLVP = getActiveMaskSet()["lastValidPosition"], + actualPrevious = seekPrevious(pos), + maskForwards = []; + $.each(masksets, function (index, value) { + if (typeof (value) == "object") { + activeMasksetIndex = index; + + var maskPos = pos; + var lvp = getActiveMaskSet()['lastValidPosition'], + rsltValid; + if (lvp == actualLVP) { + if ((maskPos - actualLVP) > 1) { + for (var i = lvp == -1 ? 0 : lvp; i < maskPos; i++) { + rsltValid = _isValid(i, getActiveMaskSet(), actualBuffer[i], true); + if (rsltValid === false) { + break; + } else { + setBufferElement(getActiveBuffer(), i, actualBuffer[i], true); + if (rsltValid === true) { + rsltValid = { "pos": i }; //always take a possible corrected maskposition into account + } + var newValidPosition = rsltValid.pos || i; + if (getActiveMaskSet()['lastValidPosition'] < newValidPosition) + getActiveMaskSet()['lastValidPosition'] = newValidPosition; //set new position from isValid + } + } + } + //does the input match on a further position? + if (!isMask(maskPos) && !_isValid(maskPos, getActiveMaskSet(), c, strict)) { + var maxForward = seekNext(maskPos) - maskPos; + for (var fw = 0; fw < maxForward; fw++) { + if (_isValid(++maskPos, getActiveMaskSet(), c, strict) !== false) + break; + } + maskForwards.push(activeMasksetIndex); + //console.log('maskforward ' + activeMasksetIndex + " pos " + pos + " maskPos " + maskPos); + } + } + + if (getActiveMaskSet()['lastValidPosition'] >= actualLVP || activeMasksetIndex == currentActiveMasksetIndex) { + if (maskPos >= 0 && maskPos < getMaskLength()) { + result = _isValid(maskPos, getActiveMaskSet(), c, strict); + if (result !== false) { + if (result === true) { + result = { "pos": maskPos }; //always take a possible corrected maskposition into account + } + var newValidPosition = result.pos || maskPos; + if (getActiveMaskSet()['lastValidPosition'] < newValidPosition) + getActiveMaskSet()['lastValidPosition'] = newValidPosition; //set new position from isValid + } + //console.log("pos " + pos + " ndx " + activeMasksetIndex + " validate " + getActiveBuffer().join('') + " lv " + getActiveMaskSet()['lastValidPosition']); + results.push({ "activeMasksetIndex": index, "result": result }); + } + } + } + }); + activeMasksetIndex = currentActiveMasksetIndex; //reset activeMasksetIndex + + return PostProcessResults(maskForwards, results); //return results of the multiple mask validations + } + + function determineActiveMasksetIndex() { + var currentMasksetIndex = activeMasksetIndex, + highestValid = { "activeMasksetIndex": 0, "lastValidPosition": -1, "next": -1 }; + $.each(masksets, function (index, value) { + if (typeof (value) == "object") { + activeMasksetIndex = index; + if (getActiveMaskSet()['lastValidPosition'] > highestValid['lastValidPosition']) { + highestValid["activeMasksetIndex"] = index; + highestValid["lastValidPosition"] = getActiveMaskSet()['lastValidPosition']; + highestValid["next"] = seekNext(getActiveMaskSet()['lastValidPosition']); + } else if (getActiveMaskSet()['lastValidPosition'] == highestValid['lastValidPosition'] && + (highestValid['next'] == -1 || highestValid['next'] > seekNext(getActiveMaskSet()['lastValidPosition']))) { + highestValid["activeMasksetIndex"] = index; + highestValid["lastValidPosition"] = getActiveMaskSet()['lastValidPosition']; + highestValid["next"] = seekNext(getActiveMaskSet()['lastValidPosition']); + } + } + }); + + activeMasksetIndex = highestValid["lastValidPosition"] != -1 && masksets[currentMasksetIndex]["lastValidPosition"] == highestValid["lastValidPosition"] ? currentMasksetIndex : highestValid["activeMasksetIndex"]; + if (currentMasksetIndex != activeMasksetIndex) { + clearBuffer(getActiveBuffer(), seekNext(highestValid["lastValidPosition"]), getMaskLength()); + getActiveMaskSet()["writeOutBuffer"] = true; + } + $el.data('_inputmask')['activeMasksetIndex'] = activeMasksetIndex; //store the activeMasksetIndex + } + + function isMask(pos) { + var testPos = determineTestPosition(pos); + var test = getActiveTests()[testPos]; + + return test != undefined ? test.fn : false; + } + + function determineTestPosition(pos) { + return pos % getActiveTests().length; + } + + function getMaskLength() { + return opts.getMaskLength(getActiveBufferTemplate(), getActiveMaskSet()['greedy'], getActiveMaskSet()['repeat'], getActiveBuffer(), opts); + } + + //pos: from position + + function seekNext(pos) { + var maskL = getMaskLength(); + if (pos >= maskL) return maskL; + var position = pos; + while (++position < maskL && !isMask(position)) { + } + return position; + } + + //pos: from position + + function seekPrevious(pos) { + var position = pos; + if (position <= 0) return 0; + + while (--position > 0 && !isMask(position)) { + } + ; + return position; + } + + function setBufferElement(buffer, position, element, autoPrepare) { + if (autoPrepare) position = prepareBuffer(buffer, position); + + var test = getActiveTests()[determineTestPosition(position)]; + var elem = element; + if (elem != undefined && test != undefined) { + switch (test.casing) { + case "upper": + elem = element.toUpperCase(); + break; + case "lower": + elem = element.toLowerCase(); + break; + } + } + + buffer[position] = elem; + } + + function getBufferElement(buffer, position, autoPrepare) { + if (autoPrepare) position = prepareBuffer(buffer, position); + return buffer[position]; + } + + //needed to handle the non-greedy mask repetitions + + function prepareBuffer(buffer, position) { + var j; + while (buffer[position] == undefined && buffer.length < getMaskLength()) { + j = 0; + while (getActiveBufferTemplate()[j] !== undefined) { //add a new buffer + buffer.push(getActiveBufferTemplate()[j++]); + } + } + + return position; + } + + function writeBuffer(input, buffer, caretPos) { + input._valueSet(buffer.join('')); + if (caretPos != undefined) { + caret(input, caretPos); + } + } + + function clearBuffer(buffer, start, end, stripNomasks) { + for (var i = start, maskL = getMaskLength() ; i < end && i < maskL; i++) { + if (stripNomasks === true) { + if (!isMask(i)) + setBufferElement(buffer, i, ""); + } else + setBufferElement(buffer, i, getBufferElement(getActiveBufferTemplate().slice(), i, true)); + } + } + + function setReTargetPlaceHolder(buffer, pos) { + var testPos = determineTestPosition(pos); + setBufferElement(buffer, pos, getBufferElement(getActiveBufferTemplate(), testPos)); + } + + function getPlaceHolder(pos) { + return opts.placeholder.charAt(pos % opts.placeholder.length); + } + + function checkVal(input, writeOut, strict, nptvl, intelliCheck) { + var inputValue = nptvl != undefined ? nptvl.slice() : truncateInput(input._valueGet()).split(''); + + $.each(masksets, function (ndx, ms) { + if (typeof (ms) == "object") { + ms["buffer"] = ms["_buffer"].slice(); + ms["lastValidPosition"] = -1; + ms["p"] = -1; + } + }); + if (strict !== true) activeMasksetIndex = 0; + if (writeOut) input._valueSet(""); //initial clear + var ml = getMaskLength(); + $.each(inputValue, function (ndx, charCode) { + if (intelliCheck === true) { + var p = getActiveMaskSet()["p"], lvp = p == -1 ? p : seekPrevious(p), + pos = lvp == -1 ? ndx : seekNext(lvp); + if ($.inArray(charCode, getActiveBufferTemplate().slice(lvp + 1, pos)) == -1) { + keypressEvent.call(input, undefined, true, charCode.charCodeAt(0), writeOut, strict, ndx); + } + } else { + keypressEvent.call(input, undefined, true, charCode.charCodeAt(0), writeOut, strict, ndx); + } + }); + + if (strict === true && getActiveMaskSet()["p"] != -1) { + getActiveMaskSet()["lastValidPosition"] = seekPrevious(getActiveMaskSet()["p"]); + } + } + + function escapeRegex(str) { + return $.inputmask.escapeRegex.call(this, str); + } + + function truncateInput(inputValue) { + return inputValue.replace(new RegExp("(" + escapeRegex(getActiveBufferTemplate().join('')) + ")*$"), ""); + } + + function clearOptionalTail(input) { + var buffer = getActiveBuffer(), tmpBuffer = buffer.slice(), testPos, pos; + for (var pos = tmpBuffer.length - 1; pos >= 0; pos--) { + var testPos = determineTestPosition(pos); + if (getActiveTests()[testPos].optionality) { + if (!isMask(pos) || !isValid(pos, buffer[pos], true)) + tmpBuffer.pop(); + else break; + } else break; + } + writeBuffer(input, tmpBuffer); + } + + function unmaskedvalue($input, skipDatepickerCheck) { + if (getActiveTests() && (skipDatepickerCheck === true || !$input.hasClass('hasDatepicker'))) { + //checkVal(input, false, true); + var umValue = $.map(getActiveBuffer(), function (element, index) { + return isMask(index) && isValid(index, element, true) ? element : null; + }); + var unmaskedValue = (isRTL ? umValue.reverse() : umValue).join(''); + return opts.onUnMask != undefined ? opts.onUnMask.call(this, getActiveBuffer().join(''), unmaskedValue) : unmaskedValue; + } else { + return $input[0]._valueGet(); + } + } + + function TranslatePosition(pos) { + if (isRTL && typeof pos == 'number' && (!opts.greedy || opts.placeholder != "")) { + var bffrLght = getActiveBuffer().length; + pos = bffrLght - pos; + } + return pos; + } + + function caret(input, begin, end) { + var npt = input.jquery && input.length > 0 ? input[0] : input, range; + if (typeof begin == 'number') { + begin = TranslatePosition(begin); + end = TranslatePosition(end); + if (!$(input).is(':visible')) { + return; + } + end = (typeof end == 'number') ? end : begin; + npt.scrollLeft = npt.scrollWidth; + if (opts.insertMode == false && begin == end) end++; //set visualization for insert/overwrite mode + if (npt.setSelectionRange) { + npt.selectionStart = begin; + npt.selectionEnd = android ? begin : end; + + } else if (npt.createTextRange) { + range = npt.createTextRange(); + range.collapse(true); + range.moveEnd('character', end); + range.moveStart('character', begin); + range.select(); + } + } else { + if (!$(input).is(':visible')) { + return { "begin": 0, "end": 0 }; + } + if (npt.setSelectionRange) { + begin = npt.selectionStart; + end = npt.selectionEnd; + } else if (document.selection && document.selection.createRange) { + range = document.selection.createRange(); + begin = 0 - range.duplicate().moveStart('character', -100000); + end = begin + range.text.length; + } + begin = TranslatePosition(begin); + end = TranslatePosition(end); + return { "begin": begin, "end": end }; + } + } + + function isComplete(buffer) { //return true / false / undefined (repeat *) + if (opts.repeat == "*") return undefined; + var complete = false, highestValidPosition = 0, currentActiveMasksetIndex = activeMasksetIndex; + $.each(masksets, function (ndx, ms) { + if (typeof (ms) == "object") { + activeMasksetIndex = ndx; + var aml = seekPrevious(getMaskLength()); + if (ms["lastValidPosition"] >= highestValidPosition && ms["lastValidPosition"] == aml) { + var msComplete = true; + for (var i = 0; i <= aml; i++) { + var mask = isMask(i), testPos = determineTestPosition(i); + if ((mask && (buffer[i] == undefined || buffer[i] == getPlaceHolder(i))) || (!mask && buffer[i] != getActiveBufferTemplate()[testPos])) { + msComplete = false; + break; + } + } + complete = complete || msComplete; + if (complete) //break loop + return false; + } + highestValidPosition = ms["lastValidPosition"]; + } + }); + activeMasksetIndex = currentActiveMasksetIndex; //reset activeMaskset + return complete; + } + + function isSelection(begin, end) { + return isRTL ? (begin - end) > 1 || ((begin - end) == 1 && opts.insertMode) : + (end - begin) > 1 || ((end - begin) == 1 && opts.insertMode); + } + + + //private functions + function installEventRuler(npt) { + var events = $._data(npt).events; + + $.each(events, function (eventType, eventHandlers) { + $.each(eventHandlers, function (ndx, eventHandler) { + if (eventHandler.namespace == "inputmask") { + if (eventHandler.type != "setvalue") { + var handler = eventHandler.handler; + eventHandler.handler = function (e) { + if (this.readOnly || this.disabled) + e.preventDefault; + else + return handler.apply(this, arguments); + }; + } + } + }); + }); + } + + function patchValueProperty(npt) { + var valueProperty; + if (Object.getOwnPropertyDescriptor) + valueProperty = Object.getOwnPropertyDescriptor(npt, "value"); + if (valueProperty && valueProperty.get) { + if (!npt._valueGet) { + var valueGet = valueProperty.get; + var valueSet = valueProperty.set; + npt._valueGet = function () { + return isRTL ? valueGet.call(this).split('').reverse().join('') : valueGet.call(this); + }; + npt._valueSet = function (value) { + valueSet.call(this, isRTL ? value.split('').reverse().join('') : value); + }; + + Object.defineProperty(npt, "value", { + get: function () { + var $self = $(this), inputData = $(this).data('_inputmask'), masksets = inputData['masksets'], + activeMasksetIndex = inputData['activeMasksetIndex']; + return inputData && inputData['opts'].autoUnmask ? $self.inputmask('unmaskedvalue') : valueGet.call(this) != masksets[activeMasksetIndex]['_buffer'].join('') ? valueGet.call(this) : ''; + }, + set: function (value) { + valueSet.call(this, value); + $(this).triggerHandler('setvalue.inputmask'); + } + }); + } + } else if (document.__lookupGetter__ && npt.__lookupGetter__("value")) { + if (!npt._valueGet) { + var valueGet = npt.__lookupGetter__("value"); + var valueSet = npt.__lookupSetter__("value"); + npt._valueGet = function () { + return isRTL ? valueGet.call(this).split('').reverse().join('') : valueGet.call(this); + }; + npt._valueSet = function (value) { + valueSet.call(this, isRTL ? value.split('').reverse().join('') : value); + }; + + npt.__defineGetter__("value", function () { + var $self = $(this), inputData = $(this).data('_inputmask'), masksets = inputData['masksets'], + activeMasksetIndex = inputData['activeMasksetIndex']; + return inputData && inputData['opts'].autoUnmask ? $self.inputmask('unmaskedvalue') : valueGet.call(this) != masksets[activeMasksetIndex]['_buffer'].join('') ? valueGet.call(this) : ''; + }); + npt.__defineSetter__("value", function (value) { + valueSet.call(this, value); + $(this).triggerHandler('setvalue.inputmask'); + }); + } + } else { + if (!npt._valueGet) { + npt._valueGet = function () { return isRTL ? this.value.split('').reverse().join('') : this.value; }; + npt._valueSet = function (value) { this.value = isRTL ? value.split('').reverse().join('') : value; }; + } + if ($.valHooks.text == undefined || $.valHooks.text.inputmaskpatch != true) { + var valueGet = $.valHooks.text && $.valHooks.text.get ? $.valHooks.text.get : function (elem) { return elem.value; }; + var valueSet = $.valHooks.text && $.valHooks.text.set ? $.valHooks.text.set : function (elem, value) { + elem.value = value; + return elem; + }; + + jQuery.extend($.valHooks, { + text: { + get: function (elem) { + var $elem = $(elem); + if ($elem.data('_inputmask')) { + if ($elem.data('_inputmask')['opts'].autoUnmask) + return $elem.inputmask('unmaskedvalue'); + else { + var result = valueGet(elem), + inputData = $elem.data('_inputmask'), masksets = inputData['masksets'], + activeMasksetIndex = inputData['activeMasksetIndex']; + return result != masksets[activeMasksetIndex]['_buffer'].join('') ? result : ''; + } + } else return valueGet(elem); + }, + set: function (elem, value) { + var $elem = $(elem); + var result = valueSet(elem, value); + if ($elem.data('_inputmask')) $elem.triggerHandler('setvalue.inputmask'); + return result; + }, + inputmaskpatch: true + } + }); + } + } + } + + //shift chars to left from start to end and put c at end position if defined + + function shiftL(start, end, c, maskJumps) { + var buffer = getActiveBuffer(); + if (maskJumps !== false) //jumping over nonmask position + while (!isMask(start) && start - 1 >= 0) start--; + for (var i = start; i < end && i < getMaskLength() ; i++) { + if (isMask(i)) { + setReTargetPlaceHolder(buffer, i); + var j = seekNext(i); + var p = getBufferElement(buffer, j); + if (p != getPlaceHolder(j)) { + if (j < getMaskLength() && isValid(i, p, true) !== false && getActiveTests()[determineTestPosition(i)].def == getActiveTests()[determineTestPosition(j)].def) { + setBufferElement(buffer, i, p, true); + } else { + if (isMask(i)) + break; + } + } + } else { + setReTargetPlaceHolder(buffer, i); + } + } + if (c != undefined) + setBufferElement(buffer, seekPrevious(end), c); + + if (getActiveMaskSet()["greedy"] == false) { + var trbuffer = truncateInput(buffer.join('')).split(''); + buffer.length = trbuffer.length; + for (var i = 0, bl = buffer.length; i < bl; i++) { + buffer[i] = trbuffer[i]; + } + if (buffer.length == 0) getActiveMaskSet()["buffer"] = getActiveBufferTemplate().slice(); + } + return start; //return the used start position + } + + function shiftR(start, end, c) { + var buffer = getActiveBuffer(); + if (getBufferElement(buffer, start, true) != getPlaceHolder(start)) { + for (var i = seekPrevious(end) ; i > start && i >= 0; i--) { + if (isMask(i)) { + var j = seekPrevious(i); + var t = getBufferElement(buffer, j); + if (t != getPlaceHolder(j)) { + if (isValid(j, t, true) !== false && getActiveTests()[determineTestPosition(i)].def == getActiveTests()[determineTestPosition(j)].def) { + setBufferElement(buffer, i, t, true); + setReTargetPlaceHolder(buffer, j); + } //else break; + } + } else + setReTargetPlaceHolder(buffer, i); + } + } + if (c != undefined && getBufferElement(buffer, start) == getPlaceHolder(start)) + setBufferElement(buffer, start, c); + var lengthBefore = buffer.length; + if (getActiveMaskSet()["greedy"] == false) { + var trbuffer = truncateInput(buffer.join('')).split(''); + buffer.length = trbuffer.length; + for (var i = 0, bl = buffer.length; i < bl; i++) { + buffer[i] = trbuffer[i]; + } + if (buffer.length == 0) getActiveMaskSet()["buffer"] = getActiveBufferTemplate().slice(); + } + return end - (lengthBefore - buffer.length); //return new start position + } + + ; + + + function HandleRemove(input, k, pos) { + if (opts.numericInput || isRTL) { + switch (k) { + case opts.keyCode.BACKSPACE: + k = opts.keyCode.DELETE; + break; + case opts.keyCode.DELETE: + k = opts.keyCode.BACKSPACE; + break; + } + if (isRTL) { + var pend = pos.end; + pos.end = pos.begin; + pos.begin = pend; + } + } + + var isSelection = true; + if (pos.begin == pos.end) { + var posBegin = k == opts.keyCode.BACKSPACE ? pos.begin - 1 : pos.begin; + if (opts.isNumeric && opts.radixPoint != "" && getActiveBuffer()[posBegin] == opts.radixPoint) { + pos.begin = (getActiveBuffer().length - 1 == posBegin) /* radixPoint is latest? delete it */ ? pos.begin : k == opts.keyCode.BACKSPACE ? posBegin : seekNext(posBegin); + pos.end = pos.begin; + } + isSelection = false; + if (k == opts.keyCode.BACKSPACE) + pos.begin--; + else if (k == opts.keyCode.DELETE) + pos.end++; + } else if (pos.end - pos.begin == 1 && !opts.insertMode) { + isSelection = false; + if (k == opts.keyCode.BACKSPACE) + pos.begin--; + } + + clearBuffer(getActiveBuffer(), pos.begin, pos.end); + + var ml = getMaskLength(); + if (opts.greedy == false) { + shiftL(pos.begin, ml, undefined, !isRTL && (k == opts.keyCode.BACKSPACE && !isSelection)); + } else { + var newpos = pos.begin; + for (var i = pos.begin; i < pos.end; i++) { //seeknext to skip placeholders at start in selection + if (isMask(i) || !isSelection) + newpos = shiftL(pos.begin, ml, undefined, !isRTL && (k == opts.keyCode.BACKSPACE && !isSelection)); + } + if (!isSelection) pos.begin = newpos; + } + var firstMaskPos = seekNext(-1); + clearBuffer(getActiveBuffer(), pos.begin, pos.end, true); + checkVal(input, false, masksets[1] == undefined || firstMaskPos >= pos.end, getActiveBuffer()); + if (getActiveMaskSet()['lastValidPosition'] < firstMaskPos) { + getActiveMaskSet()["lastValidPosition"] = -1; + getActiveMaskSet()["p"] = firstMaskPos; + } else { + getActiveMaskSet()["p"] = pos.begin; + } + } + + function keydownEvent(e) { + //Safari 5.1.x - modal dialog fires keypress twice workaround + skipKeyPressEvent = false; + var input = this, $input = $(input), k = e.keyCode, pos = caret(input); + + //backspace, delete, and escape get special treatment + if (k == opts.keyCode.BACKSPACE || k == opts.keyCode.DELETE || (iphone && k == 127) || e.ctrlKey && k == 88) { //backspace/delete + e.preventDefault(); //stop default action but allow propagation + if (k == 88) valueOnFocus = getActiveBuffer().join(''); + HandleRemove(input, k, pos); + determineActiveMasksetIndex(); + writeBuffer(input, getActiveBuffer(), getActiveMaskSet()["p"]); + if (input._valueGet() == getActiveBufferTemplate().join('')) + $input.trigger('cleared'); + + if (opts.showTooltip) { //update tooltip + $input.prop("title", getActiveMaskSet()["mask"]); + } + } else if (k == opts.keyCode.END || k == opts.keyCode.PAGE_DOWN) { //when END or PAGE_DOWN pressed set position at lastmatch + setTimeout(function () { + var caretPos = seekNext(getActiveMaskSet()["lastValidPosition"]); + if (!opts.insertMode && caretPos == getMaskLength() && !e.shiftKey) caretPos--; + caret(input, e.shiftKey ? pos.begin : caretPos, caretPos); + }, 0); + } else if ((k == opts.keyCode.HOME && !e.shiftKey) || k == opts.keyCode.PAGE_UP) { //Home or page_up + caret(input, 0, e.shiftKey ? pos.begin : 0); + } else if (k == opts.keyCode.ESCAPE || (k == 90 && e.ctrlKey)) { //escape && undo + checkVal(input, true, false, valueOnFocus.split('')); + $input.click(); + } else if (k == opts.keyCode.INSERT && !(e.shiftKey || e.ctrlKey)) { //insert + opts.insertMode = !opts.insertMode; + caret(input, !opts.insertMode && pos.begin == getMaskLength() ? pos.begin - 1 : pos.begin); + } else if (opts.insertMode == false && !e.shiftKey) { + if (k == opts.keyCode.RIGHT) { + setTimeout(function () { + var caretPos = caret(input); + caret(input, caretPos.begin); + }, 0); + } else if (k == opts.keyCode.LEFT) { + setTimeout(function () { + var caretPos = caret(input); + caret(input, caretPos.begin - 1); + }, 0); + } + } + + var currentCaretPos = caret(input); + if (opts.onKeyDown.call(this, e, getActiveBuffer(), opts) === true) //extra stuff to execute on keydown + caret(input, currentCaretPos.begin, currentCaretPos.end); + ignorable = $.inArray(k, opts.ignorables) != -1; + } + + + function keypressEvent(e, checkval, k, writeOut, strict, ndx) { + //Safari 5.1.x - modal dialog fires keypress twice workaround + if (k == undefined && skipKeyPressEvent) return false; + skipKeyPressEvent = true; + + var input = this, $input = $(input); + + e = e || window.event; + var k = checkval ? k : (e.which || e.charCode || e.keyCode); + + if (checkval !== true && (!(e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable))) { + return true; + } else { + if (k) { + //special treat the decimal separator + if (checkval !== true && k == 46 && e.shiftKey == false && opts.radixPoint == ",") k = 44; + + var pos, results, result, c = String.fromCharCode(k); + if (checkval) { + var pcaret = strict ? ndx : getActiveMaskSet()["lastValidPosition"] + 1; + pos = { begin: pcaret, end: pcaret }; + } else { + pos = caret(input); + } + + //should we clear a possible selection?? + var isSlctn = isSelection(pos.begin, pos.end), redetermineLVP = false, + initialIndex = activeMasksetIndex; + if (isSlctn) { + activeMasksetIndex = initialIndex; + $.each(masksets, function (ndx, lmnt) { //init undobuffer for recovery when not valid + if (typeof (lmnt) == "object") { + activeMasksetIndex = ndx; + getActiveMaskSet()["undoBuffer"] = getActiveBuffer().join(''); + } + }); + HandleRemove(input, opts.keyCode.DELETE, pos); + if (!opts.insertMode) { //preserve some space + $.each(masksets, function (ndx, lmnt) { + if (typeof (lmnt) == "object") { + activeMasksetIndex = ndx; + shiftR(pos.begin, getMaskLength()); + getActiveMaskSet()["lastValidPosition"] = seekNext(getActiveMaskSet()["lastValidPosition"]); + } + }); + } + activeMasksetIndex = initialIndex; //restore index + } + + var radixPosition = getActiveBuffer().join('').indexOf(opts.radixPoint); + if (opts.isNumeric && checkval !== true && radixPosition != -1) { + if (opts.greedy && pos.begin <= radixPosition) { + pos.begin = seekPrevious(pos.begin); + pos.end = pos.begin; + } else if (c == opts.radixPoint) { + pos.begin = radixPosition; + pos.end = pos.begin; + } + } + + + var p = pos.begin; + results = isValid(p, c, strict); + if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }]; + var minimalForwardPosition = -1; + $.each(results, function (index, result) { + activeMasksetIndex = result["activeMasksetIndex"]; + getActiveMaskSet()["writeOutBuffer"] = true; + var np = result["result"]; + if (np !== false) { + var refresh = false, buffer = getActiveBuffer(); + if (np !== true) { + refresh = np["refresh"]; //only rewrite buffer from isValid + p = np.pos != undefined ? np.pos : p; //set new position from isValid + c = np.c != undefined ? np.c : c; //set new char from isValid + } + if (refresh !== true) { + if (opts.insertMode == true) { + var lastUnmaskedPosition = getMaskLength(); + var bfrClone = buffer.slice(); + while (getBufferElement(bfrClone, lastUnmaskedPosition, true) != getPlaceHolder(lastUnmaskedPosition) && lastUnmaskedPosition >= p) { + lastUnmaskedPosition = lastUnmaskedPosition == 0 ? -1 : seekPrevious(lastUnmaskedPosition); + } + if (lastUnmaskedPosition >= p) { + shiftR(p, getMaskLength(), c); + //shift the lvp if needed + var lvp = getActiveMaskSet()["lastValidPosition"], nlvp = seekNext(lvp); + if (nlvp != getMaskLength() && lvp >= p && (getBufferElement(getActiveBuffer(), nlvp, true) != getPlaceHolder(nlvp))) { + getActiveMaskSet()["lastValidPosition"] = nlvp; + } + } else getActiveMaskSet()["writeOutBuffer"] = false; + } else setBufferElement(buffer, p, c, true); + if (minimalForwardPosition == -1 || minimalForwardPosition > seekNext(p)) { + minimalForwardPosition = seekNext(p); + } + } else if (!strict) { + var nextPos = p < getMaskLength() ? p + 1 : p; + if (minimalForwardPosition == -1 || minimalForwardPosition > nextPos) { + minimalForwardPosition = nextPos; + } + } + if (minimalForwardPosition > getActiveMaskSet()["p"]) + getActiveMaskSet()["p"] = minimalForwardPosition; //needed for checkval strict + } + }); + + if (strict !== true) { + activeMasksetIndex = initialIndex; + determineActiveMasksetIndex(); + } + if (writeOut !== false) { + $.each(results, function (ndx, rslt) { + if (rslt["activeMasksetIndex"] == activeMasksetIndex) { + result = rslt; + return false; + } + }); + if (result != undefined) { + var self = this; + setTimeout(function () { opts.onKeyValidation.call(self, result["result"], opts); }, 0); + if (getActiveMaskSet()["writeOutBuffer"] && result["result"] !== false) { + var buffer = getActiveBuffer(); + + var newCaretPosition; + if (checkval) { + newCaretPosition = undefined; + } else if (opts.numericInput) { + if (p > radixPosition) { + newCaretPosition = seekPrevious(minimalForwardPosition); + } else if (c == opts.radixPoint) { + newCaretPosition = minimalForwardPosition - 1; + } else newCaretPosition = seekPrevious(minimalForwardPosition - 1); + } else { + newCaretPosition = minimalForwardPosition; + } + + writeBuffer(input, buffer, newCaretPosition); + if (checkval !== true) { + setTimeout(function () { //timeout needed for IE + if (isComplete(buffer) === true) + $input.trigger("complete"); + skipInputEvent = true; + $input.trigger("input"); + }, 0); + } + } else if (isSlctn) { + getActiveMaskSet()["buffer"] = getActiveMaskSet()["undoBuffer"].split(''); + } + } + } + + if (opts.showTooltip) { //update tooltip + $input.prop("title", getActiveMaskSet()["mask"]); + } + + //needed for IE8 and below + if (e) e.preventDefault ? e.preventDefault() : e.returnValue = false; + } + } + } + + function keyupEvent(e) { + var $input = $(this), input = this, k = e.keyCode, buffer = getActiveBuffer(); + + if (androidchrome && k == opts.keyCode.BACKSPACE) { + if (chromeValueOnInput == input._valueGet()) + keydownEvent.call(this, e); + } + + opts.onKeyUp.call(this, e, buffer, opts); //extra stuff to execute on keyup + if (k == opts.keyCode.TAB && opts.showMaskOnFocus) { + if ($input.hasClass('focus.inputmask') && input._valueGet().length == 0) { + buffer = getActiveBufferTemplate().slice(); + writeBuffer(input, buffer); + caret(input, 0); + valueOnFocus = getActiveBuffer().join(''); + } else { + writeBuffer(input, buffer); + if (buffer.join('') == getActiveBufferTemplate().join('') && $.inArray(opts.radixPoint, buffer) != -1) { + caret(input, TranslatePosition(0)); + $input.click(); + } else + caret(input, TranslatePosition(0), TranslatePosition(getMaskLength())); + } + } + } + + function inputEvent(e) { + if (skipInputEvent === true) { + skipInputEvent = false; + return true; + } + var input = this, $input = $(input); + + chromeValueOnInput = getActiveBuffer().join(''); + checkVal(input, false, false); + writeBuffer(input, getActiveBuffer()); + if (isComplete(getActiveBuffer()) === true) + $input.trigger("complete"); + $input.click(); + } + + function mask(el) { + $el = $(el); + if ($el.is(":input")) { + //store tests & original buffer in the input element - used to get the unmasked value + $el.data('_inputmask', { + 'masksets': masksets, + 'activeMasksetIndex': activeMasksetIndex, + 'opts': opts, + 'isRTL': false + }); + + //show tooltip + if (opts.showTooltip) { + $el.prop("title", getActiveMaskSet()["mask"]); + } + + //correct greedy setting if needed + getActiveMaskSet()['greedy'] = getActiveMaskSet()['greedy'] ? getActiveMaskSet()['greedy'] : getActiveMaskSet()['repeat'] == 0; + + //handle maxlength attribute + if ($el.attr("maxLength") != null) //only when the attribute is set + { + var maxLength = $el.prop('maxLength'); + if (maxLength > -1) { //handle *-repeat + $.each(masksets, function (ndx, ms) { + if (typeof (ms) == "object") { + if (ms["repeat"] == "*") { + ms["repeat"] = maxLength; + } + } + }); + } + if (getMaskLength() >= maxLength && maxLength > -1) { //FF sets no defined max length to -1 + if (maxLength < getActiveBufferTemplate().length) getActiveBufferTemplate().length = maxLength; + if (getActiveMaskSet()['greedy'] == false) { + getActiveMaskSet()['repeat'] = Math.round(maxLength / getActiveBufferTemplate().length); + } + $el.prop('maxLength', getMaskLength() * 2); + } + } + + patchValueProperty(el); + + if (opts.numericInput) opts.isNumeric = opts.numericInput; + if (el.dir == "rtl" || (opts.numericInput && opts.rightAlignNumerics) || (opts.isNumeric && opts.rightAlignNumerics)) + $el.css("text-align", "right"); + + if (el.dir == "rtl" || opts.numericInput) { + el.dir = "ltr"; + $el.removeAttr("dir"); + var inputData = $el.data('_inputmask'); + inputData['isRTL'] = true; + $el.data('_inputmask', inputData); + isRTL = true; + } + + //unbind all events - to make sure that no other mask will interfere when re-masking + $el.unbind(".inputmask"); + $el.removeClass('focus.inputmask'); + //bind events + $el.closest('form').bind("submit", function () { //trigger change on submit if any + if (valueOnFocus != getActiveBuffer().join('')) { + $el.change(); + } + }).bind('reset', function () { + setTimeout(function () { + $el.trigger("setvalue"); + }, 0); + }); + $el.bind("mouseenter.inputmask", function () { + var $input = $(this), input = this; + if (!$input.hasClass('focus.inputmask') && opts.showMaskOnHover) { + if (input._valueGet() != getActiveBuffer().join('')) { + writeBuffer(input, getActiveBuffer()); + } + } + }).bind("blur.inputmask", function () { + var $input = $(this), input = this, nptValue = input._valueGet(), buffer = getActiveBuffer(); + $input.removeClass('focus.inputmask'); + if (valueOnFocus != getActiveBuffer().join('')) { + $input.change(); + } + if (opts.clearMaskOnLostFocus && nptValue != '') { + if (nptValue == getActiveBufferTemplate().join('')) + input._valueSet(''); + else { //clearout optional tail of the mask + clearOptionalTail(input); + } + } + if (isComplete(buffer) === false) { + $input.trigger("incomplete"); + if (opts.clearIncomplete) { + $.each(masksets, function (ndx, ms) { + if (typeof (ms) == "object") { + ms["buffer"] = ms["_buffer"].slice(); + ms["lastValidPosition"] = -1; + } + }); + activeMasksetIndex = 0; + if (opts.clearMaskOnLostFocus) + input._valueSet(''); + else { + buffer = getActiveBufferTemplate().slice(); + writeBuffer(input, buffer); + } + } + } + }).bind("focus.inputmask", function () { + var $input = $(this), input = this, nptValue = input._valueGet(); + if (opts.showMaskOnFocus && !$input.hasClass('focus.inputmask') && (!opts.showMaskOnHover || (opts.showMaskOnHover && nptValue == ''))) { + if (input._valueGet() != getActiveBuffer().join('')) { + writeBuffer(input, getActiveBuffer(), seekNext(getActiveMaskSet()["lastValidPosition"])); + } + } + $input.addClass('focus.inputmask'); + valueOnFocus = getActiveBuffer().join(''); + }).bind("mouseleave.inputmask", function () { + var $input = $(this), input = this; + if (opts.clearMaskOnLostFocus) { + if (!$input.hasClass('focus.inputmask') && input._valueGet() != $input.attr("placeholder")) { + if (input._valueGet() == getActiveBufferTemplate().join('') || input._valueGet() == '') + input._valueSet(''); + else { //clearout optional tail of the mask + clearOptionalTail(input); + } + } + } + }).bind("click.inputmask", function () { + var input = this; + setTimeout(function () { + var selectedCaret = caret(input), buffer = getActiveBuffer(); + if (selectedCaret.begin == selectedCaret.end) { + var clickPosition = isRTL ? TranslatePosition(selectedCaret.begin) : selectedCaret.begin, + lvp = getActiveMaskSet()["lastValidPosition"], + lastPosition; + if (opts.isNumeric) { + lastPosition = opts.skipRadixDance === false && opts.radixPoint != "" && $.inArray(opts.radixPoint, buffer) != -1 ? + (opts.numericInput ? seekNext($.inArray(opts.radixPoint, buffer)) : $.inArray(opts.radixPoint, buffer)) : + seekNext(lvp); + } else { + lastPosition = seekNext(lvp); + } + if (clickPosition < lastPosition) { + if (isMask(clickPosition)) + caret(input, clickPosition); + else caret(input, seekNext(clickPosition)); + } else + caret(input, lastPosition); + } + }, 0); + }).bind('dblclick.inputmask', function () { + var input = this; + setTimeout(function () { + caret(input, 0, seekNext(getActiveMaskSet()["lastValidPosition"])); + }, 0); + }).bind(pasteEvent + ".inputmask dragdrop.inputmask drop.inputmask", function (e) { + if (skipInputEvent === true) { + skipInputEvent = false; + return true; + } + var input = this, $input = $(input); + + //paste event for IE8 and lower I guess ;-) + if (e.type == "propertychange" && input._valueGet().length <= getMaskLength()) { + return true; + } + setTimeout(function () { + var pasteValue = opts.onBeforePaste != undefined ? opts.onBeforePaste.call(this, input._valueGet()) : input._valueGet(); + checkVal(input, true, false, pasteValue.split(''), true); + if (isComplete(getActiveBuffer()) === true) + $input.trigger("complete"); + $input.click(); + }, 0); + }).bind('setvalue.inputmask', function () { + var input = this; + checkVal(input, true); + valueOnFocus = getActiveBuffer().join(''); + if (input._valueGet() == getActiveBufferTemplate().join('')) + input._valueSet(''); + }).bind('complete.inputmask', opts.oncomplete + ).bind('incomplete.inputmask', opts.onincomplete + ).bind('cleared.inputmask', opts.oncleared + ).bind("keyup.inputmask", keyupEvent); + + if (androidchrome) { + $el.bind("input.inputmask", inputEvent); + } else { + $el.bind("keydown.inputmask", keydownEvent + ).bind("keypress.inputmask", keypressEvent); + } + + if (msie10) + $el.bind("input.inputmask", inputEvent); + + //apply mask + checkVal(el, true, false); + valueOnFocus = getActiveBuffer().join(''); + // Wrap document.activeElement in a try/catch block since IE9 throw "Unspecified error" if document.activeElement is undefined when we are in an IFrame. + var activeElement; + try { + activeElement = document.activeElement; + } catch (e) { + } + if (activeElement === el) { //position the caret when in focus + $el.addClass('focus.inputmask'); + caret(el, seekNext(getActiveMaskSet()["lastValidPosition"])); + } else if (opts.clearMaskOnLostFocus) { + if (getActiveBuffer().join('') == getActiveBufferTemplate().join('')) { + el._valueSet(''); + } else { + clearOptionalTail(el); + } + } else { + writeBuffer(el, getActiveBuffer()); + } + + installEventRuler(el); + } + } + + //action object + if (actionObj != undefined) { + switch (actionObj["action"]) { + case "isComplete": + return isComplete(actionObj["buffer"]); + case "unmaskedvalue": + isRTL = actionObj["$input"].data('_inputmask')['isRTL']; + return unmaskedvalue(actionObj["$input"], actionObj["skipDatepickerCheck"]); + case "mask": + mask(actionObj["el"]); + break; + case "format": + $el = $({}); + $el.data('_inputmask', { + 'masksets': masksets, + 'activeMasksetIndex': activeMasksetIndex, + 'opts': opts, + 'isRTL': opts.numericInput + }); + if (opts.numericInput) { + opts.isNumeric = opts.numericInput; + isRTL = true; + } + + checkVal($el, false, false, actionObj["value"].split(''), true); + return getActiveBuffer().join(''); + } + } + }; + + $.inputmask = { + //options default + defaults: { + placeholder: "_", + optionalmarker: { start: "[", end: "]" }, + quantifiermarker: { start: "{", end: "}" }, + groupmarker: { start: "(", end: ")" }, + escapeChar: "\\", + mask: null, + oncomplete: $.noop, //executes when the mask is complete + onincomplete: $.noop, //executes when the mask is incomplete and focus is lost + oncleared: $.noop, //executes when the mask is cleared + repeat: 0, //repetitions of the mask: * ~ forever, otherwise specify an integer + greedy: true, //true: allocated buffer for the mask and repetitions - false: allocate only if needed + autoUnmask: false, //automatically unmask when retrieving the value with $.fn.val or value if the browser supports __lookupGetter__ or getOwnPropertyDescriptor + clearMaskOnLostFocus: true, + insertMode: true, //insert the input or overwrite the input + clearIncomplete: false, //clear the incomplete input on blur + aliases: {}, //aliases definitions => see jquery.inputmask.extensions.js + onKeyUp: $.noop, //override to implement autocomplete on certain keys for example + onKeyDown: $.noop, //override to implement autocomplete on certain keys for example + onBeforePaste: undefined, //executes before masking the pasted value to allow preprocessing of the pasted value. args => pastedValue => return processedValue + onUnMask: undefined, //executes after unmasking to allow postprocessing of the unmaskedvalue. args => maskedValue, unmaskedValue + showMaskOnFocus: true, //show the mask-placeholder when the input has focus + showMaskOnHover: true, //show the mask-placeholder when hovering the empty input + onKeyValidation: $.noop, //executes on every key-press with the result of isValid. Params: result, opts + skipOptionalPartCharacter: " ", //a character which can be used to skip an optional part of a mask + showTooltip: false, //show the activemask as tooltip + numericInput: false, //numericInput input direction style (input shifts to the left while holding the caret position) + //numeric basic properties + isNumeric: false, //enable numeric features + radixPoint: "", //".", // | "," + skipRadixDance: false, //disable radixpoint caret positioning + rightAlignNumerics: true, //align numerics to the right + //numeric basic properties + definitions: { + '9': { + validator: "[0-9]", + cardinality: 1 + }, + 'a': { + validator: "[A-Za-z\u0410-\u044F\u0401\u0451]", + cardinality: 1 + }, + '*': { + validator: "[A-Za-z\u0410-\u044F\u0401\u04510-9]", + cardinality: 1 + } + }, + keyCode: { + ALT: 18, BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, COMMAND: 91, COMMAND_LEFT: 91, COMMAND_RIGHT: 93, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, MENU: 93, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, + NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38, WINDOWS: 91 + }, + //specify keycodes which should not be considered in the keypress event, otherwise the preventDefault will stop their default behavior especially in FF + ignorables: [8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], + getMaskLength: function (buffer, greedy, repeat, currentBuffer, opts) { + var calculatedLength = buffer.length; + if (!greedy) { + if (repeat == "*") { + calculatedLength = currentBuffer.length + 1; + } else if (repeat > 1) { + calculatedLength += (buffer.length * (repeat - 1)); + } + } + return calculatedLength; + } + }, + escapeRegex: function (str) { + var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\']; + return str.replace(new RegExp('(\\' + specials.join('|\\') + ')', 'gim'), '\\$1'); + }, + format: function (value, options) { + var opts = $.extend(true, {}, $.inputmask.defaults, options); + resolveAlias(opts.alias, options, opts); + return maskScope(generateMaskSets(opts), 0, opts, { "action": "format", "value": value }); + } + }; + + $.fn.inputmask = function (fn, options) { + var opts = $.extend(true, {}, $.inputmask.defaults, options), + masksets, + activeMasksetIndex = 0; + + if (typeof fn === "string") { + switch (fn) { + case "mask": + //resolve possible aliases given by options + resolveAlias(opts.alias, options, opts); + masksets = generateMaskSets(opts); + if (masksets.length == 0) { return this; } + + return this.each(function () { + maskScope($.extend(true, {}, masksets), 0, opts, { "action": "mask", "el": this }); + }); + case "unmaskedvalue": + var $input = $(this), input = this; + if ($input.data('_inputmask')) { + masksets = $input.data('_inputmask')['masksets']; + activeMasksetIndex = $input.data('_inputmask')['activeMasksetIndex']; + opts = $input.data('_inputmask')['opts']; + return maskScope(masksets, activeMasksetIndex, opts, { "action": "unmaskedvalue", "$input": $input }); + } else return $input.val(); + case "remove": + return this.each(function () { + var $input = $(this), input = this; + if ($input.data('_inputmask')) { + masksets = $input.data('_inputmask')['masksets']; + activeMasksetIndex = $input.data('_inputmask')['activeMasksetIndex']; + opts = $input.data('_inputmask')['opts']; + //writeout the unmaskedvalue + input._valueSet(maskScope(masksets, activeMasksetIndex, opts, { "action": "unmaskedvalue", "$input": $input, "skipDatepickerCheck": true })); + //clear data + $input.removeData('_inputmask'); + //unbind all events + $input.unbind(".inputmask"); + $input.removeClass('focus.inputmask'); + //restore the value property + var valueProperty; + if (Object.getOwnPropertyDescriptor) + valueProperty = Object.getOwnPropertyDescriptor(input, "value"); + if (valueProperty && valueProperty.get) { + if (input._valueGet) { + Object.defineProperty(input, "value", { + get: input._valueGet, + set: input._valueSet + }); + } + } else if (document.__lookupGetter__ && input.__lookupGetter__("value")) { + if (input._valueGet) { + input.__defineGetter__("value", input._valueGet); + input.__defineSetter__("value", input._valueSet); + } + } + try { //try catch needed for IE7 as it does not supports deleting fns + delete input._valueGet; + delete input._valueSet; + } catch (e) { + input._valueGet = undefined; + input._valueSet = undefined; + + } + } + }); + break; + case "getemptymask": //return the default (empty) mask value, usefull for setting the default value in validation + if (this.data('_inputmask')) { + masksets = this.data('_inputmask')['masksets']; + activeMasksetIndex = this.data('_inputmask')['activeMasksetIndex']; + return masksets[activeMasksetIndex]['_buffer'].join(''); + } + else return ""; + case "hasMaskedValue": //check wheter the returned value is masked or not; currently only works reliable when using jquery.val fn to retrieve the value + return this.data('_inputmask') ? !this.data('_inputmask')['opts'].autoUnmask : false; + case "isComplete": + masksets = this.data('_inputmask')['masksets']; + activeMasksetIndex = this.data('_inputmask')['activeMasksetIndex']; + opts = this.data('_inputmask')['opts']; + return maskScope(masksets, activeMasksetIndex, opts, { "action": "isComplete", "buffer": this[0]._valueGet().split('') }); + case "getmetadata": //return mask metadata if exists + if (this.data('_inputmask')) { + masksets = this.data('_inputmask')['masksets']; + activeMasksetIndex = this.data('_inputmask')['activeMasksetIndex']; + return masksets[activeMasksetIndex]['metadata']; + } + else return undefined; + default: + //check if the fn is an alias + if (!resolveAlias(fn, options, opts)) { + //maybe fn is a mask so we try + //set mask + opts.mask = fn; + } + masksets = generateMaskSets(opts); + if (masksets.length == 0) { return this; } + return this.each(function () { + maskScope($.extend(true, {}, masksets), activeMasksetIndex, opts, { "action": "mask", "el": this }); + }); + + break; + } + } else if (typeof fn == "object") { + opts = $.extend(true, {}, $.inputmask.defaults, fn); + + resolveAlias(opts.alias, fn, opts); //resolve aliases + masksets = generateMaskSets(opts); + if (masksets.length == 0) { return this; } + return this.each(function () { + maskScope($.extend(true, {}, masksets), activeMasksetIndex, opts, { "action": "mask", "el": this }); + }); + } else if (fn == undefined) { + //look for data-inputmask atribute - the attribute should only contain optipns + return this.each(function () { + var attrOptions = $(this).attr("data-inputmask"); + if (attrOptions && attrOptions != "") { + try { + attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'); + var dataoptions = $.parseJSON("{" + attrOptions + "}"); + $.extend(true, dataoptions, options); + opts = $.extend(true, {}, $.inputmask.defaults, dataoptions); + resolveAlias(opts.alias, dataoptions, opts); + opts.alias = undefined; + $(this).inputmask(opts); + } catch (ex) { } //need a more relax parseJSON + } + }); + } + }; + } +})(jQuery); diff --git a/public/assets/js/plugins/input-mask/jquery.inputmask.numeric.extensions.js b/public/assets/js/plugins/input-mask/jquery.inputmask.numeric.extensions.js new file mode 100755 index 00000000..2efb33f4 --- /dev/null +++ b/public/assets/js/plugins/input-mask/jquery.inputmask.numeric.extensions.js @@ -0,0 +1,177 @@ +/* +Input Mask plugin extensions +http://github.com/RobinHerbots/jquery.inputmask +Copyright (c) 2010 - 2014 Robin Herbots +Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) +Version: 0.0.0 + +Optional extensions on the jquery.inputmask base +*/ +(function ($) { + //number aliases + $.extend($.inputmask.defaults.aliases, { + 'decimal': { + mask: "~", + placeholder: "", + repeat: "*", + greedy: false, + numericInput: false, + isNumeric: true, + digits: "*", //number of fractionalDigits + groupSeparator: "",//",", // | "." + radixPoint: ".", + groupSize: 3, + autoGroup: false, + allowPlus: true, + allowMinus: true, + //todo + integerDigits: "*", //number of integerDigits + defaultValue: "", + prefix: "", + suffix: "", + + //todo + getMaskLength: function (buffer, greedy, repeat, currentBuffer, opts) { //custom getMaskLength to take the groupSeparator into account + var calculatedLength = buffer.length; + + if (!greedy) { + if (repeat == "*") { + calculatedLength = currentBuffer.length + 1; + } else if (repeat > 1) { + calculatedLength += (buffer.length * (repeat - 1)); + } + } + + var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator); + var escapedRadixPoint = $.inputmask.escapeRegex.call(this, opts.radixPoint); + var currentBufferStr = currentBuffer.join(''), strippedBufferStr = currentBufferStr.replace(new RegExp(escapedGroupSeparator, "g"), "").replace(new RegExp(escapedRadixPoint), ""), + groupOffset = currentBufferStr.length - strippedBufferStr.length; + return calculatedLength + groupOffset; + }, + postFormat: function (buffer, pos, reformatOnly, opts) { + if (opts.groupSeparator == "") return pos; + var cbuf = buffer.slice(), + radixPos = $.inArray(opts.radixPoint, buffer); + if (!reformatOnly) { + cbuf.splice(pos, 0, "?"); //set position indicator + } + var bufVal = cbuf.join(''); + if (opts.autoGroup || (reformatOnly && bufVal.indexOf(opts.groupSeparator) != -1)) { + var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator); + bufVal = bufVal.replace(new RegExp(escapedGroupSeparator, "g"), ''); + var radixSplit = bufVal.split(opts.radixPoint); + bufVal = radixSplit[0]; + var reg = new RegExp('([-\+]?[\\d\?]+)([\\d\?]{' + opts.groupSize + '})'); + while (reg.test(bufVal)) { + bufVal = bufVal.replace(reg, '$1' + opts.groupSeparator + '$2'); + bufVal = bufVal.replace(opts.groupSeparator + opts.groupSeparator, opts.groupSeparator); + } + if (radixSplit.length > 1) + bufVal += opts.radixPoint + radixSplit[1]; + } + buffer.length = bufVal.length; //align the length + for (var i = 0, l = bufVal.length; i < l; i++) { + buffer[i] = bufVal.charAt(i); + } + var newPos = $.inArray("?", buffer); + if (!reformatOnly) buffer.splice(newPos, 1); + + return reformatOnly ? pos : newPos; + }, + regex: { + number: function (opts) { + var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator); + var escapedRadixPoint = $.inputmask.escapeRegex.call(this, opts.radixPoint); + var digitExpression = isNaN(opts.digits) ? opts.digits : '{0,' + opts.digits + '}'; + var signedExpression = opts.allowPlus || opts.allowMinus ? "[" + (opts.allowPlus ? "\+" : "") + (opts.allowMinus ? "-" : "") + "]?" : ""; + return new RegExp("^" + signedExpression + "(\\d+|\\d{1," + opts.groupSize + "}((" + escapedGroupSeparator + "\\d{" + opts.groupSize + "})?)+)(" + escapedRadixPoint + "\\d" + digitExpression + ")?$"); + } + }, + onKeyDown: function (e, buffer, opts) { + var $input = $(this), input = this; + if (e.keyCode == opts.keyCode.TAB) { + var radixPosition = $.inArray(opts.radixPoint, buffer); + if (radixPosition != -1) { + var masksets = $input.data('_inputmask')['masksets']; + var activeMasksetIndex = $input.data('_inputmask')['activeMasksetIndex']; + for (var i = 1; i <= opts.digits && i < opts.getMaskLength(masksets[activeMasksetIndex]["_buffer"], masksets[activeMasksetIndex]["greedy"], masksets[activeMasksetIndex]["repeat"], buffer, opts) ; i++) { + if (buffer[radixPosition + i] == undefined || buffer[radixPosition + i] == "") buffer[radixPosition + i] = "0"; + } + input._valueSet(buffer.join('')); + } + } else if (e.keyCode == opts.keyCode.DELETE || e.keyCode == opts.keyCode.BACKSPACE) { + opts.postFormat(buffer, 0, true, opts); + input._valueSet(buffer.join('')); + return true; + } + }, + definitions: { + '~': { //real number + validator: function (chrs, buffer, pos, strict, opts) { + if (chrs == "") return false; + if (!strict && pos <= 1 && buffer[0] === '0' && new RegExp("[\\d-]").test(chrs) && buffer.join('').length == 1) { //handle first char + buffer[0] = ""; + return { "pos": 0 }; + } + + var cbuf = strict ? buffer.slice(0, pos) : buffer.slice(); + + cbuf.splice(pos, 0, chrs); + var bufferStr = cbuf.join(''); + + //strip groupseparator + var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator); + bufferStr = bufferStr.replace(new RegExp(escapedGroupSeparator, "g"), ''); + + var isValid = opts.regex.number(opts).test(bufferStr); + if (!isValid) { + //let's help the regex a bit + bufferStr += "0"; + isValid = opts.regex.number(opts).test(bufferStr); + if (!isValid) { + //make a valid group + var lastGroupSeparator = bufferStr.lastIndexOf(opts.groupSeparator); + for (var i = bufferStr.length - lastGroupSeparator; i <= 3; i++) { + bufferStr += "0"; + } + + isValid = opts.regex.number(opts).test(bufferStr); + if (!isValid && !strict) { + if (chrs == opts.radixPoint) { + isValid = opts.regex.number(opts).test("0" + bufferStr + "0"); + if (isValid) { + buffer[pos] = "0"; + pos++; + return { "pos": pos }; + } + } + } + } + } + + if (isValid != false && !strict && chrs != opts.radixPoint) { + var newPos = opts.postFormat(buffer, pos, false, opts); + return { "pos": newPos }; + } + + return isValid; + }, + cardinality: 1, + prevalidator: null + } + }, + insertMode: true, + autoUnmask: false + }, + 'integer': { + regex: { + number: function (opts) { + var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator); + var signedExpression = opts.allowPlus || opts.allowMinus ? "[" + (opts.allowPlus ? "\+" : "") + (opts.allowMinus ? "-" : "") + "]?" : ""; + return new RegExp("^" + signedExpression + "(\\d+|\\d{1," + opts.groupSize + "}((" + escapedGroupSeparator + "\\d{" + opts.groupSize + "})?)+)$"); + } + }, + alias: "decimal" + } + }); +})(jQuery); diff --git a/public/assets/js/plugins/input-mask/jquery.inputmask.phone.extensions.js b/public/assets/js/plugins/input-mask/jquery.inputmask.phone.extensions.js new file mode 100755 index 00000000..554d4ef1 --- /dev/null +++ b/public/assets/js/plugins/input-mask/jquery.inputmask.phone.extensions.js @@ -0,0 +1,50 @@ +/* +Input Mask plugin extensions +http://github.com/RobinHerbots/jquery.inputmask +Copyright (c) 2010 - 2014 Robin Herbots +Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) +Version: 0.0.0 + +Phone extension. +When using this extension make sure you specify the correct url to get the masks + + $(selector).inputmask("phone", { + url: "Scripts/jquery.inputmask/phone-codes/phone-codes.json", + onKeyValidation: function () { //show some metadata in the console + console.log($(this).inputmask("getmetadata")["name_en"]); + } + }); + + +*/ +(function ($) { + $.extend($.inputmask.defaults.aliases, { + 'phone': { + url: "phone-codes/phone-codes.json", + mask: function (opts) { + opts.definitions = { + 'p': { + validator: function () { return false; }, + cardinality: 1 + }, + '#': { + validator: "[0-9]", + cardinality: 1 + } + }; + var maskList = []; + $.ajax({ + url: opts.url, + async: false, + dataType: 'json', + success: function (response) { + maskList = response; + } + }); + + maskList.splice(0, 0, "+p(ppp)ppp-pppp"); + return maskList; + } + } + }); +})(jQuery); diff --git a/public/assets/js/plugins/input-mask/jquery.inputmask.regex.extensions.js b/public/assets/js/plugins/input-mask/jquery.inputmask.regex.extensions.js new file mode 100755 index 00000000..c5bc30f3 --- /dev/null +++ b/public/assets/js/plugins/input-mask/jquery.inputmask.regex.extensions.js @@ -0,0 +1,170 @@ +/* +Input Mask plugin extensions +http://github.com/RobinHerbots/jquery.inputmask +Copyright (c) 2010 - 2014 Robin Herbots +Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) +Version: 0.0.0 + +Regex extensions on the jquery.inputmask base +Allows for using regular expressions as a mask +*/ +(function ($) { + $.extend($.inputmask.defaults.aliases, { // $(selector).inputmask("Regex", { regex: "[0-9]*"} + 'Regex': { + mask: "r", + greedy: false, + repeat: "*", + regex: null, + regexTokens: null, + //Thx to https://github.com/slevithan/regex-colorizer for the tokenizer regex + tokenizer: /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, + quantifierFilter: /[0-9]+[^,]/, + definitions: { + 'r': { + validator: function (chrs, buffer, pos, strict, opts) { + function regexToken() { + this.matches = []; + this.isGroup = false; + this.isQuantifier = false; + this.isLiteral = false; + } + function analyseRegex() { + var currentToken = new regexToken(), match, m, opengroups = []; + + opts.regexTokens = []; + + // The tokenizer regex does most of the tokenization grunt work + while (match = opts.tokenizer.exec(opts.regex)) { + m = match[0]; + switch (m.charAt(0)) { + case "[": // Character class + case "\\": // Escape or backreference + if (opengroups.length > 0) { + opengroups[opengroups.length - 1]["matches"].push(m); + } else { + currentToken.matches.push(m); + } + break; + case "(": // Group opening + if (!currentToken.isGroup && currentToken.matches.length > 0) + opts.regexTokens.push(currentToken); + currentToken = new regexToken(); + currentToken.isGroup = true; + opengroups.push(currentToken); + break; + case ")": // Group closing + var groupToken = opengroups.pop(); + if (opengroups.length > 0) { + opengroups[opengroups.length - 1]["matches"].push(groupToken); + } else { + opts.regexTokens.push(groupToken); + currentToken = new regexToken(); + } + break; + case "{": //Quantifier + var quantifier = new regexToken(); + quantifier.isQuantifier = true; + quantifier.matches.push(m); + if (opengroups.length > 0) { + opengroups[opengroups.length - 1]["matches"].push(quantifier); + } else { + currentToken.matches.push(quantifier); + } + break; + default: + // Vertical bar (alternator) + // ^ or $ anchor + // Dot (.) + // Literal character sequence + var literal = new regexToken(); + literal.isLiteral = true; + literal.matches.push(m); + if (opengroups.length > 0) { + opengroups[opengroups.length - 1]["matches"].push(literal); + } else { + currentToken.matches.push(literal); + } + } + } + + if (currentToken.matches.length > 0) + opts.regexTokens.push(currentToken); + }; + + function validateRegexToken(token, fromGroup) { + var isvalid = false; + if (fromGroup) { + regexPart += "("; + openGroupCount++; + } + for (var mndx = 0; mndx < token["matches"].length; mndx++) { + var matchToken = token["matches"][mndx]; + if (matchToken["isGroup"] == true) { + isvalid = validateRegexToken(matchToken, true); + } else if (matchToken["isQuantifier"] == true) { + matchToken = matchToken["matches"][0]; + var quantifierMax = opts.quantifierFilter.exec(matchToken)[0].replace("}", ""); + var testExp = regexPart + "{1," + quantifierMax + "}"; //relax quantifier validation + for (var j = 0; j < openGroupCount; j++) { + testExp += ")"; + } + var exp = new RegExp("^(" + testExp + ")$"); + isvalid = exp.test(bufferStr); + regexPart += matchToken; + } else if (matchToken["isLiteral"] == true) { + matchToken = matchToken["matches"][0]; + var testExp = regexPart, openGroupCloser = ""; + for (var j = 0; j < openGroupCount; j++) { + openGroupCloser += ")"; + } + for (var k = 0; k < matchToken.length; k++) { //relax literal validation + testExp = (testExp + matchToken[k]).replace(/\|$/, ""); + var exp = new RegExp("^(" + testExp + openGroupCloser + ")$"); + isvalid = exp.test(bufferStr); + if (isvalid) break; + } + regexPart += matchToken; + //console.log(bufferStr + " " + exp + " " + isvalid); + } else { + regexPart += matchToken; + var testExp = regexPart.replace(/\|$/, ""); + for (var j = 0; j < openGroupCount; j++) { + testExp += ")"; + } + var exp = new RegExp("^(" + testExp + ")$"); + isvalid = exp.test(bufferStr); + //console.log(bufferStr + " " + exp + " " + isvalid); + } + if (isvalid) break; + } + + if (fromGroup) { + regexPart += ")"; + openGroupCount--; + } + + return isvalid; + } + + + if (opts.regexTokens == null) { + analyseRegex(); + } + + var cbuffer = buffer.slice(), regexPart = "", isValid = false, openGroupCount = 0; + cbuffer.splice(pos, 0, chrs); + var bufferStr = cbuffer.join(''); + for (var i = 0; i < opts.regexTokens.length; i++) { + var regexToken = opts.regexTokens[i]; + isValid = validateRegexToken(regexToken, regexToken["isGroup"]); + if (isValid) break; + } + + return isValid; + }, + cardinality: 1 + } + } + } + }); +})(jQuery); diff --git a/public/assets/js/plugins/input-mask/phone-codes/phone-be.json b/public/assets/js/plugins/input-mask/phone-codes/phone-be.json new file mode 100755 index 00000000..b510b784 --- /dev/null +++ b/public/assets/js/plugins/input-mask/phone-codes/phone-be.json @@ -0,0 +1,45 @@ +[ + { "mask": "+32(53)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Aalst (Alost)" }, + { "mask": "+32(3)###-##-##", "cc": "BE", "cd": "Belgium", "city": "Antwerpen (Anvers)" }, + { "mask": "+32(63)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Arlon" }, + { "mask": "+32(67)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Ath" }, + { "mask": "+32(50)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Brugge (Bruges)" }, + { "mask": "+32(2)###-##-##", "cc": "BE", "cd": "Belgium", "city": "Brussel/Bruxelles (Brussels)" }, + { "mask": "+32(71)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Charleroi" }, + { "mask": "+32(60)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Chimay" }, + { "mask": "+32(83)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Ciney" }, + { "mask": "+32(52)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Dendermonde" }, + { "mask": "+32(13)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Diest" }, + { "mask": "+32(82)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Dinant" }, + { "mask": "+32(86)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Durbuy" }, + { "mask": "+32(89)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Genk" }, + { "mask": "+32(9)###-##-##", "cc": "BE", "cd": "Belgium", "city": "Gent (Gand)" }, + { "mask": "+32(11)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Hasselt" }, + { "mask": "+32(14)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Herentals" }, + { "mask": "+32(85)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Huy (Hoei)" }, + { "mask": "+32(64)##-##-##", "cc": "BE", "cd": "Belgium", "city": "La Louvière" }, + { "mask": "+32(16)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Leuven (Louvain)" }, + { "mask": "+32(61)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Libramont" }, + { "mask": "+32(4)###-##-##", "cc": "BE", "cd": "Belgium", "city": "Liège (Luik)" }, + { "mask": "+32(15)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Mechelen (Malines)" }, + { "mask": "+32(47#)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Mobile Phones" }, + { "mask": "+32(48#)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Mobile Phones" }, + { "mask": "+32(49#)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Mobile Phones" }, + { "mask": "+32(65)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Mons (Bergen)" }, + { "mask": "+32(81)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Namur (Namen)" }, + { "mask": "+32(58)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Nieuwpoort (Nieuport)" }, + { "mask": "+32(54)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Ninove" }, + { "mask": "+32(67)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Nivelles (Nijvel)" }, + { "mask": "+32(59)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Oostende (Ostende)" }, + { "mask": "+32(51)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Roeselare (Roulers)" }, + { "mask": "+32(55)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Ronse" }, + { "mask": "+32(80)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Stavelot" }, + { "mask": "+32(12)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Tongeren (Tongres)" }, + { "mask": "+32(69)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Tounai" }, + { "mask": "+32(14)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Turnhout" }, + { "mask": "+32(87)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Verviers" }, + { "mask": "+32(58)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Veurne" }, + { "mask": "+32(19)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Wareme" }, + { "mask": "+32(10)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Wavre (Waver)" }, + { "mask": "+32(50)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Zeebrugge" } +] \ No newline at end of file diff --git a/public/assets/js/plugins/input-mask/phone-codes/phone-codes.json b/public/assets/js/plugins/input-mask/phone-codes/phone-codes.json new file mode 100755 index 00000000..15bbd3a9 --- /dev/null +++ b/public/assets/js/plugins/input-mask/phone-codes/phone-codes.json @@ -0,0 +1,294 @@ +[ + { "mask": "+247-####", "cc": "AC", "name_en": "Ascension", "desc_en": "", "name_ru": "Остров Вознесения", "desc_ru": "" }, + { "mask": "+376-###-###", "cc": "AD", "name_en": "Andorra", "desc_en": "", "name_ru": "Андорра", "desc_ru": "" }, + { "mask": "+971-5#-###-####", "cc": "AE", "name_en": "United Arab Emirates", "desc_en": "mobile", "name_ru": "Объединенные Арабские Эмираты", "desc_ru": "мобильные" }, + { "mask": "+971-#-###-####", "cc": "AE", "name_en": "United Arab Emirates", "desc_en": "", "name_ru": "Объединенные Арабские Эмираты", "desc_ru": "" }, + { "mask": "+93-##-###-####", "cc": "AF", "name_en": "Afghanistan", "desc_en": "", "name_ru": "Афганистан", "desc_ru": "" }, + { "mask": "+1(268)###-####", "cc": "AG", "name_en": "Antigua & Barbuda", "desc_en": "", "name_ru": "Антигуа и Барбуда", "desc_ru": "" }, + { "mask": "+1(264)###-####", "cc": "AI", "name_en": "Anguilla", "desc_en": "", "name_ru": "Ангилья", "desc_ru": "" }, + { "mask": "+355(###)###-###", "cc": "AL", "name_en": "Albania", "desc_en": "", "name_ru": "Албания", "desc_ru": "" }, + { "mask": "+374-##-###-###", "cc": "AM", "name_en": "Armenia", "desc_en": "", "name_ru": "Армения", "desc_ru": "" }, + { "mask": "+599-###-####", "cc": "AN", "name_en": "Caribbean Netherlands", "desc_en": "", "name_ru": "Карибские Нидерланды", "desc_ru": "" }, + { "mask": "+599-###-####", "cc": "AN", "name_en": "Netherlands Antilles", "desc_en": "", "name_ru": "Нидерландские Антильские острова", "desc_ru": "" }, + { "mask": "+599-9###-####", "cc": "AN", "name_en": "Netherlands Antilles", "desc_en": "Curacao", "name_ru": "Нидерландские Антильские острова", "desc_ru": "Кюрасао" }, + { "mask": "+244(###)###-###", "cc": "AO", "name_en": "Angola", "desc_en": "", "name_ru": "Ангола", "desc_ru": "" }, + { "mask": "+672-1##-###", "cc": "AQ", "name_en": "Australian bases in Antarctica", "desc_en": "", "name_ru": "Австралийская антарктическая база", "desc_ru": "" }, + { "mask": "+54(###)###-####", "cc": "AR", "name_en": "Argentina", "desc_en": "", "name_ru": "Аргентина", "desc_ru": "" }, + { "mask": "+1(684)###-####", "cc": "AS", "name_en": "American Samoa", "desc_en": "", "name_ru": "Американское Самоа", "desc_ru": "" }, + { "mask": "+43(###)###-####", "cc": "AT", "name_en": "Austria", "desc_en": "", "name_ru": "Австрия", "desc_ru": "" }, + { "mask": "+61-#-####-####", "cc": "AU", "name_en": "Australia", "desc_en": "", "name_ru": "Австралия", "desc_ru": "" }, + { "mask": "+297-###-####", "cc": "AW", "name_en": "Aruba", "desc_en": "", "name_ru": "Аруба", "desc_ru": "" }, + { "mask": "+994-##-###-##-##", "cc": "AZ", "name_en": "Azerbaijan", "desc_en": "", "name_ru": "Азербайджан", "desc_ru": "" }, + { "mask": "+387-##-#####", "cc": "BA", "name_en": "Bosnia and Herzegovina", "desc_en": "", "name_ru": "Босния и Герцеговина", "desc_ru": "" }, + { "mask": "+387-##-####", "cc": "BA", "name_en": "Bosnia and Herzegovina", "desc_en": "", "name_ru": "Босния и Герцеговина", "desc_ru": "" }, + { "mask": "+1(246)###-####", "cc": "BB", "name_en": "Barbados", "desc_en": "", "name_ru": "Барбадос", "desc_ru": "" }, + { "mask": "+880-##-###-###", "cc": "BD", "name_en": "Bangladesh", "desc_en": "", "name_ru": "Бангладеш", "desc_ru": "" }, + { "mask": "+32(###)###-###", "cc": "BE", "name_en": "Belgium", "desc_en": "", "name_ru": "Бельгия", "desc_ru": "" }, + { "mask": "+226-##-##-####", "cc": "BF", "name_en": "Burkina Faso", "desc_en": "", "name_ru": "Буркина Фасо", "desc_ru": "" }, + { "mask": "+359(###)###-###", "cc": "BG", "name_en": "Bulgaria", "desc_en": "", "name_ru": "Болгария", "desc_ru": "" }, + { "mask": "+973-####-####", "cc": "BH", "name_en": "Bahrain", "desc_en": "", "name_ru": "Бахрейн", "desc_ru": "" }, + { "mask": "+257-##-##-####", "cc": "BI", "name_en": "Burundi", "desc_en": "", "name_ru": "Бурунди", "desc_ru": "" }, + { "mask": "+229-##-##-####", "cc": "BJ", "name_en": "Benin", "desc_en": "", "name_ru": "Бенин", "desc_ru": "" }, + { "mask": "+1(441)###-####", "cc": "BM", "name_en": "Bermuda", "desc_en": "", "name_ru": "Бермудские острова", "desc_ru": "" }, + { "mask": "+673-###-####", "cc": "BN", "name_en": "Brunei Darussalam", "desc_en": "", "name_ru": "Бруней-Даруссалам", "desc_ru": "" }, + { "mask": "+591-#-###-####", "cc": "BO", "name_en": "Bolivia", "desc_en": "", "name_ru": "Боливия", "desc_ru": "" }, + { "mask": "+55-##-####[#]-####", "cc": "BR", "name_en": "Brazil", "desc_en": "", "name_ru": "Бразилия", "desc_ru": "" }, + { "mask": "+1(242)###-####", "cc": "BS", "name_en": "Bahamas", "desc_en": "", "name_ru": "Багамские Острова", "desc_ru": "" }, + { "mask": "+975-17-###-###", "cc": "BT", "name_en": "Bhutan", "desc_en": "", "name_ru": "Бутан", "desc_ru": "" }, + { "mask": "+975-#-###-###", "cc": "BT", "name_en": "Bhutan", "desc_en": "", "name_ru": "Бутан", "desc_ru": "" }, + { "mask": "+267-##-###-###", "cc": "BW", "name_en": "Botswana", "desc_en": "", "name_ru": "Ботсвана", "desc_ru": "" }, + { "mask": "+375(##)###-##-##", "cc": "BY", "name_en": "Belarus", "desc_en": "", "name_ru": "Беларусь (Белоруссия)", "desc_ru": "" }, + { "mask": "+501-###-####", "cc": "BZ", "name_en": "Belize", "desc_en": "", "name_ru": "Белиз", "desc_ru": "" }, + { "mask": "+243(###)###-###", "cc": "CD", "name_en": "Dem. Rep. Congo", "desc_en": "", "name_ru": "Дем. Респ. Конго (Киншаса)", "desc_ru": "" }, + { "mask": "+236-##-##-####", "cc": "CF", "name_en": "Central African Republic", "desc_en": "", "name_ru": "Центральноафриканская Республика", "desc_ru": "" }, + { "mask": "+242-##-###-####", "cc": "CG", "name_en": "Congo (Brazzaville)", "desc_en": "", "name_ru": "Конго (Браззавиль)", "desc_ru": "" }, + { "mask": "+41-##-###-####", "cc": "CH", "name_en": "Switzerland", "desc_en": "", "name_ru": "Швейцария", "desc_ru": "" }, + { "mask": "+225-##-###-###", "cc": "CI", "name_en": "Cote d’Ivoire (Ivory Coast)", "desc_en": "", "name_ru": "Кот-д’Ивуар", "desc_ru": "" }, + { "mask": "+682-##-###", "cc": "CK", "name_en": "Cook Islands", "desc_en": "", "name_ru": "Острова Кука", "desc_ru": "" }, + { "mask": "+56-#-####-####", "cc": "CL", "name_en": "Chile", "desc_en": "", "name_ru": "Чили", "desc_ru": "" }, + { "mask": "+237-####-####", "cc": "CM", "name_en": "Cameroon", "desc_en": "", "name_ru": "Камерун", "desc_ru": "" }, + { "mask": "+86(###)####-####", "cc": "CN", "name_en": "China (PRC)", "desc_en": "", "name_ru": "Китайская Н.Р.", "desc_ru": "" }, + { "mask": "+86(###)####-###", "cc": "CN", "name_en": "China (PRC)", "desc_en": "", "name_ru": "Китайская Н.Р.", "desc_ru": "" }, + { "mask": "+86-##-#####-#####", "cc": "CN", "name_en": "China (PRC)", "desc_en": "", "name_ru": "Китайская Н.Р.", "desc_ru": "" }, + { "mask": "+57(###)###-####", "cc": "CO", "name_en": "Colombia", "desc_en": "", "name_ru": "Колумбия", "desc_ru": "" }, + { "mask": "+506-####-####", "cc": "CR", "name_en": "Costa Rica", "desc_en": "", "name_ru": "Коста-Рика", "desc_ru": "" }, + { "mask": "+53-#-###-####", "cc": "CU", "name_en": "Cuba", "desc_en": "", "name_ru": "Куба", "desc_ru": "" }, + { "mask": "+238(###)##-##", "cc": "CV", "name_en": "Cape Verde", "desc_en": "", "name_ru": "Кабо-Верде", "desc_ru": "" }, + { "mask": "+599-###-####", "cc": "CW", "name_en": "Curacao", "desc_en": "", "name_ru": "Кюрасао", "desc_ru": "" }, + { "mask": "+357-##-###-###", "cc": "CY", "name_en": "Cyprus", "desc_en": "", "name_ru": "Кипр", "desc_ru": "" }, + { "mask": "+420(###)###-###", "cc": "CZ", "name_en": "Czech Republic", "desc_en": "", "name_ru": "Чехия", "desc_ru": "" }, + { "mask": "+49(####)###-####", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, + { "mask": "+49(###)###-####", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, + { "mask": "+49(###)##-####", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, + { "mask": "+49(###)##-###", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, + { "mask": "+49(###)##-##", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, + { "mask": "+49-###-###", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, + { "mask": "+253-##-##-##-##", "cc": "DJ", "name_en": "Djibouti", "desc_en": "", "name_ru": "Джибути", "desc_ru": "" }, + { "mask": "+45-##-##-##-##", "cc": "DK", "name_en": "Denmark", "desc_en": "", "name_ru": "Дания", "desc_ru": "" }, + { "mask": "+1(767)###-####", "cc": "DM", "name_en": "Dominica", "desc_en": "", "name_ru": "Доминика", "desc_ru": "" }, + { "mask": "+1(809)###-####", "cc": "DO", "name_en": "Dominican Republic", "desc_en": "", "name_ru": "Доминиканская Республика", "desc_ru": "" }, + { "mask": "+1(829)###-####", "cc": "DO", "name_en": "Dominican Republic", "desc_en": "", "name_ru": "Доминиканская Республика", "desc_ru": "" }, + { "mask": "+1(849)###-####", "cc": "DO", "name_en": "Dominican Republic", "desc_en": "", "name_ru": "Доминиканская Республика", "desc_ru": "" }, + { "mask": "+213-##-###-####", "cc": "DZ", "name_en": "Algeria", "desc_en": "", "name_ru": "Алжир", "desc_ru": "" }, + { "mask": "+593-##-###-####", "cc": "EC", "name_en": "Ecuador ", "desc_en": "mobile", "name_ru": "Эквадор ", "desc_ru": "мобильные" }, + { "mask": "+593-#-###-####", "cc": "EC", "name_en": "Ecuador", "desc_en": "", "name_ru": "Эквадор", "desc_ru": "" }, + { "mask": "+372-####-####", "cc": "EE", "name_en": "Estonia ", "desc_en": "mobile", "name_ru": "Эстония ", "desc_ru": "мобильные" }, + { "mask": "+372-###-####", "cc": "EE", "name_en": "Estonia", "desc_en": "", "name_ru": "Эстония", "desc_ru": "" }, + { "mask": "+20(###)###-####", "cc": "EG", "name_en": "Egypt", "desc_en": "", "name_ru": "Египет", "desc_ru": "" }, + { "mask": "+291-#-###-###", "cc": "ER", "name_en": "Eritrea", "desc_en": "", "name_ru": "Эритрея", "desc_ru": "" }, + { "mask": "+34(###)###-###", "cc": "ES", "name_en": "Spain", "desc_en": "", "name_ru": "Испания", "desc_ru": "" }, + { "mask": "+251-##-###-####", "cc": "ET", "name_en": "Ethiopia", "desc_en": "", "name_ru": "Эфиопия", "desc_ru": "" }, + { "mask": "+358(###)###-##-##", "cc": "FI", "name_en": "Finland", "desc_en": "", "name_ru": "Финляндия", "desc_ru": "" }, + { "mask": "+679-##-#####", "cc": "FJ", "name_en": "Fiji", "desc_en": "", "name_ru": "Фиджи", "desc_ru": "" }, + { "mask": "+500-#####", "cc": "FK", "name_en": "Falkland Islands", "desc_en": "", "name_ru": "Фолклендские острова", "desc_ru": "" }, + { "mask": "+691-###-####", "cc": "FM", "name_en": "F.S. Micronesia", "desc_en": "", "name_ru": "Ф.Ш. Микронезии", "desc_ru": "" }, + { "mask": "+298-###-###", "cc": "FO", "name_en": "Faroe Islands", "desc_en": "", "name_ru": "Фарерские острова", "desc_ru": "" }, + { "mask": "+262-#####-####", "cc": "FR", "name_en": "Mayotte", "desc_en": "", "name_ru": "Майотта", "desc_ru": "" }, + { "mask": "+33(###)###-###", "cc": "FR", "name_en": "France", "desc_en": "", "name_ru": "Франция", "desc_ru": "" }, + { "mask": "+508-##-####", "cc": "FR", "name_en": "St Pierre & Miquelon", "desc_en": "", "name_ru": "Сен-Пьер и Микелон", "desc_ru": "" }, + { "mask": "+590(###)###-###", "cc": "FR", "name_en": "Guadeloupe", "desc_en": "", "name_ru": "Гваделупа", "desc_ru": "" }, + { "mask": "+241-#-##-##-##", "cc": "GA", "name_en": "Gabon", "desc_en": "", "name_ru": "Габон", "desc_ru": "" }, + { "mask": "+1(473)###-####", "cc": "GD", "name_en": "Grenada", "desc_en": "", "name_ru": "Гренада", "desc_ru": "" }, + { "mask": "+995(###)###-###", "cc": "GE", "name_en": "Rep. of Georgia", "desc_en": "", "name_ru": "Грузия", "desc_ru": "" }, + { "mask": "+594-#####-####", "cc": "GF", "name_en": "Guiana (French)", "desc_en": "", "name_ru": "Фр. Гвиана", "desc_ru": "" }, + { "mask": "+233(###)###-###", "cc": "GH", "name_en": "Ghana", "desc_en": "", "name_ru": "Гана", "desc_ru": "" }, + { "mask": "+350-###-#####", "cc": "GI", "name_en": "Gibraltar", "desc_en": "", "name_ru": "Гибралтар", "desc_ru": "" }, + { "mask": "+299-##-##-##", "cc": "GL", "name_en": "Greenland", "desc_en": "", "name_ru": "Гренландия", "desc_ru": "" }, + { "mask": "+220(###)##-##", "cc": "GM", "name_en": "Gambia", "desc_en": "", "name_ru": "Гамбия", "desc_ru": "" }, + { "mask": "+224-##-###-###", "cc": "GN", "name_en": "Guinea", "desc_en": "", "name_ru": "Гвинея", "desc_ru": "" }, + { "mask": "+240-##-###-####", "cc": "GQ", "name_en": "Equatorial Guinea", "desc_en": "", "name_ru": "Экваториальная Гвинея", "desc_ru": "" }, + { "mask": "+30(###)###-####", "cc": "GR", "name_en": "Greece", "desc_en": "", "name_ru": "Греция", "desc_ru": "" }, + { "mask": "+502-#-###-####", "cc": "GT", "name_en": "Guatemala", "desc_en": "", "name_ru": "Гватемала", "desc_ru": "" }, + { "mask": "+1(671)###-####", "cc": "GU", "name_en": "Guam", "desc_en": "", "name_ru": "Гуам", "desc_ru": "" }, + { "mask": "+245-#-######", "cc": "GW", "name_en": "Guinea-Bissau", "desc_en": "", "name_ru": "Гвинея-Бисау", "desc_ru": "" }, + { "mask": "+592-###-####", "cc": "GY", "name_en": "Guyana", "desc_en": "", "name_ru": "Гайана", "desc_ru": "" }, + { "mask": "+852-####-####", "cc": "HK", "name_en": "Hong Kong", "desc_en": "", "name_ru": "Гонконг", "desc_ru": "" }, + { "mask": "+504-####-####", "cc": "HN", "name_en": "Honduras", "desc_en": "", "name_ru": "Гондурас", "desc_ru": "" }, + { "mask": "+385-##-###-###", "cc": "HR", "name_en": "Croatia", "desc_en": "", "name_ru": "Хорватия", "desc_ru": "" }, + { "mask": "+509-##-##-####", "cc": "HT", "name_en": "Haiti", "desc_en": "", "name_ru": "Гаити", "desc_ru": "" }, + { "mask": "+36(###)###-###", "cc": "HU", "name_en": "Hungary", "desc_en": "", "name_ru": "Венгрия", "desc_ru": "" }, + { "mask": "+62(8##)###-####", "cc": "ID", "name_en": "Indonesia ", "desc_en": "mobile", "name_ru": "Индонезия ", "desc_ru": "мобильные" }, + { "mask": "+62-##-###-##", "cc": "ID", "name_en": "Indonesia", "desc_en": "", "name_ru": "Индонезия", "desc_ru": "" }, + { "mask": "+62-##-###-###", "cc": "ID", "name_en": "Indonesia", "desc_en": "", "name_ru": "Индонезия", "desc_ru": "" }, + { "mask": "+62-##-###-####", "cc": "ID", "name_en": "Indonesia", "desc_en": "", "name_ru": "Индонезия", "desc_ru": "" }, + { "mask": "+62(8##)###-###", "cc": "ID", "name_en": "Indonesia ", "desc_en": "mobile", "name_ru": "Индонезия ", "desc_ru": "мобильные" }, + { "mask": "+62(8##)###-##-###", "cc": "ID", "name_en": "Indonesia ", "desc_en": "mobile", "name_ru": "Индонезия ", "desc_ru": "мобильные" }, + { "mask": "+353(###)###-###", "cc": "IE", "name_en": "Ireland", "desc_en": "", "name_ru": "Ирландия", "desc_ru": "" }, + { "mask": "+972-5#-###-####", "cc": "IL", "name_en": "Israel ", "desc_en": "mobile", "name_ru": "Израиль ", "desc_ru": "мобильные" }, + { "mask": "+972-#-###-####", "cc": "IL", "name_en": "Israel", "desc_en": "", "name_ru": "Израиль", "desc_ru": "" }, + { "mask": "+91(####)###-###", "cc": "IN", "name_en": "India", "desc_en": "", "name_ru": "Индия", "desc_ru": "" }, + { "mask": "+246-###-####", "cc": "IO", "name_en": "Diego Garcia", "desc_en": "", "name_ru": "Диего-Гарсия", "desc_ru": "" }, + { "mask": "+964(###)###-####", "cc": "IQ", "name_en": "Iraq", "desc_en": "", "name_ru": "Ирак", "desc_ru": "" }, + { "mask": "+98(###)###-####", "cc": "IR", "name_en": "Iran", "desc_en": "", "name_ru": "Иран", "desc_ru": "" }, + { "mask": "+354-###-####", "cc": "IS", "name_en": "Iceland", "desc_en": "", "name_ru": "Исландия", "desc_ru": "" }, + { "mask": "+39(###)####-###", "cc": "IT", "name_en": "Italy", "desc_en": "", "name_ru": "Италия", "desc_ru": "" }, + { "mask": "+1(876)###-####", "cc": "JM", "name_en": "Jamaica", "desc_en": "", "name_ru": "Ямайка", "desc_ru": "" }, + { "mask": "+962-#-####-####", "cc": "JO", "name_en": "Jordan", "desc_en": "", "name_ru": "Иордания", "desc_ru": "" }, + { "mask": "+81-##-####-####", "cc": "JP", "name_en": "Japan ", "desc_en": "mobile", "name_ru": "Япония ", "desc_ru": "мобильные" }, + { "mask": "+81(###)###-###", "cc": "JP", "name_en": "Japan", "desc_en": "", "name_ru": "Япония", "desc_ru": "" }, + { "mask": "+254-###-######", "cc": "KE", "name_en": "Kenya", "desc_en": "", "name_ru": "Кения", "desc_ru": "" }, + { "mask": "+996(###)###-###", "cc": "KG", "name_en": "Kyrgyzstan", "desc_en": "", "name_ru": "Киргизия", "desc_ru": "" }, + { "mask": "+855-##-###-###", "cc": "KH", "name_en": "Cambodia", "desc_en": "", "name_ru": "Камбоджа", "desc_ru": "" }, + { "mask": "+686-##-###", "cc": "KI", "name_en": "Kiribati", "desc_en": "", "name_ru": "Кирибати", "desc_ru": "" }, + { "mask": "+269-##-#####", "cc": "KM", "name_en": "Comoros", "desc_en": "", "name_ru": "Коморы", "desc_ru": "" }, + { "mask": "+1(869)###-####", "cc": "KN", "name_en": "Saint Kitts & Nevis", "desc_en": "", "name_ru": "Сент-Китс и Невис", "desc_ru": "" }, + { "mask": "+850-191-###-####", "cc": "KP", "name_en": "DPR Korea (North) ", "desc_en": "mobile", "name_ru": "Корейская НДР ", "desc_ru": "мобильные" }, + { "mask": "+850-##-###-###", "cc": "KP", "name_en": "DPR Korea (North)", "desc_en": "", "name_ru": "Корейская НДР", "desc_ru": "" }, + { "mask": "+850-###-####-###", "cc": "KP", "name_en": "DPR Korea (North)", "desc_en": "", "name_ru": "Корейская НДР", "desc_ru": "" }, + { "mask": "+850-###-###", "cc": "KP", "name_en": "DPR Korea (North)", "desc_en": "", "name_ru": "Корейская НДР", "desc_ru": "" }, + { "mask": "+850-####-####", "cc": "KP", "name_en": "DPR Korea (North)", "desc_en": "", "name_ru": "Корейская НДР", "desc_ru": "" }, + { "mask": "+850-####-#############", "cc": "KP", "name_en": "DPR Korea (North)", "desc_en": "", "name_ru": "Корейская НДР", "desc_ru": "" }, + { "mask": "+82-##-###-####", "cc": "KR", "name_en": "Korea (South)", "desc_en": "", "name_ru": "Респ. Корея", "desc_ru": "" }, + { "mask": "+965-####-####", "cc": "KW", "name_en": "Kuwait", "desc_en": "", "name_ru": "Кувейт", "desc_ru": "" }, + { "mask": "+1(345)###-####", "cc": "KY", "name_en": "Cayman Islands", "desc_en": "", "name_ru": "Каймановы острова", "desc_ru": "" }, + { "mask": "+7(6##)###-##-##", "cc": "KZ", "name_en": "Kazakhstan", "desc_en": "", "name_ru": "Казахстан", "desc_ru": "" }, + { "mask": "+7(7##)###-##-##", "cc": "KZ", "name_en": "Kazakhstan", "desc_en": "", "name_ru": "Казахстан", "desc_ru": "" }, + { "mask": "+856(20##)###-###", "cc": "LA", "name_en": "Laos ", "desc_en": "mobile", "name_ru": "Лаос ", "desc_ru": "мобильные" }, + { "mask": "+856-##-###-###", "cc": "LA", "name_en": "Laos", "desc_en": "", "name_ru": "Лаос", "desc_ru": "" }, + { "mask": "+961-##-###-###", "cc": "LB", "name_en": "Lebanon ", "desc_en": "mobile", "name_ru": "Ливан ", "desc_ru": "мобильные" }, + { "mask": "+961-#-###-###", "cc": "LB", "name_en": "Lebanon", "desc_en": "", "name_ru": "Ливан", "desc_ru": "" }, + { "mask": "+1(758)###-####", "cc": "LC", "name_en": "Saint Lucia", "desc_en": "", "name_ru": "Сент-Люсия", "desc_ru": "" }, + { "mask": "+423(###)###-####", "cc": "LI", "name_en": "Liechtenstein", "desc_en": "", "name_ru": "Лихтенштейн", "desc_ru": "" }, + { "mask": "+94-##-###-####", "cc": "LK", "name_en": "Sri Lanka", "desc_en": "", "name_ru": "Шри-Ланка", "desc_ru": "" }, + { "mask": "+231-##-###-###", "cc": "LR", "name_en": "Liberia", "desc_en": "", "name_ru": "Либерия", "desc_ru": "" }, + { "mask": "+266-#-###-####", "cc": "LS", "name_en": "Lesotho", "desc_en": "", "name_ru": "Лесото", "desc_ru": "" }, + { "mask": "+370(###)##-###", "cc": "LT", "name_en": "Lithuania", "desc_en": "", "name_ru": "Литва", "desc_ru": "" }, + { "mask": "+352(###)###-###", "cc": "LU", "name_en": "Luxembourg", "desc_en": "", "name_ru": "Люксембург", "desc_ru": "" }, + { "mask": "+371-##-###-###", "cc": "LV", "name_en": "Latvia", "desc_en": "", "name_ru": "Латвия", "desc_ru": "" }, + { "mask": "+218-##-###-###", "cc": "LY", "name_en": "Libya", "desc_en": "", "name_ru": "Ливия", "desc_ru": "" }, + { "mask": "+218-21-###-####", "cc": "LY", "name_en": "Libya", "desc_en": "Tripoli", "name_ru": "Ливия", "desc_ru": "Триполи" }, + { "mask": "+212-##-####-###", "cc": "MA", "name_en": "Morocco", "desc_en": "", "name_ru": "Марокко", "desc_ru": "" }, + { "mask": "+377(###)###-###", "cc": "MC", "name_en": "Monaco", "desc_en": "", "name_ru": "Монако", "desc_ru": "" }, + { "mask": "+377-##-###-###", "cc": "MC", "name_en": "Monaco", "desc_en": "", "name_ru": "Монако", "desc_ru": "" }, + { "mask": "+373-####-####", "cc": "MD", "name_en": "Moldova", "desc_en": "", "name_ru": "Молдова", "desc_ru": "" }, + { "mask": "+382-##-###-###", "cc": "ME", "name_en": "Montenegro", "desc_en": "", "name_ru": "Черногория", "desc_ru": "" }, + { "mask": "+261-##-##-#####", "cc": "MG", "name_en": "Madagascar", "desc_en": "", "name_ru": "Мадагаскар", "desc_ru": "" }, + { "mask": "+692-###-####", "cc": "MH", "name_en": "Marshall Islands", "desc_en": "", "name_ru": "Маршалловы Острова", "desc_ru": "" }, + { "mask": "+389-##-###-###", "cc": "MK", "name_en": "Republic of Macedonia", "desc_en": "", "name_ru": "Респ. Македония", "desc_ru": "" }, + { "mask": "+223-##-##-####", "cc": "ML", "name_en": "Mali", "desc_en": "", "name_ru": "Мали", "desc_ru": "" }, + { "mask": "+95-##-###-###", "cc": "MM", "name_en": "Burma (Myanmar)", "desc_en": "", "name_ru": "Бирма (Мьянма)", "desc_ru": "" }, + { "mask": "+95-#-###-###", "cc": "MM", "name_en": "Burma (Myanmar)", "desc_en": "", "name_ru": "Бирма (Мьянма)", "desc_ru": "" }, + { "mask": "+95-###-###", "cc": "MM", "name_en": "Burma (Myanmar)", "desc_en": "", "name_ru": "Бирма (Мьянма)", "desc_ru": "" }, + { "mask": "+976-##-##-####", "cc": "MN", "name_en": "Mongolia", "desc_en": "", "name_ru": "Монголия", "desc_ru": "" }, + { "mask": "+853-####-####", "cc": "MO", "name_en": "Macau", "desc_en": "", "name_ru": "Макао", "desc_ru": "" }, + { "mask": "+1(670)###-####", "cc": "MP", "name_en": "Northern Mariana Islands", "desc_en": "", "name_ru": "Северные Марианские острова Сайпан", "desc_ru": "" }, + { "mask": "+596(###)##-##-##", "cc": "MQ", "name_en": "Martinique", "desc_en": "", "name_ru": "Мартиника", "desc_ru": "" }, + { "mask": "+222-##-##-####", "cc": "MR", "name_en": "Mauritania", "desc_en": "", "name_ru": "Мавритания", "desc_ru": "" }, + { "mask": "+1(664)###-####", "cc": "MS", "name_en": "Montserrat", "desc_en": "", "name_ru": "Монтсеррат", "desc_ru": "" }, + { "mask": "+356-####-####", "cc": "MT", "name_en": "Malta", "desc_en": "", "name_ru": "Мальта", "desc_ru": "" }, + { "mask": "+230-###-####", "cc": "MU", "name_en": "Mauritius", "desc_en": "", "name_ru": "Маврикий", "desc_ru": "" }, + { "mask": "+960-###-####", "cc": "MV", "name_en": "Maldives", "desc_en": "", "name_ru": "Мальдивские острова", "desc_ru": "" }, + { "mask": "+265-1-###-###", "cc": "MW", "name_en": "Malawi", "desc_en": "Telecom Ltd", "name_ru": "Малави", "desc_ru": "Telecom Ltd" }, + { "mask": "+265-#-####-####", "cc": "MW", "name_en": "Malawi", "desc_en": "", "name_ru": "Малави", "desc_ru": "" }, + { "mask": "+52(###)###-####", "cc": "MX", "name_en": "Mexico", "desc_en": "", "name_ru": "Мексика", "desc_ru": "" }, + { "mask": "+52-##-##-####", "cc": "MX", "name_en": "Mexico", "desc_en": "", "name_ru": "Мексика", "desc_ru": "" }, + { "mask": "+60-##-###-####", "cc": "MY", "name_en": "Malaysia ", "desc_en": "mobile", "name_ru": "Малайзия ", "desc_ru": "мобильные" }, + { "mask": "+60(###)###-###", "cc": "MY", "name_en": "Malaysia", "desc_en": "", "name_ru": "Малайзия", "desc_ru": "" }, + { "mask": "+60-##-###-###", "cc": "MY", "name_en": "Malaysia", "desc_en": "", "name_ru": "Малайзия", "desc_ru": "" }, + { "mask": "+60-#-###-###", "cc": "MY", "name_en": "Malaysia", "desc_en": "", "name_ru": "Малайзия", "desc_ru": "" }, + { "mask": "+258-##-###-###", "cc": "MZ", "name_en": "Mozambique", "desc_en": "", "name_ru": "Мозамбик", "desc_ru": "" }, + { "mask": "+264-##-###-####", "cc": "NA", "name_en": "Namibia", "desc_en": "", "name_ru": "Намибия", "desc_ru": "" }, + { "mask": "+687-##-####", "cc": "NC", "name_en": "New Caledonia", "desc_en": "", "name_ru": "Новая Каледония", "desc_ru": "" }, + { "mask": "+227-##-##-####", "cc": "NE", "name_en": "Niger", "desc_en": "", "name_ru": "Нигер", "desc_ru": "" }, + { "mask": "+672-3##-###", "cc": "NF", "name_en": "Norfolk Island", "desc_en": "", "name_ru": "Норфолк (остров)", "desc_ru": "" }, + { "mask": "+234(###)###-####", "cc": "NG", "name_en": "Nigeria", "desc_en": "", "name_ru": "Нигерия", "desc_ru": "" }, + { "mask": "+234-##-###-###", "cc": "NG", "name_en": "Nigeria", "desc_en": "", "name_ru": "Нигерия", "desc_ru": "" }, + { "mask": "+234-##-###-##", "cc": "NG", "name_en": "Nigeria", "desc_en": "", "name_ru": "Нигерия", "desc_ru": "" }, + { "mask": "+234(###)###-####", "cc": "NG", "name_en": "Nigeria ", "desc_en": "mobile", "name_ru": "Нигерия ", "desc_ru": "мобильные" }, + { "mask": "+505-####-####", "cc": "NI", "name_en": "Nicaragua", "desc_en": "", "name_ru": "Никарагуа", "desc_ru": "" }, + { "mask": "+31-##-###-####", "cc": "NL", "name_en": "Netherlands", "desc_en": "", "name_ru": "Нидерланды", "desc_ru": "" }, + { "mask": "+47(###)##-###", "cc": "NO", "name_en": "Norway", "desc_en": "", "name_ru": "Норвегия", "desc_ru": "" }, + { "mask": "+977-##-###-###", "cc": "NP", "name_en": "Nepal", "desc_en": "", "name_ru": "Непал", "desc_ru": "" }, + { "mask": "+674-###-####", "cc": "NR", "name_en": "Nauru", "desc_en": "", "name_ru": "Науру", "desc_ru": "" }, + { "mask": "+683-####", "cc": "NU", "name_en": "Niue", "desc_en": "", "name_ru": "Ниуэ", "desc_ru": "" }, + { "mask": "+64(###)###-###", "cc": "NZ", "name_en": "New Zealand", "desc_en": "", "name_ru": "Новая Зеландия", "desc_ru": "" }, + { "mask": "+64-##-###-###", "cc": "NZ", "name_en": "New Zealand", "desc_en": "", "name_ru": "Новая Зеландия", "desc_ru": "" }, + { "mask": "+64(###)###-####", "cc": "NZ", "name_en": "New Zealand", "desc_en": "", "name_ru": "Новая Зеландия", "desc_ru": "" }, + { "mask": "+968-##-###-###", "cc": "OM", "name_en": "Oman", "desc_en": "", "name_ru": "Оман", "desc_ru": "" }, + { "mask": "+507-###-####", "cc": "PA", "name_en": "Panama", "desc_en": "", "name_ru": "Панама", "desc_ru": "" }, + { "mask": "+51(###)###-###", "cc": "PE", "name_en": "Peru", "desc_en": "", "name_ru": "Перу", "desc_ru": "" }, + { "mask": "+689-##-##-##", "cc": "PF", "name_en": "French Polynesia", "desc_en": "", "name_ru": "Французская Полинезия (Таити)", "desc_ru": "" }, + { "mask": "+675(###)##-###", "cc": "PG", "name_en": "Papua New Guinea", "desc_en": "", "name_ru": "Папуа-Новая Гвинея", "desc_ru": "" }, + { "mask": "+63(###)###-####", "cc": "PH", "name_en": "Philippines", "desc_en": "", "name_ru": "Филиппины", "desc_ru": "" }, + { "mask": "+92(###)###-####", "cc": "PK", "name_en": "Pakistan", "desc_en": "", "name_ru": "Пакистан", "desc_ru": "" }, + { "mask": "+48(###)###-###", "cc": "PL", "name_en": "Poland", "desc_en": "", "name_ru": "Польша", "desc_ru": "" }, + { "mask": "+970-##-###-####", "cc": "PS", "name_en": "Palestine", "desc_en": "", "name_ru": "Палестина", "desc_ru": "" }, + { "mask": "+351-##-###-####", "cc": "PT", "name_en": "Portugal", "desc_en": "", "name_ru": "Португалия", "desc_ru": "" }, + { "mask": "+680-###-####", "cc": "PW", "name_en": "Palau", "desc_en": "", "name_ru": "Палау", "desc_ru": "" }, + { "mask": "+595(###)###-###", "cc": "PY", "name_en": "Paraguay", "desc_en": "", "name_ru": "Парагвай", "desc_ru": "" }, + { "mask": "+974-####-####", "cc": "QA", "name_en": "Qatar", "desc_en": "", "name_ru": "Катар", "desc_ru": "" }, + { "mask": "+262-#####-####", "cc": "RE", "name_en": "Reunion", "desc_en": "", "name_ru": "Реюньон", "desc_ru": "" }, + { "mask": "+40-##-###-####", "cc": "RO", "name_en": "Romania", "desc_en": "", "name_ru": "Румыния", "desc_ru": "" }, + { "mask": "+381-##-###-####", "cc": "RS", "name_en": "Serbia", "desc_en": "", "name_ru": "Сербия", "desc_ru": "" }, + { "mask": "+7(###)###-##-##", "cc": "RU", "name_en": "Russia", "desc_en": "", "name_ru": "Россия", "desc_ru": "" }, + { "mask": "+250(###)###-###", "cc": "RW", "name_en": "Rwanda", "desc_en": "", "name_ru": "Руанда", "desc_ru": "" }, + { "mask": "+966-5-####-####", "cc": "SA", "name_en": "Saudi Arabia ", "desc_en": "mobile", "name_ru": "Саудовская Аравия ", "desc_ru": "мобильные" }, + { "mask": "+966-#-###-####", "cc": "SA", "name_en": "Saudi Arabia", "desc_en": "", "name_ru": "Саудовская Аравия", "desc_ru": "" }, + { "mask": "+677-###-####", "cc": "SB", "name_en": "Solomon Islands ", "desc_en": "mobile", "name_ru": "Соломоновы Острова ", "desc_ru": "мобильные" }, + { "mask": "+677-#####", "cc": "SB", "name_en": "Solomon Islands", "desc_en": "", "name_ru": "Соломоновы Острова", "desc_ru": "" }, + { "mask": "+248-#-###-###", "cc": "SC", "name_en": "Seychelles", "desc_en": "", "name_ru": "Сейшелы", "desc_ru": "" }, + { "mask": "+249-##-###-####", "cc": "SD", "name_en": "Sudan", "desc_en": "", "name_ru": "Судан", "desc_ru": "" }, + { "mask": "+46-##-###-####", "cc": "SE", "name_en": "Sweden", "desc_en": "", "name_ru": "Швеция", "desc_ru": "" }, + { "mask": "+65-####-####", "cc": "SG", "name_en": "Singapore", "desc_en": "", "name_ru": "Сингапур", "desc_ru": "" }, + { "mask": "+290-####", "cc": "SH", "name_en": "Saint Helena", "desc_en": "", "name_ru": "Остров Святой Елены", "desc_ru": "" }, + { "mask": "+290-####", "cc": "SH", "name_en": "Tristan da Cunha", "desc_en": "", "name_ru": "Тристан-да-Кунья", "desc_ru": "" }, + { "mask": "+386-##-###-###", "cc": "SI", "name_en": "Slovenia", "desc_en": "", "name_ru": "Словения", "desc_ru": "" }, + { "mask": "+421(###)###-###", "cc": "SK", "name_en": "Slovakia", "desc_en": "", "name_ru": "Словакия", "desc_ru": "" }, + { "mask": "+232-##-######", "cc": "SL", "name_en": "Sierra Leone", "desc_en": "", "name_ru": "Сьерра-Леоне", "desc_ru": "" }, + { "mask": "+378-####-######", "cc": "SM", "name_en": "San Marino", "desc_en": "", "name_ru": "Сан-Марино", "desc_ru": "" }, + { "mask": "+221-##-###-####", "cc": "SN", "name_en": "Senegal", "desc_en": "", "name_ru": "Сенегал", "desc_ru": "" }, + { "mask": "+252-##-###-###", "cc": "SO", "name_en": "Somalia", "desc_en": "", "name_ru": "Сомали", "desc_ru": "" }, + { "mask": "+252-#-###-###", "cc": "SO", "name_en": "Somalia", "desc_en": "", "name_ru": "Сомали", "desc_ru": "" }, + { "mask": "+252-#-###-###", "cc": "SO", "name_en": "Somalia ", "desc_en": "mobile", "name_ru": "Сомали ", "desc_ru": "мобильные" }, + { "mask": "+597-###-####", "cc": "SR", "name_en": "Suriname ", "desc_en": "mobile", "name_ru": "Суринам ", "desc_ru": "мобильные" }, + { "mask": "+597-###-###", "cc": "SR", "name_en": "Suriname", "desc_en": "", "name_ru": "Суринам", "desc_ru": "" }, + { "mask": "+211-##-###-####", "cc": "SS", "name_en": "South Sudan", "desc_en": "", "name_ru": "Южный Судан", "desc_ru": "" }, + { "mask": "+239-##-#####", "cc": "ST", "name_en": "Sao Tome and Principe", "desc_en": "", "name_ru": "Сан-Томе и Принсипи", "desc_ru": "" }, + { "mask": "+503-##-##-####", "cc": "SV", "name_en": "El Salvador", "desc_en": "", "name_ru": "Сальвадор", "desc_ru": "" }, + { "mask": "+1(721)###-####", "cc": "SX", "name_en": "Sint Maarten", "desc_en": "", "name_ru": "Синт-Маартен", "desc_ru": "" }, + { "mask": "+963-##-####-###", "cc": "SY", "name_en": "Syrian Arab Republic", "desc_en": "", "name_ru": "Сирийская арабская республика", "desc_ru": "" }, + { "mask": "+268-##-##-####", "cc": "SZ", "name_en": "Swaziland", "desc_en": "", "name_ru": "Свазиленд", "desc_ru": "" }, + { "mask": "+1(649)###-####", "cc": "TC", "name_en": "Turks & Caicos", "desc_en": "", "name_ru": "Тёркс и Кайкос", "desc_ru": "" }, + { "mask": "+235-##-##-##-##", "cc": "TD", "name_en": "Chad", "desc_en": "", "name_ru": "Чад", "desc_ru": "" }, + { "mask": "+228-##-###-###", "cc": "TG", "name_en": "Togo", "desc_en": "", "name_ru": "Того", "desc_ru": "" }, + { "mask": "+66-##-###-####", "cc": "TH", "name_en": "Thailand ", "desc_en": "mobile", "name_ru": "Таиланд ", "desc_ru": "мобильные" }, + { "mask": "+66-##-###-###", "cc": "TH", "name_en": "Thailand", "desc_en": "", "name_ru": "Таиланд", "desc_ru": "" }, + { "mask": "+992-##-###-####", "cc": "TJ", "name_en": "Tajikistan", "desc_en": "", "name_ru": "Таджикистан", "desc_ru": "" }, + { "mask": "+690-####", "cc": "TK", "name_en": "Tokelau", "desc_en": "", "name_ru": "Токелау", "desc_ru": "" }, + { "mask": "+670-###-####", "cc": "TL", "name_en": "East Timor", "desc_en": "", "name_ru": "Восточный Тимор", "desc_ru": "" }, + { "mask": "+670-77#-#####", "cc": "TL", "name_en": "East Timor", "desc_en": "Timor Telecom", "name_ru": "Восточный Тимор", "desc_ru": "Timor Telecom" }, + { "mask": "+670-78#-#####", "cc": "TL", "name_en": "East Timor", "desc_en": "Timor Telecom", "name_ru": "Восточный Тимор", "desc_ru": "Timor Telecom" }, + { "mask": "+993-#-###-####", "cc": "TM", "name_en": "Turkmenistan", "desc_en": "", "name_ru": "Туркменистан", "desc_ru": "" }, + { "mask": "+216-##-###-###", "cc": "TN", "name_en": "Tunisia", "desc_en": "", "name_ru": "Тунис", "desc_ru": "" }, + { "mask": "+676-#####", "cc": "TO", "name_en": "Tonga", "desc_en": "", "name_ru": "Тонга", "desc_ru": "" }, + { "mask": "+90(###)###-####", "cc": "TR", "name_en": "Turkey", "desc_en": "", "name_ru": "Турция", "desc_ru": "" }, + { "mask": "+1(868)###-####", "cc": "TT", "name_en": "Trinidad & Tobago", "desc_en": "", "name_ru": "Тринидад и Тобаго", "desc_ru": "" }, + { "mask": "+688-90####", "cc": "TV", "name_en": "Tuvalu ", "desc_en": "mobile", "name_ru": "Тувалу ", "desc_ru": "мобильные" }, + { "mask": "+688-2####", "cc": "TV", "name_en": "Tuvalu", "desc_en": "", "name_ru": "Тувалу", "desc_ru": "" }, + { "mask": "+886-#-####-####", "cc": "TW", "name_en": "Taiwan", "desc_en": "", "name_ru": "Тайвань", "desc_ru": "" }, + { "mask": "+886-####-####", "cc": "TW", "name_en": "Taiwan", "desc_en": "", "name_ru": "Тайвань", "desc_ru": "" }, + { "mask": "+255-##-###-####", "cc": "TZ", "name_en": "Tanzania", "desc_en": "", "name_ru": "Танзания", "desc_ru": "" }, + { "mask": "+380(##)###-##-##", "cc": "UA", "name_en": "Ukraine", "desc_en": "", "name_ru": "Украина", "desc_ru": "" }, + { "mask": "+256(###)###-###", "cc": "UG", "name_en": "Uganda", "desc_en": "", "name_ru": "Уганда", "desc_ru": "" }, + { "mask": "+44-##-####-####", "cc": "UK", "name_en": "United Kingdom", "desc_en": "", "name_ru": "Великобритания", "desc_ru": "" }, + { "mask": "+598-#-###-##-##", "cc": "UY", "name_en": "Uruguay", "desc_en": "", "name_ru": "Уругвай", "desc_ru": "" }, + { "mask": "+998-##-###-####", "cc": "UZ", "name_en": "Uzbekistan", "desc_en": "", "name_ru": "Узбекистан", "desc_ru": "" }, + { "mask": "+39-6-698-#####", "cc": "VA", "name_en": "Vatican City", "desc_en": "", "name_ru": "Ватикан", "desc_ru": "" }, + { "mask": "+1(784)###-####", "cc": "VC", "name_en": "Saint Vincent & the Grenadines", "desc_en": "", "name_ru": "Сент-Винсент и Гренадины", "desc_ru": "" }, + { "mask": "+58(###)###-####", "cc": "VE", "name_en": "Venezuela", "desc_en": "", "name_ru": "Венесуэла", "desc_ru": "" }, + { "mask": "+1(284)###-####", "cc": "VG", "name_en": "British Virgin Islands", "desc_en": "", "name_ru": "Британские Виргинские острова", "desc_ru": "" }, + { "mask": "+1(340)###-####", "cc": "VI", "name_en": "US Virgin Islands", "desc_en": "", "name_ru": "Американские Виргинские острова", "desc_ru": "" }, + { "mask": "+84-##-####-###", "cc": "VN", "name_en": "Vietnam", "desc_en": "", "name_ru": "Вьетнам", "desc_ru": "" }, + { "mask": "+84(###)####-###", "cc": "VN", "name_en": "Vietnam", "desc_en": "", "name_ru": "Вьетнам", "desc_ru": "" }, + { "mask": "+678-##-#####", "cc": "VU", "name_en": "Vanuatu ", "desc_en": "mobile", "name_ru": "Вануату ", "desc_ru": "мобильные" }, + { "mask": "+678-#####", "cc": "VU", "name_en": "Vanuatu", "desc_en": "", "name_ru": "Вануату", "desc_ru": "" }, + { "mask": "+681-##-####", "cc": "WF", "name_en": "Wallis and Futuna", "desc_en": "", "name_ru": "Уоллис и Футуна", "desc_ru": "" }, + { "mask": "+685-##-####", "cc": "WS", "name_en": "Samoa", "desc_en": "", "name_ru": "Самоа", "desc_ru": "" }, + { "mask": "+967-###-###-###", "cc": "YE", "name_en": "Yemen ", "desc_en": "mobile", "name_ru": "Йемен ", "desc_ru": "мобильные" }, + { "mask": "+967-#-###-###", "cc": "YE", "name_en": "Yemen", "desc_en": "", "name_ru": "Йемен", "desc_ru": "" }, + { "mask": "+967-##-###-###", "cc": "YE", "name_en": "Yemen", "desc_en": "", "name_ru": "Йемен", "desc_ru": "" }, + { "mask": "+27-##-###-####", "cc": "ZA", "name_en": "South Africa", "desc_en": "", "name_ru": "Южно-Африканская Респ.", "desc_ru": "" }, + { "mask": "+260-##-###-####", "cc": "ZM", "name_en": "Zambia", "desc_en": "", "name_ru": "Замбия", "desc_ru": "" }, + { "mask": "+263-#-######", "cc": "ZW", "name_en": "Zimbabwe", "desc_en": "", "name_ru": "Зимбабве", "desc_ru": "" }, + { "mask": "+1(###)###-####", "cc": ["US", "CA"], "name_en": "USA and Canada", "desc_en": "", "name_ru": "США и Канада", "desc_ru": "" } +] diff --git a/public/assets/js/plugins/input-mask/phone-codes/readme.txt b/public/assets/js/plugins/input-mask/phone-codes/readme.txt new file mode 100755 index 00000000..0a170a76 --- /dev/null +++ b/public/assets/js/plugins/input-mask/phone-codes/readme.txt @@ -0,0 +1 @@ +more phone masks can be found at https://github.com/andr-04/inputmask-multi \ No newline at end of file diff --git a/public/assets/js/plugins/ionslider/ion.rangeSlider.min.js b/public/assets/js/plugins/ionslider/ion.rangeSlider.min.js new file mode 100755 index 00000000..f352609f --- /dev/null +++ b/public/assets/js/plugins/ionslider/ion.rangeSlider.min.js @@ -0,0 +1,22 @@ +// Ion.RangeSlider +// version 1.8.2 +// https://github.com/IonDen/ion.rangeSlider +(function(c,X,ea,S){var Y=0,O=function(){var c=S.userAgent,a=/msie\s\d+/i;return 0c)?!0:!1}(),H;try{X.createEvent("TouchEvent"),H=!0}catch(ga){H=!1}var N={init:function(A){return this.each(function(){var a=c.extend({min:10,max:100,from:null,to:null,type:"single",step:1,prefix:"",postfix:"",hasGrid:!1,hideMinMax:!1,hideFromTo:!1,prettify:!0,onChange:null,onLoad:null,onFinish:null},A),d=c(this),u=this;if(!d.data("isActive")){d.data("isActive", +!0);this.pluginCount=Y+=1;d.prop("value")&&(a.min=parseInt(d.prop("value").split(";")[0],10),a.max=parseInt(d.prop("value").split(";")[1],10));"number"!==typeof a.from&&(a.from=a.min);"number"!==typeof a.to&&(a.to=a.max);"number"===typeof d.data("from")&&(a.from=parseFloat(d.data("from")));"number"===typeof d.data("to")&&(a.to=parseFloat(d.data("to")));d.data("step")&&(a.step=parseFloat(d.data("step")));d.data("type")&&(a.type=d.data("type"));d.data("prefix")&&(a.prefix=d.data("prefix"));d.data("postfix")&& +(a.postfix=d.data("postfix"));d.data("hasgrid")&&(a.hasGrid=d.data("hasgrid"));d.data("hideminmax")&&(a.hideMinMax=d.data("hideminmax"));d.data("hidefromto")&&(a.hideFromTo=d.data("hidefromto"));d.data("prettify")&&(a.prettify=d.data("prettify"));a.froma.max&&(a.to=a.max);"double"===a.type&&(a.from>a.to&&(a.from=a.to),a.to';d[0].style.display="none";d.before(N);var w=c("#irs-"+this.pluginCount),C=c(X.body),I=c(ea),l,D,E,x,y,q,r,e,m,s,T,Z,p=!1,t=!1,P=!0,g={},U=0,J=0,K=0,k=0,B=0,L=0,V=0,Q=0,R=0,$=0,n=0;parseInt(a.step,10)!==parseFloat(a.step)&&(n=a.step.toString().split(".")[1],n=Math.pow(10,n.length));this.updateData=function(b){P=!0;a=c.extend(a,b);w.find("*").off();I.off("mouseup.irs"+u.pluginCount);C.off("mouseup.irs"+u.pluginCount);C.off("mousemove.irs"+u.pluginCount);w.html("");aa()}; +this.removeSlider=function(){w.find("*").off();I.off("mouseup.irs"+u.pluginCount);C.off("mouseup.irs"+u.pluginCount);C.off("mousemove.irs"+u.pluginCount);w.html("").remove();d.data("isActive",!1);d.show()};var aa=function(){w.html('01000'); +l=w.find(".irs");D=l.find(".irs-min");E=l.find(".irs-max");x=l.find(".irs-from");y=l.find(".irs-to");q=l.find(".irs-single");Z=w.find(".irs-grid");a.hideMinMax&&(D[0].style.display="none",E[0].style.display="none",K=J=0);a.hideFromTo&&(x[0].style.display="none",y[0].style.display="none",q[0].style.display="none");a.hideMinMax||(D.html(a.prefix+v(a.min)+a.postfix),E.html(a.prefix+v(a.max)+a.postfix),J=D.outerWidth(),K=E.outerWidth());if("single"===a.type){if(l.append(''), +r=l.find(".single"),r.on("mousedown",function(a){a.preventDefault();a.stopPropagation();F(a,c(this),null);t=p=!0;O&&c("*").prop("unselectable",!0)}),H)r.on("touchstart",function(a){a.preventDefault();a.stopPropagation();F(a.originalEvent.touches[0],c(this),null);t=p=!0})}else"double"===a.type&&(l.append(''),e=l.find(".from"),m=l.find(".to"),T=l.find(".irs-diapason"),M(),e.on("mousedown",function(a){a.preventDefault(); +a.stopPropagation();c(this).addClass("last");m.removeClass("last");F(a,c(this),"from");t=p=!0;O&&c("*").prop("unselectable",!0)}),m.on("mousedown",function(a){a.preventDefault();a.stopPropagation();c(this).addClass("last");e.removeClass("last");F(a,c(this),"to");t=p=!0;O&&c("*").prop("unselectable",!0)}),H&&(e.on("touchstart",function(a){a.preventDefault();a.stopPropagation();c(this).addClass("last");m.removeClass("last");F(a.originalEvent.touches[0],c(this),"from");t=p=!0}),m.on("touchstart",function(a){a.preventDefault(); +a.stopPropagation();c(this).addClass("last");e.removeClass("last");F(a.originalEvent.touches[0],c(this),"to");t=p=!0})),a.to===a.max&&e.addClass("last"));var b=function(){p&&(p=t=!1,s.removeAttr("id"),s=null,"double"===a.type&&M(),W(),O&&c("*").prop("unselectable",!1))};C.on("mouseup.irs"+u.pluginCount,function(){b()});I.on("mouseup.irs"+u.pluginCount,function(){b()});C.on("mousemove.irs"+u.pluginCount,function(a){p&&(U=a.pageX,ba())});H&&(I.on("touchend",function(){p&&(p=t=!1,s.removeAttr("id"), +s=null,"double"===a.type&&M(),W())}),I.on("touchmove",function(a){p&&(U=a.originalEvent.touches[0].pageX,ba())}));ca();S();a.hasGrid&&fa()},ca=function(){k=l.width();L=r?r.width():e.width();B=k-L},F=function(b,f,c){ca();P=!1;s=f;s.attr("id","irs-active-slider");f=s.offset().left;$=f+(b.pageX-f)-s.position().left;"single"===a.type?V=l.width()-L:"double"===a.type&&("from"===c?(Q=0,R=parseInt(m.css("left"),10)):(Q=parseInt(e.css("left"),10),R=l.width()-L))},M=function(){var a=e.width(),f=c.data(e[0], +"x")||parseInt(e[0].style.left,10)||e.position().left,G=(c.data(m[0],"x")||parseInt(m[0].style.left,10)||m.position().left)-f;T[0].style.left=f+a/2+"px";T[0].style.width=G+"px"},ba=function(){var b=U-$;"single"===a.type?(0>b&&(b=0),b>V&&(b=V)):"double"===a.type&&(bR&&(b=R),M());c.data(s[0],"x",b);W();b=Math.round(b);s[0].style.left=b+"px"},W=function(){var b={fromNumber:0,toNumber:0,fromPers:0,toPers:0,fromX:0,toX:0},f=a.max-a.min,G;"single"===a.type?(b.fromX=c.data(r[0],"x")||parseInt(r[0].style.left, +10)||r.position().left,b.fromPers=b.fromX/B*100,G=f/100*b.fromPers+parseInt(a.min,10),b.fromNumber=Math.round(G/a.step)*a.step,n&&(b.fromNumber=parseInt(b.fromNumber*n,10)/n)):"double"===a.type&&(b.fromX=c.data(e[0],"x")||parseInt(e[0].style.left,10)||e.position().left,b.fromPers=b.fromX/B*100,G=f/100*b.fromPers+parseInt(a.min,10),b.fromNumber=Math.round(G/a.step)*a.step,b.toX=c.data(m[0],"x")||parseInt(m[0].style.left,10)||m.position().left,b.toPers=b.toX/B*100,f=f/100*b.toPers+parseInt(a.min,10), +b.toNumber=Math.round(f/a.step)*a.step,n&&(b.fromNumber=parseInt(b.fromNumber*n,10)/n,b.toNumber=parseInt(b.toNumber*n,10)/n));g=b;da()},S=function(){var b={fromNumber:a.from,toNumber:a.to,fromPers:0,toPers:0,fromX:0,fromX_pure:0,toX:0,toX_pure:0},f=a.max-a.min;"single"===a.type?(b.fromPers=(b.fromNumber-a.min)/f*100,b.fromX_pure=B/100*b.fromPers,b.fromX=Math.round(b.fromX_pure),r[0].style.left=b.fromX+"px",c.data(r[0],"x",b.fromX_pure)):"double"===a.type&&(b.fromPers=(b.fromNumber-a.min)/f*100,b.fromX_pure= +B/100*b.fromPers,b.fromX=Math.round(b.fromX_pure),e[0].style.left=b.fromX+"px",c.data(e[0],"x",b.fromX_pure),b.toPers=(b.toNumber-a.min)/f*100,b.toX_pure=B/100*b.toPers,b.toX=Math.round(b.toX_pure),m[0].style.left=b.toX+"px",c.data(m[0],"x",b.toX_pure),M());g=b;da()},da=function(){var b,f,c,z,e,h;h=L/2;"single"===a.type?(a.hideText||(x[0].style.display="none",y[0].style.display="none",c=a.prefix+v(g.fromNumber)+a.postfix,q.html(c),e=q.outerWidth(),h=g.fromX-e/2+h,0>h&&(h=0),h>k-e&&(h=k-e),q[0].style.left= +h+"px",a.hideMinMax||a.hideFromTo||(D[0].style.display=hk-K?"none":"block")),d.attr("value",parseInt(g.fromNumber,10))):"double"===a.type&&(a.hideText||(b=a.prefix+v(g.fromNumber)+a.postfix,f=a.prefix+v(g.toNumber)+a.postfix,c=g.fromNumber!==g.toNumber?a.prefix+v(g.fromNumber)+" \u2014 "+a.prefix+v(g.toNumber)+a.postfix:a.prefix+v(g.fromNumber)+a.postfix,x.html(b),y.html(f),q.html(c),b=x.outerWidth(),f=g.fromX-b/2+h,0>f&&(f=0),f>k-b&&(f=k-b),x[0].style.left= +f+"px",c=y.outerWidth(),z=g.toX-c/2+h,0>z&&(z=0),z>k-c&&(z=k-c),y[0].style.left=z+"px",e=q.outerWidth(),h=g.fromX+(g.toX-g.fromX)/2-e/2+h,0>h&&(h=0),h>k-e&&(h=k-e),q[0].style.left=h+"px",f+bk-K||z+c>k-K?"none":"block")),d.attr("value",parseInt(g.fromNumber, +10)+";"+parseInt(g.toNumber,10)));"function"===typeof a.onChange&&a.onChange.call(this,g);"function"!==typeof a.onFinish||t||P||a.onFinish.call(this,g);"function"===typeof a.onLoad&&!t&&P&&a.onLoad.call(this,g)},fa=function(){w.addClass("irs-with-grid");var b,c="",d=0,d=0,e="";for(b=0;20>=b;b+=1)d=Math.floor(k/20*b),d>=k&&(d=k-1),e+='';for(b=0;4>=b;b+=1)d=Math.floor(k/4*b),d>=k&&(d=k-1),e+='',n?(c=a.min+(a.max-a.min)/4*b,c=c/a.step*a.step,c=parseInt(c*n,10)/n):(c=Math.round(a.min+(a.max-a.min)/4*b),c=Math.round(c/a.step)*a.step,c=v(c)),0===b?e+=''+c+"":4===b?(d-=100,e+=''+c+""):(d-=50,e+=''+c+"");Z.html(e)};aa()}})},update:function(c){return this.each(function(){this.updateData(c)})}, +remove:function(){return this.each(function(){this.removeSlider()})}};c.fn.ionRangeSlider=function(A){if(N[A])return N[A].apply(this,Array.prototype.slice.call(arguments,1));if("object"!==typeof A&&A)c.error("Method "+A+" does not exist for jQuery.ionRangeSlider");else return N.init.apply(this,arguments)}})(jQuery,document,window,navigator); \ No newline at end of file diff --git a/public/assets/js/plugins/jqueryKnob/jquery.knob.js b/public/assets/js/plugins/jqueryKnob/jquery.knob.js new file mode 100755 index 00000000..ddb52736 --- /dev/null +++ b/public/assets/js/plugins/jqueryKnob/jquery.knob.js @@ -0,0 +1,764 @@ +/*!jQuery Knob*/ +/** + * Downward compatible, touchable dial + * + * Version: 1.2.0 (15/07/2012) + * Requires: jQuery v1.7+ + * + * Copyright (c) 2012 Anthony Terrien + * Under MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Thanks to vor, eskimoblood, spiffistan, FabrizioC + */ +(function($) { + + /** + * Kontrol library + */ + "use strict"; + + /** + * Definition of globals and core + */ + var k = {}, // kontrol + max = Math.max, + min = Math.min; + + k.c = {}; + k.c.d = $(document); + k.c.t = function (e) { + return e.originalEvent.touches.length - 1; + }; + + /** + * Kontrol Object + * + * Definition of an abstract UI control + * + * Each concrete component must call this one. + * + * k.o.call(this); + * + */ + k.o = function () { + var s = this; + + this.o = null; // array of options + this.$ = null; // jQuery wrapped element + this.i = null; // mixed HTMLInputElement or array of HTMLInputElement + this.g = null; // deprecated 2D graphics context for 'pre-rendering' + this.v = null; // value ; mixed array or integer + this.cv = null; // change value ; not commited value + this.x = 0; // canvas x position + this.y = 0; // canvas y position + this.w = 0; // canvas width + this.h = 0; // canvas height + this.$c = null; // jQuery canvas element + this.c = null; // rendered canvas context + this.t = 0; // touches index + this.isInit = false; + this.fgColor = null; // main color + this.pColor = null; // previous color + this.dH = null; // draw hook + this.cH = null; // change hook + this.eH = null; // cancel hook + this.rH = null; // release hook + this.scale = 1; // scale factor + this.relative = false; + this.relativeWidth = false; + this.relativeHeight = false; + this.$div = null; // component div + + this.run = function () { + var cf = function (e, conf) { + var k; + for (k in conf) { + s.o[k] = conf[k]; + } + s.init(); + s._configure() + ._draw(); + }; + + if(this.$.data('kontroled')) return; + this.$.data('kontroled', true); + + this.extend(); + this.o = $.extend( + { + // Config + min : this.$.data('min') || 0, + max : this.$.data('max') || 100, + stopper : true, + readOnly : this.$.data('readonly') || (this.$.attr('readonly') == 'readonly'), + + // UI + cursor : (this.$.data('cursor') === true && 30) + || this.$.data('cursor') + || 0, + thickness : ( + this.$.data('thickness') + && Math.max(Math.min(this.$.data('thickness'), 1), 0.01) + ) + || 0.35, + lineCap : this.$.data('linecap') || 'butt', + width : this.$.data('width') || 200, + height : this.$.data('height') || 200, + displayInput : this.$.data('displayinput') == null || this.$.data('displayinput'), + displayPrevious : this.$.data('displayprevious'), + fgColor : this.$.data('fgcolor') || '#87CEEB', + inputColor: this.$.data('inputcolor'), + font: this.$.data('font') || 'Arial', + fontWeight: this.$.data('font-weight') || 'bold', + inline : false, + step : this.$.data('step') || 1, + + // Hooks + draw : null, // function () {} + change : null, // function (value) {} + cancel : null, // function () {} + release : null, // function (value) {} + error : null // function () {} + }, this.o + ); + + // finalize options + if(!this.o.inputColor) { + this.o.inputColor = this.o.fgColor; + } + + // routing value + if(this.$.is('fieldset')) { + + // fieldset = array of integer + this.v = {}; + this.i = this.$.find('input') + this.i.each(function(k) { + var $this = $(this); + s.i[k] = $this; + s.v[k] = $this.val(); + + $this.bind( + 'change keyup' + , function () { + var val = {}; + val[k] = $this.val(); + s.val(val); + } + ); + }); + this.$.find('legend').remove(); + + } else { + + // input = integer + this.i = this.$; + this.v = this.$.val(); + (this.v == '') && (this.v = this.o.min); + + this.$.bind( + 'change keyup' + , function () { + s.val(s._validate(s.$.val())); + } + ); + + } + + (!this.o.displayInput) && this.$.hide(); + + // adds needed DOM elements (canvas, div) + this.$c = $(document.createElement('canvas')); + if (typeof G_vmlCanvasManager !== 'undefined') { + G_vmlCanvasManager.initElement(this.$c[0]); + } + this.c = this.$c[0].getContext ? this.$c[0].getContext('2d') : null; + if (!this.c) { + this.o.error && this.o.error(); + return; + } + + // hdpi support + this.scale = (window.devicePixelRatio || 1) / + ( + this.c.webkitBackingStorePixelRatio || + this.c.mozBackingStorePixelRatio || + this.c.msBackingStorePixelRatio || + this.c.oBackingStorePixelRatio || + this.c.backingStorePixelRatio || 1 + ); + + // detects relative width / height + this.relativeWidth = ((this.o.width % 1 !== 0) + && this.o.width.indexOf('%')); + this.relativeHeight = ((this.o.height % 1 !== 0) + && this.o.height.indexOf('%')); + + this.relative = (this.relativeWidth || this.relativeHeight); + + // wraps all elements in a div + this.$div = $('
      '); + + this.$.wrap(this.$div).before(this.$c); + this.$div = this.$.parent(); + + // computes size and carves the component + this._carve(); + + // prepares props for transaction + if (this.v instanceof Object) { + this.cv = {}; + this.copy(this.v, this.cv); + } else { + this.cv = this.v; + } + + // binds configure event + this.$ + .bind("configure", cf) + .parent() + .bind("configure", cf); + + // finalize init + this._listen() + ._configure() + ._xy() + .init(); + + this.isInit = true; + + // the most important ! + this._draw(); + + return this; + }; + + this._carve = function() { + if(this.relative) { + var w = this.relativeWidth + ? this.$div.parent().width() + * parseInt(this.o.width) / 100 + : this.$div.parent().width(), + h = this.relativeHeight + ? this.$div.parent().height() + * parseInt(this.o.height) / 100 + : this.$div.parent().height(); + + // apply relative + this.w = this.h = Math.min(w, h); + } else { + this.w = this.o.width; + this.h = this.o.height; + } + + // finalize div + this.$div.css({ + 'width': this.w + 'px', + 'height': this.h + 'px' + }); + + // finalize canvas with computed width + this.$c.attr({ + width: this.w, + height: this.h + }); + + // scaling + if (this.scale !== 1) { + this.$c[0].width = this.$c[0].width * this.scale; + this.$c[0].height = this.$c[0].height * this.scale; + this.$c.width(this.w); + this.$c.height(this.h); + } + + return this; + } + + this._draw = function () { + + // canvas pre-rendering + var d = true; + + s.g = s.c; + + s.clear(); + + s.dH + && (d = s.dH()); + + (d !== false) && s.draw(); + + }; + + this._touch = function (e) { + + var touchMove = function (e) { + + var v = s.xy2val( + e.originalEvent.touches[s.t].pageX, + e.originalEvent.touches[s.t].pageY + ); + s.change(s._validate(v)); + s._draw(); + }; + + // get touches index + this.t = k.c.t(e); + + // First touch + touchMove(e); + + // Touch events listeners + k.c.d + .bind("touchmove.k", touchMove) + .bind( + "touchend.k" + , function () { + k.c.d.unbind('touchmove.k touchend.k'); + + if ( + s.rH + && (s.rH(s.cv) === false) + ) return; + + s.val(s.cv); + } + ); + + return this; + }; + + this._mouse = function (e) { + + var mouseMove = function (e) { + var v = s.xy2val(e.pageX, e.pageY); + s.change(s._validate(v)); + s._draw(); + }; + + // First click + mouseMove(e); + + // Mouse events listeners + k.c.d + .bind("mousemove.k", mouseMove) + .bind( + // Escape key cancel current change + "keyup.k" + , function (e) { + if (e.keyCode === 27) { + k.c.d.unbind("mouseup.k mousemove.k keyup.k"); + + if ( + s.eH + && (s.eH() === false) + ) return; + + s.cancel(); + } + } + ) + .bind( + "mouseup.k" + , function (e) { + k.c.d.unbind('mousemove.k mouseup.k keyup.k'); + + if ( + s.rH + && (s.rH(s.cv) === false) + ) return; + + s.val(s.cv); + } + ); + + return this; + }; + + this._xy = function () { + var o = this.$c.offset(); + this.x = o.left; + this.y = o.top; + return this; + }; + + this._listen = function () { + + if (!this.o.readOnly) { + this.$c + .bind( + "mousedown" + , function (e) { + e.preventDefault(); + s._xy()._mouse(e); + } + ) + .bind( + "touchstart" + , function (e) { + e.preventDefault(); + s._xy()._touch(e); + } + ); + + this.listen(); + } else { + this.$.attr('readonly', 'readonly'); + } + + if(this.relative) { + $(window).resize(function() { + s._carve() + .init(); + s._draw(); + }); + } + + return this; + }; + + this._configure = function () { + + // Hooks + if (this.o.draw) this.dH = this.o.draw; + if (this.o.change) this.cH = this.o.change; + if (this.o.cancel) this.eH = this.o.cancel; + if (this.o.release) this.rH = this.o.release; + + if (this.o.displayPrevious) { + this.pColor = this.h2rgba(this.o.fgColor, "0.4"); + this.fgColor = this.h2rgba(this.o.fgColor, "0.6"); + } else { + this.fgColor = this.o.fgColor; + } + + return this; + }; + + this._clear = function () { + this.$c[0].width = this.$c[0].width; + }; + + this._validate = function(v) { + return (~~ (((v < 0) ? -0.5 : 0.5) + (v/this.o.step))) * this.o.step; + }; + + // Abstract methods + this.listen = function () {}; // on start, one time + this.extend = function () {}; // each time configure triggered + this.init = function () {}; // each time configure triggered + this.change = function (v) {}; // on change + this.val = function (v) {}; // on release + this.xy2val = function (x, y) {}; // + this.draw = function () {}; // on change / on release + this.clear = function () { this._clear(); }; + + // Utils + this.h2rgba = function (h, a) { + var rgb; + h = h.substring(1,7) + rgb = [parseInt(h.substring(0,2),16) + ,parseInt(h.substring(2,4),16) + ,parseInt(h.substring(4,6),16)]; + return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + a + ")"; + }; + + this.copy = function (f, t) { + for (var i in f) { t[i] = f[i]; } + }; + }; + + + /** + * k.Dial + */ + k.Dial = function () { + k.o.call(this); + + this.startAngle = null; + this.xy = null; + this.radius = null; + this.lineWidth = null; + this.cursorExt = null; + this.w2 = null; + this.PI2 = 2*Math.PI; + + this.extend = function () { + this.o = $.extend( + { + bgColor : this.$.data('bgcolor') || '#EEEEEE', + angleOffset : this.$.data('angleoffset') || 0, + angleArc : this.$.data('anglearc') || 360, + inline : true + }, this.o + ); + }; + + this.val = function (v) { + if (null != v) { + this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; + this.v = this.cv; + this.$.val(this.v); + this._draw(); + } else { + return this.v; + } + }; + + this.xy2val = function (x, y) { + var a, ret; + + a = Math.atan2( + x - (this.x + this.w2) + , - (y - this.y - this.w2) + ) - this.angleOffset; + + if(this.angleArc != this.PI2 && (a < 0) && (a > -0.5)) { + // if isset angleArc option, set to min if .5 under min + a = 0; + } else if (a < 0) { + a += this.PI2; + } + + ret = ~~ (0.5 + (a * (this.o.max - this.o.min) / this.angleArc)) + + this.o.min; + + this.o.stopper + && (ret = max(min(ret, this.o.max), this.o.min)); + + return ret; + }; + + this.listen = function () { + // bind MouseWheel + var s = this, mwTimerStop, mwTimerRelease, + mw = function (e) { + e.preventDefault(); + + var ori = e.originalEvent + ,deltaX = ori.detail || ori.wheelDeltaX + ,deltaY = ori.detail || ori.wheelDeltaY + ,v = s._validate(s.$.val()) + + (deltaX>0 || deltaY>0 ? s.o.step : deltaX<0 || deltaY<0 ? -s.o.step : 0); + + v = max(min(v, s.o.max), s.o.min); + + s.val(v); + + if(s.rH) { + // Handle mousewheel stop + clearTimeout(mwTimerStop); + mwTimerStop = setTimeout(function() { + s.rH(v); + mwTimerStop = null; + }, 100); + + // Handle mousewheel releases + if(!mwTimerRelease) { + mwTimerRelease = setTimeout(function() { + if(mwTimerStop) s.rH(v); + mwTimerRelease = null; + }, 200); + } + } + } + , kval, to, m = 1, kv = {37:-s.o.step, 38:s.o.step, 39:s.o.step, 40:-s.o.step}; + + this.$ + .bind( + "keydown" + ,function (e) { + var kc = e.keyCode; + + // numpad support + if(kc >= 96 && kc <= 105) { + kc = e.keyCode = kc - 48; + } + + kval = parseInt(String.fromCharCode(kc)); + + if (isNaN(kval)) { + + (kc !== 13) // enter + && (kc !== 8) // bs + && (kc !== 9) // tab + && (kc !== 189) // - + && e.preventDefault(); + + // arrows + if ($.inArray(kc,[37,38,39,40]) > -1) { + e.preventDefault(); + + var v = parseInt(s.$.val()) + kv[kc] * m; + + s.o.stopper + && (v = max(min(v, s.o.max), s.o.min)); + + s.change(v); + s._draw(); + + // long time keydown speed-up + to = window.setTimeout( + function () { m*=2; } + ,30 + ); + } + } + } + ) + .bind( + "keyup" + ,function (e) { + if (isNaN(kval)) { + if (to) { + window.clearTimeout(to); + to = null; + m = 1; + s.val(s.$.val()); + } + } else { + // kval postcond + (s.$.val() > s.o.max && s.$.val(s.o.max)) + || (s.$.val() < s.o.min && s.$.val(s.o.min)); + } + + } + ); + + this.$c.bind("mousewheel DOMMouseScroll", mw); + this.$.bind("mousewheel DOMMouseScroll", mw) + }; + + this.init = function () { + + if ( + this.v < this.o.min + || this.v > this.o.max + ) this.v = this.o.min; + + this.$.val(this.v); + this.w2 = this.w / 2; + this.cursorExt = this.o.cursor / 100; + this.xy = this.w2 * this.scale; + this.lineWidth = this.xy * this.o.thickness; + this.lineCap = this.o.lineCap; + this.radius = this.xy - this.lineWidth / 2; + + this.o.angleOffset + && (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset); + + this.o.angleArc + && (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc); + + // deg to rad + this.angleOffset = this.o.angleOffset * Math.PI / 180; + this.angleArc = this.o.angleArc * Math.PI / 180; + + // compute start and end angles + this.startAngle = 1.5 * Math.PI + this.angleOffset; + this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc; + + var s = max( + String(Math.abs(this.o.max)).length + , String(Math.abs(this.o.min)).length + , 2 + ) + 2; + + this.o.displayInput + && this.i.css({ + 'width' : ((this.w / 2 + 4) >> 0) + 'px' + ,'height' : ((this.w / 3) >> 0) + 'px' + ,'position' : 'absolute' + ,'vertical-align' : 'middle' + ,'margin-top' : ((this.w / 3) >> 0) + 'px' + ,'margin-left' : '-' + ((this.w * 3 / 4 + 2) >> 0) + 'px' + ,'border' : 0 + ,'background' : 'none' + ,'font' : this.o.fontWeight + ' ' + ((this.w / s) >> 0) + 'px ' + this.o.font + ,'text-align' : 'center' + ,'color' : this.o.inputColor || this.o.fgColor + ,'padding' : '0px' + ,'-webkit-appearance': 'none' + }) + || this.i.css({ + 'width' : '0px' + ,'visibility' : 'hidden' + }); + }; + + this.change = function (v) { + if (v == this.cv) return; + this.cv = v; + if ( + this.cH + && (this.cH(v) === false) + ) return; + }; + + this.angle = function (v) { + return (v - this.o.min) * this.angleArc / (this.o.max - this.o.min); + }; + + this.draw = function () { + + var c = this.g, // context + a = this.angle(this.cv) // Angle + , sat = this.startAngle // Start angle + , eat = sat + a // End angle + , sa, ea // Previous angles + , r = 1; + + c.lineWidth = this.lineWidth; + + c.lineCap = this.lineCap; + + this.o.cursor + && (sat = eat - this.cursorExt) + && (eat = eat + this.cursorExt); + + c.beginPath(); + c.strokeStyle = this.o.bgColor; + c.arc(this.xy, this.xy, this.radius, this.endAngle - 0.00001, this.startAngle + 0.00001, true); + c.stroke(); + + if (this.o.displayPrevious) { + ea = this.startAngle + this.angle(this.v); + sa = this.startAngle; + this.o.cursor + && (sa = ea - this.cursorExt) + && (ea = ea + this.cursorExt); + + c.beginPath(); + c.strokeStyle = this.pColor; + c.arc(this.xy, this.xy, this.radius, sa - 0.00001, ea + 0.00001, false); + c.stroke(); + r = (this.cv == this.v); + } + + c.beginPath(); + c.strokeStyle = r ? this.o.fgColor : this.fgColor ; + c.arc(this.xy, this.xy, this.radius, sat - 0.00001, eat + 0.00001, false); + c.stroke(); + }; + + this.cancel = function () { + this.val(this.v); + }; + }; + + $.fn.dial = $.fn.knob = function (o) { + return this.each( + function () { + var d = new k.Dial(); + d.o = o; + d.$ = $(this); + d.run(); + } + ).parent(); + }; + +})(jQuery); diff --git a/public/assets/js/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js b/public/assets/js/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js new file mode 100755 index 00000000..ea54476f --- /dev/null +++ b/public/assets/js/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js @@ -0,0 +1,8 @@ +/** + * jVectorMap version 1.2.2 + * + * Copyright 2011-2013, Kirill Lebedev + * Licensed under the MIT license. + * + */(function(e){var t={set:{colors:1,values:1,backgroundColor:1,scaleColors:1,normalizeFunction:1,focus:1},get:{selectedRegions:1,selectedMarkers:1,mapObject:1,regionName:1}};e.fn.vectorMap=function(e){var n,r,i,n=this.children(".jvectormap-container").data("mapObject");if(e==="addMap")jvm.WorldMap.maps[arguments[1]]=arguments[2];else{if(!(e!=="set"&&e!=="get"||!t[e][arguments[1]]))return r=arguments[1].charAt(0).toUpperCase()+arguments[1].substr(1),n[e+r].apply(n,Array.prototype.slice.call(arguments,2));e=e||{},e.container=this,n=new jvm.WorldMap(e)}return this}})(jQuery),function(e){function r(t){var n=t||window.event,r=[].slice.call(arguments,1),i=0,s=!0,o=0,u=0;return t=e.event.fix(n),t.type="mousewheel",n.wheelDelta&&(i=n.wheelDelta/120),n.detail&&(i=-n.detail/3),u=i,n.axis!==undefined&&n.axis===n.HORIZONTAL_AXIS&&(u=0,o=-1*i),n.wheelDeltaY!==undefined&&(u=n.wheelDeltaY/120),n.wheelDeltaX!==undefined&&(o=-1*n.wheelDeltaX/120),r.unshift(t,i,o,u),(e.event.dispatch||e.event.handle).apply(this,r)}var t=["DOMMouseScroll","mousewheel"];if(e.event.fixHooks)for(var n=t.length;n;)e.event.fixHooks[t[--n]]=e.event.mouseHooks;e.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],r,!1);else this.onmousewheel=r},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],r,!1);else this.onmousewheel=null}},e.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})}(jQuery);var jvm={inherits:function(e,t){function n(){}n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e,e.parentClass=t},mixin:function(e,t){var n;for(n in t.prototype)t.prototype.hasOwnProperty(n)&&(e.prototype[n]=t.prototype[n])},min:function(e){var t=Number.MAX_VALUE,n;if(e instanceof Array)for(n=0;nt&&(t=e[n]);else for(n in e)e[n]>t&&(t=e[n]);return t},keys:function(e){var t=[],n;for(n in e)t.push(n);return t},values:function(e){var t=[],n,r;for(r=0;r')}}catch(e){jvm.VMLElement.prototype.createElement=function(e){return document.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}document.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)"),jvm.VMLElement.VMLInitialized=!0},jvm.VMLElement.prototype.getElementCtr=function(e){return jvm["VML"+e]},jvm.VMLElement.prototype.addClass=function(e){jvm.$(this.node).addClass(e)},jvm.VMLElement.prototype.applyAttr=function(e,t){this.node[e]=t},jvm.VMLElement.prototype.getBBox=function(){var e=jvm.$(this.node);return{x:e.position().left/this.canvas.scale,y:e.position().top/this.canvas.scale,width:e.width()/this.canvas.scale,height:e.height()/this.canvas.scale}},jvm.VMLGroupElement=function(){jvm.VMLGroupElement.parentClass.call(this,"group"),this.node.style.left="0px",this.node.style.top="0px",this.node.coordorigin="0 0"},jvm.inherits(jvm.VMLGroupElement,jvm.VMLElement),jvm.VMLGroupElement.prototype.add=function(e){this.node.appendChild(e.node)},jvm.VMLCanvasElement=function(e,t,n){this.classPrefix="VML",jvm.VMLCanvasElement.parentClass.call(this,"group"),jvm.AbstractCanvasElement.apply(this,arguments),this.node.style.position="absolute"},jvm.inherits(jvm.VMLCanvasElement,jvm.VMLElement),jvm.mixin(jvm.VMLCanvasElement,jvm.AbstractCanvasElement),jvm.VMLCanvasElement.prototype.setSize=function(e,t){var n,r,i,s;this.width=e,this.height=t,this.node.style.width=e+"px",this.node.style.height=t+"px",this.node.coordsize=e+" "+t,this.node.coordorigin="0 0";if(this.rootElement){n=this.rootElement.node.getElementsByTagName("shape");for(i=0,s=n.length;i=0)e-=t[i],i++;return i==this.scale.length-1?e=this.vectorToNum(this.scale[i]):e=this.vectorToNum(this.vectorAdd(this.scale[i],this.vectorMult(this.vectorSubtract(this.scale[i+1],this.scale[i]),e/t[i]))),e},vectorToNum:function(e){var t=0,n;for(n=0;nt&&(t=e[i]),r0?1:e<0?-1:e},mill:function(e,t,n){return{x:this.radius*(t-n)*this.radDeg,y:-this.radius*Math.log(Math.tan((45+.4*e)*this.radDeg))/.8}},mill_inv:function(e,t,n){return{lat:(2.5*Math.atan(Math.exp(.8*t/this.radius))-5*Math.PI/8)*this.degRad,lng:(n*this.radDeg+e/this.radius)*this.degRad}},merc:function(e,t,n){return{x:this.radius*(t-n)*this.radDeg,y:-this.radius*Math.log(Math.tan(Math.PI/4+e*Math.PI/360))}},merc_inv:function(e,t,n){return{lat:(2*Math.atan(Math.exp(t/this.radius))-Math.PI/2)*this.degRad,lng:(n*this.radDeg+e/this.radius)*this.degRad}},aea:function(e,t,n){var r=0,i=n*this.radDeg,s=29.5*this.radDeg,o=45.5*this.radDeg,u=e*this.radDeg,a=t*this.radDeg,f=(Math.sin(s)+Math.sin(o))/2,l=Math.cos(s)*Math.cos(s)+2*f*Math.sin(s),c=f*(a-i),h=Math.sqrt(l-2*f*Math.sin(u))/f,p=Math.sqrt(l-2*f*Math.sin(r))/f;return{x:h*Math.sin(c)*this.radius,y:-(p-h*Math.cos(c))*this.radius}},aea_inv:function(e,t,n){var r=e/this.radius,i=t/this.radius,s=0,o=n*this.radDeg,u=29.5*this.radDeg,a=45.5*this.radDeg,f=(Math.sin(u)+Math.sin(a))/2,l=Math.cos(u)*Math.cos(u)+2*f*Math.sin(u),c=Math.sqrt(l-2*f*Math.sin(s))/f,h=Math.sqrt(r*r+(c-i)*(c-i)),p=Math.atan(r/(c-i));return{lat:Math.asin((l-h*h*f*f)/(2*f))*this.degRad,lng:(o+p/f)*this.degRad}},lcc:function(e,t,n){var r=0,i=n*this.radDeg,s=t*this.radDeg,o=33*this.radDeg,u=45*this.radDeg,a=e*this.radDeg,f=Math.log(Math.cos(o)*(1/Math.cos(u)))/Math.log(Math.tan(Math.PI/4+u/2)*(1/Math.tan(Math.PI/4+o/2))),l=Math.cos(o)*Math.pow(Math.tan(Math.PI/4+o/2),f)/f,c=l*Math.pow(1/Math.tan(Math.PI/4+a/2),f),h=l*Math.pow(1/Math.tan(Math.PI/4+r/2),f);return{x:c*Math.sin(f*(s-i))*this.radius,y:-(h-c*Math.cos(f*(s-i)))*this.radius}},lcc_inv:function(e,t,n){var r=e/this.radius,i=t/this.radius,s=0,o=n*this.radDeg,u=33*this.radDeg,a=45*this.radDeg,f=Math.log(Math.cos(u)*(1/Math.cos(a)))/Math.log(Math.tan(Math.PI/4+a/2)*(1/Math.tan(Math.PI/4+u/2))),l=Math.cos(u)*Math.pow(Math.tan(Math.PI/4+u/2),f)/f,c=l*Math.pow(1/Math.tan(Math.PI/4+s/2),f),h=this.sgn(f)*Math.sqrt(r*r+(c-i)*(c-i)),p=Math.atan(r/(c-i));return{lat:(2*Math.atan(Math.pow(l/h,1/f))-Math.PI/2)*this.degRad,lng:(o+p/f)*this.degRad}}},jvm.WorldMap=function(e){var t=this,n;this.params=jvm.$.extend(!0,{},jvm.WorldMap.defaultParams,e);if(!jvm.WorldMap.maps[this.params.map])throw new Error("Attempt to use map which was not loaded: "+this.params.map);this.mapData=jvm.WorldMap.maps[this.params.map],this.markers={},this.regions={},this.regionsColors={},this.regionsData={},this.container=jvm.$("
      ").css({width:"100%",height:"100%"}).addClass("jvectormap-container"),this.params.container.append(this.container),this.container.data("mapObject",this),this.container.css({position:"relative",overflow:"hidden"}),this.defaultWidth=this.mapData.width,this.defaultHeight=this.mapData.height,this.setBackgroundColor(this.params.backgroundColor),this.onResize=function(){t.setSize()},jvm.$(window).resize(this.onResize);for(n in jvm.WorldMap.apiEvents)this.params[n]&&this.container.bind(jvm.WorldMap.apiEvents[n]+".jvectormap",this.params[n]);this.canvas=new jvm.VectorCanvas(this.container[0],this.width,this.height),"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch?this.params.bindTouchEvents&&this.bindContainerTouchEvents():this.bindContainerEvents(),this.bindElementEvents(),this.createLabel(),this.params.zoomButtons&&this.bindZoomButtons(),this.createRegions(),this.createMarkers(this.params.markers||{}),this.setSize(),this.params.focusOn&&(typeof this.params.focusOn=="object"?this.setFocus.call(this,this.params.focusOn.scale,this.params.focusOn.x,this.params.focusOn.y):this.setFocus.call(this,this.params.focusOn)),this.params.selectedRegions&&this.setSelectedRegions(this.params.selectedRegions),this.params.selectedMarkers&&this.setSelectedMarkers(this.params.selectedMarkers),this.params.series&&this.createSeries()},jvm.WorldMap.prototype={transX:0,transY:0,scale:1,baseTransX:0,baseTransY:0,baseScale:1,width:0,height:0,setBackgroundColor:function(e){this.container.css("background-color",e)},resize:function(){var e=this.baseScale;this.width/this.height>this.defaultWidth/this.defaultHeight?(this.baseScale=this.height/this.defaultHeight,this.baseTransX=Math.abs(this.width-this.defaultWidth*this.baseScale)/(2*this.baseScale)):(this.baseScale=this.width/this.defaultWidth,this.baseTransY=Math.abs(this.height-this.defaultHeight*this.baseScale)/(2*this.baseScale)),this.scale*=this.baseScale/e,this.transX*=this.baseScale/e,this.transY*=this.baseScale/e},setSize:function(){this.width=this.container.width(),this.height=this.container.height(),this.resize(),this.canvas.setSize(this.width,this.height),this.applyTransform()},reset:function(){var e,t;for(e in this.series)for(t=0;tt?this.transY=t:this.transYe?this.transX=e:this.transXf[1].pageX?s=f[1].pageX+(f[0].pageX-f[1].pageX)/2:s=f[0].pageX+(f[1].pageX-f[0].pageX)/2,f[0].pageY>f[1].pageY?o=f[1].pageY+(f[0].pageY-f[1].pageY)/2:o=f[0].pageY+(f[1].pageY-f[0].pageY)/2,s-=l.left,o-=l.top,e=n.scale,t=Math.sqrt(Math.pow(f[0].pageX-f[1].pageX,2)+Math.pow(f[0].pageY-f[1].pageY,2)))),u=f.length};jvm.$(this.container).bind("touchstart",a),jvm.$(this.container).bind("touchmove",a)},bindElementEvents:function(){var e=this,t;this.container.mousemove(function(){t=!0}),this.container.delegate("[class~='jvectormap-element']","mouseover mouseout",function(t){var n=this,r=jvm.$(this).attr("class").baseVal?jvm.$(this).attr("class").baseVal:jvm.$(this).attr("class"),i=r.indexOf("jvectormap-region")===-1?"marker":"region",s=i=="region"?jvm.$(this).attr("data-code"):jvm.$(this).attr("data-index"),o=i=="region"?e.regions[s].element:e.markers[s].element,u=i=="region"?e.mapData.paths[s].name:e.markers[s].config.name||"",a=jvm.$.Event(i+"LabelShow.jvectormap"),f=jvm.$.Event(i+"Over.jvectormap");t.type=="mouseover"?(e.container.trigger(f,[s]),f.isDefaultPrevented()||o.setHovered(!0),e.label.text(u),e.container.trigger(a,[e.label,s]),a.isDefaultPrevented()||(e.label.show(),e.labelWidth=e.label.width(),e.labelHeight=e.label.height())):(o.setHovered(!1),e.label.hide(),e.container.trigger(i+"Out.jvectormap",[s]))}),this.container.delegate("[class~='jvectormap-element']","mousedown",function(e){t=!1}),this.container.delegate("[class~='jvectormap-element']","mouseup",function(n){var r=this,i=jvm.$(this).attr("class").baseVal?jvm.$(this).attr("class").baseVal:jvm.$(this).attr("class"),s=i.indexOf("jvectormap-region")===-1?"marker":"region",o=s=="region"?jvm.$(this).attr("data-code"):jvm.$(this).attr("data-index"),u=jvm.$.Event(s+"Click.jvectormap"),a=s=="region"?e.regions[o].element:e.markers[o].element;if(!t){e.container.trigger(u,[o]);if(s==="region"&&e.params.regionsSelectable||s==="marker"&&e.params.markersSelectable)u.isDefaultPrevented()||(e.params[s+"sSelectableOne"]&&e.clearSelected(s+"s"),a.setSelected(!a.isSelected))}})},bindZoomButtons:function(){var e=this;jvm.$("
      ").addClass("jvectormap-zoomin").text("+").appendTo(this.container),jvm.$("
      ").addClass("jvectormap-zoomout").html("−").appendTo(this.container),this.container.find(".jvectormap-zoomin").click(function(){e.setScale(e.scale*e.params.zoomStep,e.width/2,e.height/2)}),this.container.find(".jvectormap-zoomout").click(function(){e.setScale(e.scale/e.params.zoomStep,e.width/2,e.height/2)})},createLabel:function(){var e=this;this.label=jvm.$("
      ").addClass("jvectormap-label").appendTo(jvm.$("body")),this.container.mousemove(function(t){var n=t.pageX-15-e.labelWidth,r=t.pageY-15-e.labelHeight;n<5&&(n=t.pageX+15),r<5&&(r=t.pageY+15),e.label.is(":visible")&&e.label.css({left:n,top:r})})},setScale:function(e,t,n,r){var i,s=jvm.$.Event("zoom.jvectormap");e>this.params.zoomMax*this.baseScale?e=this.params.zoomMax*this.baseScale:eu[0].x&&au[0].y&&fi[0].x&&ei[0].y&&tarticle,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}"; +c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| +"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); +if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d').attr($.extend(args(this), { 'type': 'text' })); + } + $replacement + .removeAttr('name') + .data({ + 'placeholder-password': $input, + 'placeholder-id': id + }) + .bind('focus.placeholder', clearPlaceholder); + $input + .data({ + 'placeholder-textinput': $replacement, + 'placeholder-id': id + }) + .before($replacement); + } + $input = $input.removeAttr('id').hide().prev().attr('id', id).show(); + // Note: `$input[0] != input` now! + } + $input.addClass('placeholder'); + $input[0].value = $input.attr('placeholder'); + } else { + $input.removeClass('placeholder'); + } + } + + function safeActiveElement() { + // Avoid IE9 `document.activeElement` of death + // https://github.com/mathiasbynens/jquery-placeholder/pull/99 + try { + return document.activeElement; + } catch (err) {} + } + +}(this, document, jQuery)); + +$(function(){ + $("[placeholder]").placeholder(); +}); diff --git a/public/assets/js/plugins/misc/modernizr.min.js b/public/assets/js/plugins/misc/modernizr.min.js new file mode 100755 index 00000000..4a76012e --- /dev/null +++ b/public/assets/js/plugins/misc/modernizr.min.js @@ -0,0 +1,4 @@ +/* Modernizr 2.7.1 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-printshiv-mq-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load-cssclassprefix:modernizr + */ +;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.flexboxlegacy=function(){return J("boxDirection")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" modernizr"+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" modernizrjs modernizr"+v.join(" modernizr"):""),e}(this,this.document),function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e+~])("+m().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),f="$1"+u+"\\:$2";while(d--)b=c[d]=c[d].split("}"),b[b.length-1]=b[b.length-1].replace(e,f),c[d]=b.join("}");return c.join("{")}function z(a){var b=a.length;while(b--)a[b].removeNode()}function A(a){function g(){clearTimeout(d._removeSheetTimer),b&&b.removeNode(!0),b=null}var b,c,d=n(a),e=a.namespaces,f=a.parentWindow;return!v||a.printShived?a:(typeof e[u]=="undefined"&&e.add(u),f.attachEvent("onbeforeprint",function(){g();var d,e,f,h=a.styleSheets,i=[],j=h.length,k=Array(j);while(j--)k[j]=h[j];while(f=k.pop())if(!f.disabled&&t.test(f.media)){try{d=f.imports,e=d.length}catch(m){e=0}for(j=0;j",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b);var t=/^$|\b(?:all|print)\b/,u="html5shiv",v=!k&&function(){var c=b.documentElement;return typeof b.namespaces!="undefined"&&typeof b.parentWindow!="undefined"&&typeof c.applyElement!="undefined"&&typeof c.removeNode!="undefined"&&typeof a.attachEvent!="undefined"}();s.type+=" print",s.shivPrint=A,A(b)}(this,document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f #mq-test-1 { width: 42px; }',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b intnum.length) { + ret += strabsnum.slice(intnum.length); + } + return ret; + } else { + return '-'; + } + }; + + Morris.pad2 = function(number) { + return (number < 10 ? '0' : '') + number; + }; + + Morris.Grid = (function(_super) { + __extends(Grid, _super); + + function Grid(options) { + this.resizeHandler = __bind(this.resizeHandler, this); + var _this = this; + if (typeof options.element === 'string') { + this.el = $(document.getElementById(options.element)); + } else { + this.el = $(options.element); + } + if ((this.el == null) || this.el.length === 0) { + throw new Error("Graph container element not found"); + } + if (this.el.css('position') === 'static') { + this.el.css('position', 'relative'); + } + this.options = $.extend({}, this.gridDefaults, this.defaults || {}, options); + if (typeof this.options.units === 'string') { + this.options.postUnits = options.units; + } + this.raphael = new Raphael(this.el[0]); + this.elementWidth = null; + this.elementHeight = null; + this.dirty = false; + this.selectFrom = null; + if (this.init) { + this.init(); + } + this.setData(this.options.data); + this.el.bind('mousemove', function(evt) { + var left, offset, right, width, x; + offset = _this.el.offset(); + x = evt.pageX - offset.left; + if (_this.selectFrom) { + left = _this.data[_this.hitTest(Math.min(x, _this.selectFrom))]._x; + right = _this.data[_this.hitTest(Math.max(x, _this.selectFrom))]._x; + width = right - left; + return _this.selectionRect.attr({ + x: left, + width: width + }); + } else { + return _this.fire('hovermove', x, evt.pageY - offset.top); + } + }); + this.el.bind('mouseleave', function(evt) { + if (_this.selectFrom) { + _this.selectionRect.hide(); + _this.selectFrom = null; + } + return _this.fire('hoverout'); + }); + this.el.bind('touchstart touchmove touchend', function(evt) { + var offset, touch; + touch = evt.originalEvent.touches[0] || evt.originalEvent.changedTouches[0]; + offset = _this.el.offset(); + _this.fire('hover', touch.pageX - offset.left, touch.pageY - offset.top); + return touch; + }); + this.el.bind('click', function(evt) { + var offset; + offset = _this.el.offset(); + return _this.fire('gridclick', evt.pageX - offset.left, evt.pageY - offset.top); + }); + if (this.options.rangeSelect) { + this.selectionRect = this.raphael.rect(0, 0, 0, this.el.innerHeight()).attr({ + fill: this.options.rangeSelectColor, + stroke: false + }).toBack().hide(); + this.el.bind('mousedown', function(evt) { + var offset; + offset = _this.el.offset(); + return _this.startRange(evt.pageX - offset.left); + }); + this.el.bind('mouseup', function(evt) { + var offset; + offset = _this.el.offset(); + _this.endRange(evt.pageX - offset.left); + return _this.fire('hovermove', evt.pageX - offset.left, evt.pageY - offset.top); + }); + } + if (this.options.resize) { + $(window).bind('resize', function(evt) { + if (_this.timeoutId != null) { + window.clearTimeout(_this.timeoutId); + } + return _this.timeoutId = window.setTimeout(_this.resizeHandler, 100); + }); + } + if (this.postInit) { + this.postInit(); + } + } + + Grid.prototype.gridDefaults = { + dateFormat: null, + axes: true, + grid: true, + gridLineColor: '#aaa', + gridStrokeWidth: 0.5, + gridTextColor: '#888', + gridTextSize: 12, + gridTextFamily: 'sans-serif', + gridTextWeight: 'normal', + hideHover: false, + yLabelFormat: null, + xLabelAngle: 0, + numLines: 5, + padding: 25, + parseTime: true, + postUnits: '', + preUnits: '', + ymax: 'auto', + ymin: 'auto 0', + goals: [], + goalStrokeWidth: 1.0, + goalLineColors: ['#666633', '#999966', '#cc6666', '#663333'], + events: [], + eventStrokeWidth: 1.0, + eventLineColors: ['#005a04', '#ccffbb', '#3a5f0b', '#005502'], + rangeSelect: null, + rangeSelectColor: '#eef', + resize: false + }; + + Grid.prototype.setData = function(data, redraw) { + var e, idx, index, maxGoal, minGoal, ret, row, step, total, y, ykey, ymax, ymin, yval, _ref; + if (redraw == null) { + redraw = true; + } + this.options.data = data; + if ((data == null) || data.length === 0) { + this.data = []; + this.raphael.clear(); + if (this.hover != null) { + this.hover.hide(); + } + return; + } + ymax = this.cumulative ? 0 : null; + ymin = this.cumulative ? 0 : null; + if (this.options.goals.length > 0) { + minGoal = Math.min.apply(Math, this.options.goals); + maxGoal = Math.max.apply(Math, this.options.goals); + ymin = ymin != null ? Math.min(ymin, minGoal) : minGoal; + ymax = ymax != null ? Math.max(ymax, maxGoal) : maxGoal; + } + this.data = (function() { + var _i, _len, _results; + _results = []; + for (index = _i = 0, _len = data.length; _i < _len; index = ++_i) { + row = data[index]; + ret = { + src: row + }; + ret.label = row[this.options.xkey]; + if (this.options.parseTime) { + ret.x = Morris.parseDate(ret.label); + if (this.options.dateFormat) { + ret.label = this.options.dateFormat(ret.x); + } else if (typeof ret.label === 'number') { + ret.label = new Date(ret.label).toString(); + } + } else { + ret.x = index; + if (this.options.xLabelFormat) { + ret.label = this.options.xLabelFormat(ret); + } + } + total = 0; + ret.y = (function() { + var _j, _len1, _ref, _results1; + _ref = this.options.ykeys; + _results1 = []; + for (idx = _j = 0, _len1 = _ref.length; _j < _len1; idx = ++_j) { + ykey = _ref[idx]; + yval = row[ykey]; + if (typeof yval === 'string') { + yval = parseFloat(yval); + } + if ((yval != null) && typeof yval !== 'number') { + yval = null; + } + if (yval != null) { + if (this.cumulative) { + total += yval; + } else { + if (ymax != null) { + ymax = Math.max(yval, ymax); + ymin = Math.min(yval, ymin); + } else { + ymax = ymin = yval; + } + } + } + if (this.cumulative && (total != null)) { + ymax = Math.max(total, ymax); + ymin = Math.min(total, ymin); + } + _results1.push(yval); + } + return _results1; + }).call(this); + _results.push(ret); + } + return _results; + }).call(this); + if (this.options.parseTime) { + this.data = this.data.sort(function(a, b) { + return (a.x > b.x) - (b.x > a.x); + }); + } + this.xmin = this.data[0].x; + this.xmax = this.data[this.data.length - 1].x; + this.events = []; + if (this.options.events.length > 0) { + if (this.options.parseTime) { + this.events = (function() { + var _i, _len, _ref, _results; + _ref = this.options.events; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + e = _ref[_i]; + _results.push(Morris.parseDate(e)); + } + return _results; + }).call(this); + } else { + this.events = this.options.events; + } + this.xmax = Math.max(this.xmax, Math.max.apply(Math, this.events)); + this.xmin = Math.min(this.xmin, Math.min.apply(Math, this.events)); + } + if (this.xmin === this.xmax) { + this.xmin -= 1; + this.xmax += 1; + } + this.ymin = this.yboundary('min', ymin); + this.ymax = this.yboundary('max', ymax); + if (this.ymin === this.ymax) { + if (ymin) { + this.ymin -= 1; + } + this.ymax += 1; + } + if (((_ref = this.options.axes) === true || _ref === 'both' || _ref === 'y') || this.options.grid === true) { + if (this.options.ymax === this.gridDefaults.ymax && this.options.ymin === this.gridDefaults.ymin) { + this.grid = this.autoGridLines(this.ymin, this.ymax, this.options.numLines); + this.ymin = Math.min(this.ymin, this.grid[0]); + this.ymax = Math.max(this.ymax, this.grid[this.grid.length - 1]); + } else { + step = (this.ymax - this.ymin) / (this.options.numLines - 1); + this.grid = (function() { + var _i, _ref1, _ref2, _results; + _results = []; + for (y = _i = _ref1 = this.ymin, _ref2 = this.ymax; step > 0 ? _i <= _ref2 : _i >= _ref2; y = _i += step) { + _results.push(y); + } + return _results; + }).call(this); + } + } + this.dirty = true; + if (redraw) { + return this.redraw(); + } + }; + + Grid.prototype.yboundary = function(boundaryType, currentValue) { + var boundaryOption, suggestedValue; + boundaryOption = this.options["y" + boundaryType]; + if (typeof boundaryOption === 'string') { + if (boundaryOption.slice(0, 4) === 'auto') { + if (boundaryOption.length > 5) { + suggestedValue = parseInt(boundaryOption.slice(5), 10); + if (currentValue == null) { + return suggestedValue; + } + return Math[boundaryType](currentValue, suggestedValue); + } else { + if (currentValue != null) { + return currentValue; + } else { + return 0; + } + } + } else { + return parseInt(boundaryOption, 10); + } + } else { + return boundaryOption; + } + }; + + Grid.prototype.autoGridLines = function(ymin, ymax, nlines) { + var gmax, gmin, grid, smag, span, step, unit, y, ymag; + span = ymax - ymin; + ymag = Math.floor(Math.log(span) / Math.log(10)); + unit = Math.pow(10, ymag); + gmin = Math.floor(ymin / unit) * unit; + gmax = Math.ceil(ymax / unit) * unit; + step = (gmax - gmin) / (nlines - 1); + if (unit === 1 && step > 1 && Math.ceil(step) !== step) { + step = Math.ceil(step); + gmax = gmin + step * (nlines - 1); + } + if (gmin < 0 && gmax > 0) { + gmin = Math.floor(ymin / step) * step; + gmax = Math.ceil(ymax / step) * step; + } + if (step < 1) { + smag = Math.floor(Math.log(step) / Math.log(10)); + grid = (function() { + var _i, _results; + _results = []; + for (y = _i = gmin; step > 0 ? _i <= gmax : _i >= gmax; y = _i += step) { + _results.push(parseFloat(y.toFixed(1 - smag))); + } + return _results; + })(); + } else { + grid = (function() { + var _i, _results; + _results = []; + for (y = _i = gmin; step > 0 ? _i <= gmax : _i >= gmax; y = _i += step) { + _results.push(y); + } + return _results; + })(); + } + return grid; + }; + + Grid.prototype._calc = function() { + var bottomOffsets, gridLine, h, i, w, yLabelWidths, _ref, _ref1; + w = this.el.width(); + h = this.el.height(); + if (this.elementWidth !== w || this.elementHeight !== h || this.dirty) { + this.elementWidth = w; + this.elementHeight = h; + this.dirty = false; + this.left = this.options.padding; + this.right = this.elementWidth - this.options.padding; + this.top = this.options.padding; + this.bottom = this.elementHeight - this.options.padding; + if ((_ref = this.options.axes) === true || _ref === 'both' || _ref === 'y') { + yLabelWidths = (function() { + var _i, _len, _ref1, _results; + _ref1 = this.grid; + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + gridLine = _ref1[_i]; + _results.push(this.measureText(this.yAxisFormat(gridLine)).width); + } + return _results; + }).call(this); + this.left += Math.max.apply(Math, yLabelWidths); + } + if ((_ref1 = this.options.axes) === true || _ref1 === 'both' || _ref1 === 'x') { + bottomOffsets = (function() { + var _i, _ref2, _results; + _results = []; + for (i = _i = 0, _ref2 = this.data.length; 0 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 0 <= _ref2 ? ++_i : --_i) { + _results.push(this.measureText(this.data[i].text, -this.options.xLabelAngle).height); + } + return _results; + }).call(this); + this.bottom -= Math.max.apply(Math, bottomOffsets); + } + this.width = Math.max(1, this.right - this.left); + this.height = Math.max(1, this.bottom - this.top); + this.dx = this.width / (this.xmax - this.xmin); + this.dy = this.height / (this.ymax - this.ymin); + if (this.calc) { + return this.calc(); + } + } + }; + + Grid.prototype.transY = function(y) { + return this.bottom - (y - this.ymin) * this.dy; + }; + + Grid.prototype.transX = function(x) { + if (this.data.length === 1) { + return (this.left + this.right) / 2; + } else { + return this.left + (x - this.xmin) * this.dx; + } + }; + + Grid.prototype.redraw = function() { + this.raphael.clear(); + this._calc(); + this.drawGrid(); + this.drawGoals(); + this.drawEvents(); + if (this.draw) { + return this.draw(); + } + }; + + Grid.prototype.measureText = function(text, angle) { + var ret, tt; + if (angle == null) { + angle = 0; + } + tt = this.raphael.text(100, 100, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).rotate(angle); + ret = tt.getBBox(); + tt.remove(); + return ret; + }; + + Grid.prototype.yAxisFormat = function(label) { + return this.yLabelFormat(label); + }; + + Grid.prototype.yLabelFormat = function(label) { + if (typeof this.options.yLabelFormat === 'function') { + return this.options.yLabelFormat(label); + } else { + return "" + this.options.preUnits + (Morris.commas(label)) + this.options.postUnits; + } + }; + + Grid.prototype.drawGrid = function() { + var lineY, y, _i, _len, _ref, _ref1, _ref2, _results; + if (this.options.grid === false && ((_ref = this.options.axes) !== true && _ref !== 'both' && _ref !== 'y')) { + return; + } + _ref1 = this.grid; + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + lineY = _ref1[_i]; + y = this.transY(lineY); + if ((_ref2 = this.options.axes) === true || _ref2 === 'both' || _ref2 === 'y') { + this.drawYAxisLabel(this.left - this.options.padding / 2, y, this.yAxisFormat(lineY)); + } + if (this.options.grid) { + _results.push(this.drawGridLine("M" + this.left + "," + y + "H" + (this.left + this.width))); + } else { + _results.push(void 0); + } + } + return _results; + }; + + Grid.prototype.drawGoals = function() { + var color, goal, i, _i, _len, _ref, _results; + _ref = this.options.goals; + _results = []; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + goal = _ref[i]; + color = this.options.goalLineColors[i % this.options.goalLineColors.length]; + _results.push(this.drawGoal(goal, color)); + } + return _results; + }; + + Grid.prototype.drawEvents = function() { + var color, event, i, _i, _len, _ref, _results; + _ref = this.events; + _results = []; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + event = _ref[i]; + color = this.options.eventLineColors[i % this.options.eventLineColors.length]; + _results.push(this.drawEvent(event, color)); + } + return _results; + }; + + Grid.prototype.drawGoal = function(goal, color) { + return this.raphael.path("M" + this.left + "," + (this.transY(goal)) + "H" + this.right).attr('stroke', color).attr('stroke-width', this.options.goalStrokeWidth); + }; + + Grid.prototype.drawEvent = function(event, color) { + return this.raphael.path("M" + (this.transX(event)) + "," + this.bottom + "V" + this.top).attr('stroke', color).attr('stroke-width', this.options.eventStrokeWidth); + }; + + Grid.prototype.drawYAxisLabel = function(xPos, yPos, text) { + return this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).attr('fill', this.options.gridTextColor).attr('text-anchor', 'end'); + }; + + Grid.prototype.drawGridLine = function(path) { + return this.raphael.path(path).attr('stroke', this.options.gridLineColor).attr('stroke-width', this.options.gridStrokeWidth); + }; + + Grid.prototype.startRange = function(x) { + this.hover.hide(); + this.selectFrom = x; + return this.selectionRect.attr({ + x: x, + width: 0 + }).show(); + }; + + Grid.prototype.endRange = function(x) { + var end, start; + if (this.selectFrom) { + start = Math.min(this.selectFrom, x); + end = Math.max(this.selectFrom, x); + this.options.rangeSelect.call(this.el, { + start: this.data[this.hitTest(start)].x, + end: this.data[this.hitTest(end)].x + }); + return this.selectFrom = null; + } + }; + + Grid.prototype.resizeHandler = function() { + this.timeoutId = null; + this.raphael.setSize(this.el.width(), this.el.height()); + return this.redraw(); + }; + + return Grid; + + })(Morris.EventEmitter); + + Morris.parseDate = function(date) { + var isecs, m, msecs, n, o, offsetmins, p, q, r, ret, secs; + if (typeof date === 'number') { + return date; + } + m = date.match(/^(\d+) Q(\d)$/); + n = date.match(/^(\d+)-(\d+)$/); + o = date.match(/^(\d+)-(\d+)-(\d+)$/); + p = date.match(/^(\d+) W(\d+)$/); + q = date.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+)(Z|([+-])(\d\d):?(\d\d))?$/); + r = date.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+):(\d+(\.\d+)?)(Z|([+-])(\d\d):?(\d\d))?$/); + if (m) { + return new Date(parseInt(m[1], 10), parseInt(m[2], 10) * 3 - 1, 1).getTime(); + } else if (n) { + return new Date(parseInt(n[1], 10), parseInt(n[2], 10) - 1, 1).getTime(); + } else if (o) { + return new Date(parseInt(o[1], 10), parseInt(o[2], 10) - 1, parseInt(o[3], 10)).getTime(); + } else if (p) { + ret = new Date(parseInt(p[1], 10), 0, 1); + if (ret.getDay() !== 4) { + ret.setMonth(0, 1 + ((4 - ret.getDay()) + 7) % 7); + } + return ret.getTime() + parseInt(p[2], 10) * 604800000; + } else if (q) { + if (!q[6]) { + return new Date(parseInt(q[1], 10), parseInt(q[2], 10) - 1, parseInt(q[3], 10), parseInt(q[4], 10), parseInt(q[5], 10)).getTime(); + } else { + offsetmins = 0; + if (q[6] !== 'Z') { + offsetmins = parseInt(q[8], 10) * 60 + parseInt(q[9], 10); + if (q[7] === '+') { + offsetmins = 0 - offsetmins; + } + } + return Date.UTC(parseInt(q[1], 10), parseInt(q[2], 10) - 1, parseInt(q[3], 10), parseInt(q[4], 10), parseInt(q[5], 10) + offsetmins); + } + } else if (r) { + secs = parseFloat(r[6]); + isecs = Math.floor(secs); + msecs = Math.round((secs - isecs) * 1000); + if (!r[8]) { + return new Date(parseInt(r[1], 10), parseInt(r[2], 10) - 1, parseInt(r[3], 10), parseInt(r[4], 10), parseInt(r[5], 10), isecs, msecs).getTime(); + } else { + offsetmins = 0; + if (r[8] !== 'Z') { + offsetmins = parseInt(r[10], 10) * 60 + parseInt(r[11], 10); + if (r[9] === '+') { + offsetmins = 0 - offsetmins; + } + } + return Date.UTC(parseInt(r[1], 10), parseInt(r[2], 10) - 1, parseInt(r[3], 10), parseInt(r[4], 10), parseInt(r[5], 10) + offsetmins, isecs, msecs); + } + } else { + return new Date(parseInt(date, 10), 0, 1).getTime(); + } + }; + + Morris.Hover = (function() { + Hover.defaults = { + "class": 'morris-hover morris-default-style' + }; + + function Hover(options) { + if (options == null) { + options = {}; + } + this.options = $.extend({}, Morris.Hover.defaults, options); + this.el = $("
      "); + this.el.hide(); + this.options.parent.append(this.el); + } + + Hover.prototype.update = function(html, x, y) { + this.html(html); + this.show(); + return this.moveTo(x, y); + }; + + Hover.prototype.html = function(content) { + return this.el.html(content); + }; + + Hover.prototype.moveTo = function(x, y) { + var hoverHeight, hoverWidth, left, parentHeight, parentWidth, top; + parentWidth = this.options.parent.innerWidth(); + parentHeight = this.options.parent.innerHeight(); + hoverWidth = this.el.outerWidth(); + hoverHeight = this.el.outerHeight(); + left = Math.min(Math.max(0, x - hoverWidth / 2), parentWidth - hoverWidth); + if (y != null) { + top = y - hoverHeight - 10; + if (top < 0) { + top = y + 10; + if (top + hoverHeight > parentHeight) { + top = parentHeight / 2 - hoverHeight / 2; + } + } + } else { + top = parentHeight / 2 - hoverHeight / 2; + } + return this.el.css({ + left: left + "px", + top: parseInt(top) + "px" + }); + }; + + Hover.prototype.show = function() { + return this.el.show(); + }; + + Hover.prototype.hide = function() { + return this.el.hide(); + }; + + return Hover; + + })(); + + Morris.Line = (function(_super) { + __extends(Line, _super); + + function Line(options) { + this.hilight = __bind(this.hilight, this); + this.onHoverOut = __bind(this.onHoverOut, this); + this.onHoverMove = __bind(this.onHoverMove, this); + this.onGridClick = __bind(this.onGridClick, this); + if (!(this instanceof Morris.Line)) { + return new Morris.Line(options); + } + Line.__super__.constructor.call(this, options); + } + + Line.prototype.init = function() { + if (this.options.hideHover !== 'always') { + this.hover = new Morris.Hover({ + parent: this.el + }); + this.on('hovermove', this.onHoverMove); + this.on('hoverout', this.onHoverOut); + return this.on('gridclick', this.onGridClick); + } + }; + + Line.prototype.defaults = { + lineWidth: 3, + pointSize: 4, + lineColors: ['#0b62a4', '#7A92A3', '#4da74d', '#afd8f8', '#edc240', '#cb4b4b', '#9440ed'], + pointStrokeWidths: [1], + pointStrokeColors: ['#ffffff'], + pointFillColors: [], + smooth: true, + xLabels: 'auto', + xLabelFormat: null, + xLabelMargin: 24, + continuousLine: true, + hideHover: false + }; + + Line.prototype.calc = function() { + this.calcPoints(); + return this.generatePaths(); + }; + + Line.prototype.calcPoints = function() { + var row, y, _i, _len, _ref, _results; + _ref = this.data; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + row = _ref[_i]; + row._x = this.transX(row.x); + row._y = (function() { + var _j, _len1, _ref1, _results1; + _ref1 = row.y; + _results1 = []; + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + y = _ref1[_j]; + if (y != null) { + _results1.push(this.transY(y)); + } else { + _results1.push(y); + } + } + return _results1; + }).call(this); + _results.push(row._ymax = Math.min.apply(Math, [this.bottom].concat((function() { + var _j, _len1, _ref1, _results1; + _ref1 = row._y; + _results1 = []; + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + y = _ref1[_j]; + if (y != null) { + _results1.push(y); + } + } + return _results1; + })()))); + } + return _results; + }; + + Line.prototype.hitTest = function(x) { + var index, r, _i, _len, _ref; + if (this.data.length === 0) { + return null; + } + _ref = this.data.slice(1); + for (index = _i = 0, _len = _ref.length; _i < _len; index = ++_i) { + r = _ref[index]; + if (x < (r._x + this.data[index]._x) / 2) { + break; + } + } + return index; + }; + + Line.prototype.onGridClick = function(x, y) { + var index; + index = this.hitTest(x); + return this.fire('click', index, this.data[index].src, x, y); + }; + + Line.prototype.onHoverMove = function(x, y) { + var index; + index = this.hitTest(x); + return this.displayHoverForRow(index); + }; + + Line.prototype.onHoverOut = function() { + if (this.options.hideHover !== false) { + return this.displayHoverForRow(null); + } + }; + + Line.prototype.displayHoverForRow = function(index) { + var _ref; + if (index != null) { + (_ref = this.hover).update.apply(_ref, this.hoverContentForRow(index)); + return this.hilight(index); + } else { + this.hover.hide(); + return this.hilight(); + } + }; + + Line.prototype.hoverContentForRow = function(index) { + var content, j, row, y, _i, _len, _ref; + row = this.data[index]; + content = "
      " + row.label + "
      "; + _ref = row.y; + for (j = _i = 0, _len = _ref.length; _i < _len; j = ++_i) { + y = _ref[j]; + content += "
      \n " + this.options.labels[j] + ":\n " + (this.yLabelFormat(y)) + "\n
      "; + } + if (typeof this.options.hoverCallback === 'function') { + content = this.options.hoverCallback(index, this.options, content, row.src); + } + return [content, row._x, row._ymax]; + }; + + Line.prototype.generatePaths = function() { + var c, coords, i, r, smooth; + return this.paths = (function() { + var _i, _ref, _ref1, _results; + _results = []; + for (i = _i = 0, _ref = this.options.ykeys.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + smooth = typeof this.options.smooth === "boolean" ? this.options.smooth : (_ref1 = this.options.ykeys[i], __indexOf.call(this.options.smooth, _ref1) >= 0); + coords = (function() { + var _j, _len, _ref2, _results1; + _ref2 = this.data; + _results1 = []; + for (_j = 0, _len = _ref2.length; _j < _len; _j++) { + r = _ref2[_j]; + if (r._y[i] !== void 0) { + _results1.push({ + x: r._x, + y: r._y[i] + }); + } + } + return _results1; + }).call(this); + if (this.options.continuousLine) { + coords = (function() { + var _j, _len, _results1; + _results1 = []; + for (_j = 0, _len = coords.length; _j < _len; _j++) { + c = coords[_j]; + if (c.y !== null) { + _results1.push(c); + } + } + return _results1; + })(); + } + if (coords.length > 1) { + _results.push(Morris.Line.createPath(coords, smooth, this.bottom)); + } else { + _results.push(null); + } + } + return _results; + }).call(this); + }; + + Line.prototype.draw = function() { + var _ref; + if ((_ref = this.options.axes) === true || _ref === 'both' || _ref === 'x') { + this.drawXAxis(); + } + this.drawSeries(); + if (this.options.hideHover === false) { + return this.displayHoverForRow(this.data.length - 1); + } + }; + + Line.prototype.drawXAxis = function() { + var drawLabel, l, labels, prevAngleMargin, prevLabelMargin, row, ypos, _i, _len, _results, + _this = this; + ypos = this.bottom + this.options.padding / 2; + prevLabelMargin = null; + prevAngleMargin = null; + drawLabel = function(labelText, xpos) { + var label, labelBox, margin, offset, textBox; + label = _this.drawXAxisLabel(_this.transX(xpos), ypos, labelText); + textBox = label.getBBox(); + label.transform("r" + (-_this.options.xLabelAngle)); + labelBox = label.getBBox(); + label.transform("t0," + (labelBox.height / 2) + "..."); + if (_this.options.xLabelAngle !== 0) { + offset = -0.5 * textBox.width * Math.cos(_this.options.xLabelAngle * Math.PI / 180.0); + label.transform("t" + offset + ",0..."); + } + labelBox = label.getBBox(); + if (((prevLabelMargin == null) || prevLabelMargin >= labelBox.x + labelBox.width || (prevAngleMargin != null) && prevAngleMargin >= labelBox.x) && labelBox.x >= 0 && (labelBox.x + labelBox.width) < _this.el.width()) { + if (_this.options.xLabelAngle !== 0) { + margin = 1.25 * _this.options.gridTextSize / Math.sin(_this.options.xLabelAngle * Math.PI / 180.0); + prevAngleMargin = labelBox.x - margin; + } + return prevLabelMargin = labelBox.x - _this.options.xLabelMargin; + } else { + return label.remove(); + } + }; + if (this.options.parseTime) { + if (this.data.length === 1 && this.options.xLabels === 'auto') { + labels = [[this.data[0].label, this.data[0].x]]; + } else { + labels = Morris.labelSeries(this.xmin, this.xmax, this.width, this.options.xLabels, this.options.xLabelFormat); + } + } else { + labels = (function() { + var _i, _len, _ref, _results; + _ref = this.data; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + row = _ref[_i]; + _results.push([row.label, row.x]); + } + return _results; + }).call(this); + } + labels.reverse(); + _results = []; + for (_i = 0, _len = labels.length; _i < _len; _i++) { + l = labels[_i]; + _results.push(drawLabel(l[0], l[1])); + } + return _results; + }; + + Line.prototype.drawSeries = function() { + var i, _i, _j, _ref, _ref1, _results; + this.seriesPoints = []; + for (i = _i = _ref = this.options.ykeys.length - 1; _ref <= 0 ? _i <= 0 : _i >= 0; i = _ref <= 0 ? ++_i : --_i) { + this._drawLineFor(i); + } + _results = []; + for (i = _j = _ref1 = this.options.ykeys.length - 1; _ref1 <= 0 ? _j <= 0 : _j >= 0; i = _ref1 <= 0 ? ++_j : --_j) { + _results.push(this._drawPointFor(i)); + } + return _results; + }; + + Line.prototype._drawPointFor = function(index) { + var circle, row, _i, _len, _ref, _results; + this.seriesPoints[index] = []; + _ref = this.data; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + row = _ref[_i]; + circle = null; + if (row._y[index] != null) { + circle = this.drawLinePoint(row._x, row._y[index], this.colorFor(row, index, 'point'), index); + } + _results.push(this.seriesPoints[index].push(circle)); + } + return _results; + }; + + Line.prototype._drawLineFor = function(index) { + var path; + path = this.paths[index]; + if (path !== null) { + return this.drawLinePath(path, this.colorFor(null, index, 'line'), index); + } + }; + + Line.createPath = function(coords, smooth, bottom) { + var coord, g, grads, i, ix, lg, path, prevCoord, x1, x2, y1, y2, _i, _len; + path = ""; + if (smooth) { + grads = Morris.Line.gradients(coords); + } + prevCoord = { + y: null + }; + for (i = _i = 0, _len = coords.length; _i < _len; i = ++_i) { + coord = coords[i]; + if (coord.y != null) { + if (prevCoord.y != null) { + if (smooth) { + g = grads[i]; + lg = grads[i - 1]; + ix = (coord.x - prevCoord.x) / 4; + x1 = prevCoord.x + ix; + y1 = Math.min(bottom, prevCoord.y + ix * lg); + x2 = coord.x - ix; + y2 = Math.min(bottom, coord.y - ix * g); + path += "C" + x1 + "," + y1 + "," + x2 + "," + y2 + "," + coord.x + "," + coord.y; + } else { + path += "L" + coord.x + "," + coord.y; + } + } else { + if (!smooth || (grads[i] != null)) { + path += "M" + coord.x + "," + coord.y; + } + } + } + prevCoord = coord; + } + return path; + }; + + Line.gradients = function(coords) { + var coord, grad, i, nextCoord, prevCoord, _i, _len, _results; + grad = function(a, b) { + return (a.y - b.y) / (a.x - b.x); + }; + _results = []; + for (i = _i = 0, _len = coords.length; _i < _len; i = ++_i) { + coord = coords[i]; + if (coord.y != null) { + nextCoord = coords[i + 1] || { + y: null + }; + prevCoord = coords[i - 1] || { + y: null + }; + if ((prevCoord.y != null) && (nextCoord.y != null)) { + _results.push(grad(prevCoord, nextCoord)); + } else if (prevCoord.y != null) { + _results.push(grad(prevCoord, coord)); + } else if (nextCoord.y != null) { + _results.push(grad(coord, nextCoord)); + } else { + _results.push(null); + } + } else { + _results.push(null); + } + } + return _results; + }; + + Line.prototype.hilight = function(index) { + var i, _i, _j, _ref, _ref1; + if (this.prevHilight !== null && this.prevHilight !== index) { + for (i = _i = 0, _ref = this.seriesPoints.length - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { + if (this.seriesPoints[i][this.prevHilight]) { + this.seriesPoints[i][this.prevHilight].animate(this.pointShrinkSeries(i)); + } + } + } + if (index !== null && this.prevHilight !== index) { + for (i = _j = 0, _ref1 = this.seriesPoints.length - 1; 0 <= _ref1 ? _j <= _ref1 : _j >= _ref1; i = 0 <= _ref1 ? ++_j : --_j) { + if (this.seriesPoints[i][index]) { + this.seriesPoints[i][index].animate(this.pointGrowSeries(i)); + } + } + } + return this.prevHilight = index; + }; + + Line.prototype.colorFor = function(row, sidx, type) { + if (typeof this.options.lineColors === 'function') { + return this.options.lineColors.call(this, row, sidx, type); + } else if (type === 'point') { + return this.options.pointFillColors[sidx % this.options.pointFillColors.length] || this.options.lineColors[sidx % this.options.lineColors.length]; + } else { + return this.options.lineColors[sidx % this.options.lineColors.length]; + } + }; + + Line.prototype.drawXAxisLabel = function(xPos, yPos, text) { + return this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).attr('fill', this.options.gridTextColor); + }; + + Line.prototype.drawLinePath = function(path, lineColor, lineIndex) { + return this.raphael.path(path).attr('stroke', lineColor).attr('stroke-width', this.lineWidthForSeries(lineIndex)); + }; + + Line.prototype.drawLinePoint = function(xPos, yPos, pointColor, lineIndex) { + return this.raphael.circle(xPos, yPos, this.pointSizeForSeries(lineIndex)).attr('fill', pointColor).attr('stroke-width', this.pointStrokeWidthForSeries(lineIndex)).attr('stroke', this.pointStrokeColorForSeries(lineIndex)); + }; + + Line.prototype.pointStrokeWidthForSeries = function(index) { + return this.options.pointStrokeWidths[index % this.options.pointStrokeWidths.length]; + }; + + Line.prototype.pointStrokeColorForSeries = function(index) { + return this.options.pointStrokeColors[index % this.options.pointStrokeColors.length]; + }; + + Line.prototype.lineWidthForSeries = function(index) { + if (this.options.lineWidth instanceof Array) { + return this.options.lineWidth[index % this.options.lineWidth.length]; + } else { + return this.options.lineWidth; + } + }; + + Line.prototype.pointSizeForSeries = function(index) { + if (this.options.pointSize instanceof Array) { + return this.options.pointSize[index % this.options.pointSize.length]; + } else { + return this.options.pointSize; + } + }; + + Line.prototype.pointGrowSeries = function(index) { + return Raphael.animation({ + r: this.pointSizeForSeries(index) + 3 + }, 25, 'linear'); + }; + + Line.prototype.pointShrinkSeries = function(index) { + return Raphael.animation({ + r: this.pointSizeForSeries(index) + }, 25, 'linear'); + }; + + return Line; + + })(Morris.Grid); + + Morris.labelSeries = function(dmin, dmax, pxwidth, specName, xLabelFormat) { + var d, d0, ddensity, name, ret, s, spec, t, _i, _len, _ref; + ddensity = 200 * (dmax - dmin) / pxwidth; + d0 = new Date(dmin); + spec = Morris.LABEL_SPECS[specName]; + if (spec === void 0) { + _ref = Morris.AUTO_LABEL_ORDER; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + name = _ref[_i]; + s = Morris.LABEL_SPECS[name]; + if (ddensity >= s.span) { + spec = s; + break; + } + } + } + if (spec === void 0) { + spec = Morris.LABEL_SPECS["second"]; + } + if (xLabelFormat) { + spec = $.extend({}, spec, { + fmt: xLabelFormat + }); + } + d = spec.start(d0); + ret = []; + while ((t = d.getTime()) <= dmax) { + if (t >= dmin) { + ret.push([spec.fmt(d), t]); + } + spec.incr(d); + } + return ret; + }; + + minutesSpecHelper = function(interval) { + return { + span: interval * 60 * 1000, + start: function(d) { + return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours()); + }, + fmt: function(d) { + return "" + (Morris.pad2(d.getHours())) + ":" + (Morris.pad2(d.getMinutes())); + }, + incr: function(d) { + return d.setUTCMinutes(d.getUTCMinutes() + interval); + } + }; + }; + + secondsSpecHelper = function(interval) { + return { + span: interval * 1000, + start: function(d) { + return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes()); + }, + fmt: function(d) { + return "" + (Morris.pad2(d.getHours())) + ":" + (Morris.pad2(d.getMinutes())) + ":" + (Morris.pad2(d.getSeconds())); + }, + incr: function(d) { + return d.setUTCSeconds(d.getUTCSeconds() + interval); + } + }; + }; + + Morris.LABEL_SPECS = { + "decade": { + span: 172800000000, + start: function(d) { + return new Date(d.getFullYear() - d.getFullYear() % 10, 0, 1); + }, + fmt: function(d) { + return "" + (d.getFullYear()); + }, + incr: function(d) { + return d.setFullYear(d.getFullYear() + 10); + } + }, + "year": { + span: 17280000000, + start: function(d) { + return new Date(d.getFullYear(), 0, 1); + }, + fmt: function(d) { + return "" + (d.getFullYear()); + }, + incr: function(d) { + return d.setFullYear(d.getFullYear() + 1); + } + }, + "month": { + span: 2419200000, + start: function(d) { + return new Date(d.getFullYear(), d.getMonth(), 1); + }, + fmt: function(d) { + return "" + (d.getFullYear()) + "-" + (Morris.pad2(d.getMonth() + 1)); + }, + incr: function(d) { + return d.setMonth(d.getMonth() + 1); + } + }, + "week": { + span: 604800000, + start: function(d) { + return new Date(d.getFullYear(), d.getMonth(), d.getDate()); + }, + fmt: function(d) { + return "" + (d.getFullYear()) + "-" + (Morris.pad2(d.getMonth() + 1)) + "-" + (Morris.pad2(d.getDate())); + }, + incr: function(d) { + return d.setDate(d.getDate() + 7); + } + }, + "day": { + span: 86400000, + start: function(d) { + return new Date(d.getFullYear(), d.getMonth(), d.getDate()); + }, + fmt: function(d) { + return "" + (d.getFullYear()) + "-" + (Morris.pad2(d.getMonth() + 1)) + "-" + (Morris.pad2(d.getDate())); + }, + incr: function(d) { + return d.setDate(d.getDate() + 1); + } + }, + "hour": minutesSpecHelper(60), + "30min": minutesSpecHelper(30), + "15min": minutesSpecHelper(15), + "10min": minutesSpecHelper(10), + "5min": minutesSpecHelper(5), + "minute": minutesSpecHelper(1), + "30sec": secondsSpecHelper(30), + "15sec": secondsSpecHelper(15), + "10sec": secondsSpecHelper(10), + "5sec": secondsSpecHelper(5), + "second": secondsSpecHelper(1) + }; + + Morris.AUTO_LABEL_ORDER = ["decade", "year", "month", "week", "day", "hour", "30min", "15min", "10min", "5min", "minute", "30sec", "15sec", "10sec", "5sec", "second"]; + + Morris.Area = (function(_super) { + var areaDefaults; + + __extends(Area, _super); + + areaDefaults = { + fillOpacity: 'auto', + behaveLikeLine: false + }; + + function Area(options) { + var areaOptions; + if (!(this instanceof Morris.Area)) { + return new Morris.Area(options); + } + areaOptions = $.extend({}, areaDefaults, options); + this.cumulative = !areaOptions.behaveLikeLine; + if (areaOptions.fillOpacity === 'auto') { + areaOptions.fillOpacity = areaOptions.behaveLikeLine ? .8 : 1; + } + Area.__super__.constructor.call(this, areaOptions); + } + + Area.prototype.calcPoints = function() { + var row, total, y, _i, _len, _ref, _results; + _ref = this.data; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + row = _ref[_i]; + row._x = this.transX(row.x); + total = 0; + row._y = (function() { + var _j, _len1, _ref1, _results1; + _ref1 = row.y; + _results1 = []; + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + y = _ref1[_j]; + if (this.options.behaveLikeLine) { + _results1.push(this.transY(y)); + } else { + total += y || 0; + _results1.push(this.transY(total)); + } + } + return _results1; + }).call(this); + _results.push(row._ymax = Math.max.apply(Math, row._y)); + } + return _results; + }; + + Area.prototype.drawSeries = function() { + var i, range, _i, _j, _k, _len, _ref, _ref1, _results, _results1, _results2; + this.seriesPoints = []; + if (this.options.behaveLikeLine) { + range = (function() { + _results = []; + for (var _i = 0, _ref = this.options.ykeys.length - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); } + return _results; + }).apply(this); + } else { + range = (function() { + _results1 = []; + for (var _j = _ref1 = this.options.ykeys.length - 1; _ref1 <= 0 ? _j <= 0 : _j >= 0; _ref1 <= 0 ? _j++ : _j--){ _results1.push(_j); } + return _results1; + }).apply(this); + } + _results2 = []; + for (_k = 0, _len = range.length; _k < _len; _k++) { + i = range[_k]; + this._drawFillFor(i); + this._drawLineFor(i); + _results2.push(this._drawPointFor(i)); + } + return _results2; + }; + + Area.prototype._drawFillFor = function(index) { + var path; + path = this.paths[index]; + if (path !== null) { + path = path + ("L" + (this.transX(this.xmax)) + "," + this.bottom + "L" + (this.transX(this.xmin)) + "," + this.bottom + "Z"); + return this.drawFilledPath(path, this.fillForSeries(index)); + } + }; + + Area.prototype.fillForSeries = function(i) { + var color; + color = Raphael.rgb2hsl(this.colorFor(this.data[i], i, 'line')); + return Raphael.hsl(color.h, this.options.behaveLikeLine ? color.s * 0.9 : color.s * 0.75, Math.min(0.98, this.options.behaveLikeLine ? color.l * 1.2 : color.l * 1.25)); + }; + + Area.prototype.drawFilledPath = function(path, fill) { + return this.raphael.path(path).attr('fill', fill).attr('fill-opacity', this.options.fillOpacity).attr('stroke', 'none'); + }; + + return Area; + + })(Morris.Line); + + Morris.Bar = (function(_super) { + __extends(Bar, _super); + + function Bar(options) { + this.onHoverOut = __bind(this.onHoverOut, this); + this.onHoverMove = __bind(this.onHoverMove, this); + this.onGridClick = __bind(this.onGridClick, this); + if (!(this instanceof Morris.Bar)) { + return new Morris.Bar(options); + } + Bar.__super__.constructor.call(this, $.extend({}, options, { + parseTime: false + })); + } + + Bar.prototype.init = function() { + this.cumulative = this.options.stacked; + if (this.options.hideHover !== 'always') { + this.hover = new Morris.Hover({ + parent: this.el + }); + this.on('hovermove', this.onHoverMove); + this.on('hoverout', this.onHoverOut); + return this.on('gridclick', this.onGridClick); + } + }; + + Bar.prototype.defaults = { + barSizeRatio: 0.75, + barGap: 3, + barColors: ['#0b62a4', '#7a92a3', '#4da74d', '#afd8f8', '#edc240', '#cb4b4b', '#9440ed'], + barOpacity: 1.0, + barRadius: [0, 0, 0, 0], + xLabelMargin: 50 + }; + + Bar.prototype.calc = function() { + var _ref; + this.calcBars(); + if (this.options.hideHover === false) { + return (_ref = this.hover).update.apply(_ref, this.hoverContentForRow(this.data.length - 1)); + } + }; + + Bar.prototype.calcBars = function() { + var idx, row, y, _i, _len, _ref, _results; + _ref = this.data; + _results = []; + for (idx = _i = 0, _len = _ref.length; _i < _len; idx = ++_i) { + row = _ref[idx]; + row._x = this.left + this.width * (idx + 0.5) / this.data.length; + _results.push(row._y = (function() { + var _j, _len1, _ref1, _results1; + _ref1 = row.y; + _results1 = []; + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + y = _ref1[_j]; + if (y != null) { + _results1.push(this.transY(y)); + } else { + _results1.push(null); + } + } + return _results1; + }).call(this)); + } + return _results; + }; + + Bar.prototype.draw = function() { + var _ref; + if ((_ref = this.options.axes) === true || _ref === 'both' || _ref === 'x') { + this.drawXAxis(); + } + return this.drawSeries(); + }; + + Bar.prototype.drawXAxis = function() { + var i, label, labelBox, margin, offset, prevAngleMargin, prevLabelMargin, row, textBox, ypos, _i, _ref, _results; + ypos = this.bottom + (this.options.xAxisLabelTopPadding || this.options.padding / 2); + prevLabelMargin = null; + prevAngleMargin = null; + _results = []; + for (i = _i = 0, _ref = this.data.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + row = this.data[this.data.length - 1 - i]; + label = this.drawXAxisLabel(row._x, ypos, row.label); + textBox = label.getBBox(); + label.transform("r" + (-this.options.xLabelAngle)); + labelBox = label.getBBox(); + label.transform("t0," + (labelBox.height / 2) + "..."); + if (this.options.xLabelAngle !== 0) { + offset = -0.5 * textBox.width * Math.cos(this.options.xLabelAngle * Math.PI / 180.0); + label.transform("t" + offset + ",0..."); + } + if (((prevLabelMargin == null) || prevLabelMargin >= labelBox.x + labelBox.width || (prevAngleMargin != null) && prevAngleMargin >= labelBox.x) && labelBox.x >= 0 && (labelBox.x + labelBox.width) < this.el.width()) { + if (this.options.xLabelAngle !== 0) { + margin = 1.25 * this.options.gridTextSize / Math.sin(this.options.xLabelAngle * Math.PI / 180.0); + prevAngleMargin = labelBox.x - margin; + } + _results.push(prevLabelMargin = labelBox.x - this.options.xLabelMargin); + } else { + _results.push(label.remove()); + } + } + return _results; + }; + + Bar.prototype.drawSeries = function() { + var barWidth, bottom, groupWidth, idx, lastTop, left, leftPadding, numBars, row, sidx, size, top, ypos, zeroPos; + groupWidth = this.width / this.options.data.length; + numBars = this.options.stacked != null ? 1 : this.options.ykeys.length; + barWidth = (groupWidth * this.options.barSizeRatio - this.options.barGap * (numBars - 1)) / numBars; + leftPadding = groupWidth * (1 - this.options.barSizeRatio) / 2; + zeroPos = this.ymin <= 0 && this.ymax >= 0 ? this.transY(0) : null; + return this.bars = (function() { + var _i, _len, _ref, _results; + _ref = this.data; + _results = []; + for (idx = _i = 0, _len = _ref.length; _i < _len; idx = ++_i) { + row = _ref[idx]; + lastTop = 0; + _results.push((function() { + var _j, _len1, _ref1, _results1; + _ref1 = row._y; + _results1 = []; + for (sidx = _j = 0, _len1 = _ref1.length; _j < _len1; sidx = ++_j) { + ypos = _ref1[sidx]; + if (ypos !== null) { + if (zeroPos) { + top = Math.min(ypos, zeroPos); + bottom = Math.max(ypos, zeroPos); + } else { + top = ypos; + bottom = this.bottom; + } + left = this.left + idx * groupWidth + leftPadding; + if (!this.options.stacked) { + left += sidx * (barWidth + this.options.barGap); + } + size = bottom - top; + if (this.options.stacked) { + top -= lastTop; + } + this.drawBar(left, top, barWidth, size, this.colorFor(row, sidx, 'bar'), this.options.barOpacity, this.options.barRadius); + _results1.push(lastTop += size); + } else { + _results1.push(null); + } + } + return _results1; + }).call(this)); + } + return _results; + }).call(this); + }; + + Bar.prototype.colorFor = function(row, sidx, type) { + var r, s; + if (typeof this.options.barColors === 'function') { + r = { + x: row.x, + y: row.y[sidx], + label: row.label + }; + s = { + index: sidx, + key: this.options.ykeys[sidx], + label: this.options.labels[sidx] + }; + return this.options.barColors.call(this, r, s, type); + } else { + return this.options.barColors[sidx % this.options.barColors.length]; + } + }; + + Bar.prototype.hitTest = function(x) { + if (this.data.length === 0) { + return null; + } + x = Math.max(Math.min(x, this.right), this.left); + return Math.min(this.data.length - 1, Math.floor((x - this.left) / (this.width / this.data.length))); + }; + + Bar.prototype.onGridClick = function(x, y) { + var index; + index = this.hitTest(x); + return this.fire('click', index, this.data[index].src, x, y); + }; + + Bar.prototype.onHoverMove = function(x, y) { + var index, _ref; + index = this.hitTest(x); + return (_ref = this.hover).update.apply(_ref, this.hoverContentForRow(index)); + }; + + Bar.prototype.onHoverOut = function() { + if (this.options.hideHover !== false) { + return this.hover.hide(); + } + }; + + Bar.prototype.hoverContentForRow = function(index) { + var content, j, row, x, y, _i, _len, _ref; + row = this.data[index]; + content = "
      " + row.label + "
      "; + _ref = row.y; + for (j = _i = 0, _len = _ref.length; _i < _len; j = ++_i) { + y = _ref[j]; + content += "
      \n " + this.options.labels[j] + ":\n " + (this.yLabelFormat(y)) + "\n
      "; + } + if (typeof this.options.hoverCallback === 'function') { + content = this.options.hoverCallback(index, this.options, content, row.src); + } + x = this.left + (index + 0.5) * this.width / this.data.length; + return [content, x]; + }; + + Bar.prototype.drawXAxisLabel = function(xPos, yPos, text) { + var label; + return label = this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).attr('fill', this.options.gridTextColor); + }; + + Bar.prototype.drawBar = function(xPos, yPos, width, height, barColor, opacity, radiusArray) { + var maxRadius, path; + maxRadius = Math.max.apply(Math, radiusArray); + if (maxRadius === 0 || maxRadius > height) { + path = this.raphael.rect(xPos, yPos, width, height); + } else { + path = this.raphael.path(this.roundedRect(xPos, yPos, width, height, radiusArray)); + } + return path.attr('fill', barColor).attr('fill-opacity', opacity).attr('stroke', 'none'); + }; + + Bar.prototype.roundedRect = function(x, y, w, h, r) { + if (r == null) { + r = [0, 0, 0, 0]; + } + return ["M", x, r[0] + y, "Q", x, y, x + r[0], y, "L", x + w - r[1], y, "Q", x + w, y, x + w, y + r[1], "L", x + w, y + h - r[2], "Q", x + w, y + h, x + w - r[2], y + h, "L", x + r[3], y + h, "Q", x, y + h, x, y + h - r[3], "Z"]; + }; + + return Bar; + + })(Morris.Grid); + + Morris.Donut = (function(_super) { + __extends(Donut, _super); + + Donut.prototype.defaults = { + colors: ['#0B62A4', '#3980B5', '#679DC6', '#95BBD7', '#B0CCE1', '#095791', '#095085', '#083E67', '#052C48', '#042135'], + backgroundColor: '#FFFFFF', + labelColor: '#000000', + formatter: Morris.commas, + resize: false + }; + + function Donut(options) { + this.resizeHandler = __bind(this.resizeHandler, this); + this.select = __bind(this.select, this); + this.click = __bind(this.click, this); + var _this = this; + if (!(this instanceof Morris.Donut)) { + return new Morris.Donut(options); + } + this.options = $.extend({}, this.defaults, options); + if (typeof options.element === 'string') { + this.el = $(document.getElementById(options.element)); + } else { + this.el = $(options.element); + } + if (this.el === null || this.el.length === 0) { + throw new Error("Graph placeholder not found."); + } + if (options.data === void 0 || options.data.length === 0) { + return; + } + this.raphael = new Raphael(this.el[0]); + if (this.options.resize) { + $(window).bind('resize', function(evt) { + if (_this.timeoutId != null) { + window.clearTimeout(_this.timeoutId); + } + return _this.timeoutId = window.setTimeout(_this.resizeHandler, 100); + }); + } + this.setData(options.data); + } + + Donut.prototype.redraw = function() { + var C, cx, cy, i, idx, last, max_value, min, next, seg, total, value, w, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results; + this.raphael.clear(); + cx = this.el.width() / 2; + cy = this.el.height() / 2; + w = (Math.min(cx, cy) - 10) / 3; + total = 0; + _ref = this.values; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + value = _ref[_i]; + total += value; + } + min = 5 / (2 * w); + C = 1.9999 * Math.PI - min * this.data.length; + last = 0; + idx = 0; + this.segments = []; + _ref1 = this.values; + for (i = _j = 0, _len1 = _ref1.length; _j < _len1; i = ++_j) { + value = _ref1[i]; + next = last + min + C * (value / total); + seg = new Morris.DonutSegment(cx, cy, w * 2, w, last, next, this.data[i].color || this.options.colors[idx % this.options.colors.length], this.options.backgroundColor, idx, this.raphael); + seg.render(); + this.segments.push(seg); + seg.on('hover', this.select); + seg.on('click', this.click); + last = next; + idx += 1; + } + this.text1 = this.drawEmptyDonutLabel(cx, cy - 10, this.options.labelColor, 15, 800); + this.text2 = this.drawEmptyDonutLabel(cx, cy + 10, this.options.labelColor, 14); + max_value = Math.max.apply(Math, this.values); + idx = 0; + _ref2 = this.values; + _results = []; + for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { + value = _ref2[_k]; + if (value === max_value) { + this.select(idx); + break; + } + _results.push(idx += 1); + } + return _results; + }; + + Donut.prototype.setData = function(data) { + var row; + this.data = data; + this.values = (function() { + var _i, _len, _ref, _results; + _ref = this.data; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + row = _ref[_i]; + _results.push(parseFloat(row.value)); + } + return _results; + }).call(this); + return this.redraw(); + }; + + Donut.prototype.click = function(idx) { + return this.fire('click', idx, this.data[idx]); + }; + + Donut.prototype.select = function(idx) { + var row, s, segment, _i, _len, _ref; + _ref = this.segments; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + s = _ref[_i]; + s.deselect(); + } + segment = this.segments[idx]; + segment.select(); + row = this.data[idx]; + return this.setLabels(row.label, this.options.formatter(row.value, row)); + }; + + Donut.prototype.setLabels = function(label1, label2) { + var inner, maxHeightBottom, maxHeightTop, maxWidth, text1bbox, text1scale, text2bbox, text2scale; + inner = (Math.min(this.el.width() / 2, this.el.height() / 2) - 10) * 2 / 3; + maxWidth = 1.8 * inner; + maxHeightTop = inner / 2; + maxHeightBottom = inner / 3; + this.text1.attr({ + text: label1, + transform: '' + }); + text1bbox = this.text1.getBBox(); + text1scale = Math.min(maxWidth / text1bbox.width, maxHeightTop / text1bbox.height); + this.text1.attr({ + transform: "S" + text1scale + "," + text1scale + "," + (text1bbox.x + text1bbox.width / 2) + "," + (text1bbox.y + text1bbox.height) + }); + this.text2.attr({ + text: label2, + transform: '' + }); + text2bbox = this.text2.getBBox(); + text2scale = Math.min(maxWidth / text2bbox.width, maxHeightBottom / text2bbox.height); + return this.text2.attr({ + transform: "S" + text2scale + "," + text2scale + "," + (text2bbox.x + text2bbox.width / 2) + "," + text2bbox.y + }); + }; + + Donut.prototype.drawEmptyDonutLabel = function(xPos, yPos, color, fontSize, fontWeight) { + var text; + text = this.raphael.text(xPos, yPos, '').attr('font-size', fontSize).attr('fill', color); + if (fontWeight != null) { + text.attr('font-weight', fontWeight); + } + return text; + }; + + Donut.prototype.resizeHandler = function() { + this.timeoutId = null; + this.raphael.setSize(this.el.width(), this.el.height()); + return this.redraw(); + }; + + return Donut; + + })(Morris.EventEmitter); + + Morris.DonutSegment = (function(_super) { + __extends(DonutSegment, _super); + + function DonutSegment(cx, cy, inner, outer, p0, p1, color, backgroundColor, index, raphael) { + this.cx = cx; + this.cy = cy; + this.inner = inner; + this.outer = outer; + this.color = color; + this.backgroundColor = backgroundColor; + this.index = index; + this.raphael = raphael; + this.deselect = __bind(this.deselect, this); + this.select = __bind(this.select, this); + this.sin_p0 = Math.sin(p0); + this.cos_p0 = Math.cos(p0); + this.sin_p1 = Math.sin(p1); + this.cos_p1 = Math.cos(p1); + this.is_long = (p1 - p0) > Math.PI ? 1 : 0; + this.path = this.calcSegment(this.inner + 3, this.inner + this.outer - 5); + this.selectedPath = this.calcSegment(this.inner + 3, this.inner + this.outer); + this.hilight = this.calcArc(this.inner); + } + + DonutSegment.prototype.calcArcPoints = function(r) { + return [this.cx + r * this.sin_p0, this.cy + r * this.cos_p0, this.cx + r * this.sin_p1, this.cy + r * this.cos_p1]; + }; + + DonutSegment.prototype.calcSegment = function(r1, r2) { + var ix0, ix1, iy0, iy1, ox0, ox1, oy0, oy1, _ref, _ref1; + _ref = this.calcArcPoints(r1), ix0 = _ref[0], iy0 = _ref[1], ix1 = _ref[2], iy1 = _ref[3]; + _ref1 = this.calcArcPoints(r2), ox0 = _ref1[0], oy0 = _ref1[1], ox1 = _ref1[2], oy1 = _ref1[3]; + return ("M" + ix0 + "," + iy0) + ("A" + r1 + "," + r1 + ",0," + this.is_long + ",0," + ix1 + "," + iy1) + ("L" + ox1 + "," + oy1) + ("A" + r2 + "," + r2 + ",0," + this.is_long + ",1," + ox0 + "," + oy0) + "Z"; + }; + + DonutSegment.prototype.calcArc = function(r) { + var ix0, ix1, iy0, iy1, _ref; + _ref = this.calcArcPoints(r), ix0 = _ref[0], iy0 = _ref[1], ix1 = _ref[2], iy1 = _ref[3]; + return ("M" + ix0 + "," + iy0) + ("A" + r + "," + r + ",0," + this.is_long + ",0," + ix1 + "," + iy1); + }; + + DonutSegment.prototype.render = function() { + var _this = this; + this.arc = this.drawDonutArc(this.hilight, this.color); + return this.seg = this.drawDonutSegment(this.path, this.color, this.backgroundColor, function() { + return _this.fire('hover', _this.index); + }, function() { + return _this.fire('click', _this.index); + }); + }; + + DonutSegment.prototype.drawDonutArc = function(path, color) { + return this.raphael.path(path).attr({ + stroke: color, + 'stroke-width': 2, + opacity: 0 + }); + }; + + DonutSegment.prototype.drawDonutSegment = function(path, fillColor, strokeColor, hoverFunction, clickFunction) { + return this.raphael.path(path).attr({ + fill: fillColor, + stroke: strokeColor, + 'stroke-width': 3 + }).hover(hoverFunction).click(clickFunction); + }; + + DonutSegment.prototype.select = function() { + if (!this.selected) { + this.seg.animate({ + path: this.selectedPath + }, 150, '<>'); + this.arc.animate({ + opacity: 1 + }, 150, '<>'); + return this.selected = true; + } + }; + + DonutSegment.prototype.deselect = function() { + if (this.selected) { + this.seg.animate({ + path: this.path + }, 150, '<>'); + this.arc.animate({ + opacity: 0 + }, 150, '<>'); + return this.selected = false; + } + }; + + return DonutSegment; + + })(Morris.EventEmitter); + +}).call(this); diff --git a/public/assets/js/plugins/morris/morris.min.js b/public/assets/js/plugins/morris/morris.min.js new file mode 100755 index 00000000..b7842aaf --- /dev/null +++ b/public/assets/js/plugins/morris/morris.min.js @@ -0,0 +1,2 @@ +(function(){var a,b,c,d,e=[].slice,f=function(a,b){return function(){return a.apply(b,arguments)}},g={}.hasOwnProperty,h=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},i=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=window.Morris={},a=jQuery,b.EventEmitter=function(){function a(){}return a.prototype.on=function(a,b){return null==this.handlers&&(this.handlers={}),null==this.handlers[a]&&(this.handlers[a]=[]),this.handlers[a].push(b),this},a.prototype.fire=function(){var a,b,c,d,f,g,h;if(c=arguments[0],a=2<=arguments.length?e.call(arguments,1):[],null!=this.handlers&&null!=this.handlers[c]){for(g=this.handlers[c],h=[],d=0,f=g.length;f>d;d++)b=g[d],h.push(b.apply(null,a));return h}},a}(),b.commas=function(a){var b,c,d,e;return null!=a?(d=0>a?"-":"",b=Math.abs(a),c=Math.floor(b).toFixed(0),d+=c.replace(/(?=(?:\d{3})+$)(?!^)/g,","),e=b.toString(),e.length>c.length&&(d+=e.slice(c.length)),d):"-"},b.pad2=function(a){return(10>a?"0":"")+a},b.Grid=function(c){function d(b){this.resizeHandler=f(this.resizeHandler,this);var c=this;if(this.el="string"==typeof b.element?a(document.getElementById(b.element)):a(b.element),null==this.el||0===this.el.length)throw new Error("Graph container element not found");"static"===this.el.css("position")&&this.el.css("position","relative"),this.options=a.extend({},this.gridDefaults,this.defaults||{},b),"string"==typeof this.options.units&&(this.options.postUnits=b.units),this.raphael=new Raphael(this.el[0]),this.elementWidth=null,this.elementHeight=null,this.dirty=!1,this.selectFrom=null,this.init&&this.init(),this.setData(this.options.data),this.el.bind("mousemove",function(a){var b,d,e,f,g;return d=c.el.offset(),g=a.pageX-d.left,c.selectFrom?(b=c.data[c.hitTest(Math.min(g,c.selectFrom))]._x,e=c.data[c.hitTest(Math.max(g,c.selectFrom))]._x,f=e-b,c.selectionRect.attr({x:b,width:f})):c.fire("hovermove",g,a.pageY-d.top)}),this.el.bind("mouseleave",function(){return c.selectFrom&&(c.selectionRect.hide(),c.selectFrom=null),c.fire("hoverout")}),this.el.bind("touchstart touchmove touchend",function(a){var b,d;return d=a.originalEvent.touches[0]||a.originalEvent.changedTouches[0],b=c.el.offset(),c.fire("hover",d.pageX-b.left,d.pageY-b.top),d}),this.el.bind("click",function(a){var b;return b=c.el.offset(),c.fire("gridclick",a.pageX-b.left,a.pageY-b.top)}),this.options.rangeSelect&&(this.selectionRect=this.raphael.rect(0,0,0,this.el.innerHeight()).attr({fill:this.options.rangeSelectColor,stroke:!1}).toBack().hide(),this.el.bind("mousedown",function(a){var b;return b=c.el.offset(),c.startRange(a.pageX-b.left)}),this.el.bind("mouseup",function(a){var b;return b=c.el.offset(),c.endRange(a.pageX-b.left),c.fire("hovermove",a.pageX-b.left,a.pageY-b.top)})),this.options.resize&&a(window).bind("resize",function(){return null!=c.timeoutId&&window.clearTimeout(c.timeoutId),c.timeoutId=window.setTimeout(c.resizeHandler,100)}),this.postInit&&this.postInit()}return h(d,c),d.prototype.gridDefaults={dateFormat:null,axes:!0,grid:!0,gridLineColor:"#aaa",gridStrokeWidth:.5,gridTextColor:"#888",gridTextSize:12,gridTextFamily:"sans-serif",gridTextWeight:"normal",hideHover:!1,yLabelFormat:null,xLabelAngle:0,numLines:5,padding:25,parseTime:!0,postUnits:"",preUnits:"",ymax:"auto",ymin:"auto 0",goals:[],goalStrokeWidth:1,goalLineColors:["#666633","#999966","#cc6666","#663333"],events:[],eventStrokeWidth:1,eventLineColors:["#005a04","#ccffbb","#3a5f0b","#005502"],rangeSelect:null,rangeSelectColor:"#eef",resize:!1},d.prototype.setData=function(a,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;return null==c&&(c=!0),this.options.data=a,null==a||0===a.length?(this.data=[],this.raphael.clear(),null!=this.hover&&this.hover.hide(),void 0):(o=this.cumulative?0:null,p=this.cumulative?0:null,this.options.goals.length>0&&(h=Math.min.apply(Math,this.options.goals),g=Math.max.apply(Math,this.options.goals),p=null!=p?Math.min(p,h):h,o=null!=o?Math.max(o,g):g),this.data=function(){var c,d,g;for(g=[],f=c=0,d=a.length;d>c;f=++c)j=a[f],i={src:j},i.label=j[this.options.xkey],this.options.parseTime?(i.x=b.parseDate(i.label),this.options.dateFormat?i.label=this.options.dateFormat(i.x):"number"==typeof i.label&&(i.label=new Date(i.label).toString())):(i.x=f,this.options.xLabelFormat&&(i.label=this.options.xLabelFormat(i))),l=0,i.y=function(){var a,b,c,d;for(c=this.options.ykeys,d=[],e=a=0,b=c.length;b>a;e=++a)n=c[e],q=j[n],"string"==typeof q&&(q=parseFloat(q)),null!=q&&"number"!=typeof q&&(q=null),null!=q&&(this.cumulative?l+=q:null!=o?(o=Math.max(q,o),p=Math.min(q,p)):o=p=q),this.cumulative&&null!=l&&(o=Math.max(l,o),p=Math.min(l,p)),d.push(q);return d}.call(this),g.push(i);return g}.call(this),this.options.parseTime&&(this.data=this.data.sort(function(a,b){return(a.x>b.x)-(b.x>a.x)})),this.xmin=this.data[0].x,this.xmax=this.data[this.data.length-1].x,this.events=[],this.options.events.length>0&&(this.events=this.options.parseTime?function(){var a,c,e,f;for(e=this.options.events,f=[],a=0,c=e.length;c>a;a++)d=e[a],f.push(b.parseDate(d));return f}.call(this):this.options.events,this.xmax=Math.max(this.xmax,Math.max.apply(Math,this.events)),this.xmin=Math.min(this.xmin,Math.min.apply(Math,this.events))),this.xmin===this.xmax&&(this.xmin-=1,this.xmax+=1),this.ymin=this.yboundary("min",p),this.ymax=this.yboundary("max",o),this.ymin===this.ymax&&(p&&(this.ymin-=1),this.ymax+=1),((r=this.options.axes)===!0||"both"===r||"y"===r||this.options.grid===!0)&&(this.options.ymax===this.gridDefaults.ymax&&this.options.ymin===this.gridDefaults.ymin?(this.grid=this.autoGridLines(this.ymin,this.ymax,this.options.numLines),this.ymin=Math.min(this.ymin,this.grid[0]),this.ymax=Math.max(this.ymax,this.grid[this.grid.length-1])):(k=(this.ymax-this.ymin)/(this.options.numLines-1),this.grid=function(){var a,b,c,d;for(d=[],m=a=b=this.ymin,c=this.ymax;k>0?c>=a:a>=c;m=a+=k)d.push(m);return d}.call(this))),this.dirty=!0,c?this.redraw():void 0)},d.prototype.yboundary=function(a,b){var c,d;return c=this.options["y"+a],"string"==typeof c?"auto"===c.slice(0,4)?c.length>5?(d=parseInt(c.slice(5),10),null==b?d:Math[a](b,d)):null!=b?b:0:parseInt(c,10):c},d.prototype.autoGridLines=function(a,b,c){var d,e,f,g,h,i,j,k,l;return h=b-a,l=Math.floor(Math.log(h)/Math.log(10)),j=Math.pow(10,l),e=Math.floor(a/j)*j,d=Math.ceil(b/j)*j,i=(d-e)/(c-1),1===j&&i>1&&Math.ceil(i)!==i&&(i=Math.ceil(i),d=e+i*(c-1)),0>e&&d>0&&(e=Math.floor(a/i)*i,d=Math.ceil(b/i)*i),1>i?(g=Math.floor(Math.log(i)/Math.log(10)),f=function(){var a,b;for(b=[],k=a=e;i>0?d>=a:a>=d;k=a+=i)b.push(parseFloat(k.toFixed(1-g)));return b}()):f=function(){var a,b;for(b=[],k=a=e;i>0?d>=a:a>=d;k=a+=i)b.push(k);return b}(),f},d.prototype._calc=function(){var a,b,c,d,e,f,g,h;return e=this.el.width(),c=this.el.height(),(this.elementWidth!==e||this.elementHeight!==c||this.dirty)&&(this.elementWidth=e,this.elementHeight=c,this.dirty=!1,this.left=this.options.padding,this.right=this.elementWidth-this.options.padding,this.top=this.options.padding,this.bottom=this.elementHeight-this.options.padding,((g=this.options.axes)===!0||"both"===g||"y"===g)&&(f=function(){var a,c,d,e;for(d=this.grid,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(this.measureText(this.yAxisFormat(b)).width);return e}.call(this),this.left+=Math.max.apply(Math,f)),((h=this.options.axes)===!0||"both"===h||"x"===h)&&(a=function(){var a,b,c;for(c=[],d=a=0,b=this.data.length;b>=0?b>a:a>b;d=b>=0?++a:--a)c.push(this.measureText(this.data[d].text,-this.options.xLabelAngle).height);return c}.call(this),this.bottom-=Math.max.apply(Math,a)),this.width=Math.max(1,this.right-this.left),this.height=Math.max(1,this.bottom-this.top),this.dx=this.width/(this.xmax-this.xmin),this.dy=this.height/(this.ymax-this.ymin),this.calc)?this.calc():void 0},d.prototype.transY=function(a){return this.bottom-(a-this.ymin)*this.dy},d.prototype.transX=function(a){return 1===this.data.length?(this.left+this.right)/2:this.left+(a-this.xmin)*this.dx},d.prototype.redraw=function(){return this.raphael.clear(),this._calc(),this.drawGrid(),this.drawGoals(),this.drawEvents(),this.draw?this.draw():void 0},d.prototype.measureText=function(a,b){var c,d;return null==b&&(b=0),d=this.raphael.text(100,100,a).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).rotate(b),c=d.getBBox(),d.remove(),c},d.prototype.yAxisFormat=function(a){return this.yLabelFormat(a)},d.prototype.yLabelFormat=function(a){return"function"==typeof this.options.yLabelFormat?this.options.yLabelFormat(a):""+this.options.preUnits+b.commas(a)+this.options.postUnits},d.prototype.drawGrid=function(){var a,b,c,d,e,f,g,h;if(this.options.grid!==!1||(e=this.options.axes)===!0||"both"===e||"y"===e){for(f=this.grid,h=[],c=0,d=f.length;d>c;c++)a=f[c],b=this.transY(a),((g=this.options.axes)===!0||"both"===g||"y"===g)&&this.drawYAxisLabel(this.left-this.options.padding/2,b,this.yAxisFormat(a)),this.options.grid?h.push(this.drawGridLine("M"+this.left+","+b+"H"+(this.left+this.width))):h.push(void 0);return h}},d.prototype.drawGoals=function(){var a,b,c,d,e,f,g;for(f=this.options.goals,g=[],c=d=0,e=f.length;e>d;c=++d)b=f[c],a=this.options.goalLineColors[c%this.options.goalLineColors.length],g.push(this.drawGoal(b,a));return g},d.prototype.drawEvents=function(){var a,b,c,d,e,f,g;for(f=this.events,g=[],c=d=0,e=f.length;e>d;c=++d)b=f[c],a=this.options.eventLineColors[c%this.options.eventLineColors.length],g.push(this.drawEvent(b,a));return g},d.prototype.drawGoal=function(a,b){return this.raphael.path("M"+this.left+","+this.transY(a)+"H"+this.right).attr("stroke",b).attr("stroke-width",this.options.goalStrokeWidth)},d.prototype.drawEvent=function(a,b){return this.raphael.path("M"+this.transX(a)+","+this.bottom+"V"+this.top).attr("stroke",b).attr("stroke-width",this.options.eventStrokeWidth)},d.prototype.drawYAxisLabel=function(a,b,c){return this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor).attr("text-anchor","end")},d.prototype.drawGridLine=function(a){return this.raphael.path(a).attr("stroke",this.options.gridLineColor).attr("stroke-width",this.options.gridStrokeWidth)},d.prototype.startRange=function(a){return this.hover.hide(),this.selectFrom=a,this.selectionRect.attr({x:a,width:0}).show()},d.prototype.endRange=function(a){var b,c;return this.selectFrom?(c=Math.min(this.selectFrom,a),b=Math.max(this.selectFrom,a),this.options.rangeSelect.call(this.el,{start:this.data[this.hitTest(c)].x,end:this.data[this.hitTest(b)].x}),this.selectFrom=null):void 0},d.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},d}(b.EventEmitter),b.parseDate=function(a){var b,c,d,e,f,g,h,i,j,k,l;return"number"==typeof a?a:(c=a.match(/^(\d+) Q(\d)$/),e=a.match(/^(\d+)-(\d+)$/),f=a.match(/^(\d+)-(\d+)-(\d+)$/),h=a.match(/^(\d+) W(\d+)$/),i=a.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+)(Z|([+-])(\d\d):?(\d\d))?$/),j=a.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+):(\d+(\.\d+)?)(Z|([+-])(\d\d):?(\d\d))?$/),c?new Date(parseInt(c[1],10),3*parseInt(c[2],10)-1,1).getTime():e?new Date(parseInt(e[1],10),parseInt(e[2],10)-1,1).getTime():f?new Date(parseInt(f[1],10),parseInt(f[2],10)-1,parseInt(f[3],10)).getTime():h?(k=new Date(parseInt(h[1],10),0,1),4!==k.getDay()&&k.setMonth(0,1+(4-k.getDay()+7)%7),k.getTime()+6048e5*parseInt(h[2],10)):i?i[6]?(g=0,"Z"!==i[6]&&(g=60*parseInt(i[8],10)+parseInt(i[9],10),"+"===i[7]&&(g=0-g)),Date.UTC(parseInt(i[1],10),parseInt(i[2],10)-1,parseInt(i[3],10),parseInt(i[4],10),parseInt(i[5],10)+g)):new Date(parseInt(i[1],10),parseInt(i[2],10)-1,parseInt(i[3],10),parseInt(i[4],10),parseInt(i[5],10)).getTime():j?(l=parseFloat(j[6]),b=Math.floor(l),d=Math.round(1e3*(l-b)),j[8]?(g=0,"Z"!==j[8]&&(g=60*parseInt(j[10],10)+parseInt(j[11],10),"+"===j[9]&&(g=0-g)),Date.UTC(parseInt(j[1],10),parseInt(j[2],10)-1,parseInt(j[3],10),parseInt(j[4],10),parseInt(j[5],10)+g,b,d)):new Date(parseInt(j[1],10),parseInt(j[2],10)-1,parseInt(j[3],10),parseInt(j[4],10),parseInt(j[5],10),b,d).getTime()):new Date(parseInt(a,10),0,1).getTime())},b.Hover=function(){function c(c){null==c&&(c={}),this.options=a.extend({},b.Hover.defaults,c),this.el=a("
      "),this.el.hide(),this.options.parent.append(this.el)}return c.defaults={"class":"morris-hover morris-default-style"},c.prototype.update=function(a,b,c){return this.html(a),this.show(),this.moveTo(b,c)},c.prototype.html=function(a){return this.el.html(a)},c.prototype.moveTo=function(a,b){var c,d,e,f,g,h;return g=this.options.parent.innerWidth(),f=this.options.parent.innerHeight(),d=this.el.outerWidth(),c=this.el.outerHeight(),e=Math.min(Math.max(0,a-d/2),g-d),null!=b?(h=b-c-10,0>h&&(h=b+10,h+c>f&&(h=f/2-c/2))):h=f/2-c/2,this.el.css({left:e+"px",top:parseInt(h)+"px"})},c.prototype.show=function(){return this.el.show()},c.prototype.hide=function(){return this.el.hide()},c}(),b.Line=function(a){function c(a){return this.hilight=f(this.hilight,this),this.onHoverOut=f(this.onHoverOut,this),this.onHoverMove=f(this.onHoverMove,this),this.onGridClick=f(this.onGridClick,this),this instanceof b.Line?(c.__super__.constructor.call(this,a),void 0):new b.Line(a)}return h(c,a),c.prototype.init=function(){return"always"!==this.options.hideHover?(this.hover=new b.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)):void 0},c.prototype.defaults={lineWidth:3,pointSize:4,lineColors:["#0b62a4","#7A92A3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],pointStrokeWidths:[1],pointStrokeColors:["#ffffff"],pointFillColors:[],smooth:!0,xLabels:"auto",xLabelFormat:null,xLabelMargin:24,continuousLine:!0,hideHover:!1},c.prototype.calc=function(){return this.calcPoints(),this.generatePaths()},c.prototype.calcPoints=function(){var a,b,c,d,e,f;for(e=this.data,f=[],c=0,d=e.length;d>c;c++)a=e[c],a._x=this.transX(a.x),a._y=function(){var c,d,e,f;for(e=a.y,f=[],c=0,d=e.length;d>c;c++)b=e[c],null!=b?f.push(this.transY(b)):f.push(b);return f}.call(this),f.push(a._ymax=Math.min.apply(Math,[this.bottom].concat(function(){var c,d,e,f;for(e=a._y,f=[],c=0,d=e.length;d>c;c++)b=e[c],null!=b&&f.push(b);return f}())));return f},c.prototype.hitTest=function(a){var b,c,d,e,f;if(0===this.data.length)return null;for(f=this.data.slice(1),b=d=0,e=f.length;e>d&&(c=f[b],!(a<(c._x+this.data[b]._x)/2));b=++d);return b},c.prototype.onGridClick=function(a,b){var c;return c=this.hitTest(a),this.fire("click",c,this.data[c].src,a,b)},c.prototype.onHoverMove=function(a){var b;return b=this.hitTest(a),this.displayHoverForRow(b)},c.prototype.onHoverOut=function(){return this.options.hideHover!==!1?this.displayHoverForRow(null):void 0},c.prototype.displayHoverForRow=function(a){var b;return null!=a?((b=this.hover).update.apply(b,this.hoverContentForRow(a)),this.hilight(a)):(this.hover.hide(),this.hilight())},c.prototype.hoverContentForRow=function(a){var b,c,d,e,f,g,h;for(d=this.data[a],b="
      "+d.label+"
      ",h=d.y,c=f=0,g=h.length;g>f;c=++f)e=h[c],b+="
      \n "+this.options.labels[c]+":\n "+this.yLabelFormat(e)+"\n
      ";return"function"==typeof this.options.hoverCallback&&(b=this.options.hoverCallback(a,this.options,b,d.src)),[b,d._x,d._ymax]},c.prototype.generatePaths=function(){var a,c,d,e,f;return this.paths=function(){var g,h,j,k;for(k=[],d=g=0,h=this.options.ykeys.length;h>=0?h>g:g>h;d=h>=0?++g:--g)f="boolean"==typeof this.options.smooth?this.options.smooth:(j=this.options.ykeys[d],i.call(this.options.smooth,j)>=0),c=function(){var a,b,c,f;for(c=this.data,f=[],a=0,b=c.length;b>a;a++)e=c[a],void 0!==e._y[d]&&f.push({x:e._x,y:e._y[d]});return f}.call(this),this.options.continuousLine&&(c=function(){var b,d,e;for(e=[],b=0,d=c.length;d>b;b++)a=c[b],null!==a.y&&e.push(a);return e}()),c.length>1?k.push(b.Line.createPath(c,f,this.bottom)):k.push(null);return k}.call(this)},c.prototype.draw=function(){var a;return((a=this.options.axes)===!0||"both"===a||"x"===a)&&this.drawXAxis(),this.drawSeries(),this.options.hideHover===!1?this.displayHoverForRow(this.data.length-1):void 0},c.prototype.drawXAxis=function(){var a,c,d,e,f,g,h,i,j,k,l=this;for(h=this.bottom+this.options.padding/2,f=null,e=null,a=function(a,b){var c,d,g,i,j;return c=l.drawXAxisLabel(l.transX(b),h,a),j=c.getBBox(),c.transform("r"+-l.options.xLabelAngle),d=c.getBBox(),c.transform("t0,"+d.height/2+"..."),0!==l.options.xLabelAngle&&(i=-.5*j.width*Math.cos(l.options.xLabelAngle*Math.PI/180),c.transform("t"+i+",0...")),d=c.getBBox(),(null==f||f>=d.x+d.width||null!=e&&e>=d.x)&&d.x>=0&&d.x+d.widtha;a++)g=c[a],d.push([g.label,g.x]);return d}.call(this),d.reverse(),k=[],i=0,j=d.length;j>i;i++)c=d[i],k.push(a(c[0],c[1]));return k},c.prototype.drawSeries=function(){var a,b,c,d,e,f;for(this.seriesPoints=[],a=b=d=this.options.ykeys.length-1;0>=d?0>=b:b>=0;a=0>=d?++b:--b)this._drawLineFor(a);for(f=[],a=c=e=this.options.ykeys.length-1;0>=e?0>=c:c>=0;a=0>=e?++c:--c)f.push(this._drawPointFor(a));return f},c.prototype._drawPointFor=function(a){var b,c,d,e,f,g;for(this.seriesPoints[a]=[],f=this.data,g=[],d=0,e=f.length;e>d;d++)c=f[d],b=null,null!=c._y[a]&&(b=this.drawLinePoint(c._x,c._y[a],this.colorFor(c,a,"point"),a)),g.push(this.seriesPoints[a].push(b));return g},c.prototype._drawLineFor=function(a){var b;return b=this.paths[a],null!==b?this.drawLinePath(b,this.colorFor(null,a,"line"),a):void 0},c.createPath=function(a,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;for(k="",c&&(g=b.Line.gradients(a)),l={y:null},h=q=0,r=a.length;r>q;h=++q)e=a[h],null!=e.y&&(null!=l.y?c?(f=g[h],j=g[h-1],i=(e.x-l.x)/4,m=l.x+i,o=Math.min(d,l.y+i*j),n=e.x-i,p=Math.min(d,e.y-i*f),k+="C"+m+","+o+","+n+","+p+","+e.x+","+e.y):k+="L"+e.x+","+e.y:c&&null==g[h]||(k+="M"+e.x+","+e.y)),l=e;return k},c.gradients=function(a){var b,c,d,e,f,g,h,i;for(c=function(a,b){return(a.y-b.y)/(a.x-b.x)},i=[],d=g=0,h=a.length;h>g;d=++g)b=a[d],null!=b.y?(e=a[d+1]||{y:null},f=a[d-1]||{y:null},null!=f.y&&null!=e.y?i.push(c(f,e)):null!=f.y?i.push(c(f,b)):null!=e.y?i.push(c(b,e)):i.push(null)):i.push(null);return i},c.prototype.hilight=function(a){var b,c,d,e,f;if(null!==this.prevHilight&&this.prevHilight!==a)for(b=c=0,e=this.seriesPoints.length-1;e>=0?e>=c:c>=e;b=e>=0?++c:--c)this.seriesPoints[b][this.prevHilight]&&this.seriesPoints[b][this.prevHilight].animate(this.pointShrinkSeries(b));if(null!==a&&this.prevHilight!==a)for(b=d=0,f=this.seriesPoints.length-1;f>=0?f>=d:d>=f;b=f>=0?++d:--d)this.seriesPoints[b][a]&&this.seriesPoints[b][a].animate(this.pointGrowSeries(b));return this.prevHilight=a},c.prototype.colorFor=function(a,b,c){return"function"==typeof this.options.lineColors?this.options.lineColors.call(this,a,b,c):"point"===c?this.options.pointFillColors[b%this.options.pointFillColors.length]||this.options.lineColors[b%this.options.lineColors.length]:this.options.lineColors[b%this.options.lineColors.length]},c.prototype.drawXAxisLabel=function(a,b,c){return this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},c.prototype.drawLinePath=function(a,b,c){return this.raphael.path(a).attr("stroke",b).attr("stroke-width",this.lineWidthForSeries(c))},c.prototype.drawLinePoint=function(a,b,c,d){return this.raphael.circle(a,b,this.pointSizeForSeries(d)).attr("fill",c).attr("stroke-width",this.pointStrokeWidthForSeries(d)).attr("stroke",this.pointStrokeColorForSeries(d))},c.prototype.pointStrokeWidthForSeries=function(a){return this.options.pointStrokeWidths[a%this.options.pointStrokeWidths.length]},c.prototype.pointStrokeColorForSeries=function(a){return this.options.pointStrokeColors[a%this.options.pointStrokeColors.length]},c.prototype.lineWidthForSeries=function(a){return this.options.lineWidth instanceof Array?this.options.lineWidth[a%this.options.lineWidth.length]:this.options.lineWidth},c.prototype.pointSizeForSeries=function(a){return this.options.pointSize instanceof Array?this.options.pointSize[a%this.options.pointSize.length]:this.options.pointSize},c.prototype.pointGrowSeries=function(a){return Raphael.animation({r:this.pointSizeForSeries(a)+3},25,"linear")},c.prototype.pointShrinkSeries=function(a){return Raphael.animation({r:this.pointSizeForSeries(a)},25,"linear")},c}(b.Grid),b.labelSeries=function(c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r;if(j=200*(d-c)/e,i=new Date(c),n=b.LABEL_SPECS[f],void 0===n)for(r=b.AUTO_LABEL_ORDER,p=0,q=r.length;q>p;p++)if(k=r[p],m=b.LABEL_SPECS[k],j>=m.span){n=m;break}for(void 0===n&&(n=b.LABEL_SPECS.second),g&&(n=a.extend({},n,{fmt:g})),h=n.start(i),l=[];(o=h.getTime())<=d;)o>=c&&l.push([n.fmt(h),o]),n.incr(h);return l},c=function(a){return{span:60*a*1e3,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours())},fmt:function(a){return""+b.pad2(a.getHours())+":"+b.pad2(a.getMinutes())},incr:function(b){return b.setUTCMinutes(b.getUTCMinutes()+a)}}},d=function(a){return{span:1e3*a,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes())},fmt:function(a){return""+b.pad2(a.getHours())+":"+b.pad2(a.getMinutes())+":"+b.pad2(a.getSeconds())},incr:function(b){return b.setUTCSeconds(b.getUTCSeconds()+a)}}},b.LABEL_SPECS={decade:{span:1728e8,start:function(a){return new Date(a.getFullYear()-a.getFullYear()%10,0,1)},fmt:function(a){return""+a.getFullYear()},incr:function(a){return a.setFullYear(a.getFullYear()+10)}},year:{span:1728e7,start:function(a){return new Date(a.getFullYear(),0,1)},fmt:function(a){return""+a.getFullYear()},incr:function(a){return a.setFullYear(a.getFullYear()+1)}},month:{span:24192e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),1)},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)},incr:function(a){return a.setMonth(a.getMonth()+1)}},week:{span:6048e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)+"-"+b.pad2(a.getDate())},incr:function(a){return a.setDate(a.getDate()+7)}},day:{span:864e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)+"-"+b.pad2(a.getDate())},incr:function(a){return a.setDate(a.getDate()+1)}},hour:c(60),"30min":c(30),"15min":c(15),"10min":c(10),"5min":c(5),minute:c(1),"30sec":d(30),"15sec":d(15),"10sec":d(10),"5sec":d(5),second:d(1)},b.AUTO_LABEL_ORDER=["decade","year","month","week","day","hour","30min","15min","10min","5min","minute","30sec","15sec","10sec","5sec","second"],b.Area=function(c){function d(c){var f;return this instanceof b.Area?(f=a.extend({},e,c),this.cumulative=!f.behaveLikeLine,"auto"===f.fillOpacity&&(f.fillOpacity=f.behaveLikeLine?.8:1),d.__super__.constructor.call(this,f),void 0):new b.Area(c)}var e;return h(d,c),e={fillOpacity:"auto",behaveLikeLine:!1},d.prototype.calcPoints=function(){var a,b,c,d,e,f,g;for(f=this.data,g=[],d=0,e=f.length;e>d;d++)a=f[d],a._x=this.transX(a.x),b=0,a._y=function(){var d,e,f,g;for(f=a.y,g=[],d=0,e=f.length;e>d;d++)c=f[d],this.options.behaveLikeLine?g.push(this.transY(c)):(b+=c||0,g.push(this.transY(b)));return g}.call(this),g.push(a._ymax=Math.max.apply(Math,a._y));return g},d.prototype.drawSeries=function(){var a,b,c,d,e,f,g,h;for(this.seriesPoints=[],b=this.options.behaveLikeLine?function(){f=[];for(var a=0,b=this.options.ykeys.length-1;b>=0?b>=a:a>=b;b>=0?a++:a--)f.push(a);return f}.apply(this):function(){g=[];for(var a=e=this.options.ykeys.length-1;0>=e?0>=a:a>=0;0>=e?a++:a--)g.push(a);return g}.apply(this),h=[],c=0,d=b.length;d>c;c++)a=b[c],this._drawFillFor(a),this._drawLineFor(a),h.push(this._drawPointFor(a));return h},d.prototype._drawFillFor=function(a){var b;return b=this.paths[a],null!==b?(b+="L"+this.transX(this.xmax)+","+this.bottom+"L"+this.transX(this.xmin)+","+this.bottom+"Z",this.drawFilledPath(b,this.fillForSeries(a))):void 0},d.prototype.fillForSeries=function(a){var b;return b=Raphael.rgb2hsl(this.colorFor(this.data[a],a,"line")),Raphael.hsl(b.h,this.options.behaveLikeLine?.9*b.s:.75*b.s,Math.min(.98,this.options.behaveLikeLine?1.2*b.l:1.25*b.l))},d.prototype.drawFilledPath=function(a,b){return this.raphael.path(a).attr("fill",b).attr("fill-opacity",this.options.fillOpacity).attr("stroke","none")},d}(b.Line),b.Bar=function(c){function d(c){return this.onHoverOut=f(this.onHoverOut,this),this.onHoverMove=f(this.onHoverMove,this),this.onGridClick=f(this.onGridClick,this),this instanceof b.Bar?(d.__super__.constructor.call(this,a.extend({},c,{parseTime:!1})),void 0):new b.Bar(c)}return h(d,c),d.prototype.init=function(){return this.cumulative=this.options.stacked,"always"!==this.options.hideHover?(this.hover=new b.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)):void 0},d.prototype.defaults={barSizeRatio:.75,barGap:3,barColors:["#0b62a4","#7a92a3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],barOpacity:1,barRadius:[0,0,0,0],xLabelMargin:50},d.prototype.calc=function(){var a;return this.calcBars(),this.options.hideHover===!1?(a=this.hover).update.apply(a,this.hoverContentForRow(this.data.length-1)):void 0},d.prototype.calcBars=function(){var a,b,c,d,e,f,g;for(f=this.data,g=[],a=d=0,e=f.length;e>d;a=++d)b=f[a],b._x=this.left+this.width*(a+.5)/this.data.length,g.push(b._y=function(){var a,d,e,f;for(e=b.y,f=[],a=0,d=e.length;d>a;a++)c=e[a],null!=c?f.push(this.transY(c)):f.push(null);return f}.call(this));return g},d.prototype.draw=function(){var a;return((a=this.options.axes)===!0||"both"===a||"x"===a)&&this.drawXAxis(),this.drawSeries()},d.prototype.drawXAxis=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;for(j=this.bottom+(this.options.xAxisLabelTopPadding||this.options.padding/2),g=null,f=null,m=[],a=k=0,l=this.data.length;l>=0?l>k:k>l;a=l>=0?++k:--k)h=this.data[this.data.length-1-a],b=this.drawXAxisLabel(h._x,j,h.label),i=b.getBBox(),b.transform("r"+-this.options.xLabelAngle),c=b.getBBox(),b.transform("t0,"+c.height/2+"..."),0!==this.options.xLabelAngle&&(e=-.5*i.width*Math.cos(this.options.xLabelAngle*Math.PI/180),b.transform("t"+e+",0...")),(null==g||g>=c.x+c.width||null!=f&&f>=c.x)&&c.x>=0&&c.x+c.width=0?this.transY(0):null,this.bars=function(){var h,o,p,q;for(p=this.data,q=[],d=h=0,o=p.length;o>h;d=++h)i=p[d],e=0,q.push(function(){var h,o,p,q;for(p=i._y,q=[],j=h=0,o=p.length;o>h;j=++h)m=p[j],null!==m?(n?(l=Math.min(m,n),b=Math.max(m,n)):(l=m,b=this.bottom),f=this.left+d*c+g,this.options.stacked||(f+=j*(a+this.options.barGap)),k=b-l,this.options.stacked&&(l-=e),this.drawBar(f,l,a,k,this.colorFor(i,j,"bar"),this.options.barOpacity,this.options.barRadius),q.push(e+=k)):q.push(null);return q}.call(this));return q}.call(this)},d.prototype.colorFor=function(a,b,c){var d,e;return"function"==typeof this.options.barColors?(d={x:a.x,y:a.y[b],label:a.label},e={index:b,key:this.options.ykeys[b],label:this.options.labels[b]},this.options.barColors.call(this,d,e,c)):this.options.barColors[b%this.options.barColors.length]},d.prototype.hitTest=function(a){return 0===this.data.length?null:(a=Math.max(Math.min(a,this.right),this.left),Math.min(this.data.length-1,Math.floor((a-this.left)/(this.width/this.data.length))))},d.prototype.onGridClick=function(a,b){var c;return c=this.hitTest(a),this.fire("click",c,this.data[c].src,a,b)},d.prototype.onHoverMove=function(a){var b,c;return b=this.hitTest(a),(c=this.hover).update.apply(c,this.hoverContentForRow(b))},d.prototype.onHoverOut=function(){return this.options.hideHover!==!1?this.hover.hide():void 0},d.prototype.hoverContentForRow=function(a){var b,c,d,e,f,g,h,i;for(d=this.data[a],b="
      "+d.label+"
      ",i=d.y,c=g=0,h=i.length;h>g;c=++g)f=i[c],b+="
      \n "+this.options.labels[c]+":\n "+this.yLabelFormat(f)+"\n
      ";return"function"==typeof this.options.hoverCallback&&(b=this.options.hoverCallback(a,this.options,b,d.src)),e=this.left+(a+.5)*this.width/this.data.length,[b,e]},d.prototype.drawXAxisLabel=function(a,b,c){var d;return d=this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},d.prototype.drawBar=function(a,b,c,d,e,f,g){var h,i;return h=Math.max.apply(Math,g),i=0===h||h>d?this.raphael.rect(a,b,c,d):this.raphael.path(this.roundedRect(a,b,c,d,g)),i.attr("fill",e).attr("fill-opacity",f).attr("stroke","none")},d.prototype.roundedRect=function(a,b,c,d,e){return null==e&&(e=[0,0,0,0]),["M",a,e[0]+b,"Q",a,b,a+e[0],b,"L",a+c-e[1],b,"Q",a+c,b,a+c,b+e[1],"L",a+c,b+d-e[2],"Q",a+c,b+d,a+c-e[2],b+d,"L",a+e[3],b+d,"Q",a,b+d,a,b+d-e[3],"Z"]},d}(b.Grid),b.Donut=function(c){function d(c){this.resizeHandler=f(this.resizeHandler,this),this.select=f(this.select,this),this.click=f(this.click,this);var d=this;if(!(this instanceof b.Donut))return new b.Donut(c);if(this.options=a.extend({},this.defaults,c),this.el="string"==typeof c.element?a(document.getElementById(c.element)):a(c.element),null===this.el||0===this.el.length)throw new Error("Graph placeholder not found.");void 0!==c.data&&0!==c.data.length&&(this.raphael=new Raphael(this.el[0]),this.options.resize&&a(window).bind("resize",function(){return null!=d.timeoutId&&window.clearTimeout(d.timeoutId),d.timeoutId=window.setTimeout(d.resizeHandler,100)}),this.setData(c.data))}return h(d,c),d.prototype.defaults={colors:["#0B62A4","#3980B5","#679DC6","#95BBD7","#B0CCE1","#095791","#095085","#083E67","#052C48","#042135"],backgroundColor:"#FFFFFF",labelColor:"#000000",formatter:b.commas,resize:!1},d.prototype.redraw=function(){var a,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;for(this.raphael.clear(),c=this.el.width()/2,d=this.el.height()/2,n=(Math.min(c,d)-10)/3,l=0,u=this.values,o=0,r=u.length;r>o;o++)m=u[o],l+=m;for(i=5/(2*n),a=1.9999*Math.PI-i*this.data.length,g=0,f=0,this.segments=[],v=this.values,e=p=0,s=v.length;s>p;e=++p)m=v[e],j=g+i+a*(m/l),k=new b.DonutSegment(c,d,2*n,n,g,j,this.data[e].color||this.options.colors[f%this.options.colors.length],this.options.backgroundColor,f,this.raphael),k.render(),this.segments.push(k),k.on("hover",this.select),k.on("click",this.click),g=j,f+=1;for(this.text1=this.drawEmptyDonutLabel(c,d-10,this.options.labelColor,15,800),this.text2=this.drawEmptyDonutLabel(c,d+10,this.options.labelColor,14),h=Math.max.apply(Math,this.values),f=0,w=this.values,x=[],q=0,t=w.length;t>q;q++){if(m=w[q],m===h){this.select(f);break}x.push(f+=1)}return x},d.prototype.setData=function(a){var b; +return this.data=a,this.values=function(){var a,c,d,e;for(d=this.data,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(parseFloat(b.value));return e}.call(this),this.redraw()},d.prototype.click=function(a){return this.fire("click",a,this.data[a])},d.prototype.select=function(a){var b,c,d,e,f,g;for(g=this.segments,e=0,f=g.length;f>e;e++)c=g[e],c.deselect();return d=this.segments[a],d.select(),b=this.data[a],this.setLabels(b.label,this.options.formatter(b.value,b))},d.prototype.setLabels=function(a,b){var c,d,e,f,g,h,i,j;return c=2*(Math.min(this.el.width()/2,this.el.height()/2)-10)/3,f=1.8*c,e=c/2,d=c/3,this.text1.attr({text:a,transform:""}),g=this.text1.getBBox(),h=Math.min(f/g.width,e/g.height),this.text1.attr({transform:"S"+h+","+h+","+(g.x+g.width/2)+","+(g.y+g.height)}),this.text2.attr({text:b,transform:""}),i=this.text2.getBBox(),j=Math.min(f/i.width,d/i.height),this.text2.attr({transform:"S"+j+","+j+","+(i.x+i.width/2)+","+i.y})},d.prototype.drawEmptyDonutLabel=function(a,b,c,d,e){var f;return f=this.raphael.text(a,b,"").attr("font-size",d).attr("fill",c),null!=e&&f.attr("font-weight",e),f},d.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},d}(b.EventEmitter),b.DonutSegment=function(a){function b(a,b,c,d,e,g,h,i,j,k){this.cx=a,this.cy=b,this.inner=c,this.outer=d,this.color=h,this.backgroundColor=i,this.index=j,this.raphael=k,this.deselect=f(this.deselect,this),this.select=f(this.select,this),this.sin_p0=Math.sin(e),this.cos_p0=Math.cos(e),this.sin_p1=Math.sin(g),this.cos_p1=Math.cos(g),this.is_long=g-e>Math.PI?1:0,this.path=this.calcSegment(this.inner+3,this.inner+this.outer-5),this.selectedPath=this.calcSegment(this.inner+3,this.inner+this.outer),this.hilight=this.calcArc(this.inner)}return h(b,a),b.prototype.calcArcPoints=function(a){return[this.cx+a*this.sin_p0,this.cy+a*this.cos_p0,this.cx+a*this.sin_p1,this.cy+a*this.cos_p1]},b.prototype.calcSegment=function(a,b){var c,d,e,f,g,h,i,j,k,l;return k=this.calcArcPoints(a),c=k[0],e=k[1],d=k[2],f=k[3],l=this.calcArcPoints(b),g=l[0],i=l[1],h=l[2],j=l[3],"M"+c+","+e+("A"+a+","+a+",0,"+this.is_long+",0,"+d+","+f)+("L"+h+","+j)+("A"+b+","+b+",0,"+this.is_long+",1,"+g+","+i)+"Z"},b.prototype.calcArc=function(a){var b,c,d,e,f;return f=this.calcArcPoints(a),b=f[0],d=f[1],c=f[2],e=f[3],"M"+b+","+d+("A"+a+","+a+",0,"+this.is_long+",0,"+c+","+e)},b.prototype.render=function(){var a=this;return this.arc=this.drawDonutArc(this.hilight,this.color),this.seg=this.drawDonutSegment(this.path,this.color,this.backgroundColor,function(){return a.fire("hover",a.index)},function(){return a.fire("click",a.index)})},b.prototype.drawDonutArc=function(a,b){return this.raphael.path(a).attr({stroke:b,"stroke-width":2,opacity:0})},b.prototype.drawDonutSegment=function(a,b,c,d,e){return this.raphael.path(a).attr({fill:b,stroke:c,"stroke-width":3}).hover(d).click(e)},b.prototype.select=function(){return this.selected?void 0:(this.seg.animate({path:this.selectedPath},150,"<>"),this.arc.animate({opacity:1},150,"<>"),this.selected=!0)},b.prototype.deselect=function(){return this.selected?(this.seg.animate({path:this.path},150,"<>"),this.arc.animate({opacity:0},150,"<>"),this.selected=!1):void 0},b}(b.EventEmitter)}).call(this); \ No newline at end of file diff --git a/public/assets/js/plugins/slimScroll/jquery.slimscroll.js b/public/assets/js/plugins/slimScroll/jquery.slimscroll.js new file mode 100755 index 00000000..2ea5b080 --- /dev/null +++ b/public/assets/js/plugins/slimScroll/jquery.slimscroll.js @@ -0,0 +1,464 @@ +/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * + * Version: 1.3.0 + * + */ +(function($) { + + jQuery.fn.extend({ + slimScroll: function(options) { + + var defaults = { + + // width in pixels of the visible scroll area + width : 'auto', + + // height in pixels of the visible scroll area + height : '250px', + + // width in pixels of the scrollbar and rail + size : '7px', + + // scrollbar color, accepts any hex/color value + color: '#000', + + // scrollbar position - left/right + position : 'right', + + // distance in pixels between the side edge and the scrollbar + distance : '1px', + + // default scroll position on load - top / bottom / $('selector') + start : 'top', + + // sets scrollbar opacity + opacity : .4, + + // enables always-on mode for the scrollbar + alwaysVisible : false, + + // check if we should hide the scrollbar when user is hovering over + disableFadeOut : false, + + // sets visibility of the rail + railVisible : false, + + // sets rail color + railColor : '#333', + + // sets rail opacity + railOpacity : .2, + + // whether we should use jQuery UI Draggable to enable bar dragging + railDraggable : true, + + // defautlt CSS class of the slimscroll rail + railClass : 'slimScrollRail', + + // defautlt CSS class of the slimscroll bar + barClass : 'slimScrollBar', + + // defautlt CSS class of the slimscroll wrapper + wrapperClass : 'slimScrollDiv', + + // check if mousewheel should scroll the window if we reach top/bottom + allowPageScroll : false, + + // scroll amount applied to each mouse wheel step + wheelStep : 20, + + // scroll amount applied when user is using gestures + touchScrollStep : 200, + + // sets border radius + borderRadius: '7px', + + // sets border radius of the rail + railBorderRadius : '7px' + }; + + var o = $.extend(defaults, options); + + // do it for every element that matches selector + this.each(function(){ + + var isOverPanel, isOverBar, isDragg, queueHide, touchDif, + barHeight, percentScroll, lastScroll, + divS = '
      ', + minBarHeight = 30, + releaseScroll = false; + + // used in event handlers and for better minification + var me = $(this); + + // ensure we are not binding it again + if (me.parent().hasClass(o.wrapperClass)) + { + // start from last bar position + var offset = me.scrollTop(); + + // find bar and rail + bar = me.parent().find('.' + o.barClass); + rail = me.parent().find('.' + o.railClass); + + getBarHeight(); + + // check if we should scroll existing instance + if ($.isPlainObject(options)) + { + // Pass height: auto to an existing slimscroll object to force a resize after contents have changed + if ( 'height' in options && options.height == 'auto' ) { + me.parent().css('height', 'auto'); + me.css('height', 'auto'); + var height = me.parent().parent().height(); + me.parent().css('height', height); + me.css('height', height); + } + + if ('scrollTo' in options) + { + // jump to a static point + offset = parseInt(o.scrollTo); + } + else if ('scrollBy' in options) + { + // jump by value pixels + offset += parseInt(o.scrollBy); + } + else if ('destroy' in options) + { + // remove slimscroll elements + bar.remove(); + rail.remove(); + me.unwrap(); + return; + } + + // scroll content by the given offset + scrollContent(offset, false, true); + } + + return; + } + + // optionally set height to the parent's height + o.height = (o.height == 'auto') ? me.parent().height() : o.height; + + // wrap content + var wrapper = $(divS) + .addClass(o.wrapperClass) + .css({ + position: 'relative', + overflow: 'hidden', + width: o.width, + height: o.height + }); + + // update style for the div + me.css({ + overflow: 'hidden', + width: o.width, + height: o.height + }); + + // create scrollbar rail + var rail = $(divS) + .addClass(o.railClass) + .css({ + width: o.size, + height: '100%', + position: 'absolute', + top: 0, + display: (o.alwaysVisible && o.railVisible) ? 'block' : 'none', + 'border-radius': o.railBorderRadius, + background: o.railColor, + opacity: o.railOpacity, + zIndex: 90 + }); + + // create scrollbar + var bar = $(divS) + .addClass(o.barClass) + .css({ + background: o.color, + width: o.size, + position: 'absolute', + top: 0, + opacity: o.opacity, + display: o.alwaysVisible ? 'block' : 'none', + 'border-radius' : o.borderRadius, + BorderRadius: o.borderRadius, + MozBorderRadius: o.borderRadius, + WebkitBorderRadius: o.borderRadius, + zIndex: 99 + }); + + // set position + var posCss = (o.position == 'right') ? { right: o.distance } : { left: o.distance }; + rail.css(posCss); + bar.css(posCss); + + // wrap it + me.wrap(wrapper); + + // append to parent div + me.parent().append(bar); + me.parent().append(rail); + + // make it draggable and no longer dependent on the jqueryUI + if (o.railDraggable){ + bar.bind("mousedown", function(e) { + var $doc = $(document); + isDragg = true; + t = parseFloat(bar.css('top')); + pageY = e.pageY; + + $doc.bind("mousemove.slimscroll", function(e){ + currTop = t + e.pageY - pageY; + bar.css('top', currTop); + scrollContent(0, bar.position().top, false);// scroll content + }); + + $doc.bind("mouseup.slimscroll", function(e) { + isDragg = false;hideBar(); + $doc.unbind('.slimscroll'); + }); + return false; + }).bind("selectstart.slimscroll", function(e){ + e.stopPropagation(); + e.preventDefault(); + return false; + }); + } + + // on rail over + rail.hover(function(){ + showBar(); + }, function(){ + hideBar(); + }); + + // on bar over + bar.hover(function(){ + isOverBar = true; + }, function(){ + isOverBar = false; + }); + + // show on parent mouseover + me.hover(function(){ + isOverPanel = true; + showBar(); + hideBar(); + }, function(){ + isOverPanel = false; + hideBar(); + }); + + // support for mobile + me.bind('touchstart', function(e,b){ + if (e.originalEvent.touches.length) + { + // record where touch started + touchDif = e.originalEvent.touches[0].pageY; + } + }); + + me.bind('touchmove', function(e){ + // prevent scrolling the page if necessary + if(!releaseScroll) + { + e.originalEvent.preventDefault(); + } + if (e.originalEvent.touches.length) + { + // see how far user swiped + var diff = (touchDif - e.originalEvent.touches[0].pageY) / o.touchScrollStep; + // scroll content + scrollContent(diff, true); + touchDif = e.originalEvent.touches[0].pageY; + } + }); + + // set up initial height + getBarHeight(); + + // check start position + if (o.start === 'bottom') + { + // scroll content to bottom + bar.css({ top: me.outerHeight() - bar.outerHeight() }); + scrollContent(0, true); + } + else if (o.start !== 'top') + { + // assume jQuery selector + scrollContent($(o.start).position().top, null, true); + + // make sure bar stays hidden + if (!o.alwaysVisible) { bar.hide(); } + } + + // attach scroll events + attachWheel(); + + function _onWheel(e) + { + // use mouse wheel only when mouse is over + if (!isOverPanel) { return; } + + var e = e || window.event; + + var delta = 0; + if (e.wheelDelta) { delta = -e.wheelDelta/120; } + if (e.detail) { delta = e.detail / 3; } + + var target = e.target || e.srcTarget || e.srcElement; + if ($(target).closest('.' + o.wrapperClass).is(me.parent())) { + // scroll content + scrollContent(delta, true); + } + + // stop window scroll + if (e.preventDefault && !releaseScroll) { e.preventDefault(); } + if (!releaseScroll) { e.returnValue = false; } + } + + function scrollContent(y, isWheel, isJump) + { + releaseScroll = false; + var delta = y; + var maxTop = me.outerHeight() - bar.outerHeight(); + + if (isWheel) + { + // move bar with mouse wheel + delta = parseInt(bar.css('top')) + y * parseInt(o.wheelStep) / 100 * bar.outerHeight(); + + // move bar, make sure it doesn't go out + delta = Math.min(Math.max(delta, 0), maxTop); + + // if scrolling down, make sure a fractional change to the + // scroll position isn't rounded away when the scrollbar's CSS is set + // this flooring of delta would happened automatically when + // bar.css is set below, but we floor here for clarity + delta = (y > 0) ? Math.ceil(delta) : Math.floor(delta); + + // scroll the scrollbar + bar.css({ top: delta + 'px' }); + } + + // calculate actual scroll amount + percentScroll = parseInt(bar.css('top')) / (me.outerHeight() - bar.outerHeight()); + delta = percentScroll * (me[0].scrollHeight - me.outerHeight()); + + if (isJump) + { + delta = y; + var offsetTop = delta / me[0].scrollHeight * me.outerHeight(); + offsetTop = Math.min(Math.max(offsetTop, 0), maxTop); + bar.css({ top: offsetTop + 'px' }); + } + + // scroll content + me.scrollTop(delta); + + // fire scrolling event + me.trigger('slimscrolling', ~~delta); + + // ensure bar is visible + showBar(); + + // trigger hide when scroll is stopped + hideBar(); + } + + function attachWheel() + { + if (window.addEventListener) + { + this.addEventListener('DOMMouseScroll', _onWheel, false ); + this.addEventListener('mousewheel', _onWheel, false ); + this.addEventListener('MozMousePixelScroll', _onWheel, false ); + } + else + { + document.attachEvent("onmousewheel", _onWheel) + } + } + + function getBarHeight() + { + // calculate scrollbar height and make sure it is not too small + barHeight = Math.max((me.outerHeight() / me[0].scrollHeight) * me.outerHeight(), minBarHeight); + bar.css({ height: barHeight + 'px' }); + + // hide scrollbar if content is not long enough + var display = barHeight == me.outerHeight() ? 'none' : 'block'; + bar.css({ display: display }); + } + + function showBar() + { + // recalculate bar height + getBarHeight(); + clearTimeout(queueHide); + + // when bar reached top or bottom + if (percentScroll == ~~percentScroll) + { + //release wheel + releaseScroll = o.allowPageScroll; + + // publish approporiate event + if (lastScroll != percentScroll) + { + var msg = (~~percentScroll == 0) ? 'top' : 'bottom'; + me.trigger('slimscroll', msg); + } + } + else + { + releaseScroll = false; + } + lastScroll = percentScroll; + + // show only when required + if(barHeight >= me.outerHeight()) { + //allow window scroll + releaseScroll = true; + return; + } + bar.stop(true,true).fadeIn('fast'); + if (o.railVisible) { rail.stop(true,true).fadeIn('fast'); } + } + + function hideBar() + { + // only hide when options allow it + if (!o.alwaysVisible) + { + queueHide = setTimeout(function(){ + if (!(o.disableFadeOut && isOverPanel) && !isOverBar && !isDragg) + { + bar.fadeOut('slow'); + rail.fadeOut('slow'); + } + }, 1000); + } + } + + }); + + // maintain chainability + return this; + } + }); + + jQuery.fn.extend({ + slimscroll: jQuery.fn.slimScroll + }); + +})(jQuery); diff --git a/public/assets/js/plugins/slimScroll/jquery.slimscroll.min.js b/public/assets/js/plugins/slimScroll/jquery.slimscroll.min.js new file mode 100755 index 00000000..26220d6b --- /dev/null +++ b/public/assets/js/plugins/slimScroll/jquery.slimscroll.min.js @@ -0,0 +1,16 @@ +/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * + * Version: 1.3.0 + * + */ +(function(f){jQuery.fn.extend({slimScroll:function(h){var a=f.extend({width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:0.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:0.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},h);this.each(function(){function r(d){if(s){d=d|| +window.event;var c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);f(d.target||d.srcTarget||d.srcElement).closest("."+a.wrapperClass).is(b.parent())&&m(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function m(d,f,h){k=!1;var e=d,g=b.outerHeight()-c.outerHeight();f&&(e=parseInt(c.css("top"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),e=Math.min(Math.max(e,0),g),e=0=b.outerHeight()?k=!0:(c.stop(!0,!0).fadeIn("fast"),a.railVisible&&g.stop(!0,!0).fadeIn("fast"))}function p(){a.alwaysVisible||(A=setTimeout(function(){a.disableFadeOut&&s||(x||y)||(c.fadeOut("slow"),g.fadeOut("slow"))},1E3))}var s,x,y,A,z,u,l,B,D=30,k=!1,b=f(this);if(b.parent().hasClass(a.wrapperClass)){var n=b.scrollTop(), +c=b.parent().find("."+a.barClass),g=b.parent().find("."+a.railClass);w();if(f.isPlainObject(h)){if("height"in h&&"auto"==h.height){b.parent().css("height","auto");b.css("height","auto");var q=b.parent().parent().height();b.parent().css("height",q);b.css("height",q)}if("scrollTo"in h)n=parseInt(a.scrollTo);else if("scrollBy"in h)n+=parseInt(a.scrollBy);else if("destroy"in h){c.remove();g.remove();b.unwrap();return}m(n,!1,!0)}}else{a.height="auto"==a.height?b.parent().height():a.height;n=f("
      ").addClass(a.wrapperClass).css({position:"relative", +overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden",width:a.width,height:a.height});var g=f("
      ").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=f("
      ").addClass(a.barClass).css({background:a.color,width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible? +"block":"none","border-radius":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,WebkitBorderRadius:a.borderRadius,zIndex:99}),q="right"==a.position?{right:a.distance}:{left:a.distance};g.css(q);c.css(q);b.wrap(n);b.parent().append(c);b.parent().append(g);a.railDraggable&&c.bind("mousedown",function(a){var b=f(document);y=!0;t=parseFloat(c.css("top"));pageY=a.pageY;b.bind("mousemove.slimscroll",function(a){currTop=t+a.pageY-pageY;c.css("top",currTop);m(0,c.position().top,!1)}); +b.bind("mouseup.slimscroll",function(a){y=!1;p();b.unbind(".slimscroll")});return!1}).bind("selectstart.slimscroll",function(a){a.stopPropagation();a.preventDefault();return!1});g.hover(function(){v()},function(){p()});c.hover(function(){x=!0},function(){x=!1});b.hover(function(){s=!0;v();p()},function(){s=!1;p()});b.bind("touchstart",function(a,b){a.originalEvent.touches.length&&(z=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&& +(m((z-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),z=b.originalEvent.touches[0].pageY)});w();"bottom"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),m(0,!0)):"top"!==a.start&&(m(f(a.start).position().top,null,!0),a.alwaysVisible||c.hide());C()}});return this}});jQuery.fn.extend({slimscroll:jQuery.fn.slimScroll})})(jQuery); \ No newline at end of file diff --git a/public/assets/js/plugins/slimScroll/slimScroll.jquery.json b/public/assets/js/plugins/slimScroll/slimScroll.jquery.json new file mode 100755 index 00000000..41174e64 --- /dev/null +++ b/public/assets/js/plugins/slimScroll/slimScroll.jquery.json @@ -0,0 +1,30 @@ +{ + "name" : "slimScroll", + "version" : "1.2.0", + "title" : "jQuery slimScroll scrollbar", + "description" : "slimScroll is a small jQuery plugin that transforms any div into a scrollable area. slimScroll doesn't occupy any visual space as it only appears on a user initiated mouse-over.", + "keywords" : ["scrollbar", "scroll", "slimscroll", "scrollable", "scrolling", "scroller", "ui"], + "demo" : "http://rocha.la/jQuery-slimScroll/", + "homepage" : "http://rocha.la/jQuery-slimScroll/", + "download" : "http://rocha.la/jQuery-slimScroll/", + + "author" : { + "name" : "Piotr Rochala", + "url" : "http://rocha.la/" + }, + + "dependencies" : { + "jquery" : ">= 1.7" + }, + + "licenses" : [ + { + "type": "MIT", + "url": "http://www.opensource.org/licenses/mit-license.php" + }, + { + "type": "GPL", + "url": "http://www.opensource.org/licenses/gpl-license.php" + } + ] +} \ No newline at end of file diff --git a/public/assets/js/plugins/sparkline/jquery.sparkline.js b/public/assets/js/plugins/sparkline/jquery.sparkline.js new file mode 100755 index 00000000..721e03b7 --- /dev/null +++ b/public/assets/js/plugins/sparkline/jquery.sparkline.js @@ -0,0 +1,3054 @@ +/** +* +* jquery.sparkline.js +* +* v2.1.2 +* (c) Splunk, Inc +* Contact: Gareth Watts (gareth@splunk.com) +* http://omnipotent.net/jquery.sparkline/ +* +* Generates inline sparkline charts from data supplied either to the method +* or inline in HTML +* +* Compatible with Internet Explorer 6.0+ and modern browsers equipped with the canvas tag +* (Firefox 2.0+, Safari, Opera, etc) +* +* License: New BSD License +* +* Copyright (c) 2012, Splunk Inc. +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, +* are permitted provided that the following conditions are met: +* +* * Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* * Neither the name of Splunk Inc nor the names of its contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +* SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* +* Usage: +* $(selector).sparkline(values, options) +* +* If values is undefined or set to 'html' then the data values are read from the specified tag: +*

      Sparkline: 1,4,6,6,8,5,3,5

      +* $('.sparkline').sparkline(); +* There must be no spaces in the enclosed data set +* +* Otherwise values must be an array of numbers or null values +*

      Sparkline: This text replaced if the browser is compatible

      +* $('#sparkline1').sparkline([1,4,6,6,8,5,3,5]) +* $('#sparkline2').sparkline([1,4,6,null,null,5,3,5]) +* +* Values can also be specified in an HTML comment, or as a values attribute: +*

      Sparkline:

      +*

      Sparkline:

      +* $('.sparkline').sparkline(); +* +* For line charts, x values can also be specified: +*

      Sparkline: 1:1,2.7:4,3.4:6,5:6,6:8,8.7:5,9:3,10:5

      +* $('#sparkline1').sparkline([ [1,1], [2.7,4], [3.4,6], [5,6], [6,8], [8.7,5], [9,3], [10,5] ]) +* +* By default, options should be passed in as teh second argument to the sparkline function: +* $('.sparkline').sparkline([1,2,3,4], {type: 'bar'}) +* +* Options can also be set by passing them on the tag itself. This feature is disabled by default though +* as there's a slight performance overhead: +* $('.sparkline').sparkline([1,2,3,4], {enableTagOptions: true}) +*

      Sparkline: loading

      +* Prefix all options supplied as tag attribute with "spark" (configurable by setting tagOptionPrefix) +* +* Supported options: +* lineColor - Color of the line used for the chart +* fillColor - Color used to fill in the chart - Set to '' or false for a transparent chart +* width - Width of the chart - Defaults to 3 times the number of values in pixels +* height - Height of the chart - Defaults to the height of the containing element +* chartRangeMin - Specify the minimum value to use for the Y range of the chart - Defaults to the minimum value supplied +* chartRangeMax - Specify the maximum value to use for the Y range of the chart - Defaults to the maximum value supplied +* chartRangeClip - Clip out of range values to the max/min specified by chartRangeMin and chartRangeMax +* chartRangeMinX - Specify the minimum value to use for the X range of the chart - Defaults to the minimum value supplied +* chartRangeMaxX - Specify the maximum value to use for the X range of the chart - Defaults to the maximum value supplied +* composite - If true then don't erase any existing chart attached to the tag, but draw +* another chart over the top - Note that width and height are ignored if an +* existing chart is detected. +* tagValuesAttribute - Name of tag attribute to check for data values - Defaults to 'values' +* enableTagOptions - Whether to check tags for sparkline options +* tagOptionPrefix - Prefix used for options supplied as tag attributes - Defaults to 'spark' +* disableHiddenCheck - If set to true, then the plugin will assume that charts will never be drawn into a +* hidden dom element, avoding a browser reflow +* disableInteraction - If set to true then all mouseover/click interaction behaviour will be disabled, +* making the plugin perform much like it did in 1.x +* disableTooltips - If set to true then tooltips will be disabled - Defaults to false (tooltips enabled) +* disableHighlight - If set to true then highlighting of selected chart elements on mouseover will be disabled +* defaults to false (highlights enabled) +* highlightLighten - Factor to lighten/darken highlighted chart values by - Defaults to 1.4 for a 40% increase +* tooltipContainer - Specify which DOM element the tooltip should be rendered into - defaults to document.body +* tooltipClassname - Optional CSS classname to apply to tooltips - If not specified then a default style will be applied +* tooltipOffsetX - How many pixels away from the mouse pointer to render the tooltip on the X axis +* tooltipOffsetY - How many pixels away from the mouse pointer to render the tooltip on the r axis +* tooltipFormatter - Optional callback that allows you to override the HTML displayed in the tooltip +* callback is given arguments of (sparkline, options, fields) +* tooltipChartTitle - If specified then the tooltip uses the string specified by this setting as a title +* tooltipFormat - A format string or SPFormat object (or an array thereof for multiple entries) +* to control the format of the tooltip +* tooltipPrefix - A string to prepend to each field displayed in a tooltip +* tooltipSuffix - A string to append to each field displayed in a tooltip +* tooltipSkipNull - If true then null values will not have a tooltip displayed (defaults to true) +* tooltipValueLookups - An object or range map to map field values to tooltip strings +* (eg. to map -1 to "Lost", 0 to "Draw", and 1 to "Win") +* numberFormatter - Optional callback for formatting numbers in tooltips +* numberDigitGroupSep - Character to use for group separator in numbers "1,234" - Defaults to "," +* numberDecimalMark - Character to use for the decimal point when formatting numbers - Defaults to "." +* numberDigitGroupCount - Number of digits between group separator - Defaults to 3 +* +* There are 7 types of sparkline, selected by supplying a "type" option of 'line' (default), +* 'bar', 'tristate', 'bullet', 'discrete', 'pie' or 'box' +* line - Line chart. Options: +* spotColor - Set to '' to not end each line in a circular spot +* minSpotColor - If set, color of spot at minimum value +* maxSpotColor - If set, color of spot at maximum value +* spotRadius - Radius in pixels +* lineWidth - Width of line in pixels +* normalRangeMin +* normalRangeMax - If set draws a filled horizontal bar between these two values marking the "normal" +* or expected range of values +* normalRangeColor - Color to use for the above bar +* drawNormalOnTop - Draw the normal range above the chart fill color if true +* defaultPixelsPerValue - Defaults to 3 pixels of width for each value in the chart +* highlightSpotColor - The color to use for drawing a highlight spot on mouseover - Set to null to disable +* highlightLineColor - The color to use for drawing a highlight line on mouseover - Set to null to disable +* valueSpots - Specify which points to draw spots on, and in which color. Accepts a range map +* +* bar - Bar chart. Options: +* barColor - Color of bars for postive values +* negBarColor - Color of bars for negative values +* zeroColor - Color of bars with zero values +* nullColor - Color of bars with null values - Defaults to omitting the bar entirely +* barWidth - Width of bars in pixels +* colorMap - Optional mappnig of values to colors to override the *BarColor values above +* can be an Array of values to control the color of individual bars or a range map +* to specify colors for individual ranges of values +* barSpacing - Gap between bars in pixels +* zeroAxis - Centers the y-axis around zero if true +* +* tristate - Charts values of win (>0), lose (<0) or draw (=0) +* posBarColor - Color of win values +* negBarColor - Color of lose values +* zeroBarColor - Color of draw values +* barWidth - Width of bars in pixels +* barSpacing - Gap between bars in pixels +* colorMap - Optional mappnig of values to colors to override the *BarColor values above +* can be an Array of values to control the color of individual bars or a range map +* to specify colors for individual ranges of values +* +* discrete - Options: +* lineHeight - Height of each line in pixels - Defaults to 30% of the graph height +* thesholdValue - Values less than this value will be drawn using thresholdColor instead of lineColor +* thresholdColor +* +* bullet - Values for bullet graphs msut be in the order: target, performance, range1, range2, range3, ... +* options: +* targetColor - The color of the vertical target marker +* targetWidth - The width of the target marker in pixels +* performanceColor - The color of the performance measure horizontal bar +* rangeColors - Colors to use for each qualitative range background color +* +* pie - Pie chart. Options: +* sliceColors - An array of colors to use for pie slices +* offset - Angle in degrees to offset the first slice - Try -90 or +90 +* borderWidth - Width of border to draw around the pie chart, in pixels - Defaults to 0 (no border) +* borderColor - Color to use for the pie chart border - Defaults to #000 +* +* box - Box plot. Options: +* raw - Set to true to supply pre-computed plot points as values +* values should be: low_outlier, low_whisker, q1, median, q3, high_whisker, high_outlier +* When set to false you can supply any number of values and the box plot will +* be computed for you. Default is false. +* showOutliers - Set to true (default) to display outliers as circles +* outlierIQR - Interquartile range used to determine outliers. Default 1.5 +* boxLineColor - Outline color of the box +* boxFillColor - Fill color for the box +* whiskerColor - Line color used for whiskers +* outlierLineColor - Outline color of outlier circles +* outlierFillColor - Fill color of the outlier circles +* spotRadius - Radius of outlier circles +* medianColor - Line color of the median line +* target - Draw a target cross hair at the supplied value (default undefined) +* +* +* +* Examples: +* $('#sparkline1').sparkline(myvalues, { lineColor: '#f00', fillColor: false }); +* $('.barsparks').sparkline('html', { type:'bar', height:'40px', barWidth:5 }); +* $('#tristate').sparkline([1,1,-1,1,0,0,-1], { type:'tristate' }): +* $('#discrete').sparkline([1,3,4,5,5,3,4,5], { type:'discrete' }); +* $('#bullet').sparkline([10,12,12,9,7], { type:'bullet' }); +* $('#pie').sparkline([1,1,2], { type:'pie' }); +*/ + +/*jslint regexp: true, browser: true, jquery: true, white: true, nomen: false, plusplus: false, maxerr: 500, indent: 4 */ + +(function(document, Math, undefined) { // performance/minified-size optimization +(function(factory) { + if(typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } else if (jQuery && !jQuery.fn.sparkline) { + factory(jQuery); + } +} +(function($) { + 'use strict'; + + var UNSET_OPTION = {}, + getDefaults, createClass, SPFormat, clipval, quartile, normalizeValue, normalizeValues, + remove, isNumber, all, sum, addCSS, ensureArray, formatNumber, RangeMap, + MouseHandler, Tooltip, barHighlightMixin, + line, bar, tristate, discrete, bullet, pie, box, defaultStyles, initStyles, + VShape, VCanvas_base, VCanvas_canvas, VCanvas_vml, pending, shapeCount = 0; + + /** + * Default configuration settings + */ + getDefaults = function () { + return { + // Settings common to most/all chart types + common: { + type: 'line', + lineColor: '#00f', + fillColor: '#cdf', + defaultPixelsPerValue: 3, + width: 'auto', + height: 'auto', + composite: false, + tagValuesAttribute: 'values', + tagOptionsPrefix: 'spark', + enableTagOptions: false, + enableHighlight: true, + highlightLighten: 1.4, + tooltipSkipNull: true, + tooltipPrefix: '', + tooltipSuffix: '', + disableHiddenCheck: false, + numberFormatter: false, + numberDigitGroupCount: 3, + numberDigitGroupSep: ',', + numberDecimalMark: '.', + disableTooltips: false, + disableInteraction: false + }, + // Defaults for line charts + line: { + spotColor: '#f80', + highlightSpotColor: '#5f5', + highlightLineColor: '#f22', + spotRadius: 1.5, + minSpotColor: '#f80', + maxSpotColor: '#f80', + lineWidth: 1, + normalRangeMin: undefined, + normalRangeMax: undefined, + normalRangeColor: '#ccc', + drawNormalOnTop: false, + chartRangeMin: undefined, + chartRangeMax: undefined, + chartRangeMinX: undefined, + chartRangeMaxX: undefined, + tooltipFormat: new SPFormat(' {{prefix}}{{y}}{{suffix}}') + }, + // Defaults for bar charts + bar: { + barColor: '#3366cc', + negBarColor: '#f44', + stackedBarColor: ['#3366cc', '#dc3912', '#ff9900', '#109618', '#66aa00', + '#dd4477', '#0099c6', '#990099'], + zeroColor: undefined, + nullColor: undefined, + zeroAxis: true, + barWidth: 4, + barSpacing: 1, + chartRangeMax: undefined, + chartRangeMin: undefined, + chartRangeClip: false, + colorMap: undefined, + tooltipFormat: new SPFormat(' {{prefix}}{{value}}{{suffix}}') + }, + // Defaults for tristate charts + tristate: { + barWidth: 4, + barSpacing: 1, + posBarColor: '#6f6', + negBarColor: '#f44', + zeroBarColor: '#999', + colorMap: {}, + tooltipFormat: new SPFormat(' {{value:map}}'), + tooltipValueLookups: { map: { '-1': 'Loss', '0': 'Draw', '1': 'Win' } } + }, + // Defaults for discrete charts + discrete: { + lineHeight: 'auto', + thresholdColor: undefined, + thresholdValue: 0, + chartRangeMax: undefined, + chartRangeMin: undefined, + chartRangeClip: false, + tooltipFormat: new SPFormat('{{prefix}}{{value}}{{suffix}}') + }, + // Defaults for bullet charts + bullet: { + targetColor: '#f33', + targetWidth: 3, // width of the target bar in pixels + performanceColor: '#33f', + rangeColors: ['#d3dafe', '#a8b6ff', '#7f94ff'], + base: undefined, // set this to a number to change the base start number + tooltipFormat: new SPFormat('{{fieldkey:fields}} - {{value}}'), + tooltipValueLookups: { fields: {r: 'Range', p: 'Performance', t: 'Target'} } + }, + // Defaults for pie charts + pie: { + offset: 0, + sliceColors: ['#3366cc', '#dc3912', '#ff9900', '#109618', '#66aa00', + '#dd4477', '#0099c6', '#990099'], + borderWidth: 0, + borderColor: '#000', + tooltipFormat: new SPFormat(' {{value}} ({{percent.1}}%)') + }, + // Defaults for box plots + box: { + raw: false, + boxLineColor: '#000', + boxFillColor: '#cdf', + whiskerColor: '#000', + outlierLineColor: '#333', + outlierFillColor: '#fff', + medianColor: '#f00', + showOutliers: true, + outlierIQR: 1.5, + spotRadius: 1.5, + target: undefined, + targetColor: '#4a2', + chartRangeMax: undefined, + chartRangeMin: undefined, + tooltipFormat: new SPFormat('{{field:fields}}: {{value}}'), + tooltipFormatFieldlistKey: 'field', + tooltipValueLookups: { fields: { lq: 'Lower Quartile', med: 'Median', + uq: 'Upper Quartile', lo: 'Left Outlier', ro: 'Right Outlier', + lw: 'Left Whisker', rw: 'Right Whisker'} } + } + }; + }; + + // You can have tooltips use a css class other than jqstooltip by specifying tooltipClassname + defaultStyles = '.jqstooltip { ' + + 'position: absolute;' + + 'left: 0px;' + + 'top: 0px;' + + 'visibility: hidden;' + + 'background: rgb(0, 0, 0) transparent;' + + 'background-color: rgba(0,0,0,0.6);' + + 'filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);' + + '-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";' + + 'color: white;' + + 'font: 10px arial, san serif;' + + 'text-align: left;' + + 'white-space: nowrap;' + + 'padding: 5px;' + + 'border: 1px solid white;' + + 'z-index: 10000;' + + '}' + + '.jqsfield { ' + + 'color: white;' + + 'font: 10px arial, san serif;' + + 'text-align: left;' + + '}'; + + /** + * Utilities + */ + + createClass = function (/* [baseclass, [mixin, ...]], definition */) { + var Class, args; + Class = function () { + this.init.apply(this, arguments); + }; + if (arguments.length > 1) { + if (arguments[0]) { + Class.prototype = $.extend(new arguments[0](), arguments[arguments.length - 1]); + Class._super = arguments[0].prototype; + } else { + Class.prototype = arguments[arguments.length - 1]; + } + if (arguments.length > 2) { + args = Array.prototype.slice.call(arguments, 1, -1); + args.unshift(Class.prototype); + $.extend.apply($, args); + } + } else { + Class.prototype = arguments[0]; + } + Class.prototype.cls = Class; + return Class; + }; + + /** + * Wraps a format string for tooltips + * {{x}} + * {{x.2} + * {{x:months}} + */ + $.SPFormatClass = SPFormat = createClass({ + fre: /\{\{([\w.]+?)(:(.+?))?\}\}/g, + precre: /(\w+)\.(\d+)/, + + init: function (format, fclass) { + this.format = format; + this.fclass = fclass; + }, + + render: function (fieldset, lookups, options) { + var self = this, + fields = fieldset, + match, token, lookupkey, fieldvalue, prec; + return this.format.replace(this.fre, function () { + var lookup; + token = arguments[1]; + lookupkey = arguments[3]; + match = self.precre.exec(token); + if (match) { + prec = match[2]; + token = match[1]; + } else { + prec = false; + } + fieldvalue = fields[token]; + if (fieldvalue === undefined) { + return ''; + } + if (lookupkey && lookups && lookups[lookupkey]) { + lookup = lookups[lookupkey]; + if (lookup.get) { // RangeMap + return lookups[lookupkey].get(fieldvalue) || fieldvalue; + } else { + return lookups[lookupkey][fieldvalue] || fieldvalue; + } + } + if (isNumber(fieldvalue)) { + if (options.get('numberFormatter')) { + fieldvalue = options.get('numberFormatter')(fieldvalue); + } else { + fieldvalue = formatNumber(fieldvalue, prec, + options.get('numberDigitGroupCount'), + options.get('numberDigitGroupSep'), + options.get('numberDecimalMark')); + } + } + return fieldvalue; + }); + } + }); + + // convience method to avoid needing the new operator + $.spformat = function(format, fclass) { + return new SPFormat(format, fclass); + }; + + clipval = function (val, min, max) { + if (val < min) { + return min; + } + if (val > max) { + return max; + } + return val; + }; + + quartile = function (values, q) { + var vl; + if (q === 2) { + vl = Math.floor(values.length / 2); + return values.length % 2 ? values[vl] : (values[vl-1] + values[vl]) / 2; + } else { + if (values.length % 2 ) { // odd + vl = (values.length * q + q) / 4; + return vl % 1 ? (values[Math.floor(vl)] + values[Math.floor(vl) - 1]) / 2 : values[vl-1]; + } else { //even + vl = (values.length * q + 2) / 4; + return vl % 1 ? (values[Math.floor(vl)] + values[Math.floor(vl) - 1]) / 2 : values[vl-1]; + + } + } + }; + + normalizeValue = function (val) { + var nf; + switch (val) { + case 'undefined': + val = undefined; + break; + case 'null': + val = null; + break; + case 'true': + val = true; + break; + case 'false': + val = false; + break; + default: + nf = parseFloat(val); + if (val == nf) { + val = nf; + } + } + return val; + }; + + normalizeValues = function (vals) { + var i, result = []; + for (i = vals.length; i--;) { + result[i] = normalizeValue(vals[i]); + } + return result; + }; + + remove = function (vals, filter) { + var i, vl, result = []; + for (i = 0, vl = vals.length; i < vl; i++) { + if (vals[i] !== filter) { + result.push(vals[i]); + } + } + return result; + }; + + isNumber = function (num) { + return !isNaN(parseFloat(num)) && isFinite(num); + }; + + formatNumber = function (num, prec, groupsize, groupsep, decsep) { + var p, i; + num = (prec === false ? parseFloat(num).toString() : num.toFixed(prec)).split(''); + p = (p = $.inArray('.', num)) < 0 ? num.length : p; + if (p < num.length) { + num[p] = decsep; + } + for (i = p - groupsize; i > 0; i -= groupsize) { + num.splice(i, 0, groupsep); + } + return num.join(''); + }; + + // determine if all values of an array match a value + // returns true if the array is empty + all = function (val, arr, ignoreNull) { + var i; + for (i = arr.length; i--; ) { + if (ignoreNull && arr[i] === null) continue; + if (arr[i] !== val) { + return false; + } + } + return true; + }; + + // sums the numeric values in an array, ignoring other values + sum = function (vals) { + var total = 0, i; + for (i = vals.length; i--;) { + total += typeof vals[i] === 'number' ? vals[i] : 0; + } + return total; + }; + + ensureArray = function (val) { + return $.isArray(val) ? val : [val]; + }; + + // http://paulirish.com/2008/bookmarklet-inject-new-css-rules/ + addCSS = function(css) { + var tag; + //if ('\v' == 'v') /* ie only */ { + if (document.createStyleSheet) { + document.createStyleSheet().cssText = css; + } else { + tag = document.createElement('style'); + tag.type = 'text/css'; + document.getElementsByTagName('head')[0].appendChild(tag); + tag[(typeof document.body.style.WebkitAppearance == 'string') /* webkit only */ ? 'innerText' : 'innerHTML'] = css; + } + }; + + // Provide a cross-browser interface to a few simple drawing primitives + $.fn.simpledraw = function (width, height, useExisting, interact) { + var target, mhandler; + if (useExisting && (target = this.data('_jqs_vcanvas'))) { + return target; + } + + if ($.fn.sparkline.canvas === false) { + // We've already determined that neither Canvas nor VML are available + return false; + + } else if ($.fn.sparkline.canvas === undefined) { + // No function defined yet -- need to see if we support Canvas or VML + var el = document.createElement('canvas'); + if (!!(el.getContext && el.getContext('2d'))) { + // Canvas is available + $.fn.sparkline.canvas = function(width, height, target, interact) { + return new VCanvas_canvas(width, height, target, interact); + }; + } else if (document.namespaces && !document.namespaces.v) { + // VML is available + document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', '#default#VML'); + $.fn.sparkline.canvas = function(width, height, target, interact) { + return new VCanvas_vml(width, height, target); + }; + } else { + // Neither Canvas nor VML are available + $.fn.sparkline.canvas = false; + return false; + } + } + + if (width === undefined) { + width = $(this).innerWidth(); + } + if (height === undefined) { + height = $(this).innerHeight(); + } + + target = $.fn.sparkline.canvas(width, height, this, interact); + + mhandler = $(this).data('_jqs_mhandler'); + if (mhandler) { + mhandler.registerCanvas(target); + } + return target; + }; + + $.fn.cleardraw = function () { + var target = this.data('_jqs_vcanvas'); + if (target) { + target.reset(); + } + }; + + $.RangeMapClass = RangeMap = createClass({ + init: function (map) { + var key, range, rangelist = []; + for (key in map) { + if (map.hasOwnProperty(key) && typeof key === 'string' && key.indexOf(':') > -1) { + range = key.split(':'); + range[0] = range[0].length === 0 ? -Infinity : parseFloat(range[0]); + range[1] = range[1].length === 0 ? Infinity : parseFloat(range[1]); + range[2] = map[key]; + rangelist.push(range); + } + } + this.map = map; + this.rangelist = rangelist || false; + }, + + get: function (value) { + var rangelist = this.rangelist, + i, range, result; + if ((result = this.map[value]) !== undefined) { + return result; + } + if (rangelist) { + for (i = rangelist.length; i--;) { + range = rangelist[i]; + if (range[0] <= value && range[1] >= value) { + return range[2]; + } + } + } + return undefined; + } + }); + + // Convenience function + $.range_map = function(map) { + return new RangeMap(map); + }; + + MouseHandler = createClass({ + init: function (el, options) { + var $el = $(el); + this.$el = $el; + this.options = options; + this.currentPageX = 0; + this.currentPageY = 0; + this.el = el; + this.splist = []; + this.tooltip = null; + this.over = false; + this.displayTooltips = !options.get('disableTooltips'); + this.highlightEnabled = !options.get('disableHighlight'); + }, + + registerSparkline: function (sp) { + this.splist.push(sp); + if (this.over) { + this.updateDisplay(); + } + }, + + registerCanvas: function (canvas) { + var $canvas = $(canvas.canvas); + this.canvas = canvas; + this.$canvas = $canvas; + $canvas.mouseenter($.proxy(this.mouseenter, this)); + $canvas.mouseleave($.proxy(this.mouseleave, this)); + $canvas.click($.proxy(this.mouseclick, this)); + }, + + reset: function (removeTooltip) { + this.splist = []; + if (this.tooltip && removeTooltip) { + this.tooltip.remove(); + this.tooltip = undefined; + } + }, + + mouseclick: function (e) { + var clickEvent = $.Event('sparklineClick'); + clickEvent.originalEvent = e; + clickEvent.sparklines = this.splist; + this.$el.trigger(clickEvent); + }, + + mouseenter: function (e) { + $(document.body).unbind('mousemove.jqs'); + $(document.body).bind('mousemove.jqs', $.proxy(this.mousemove, this)); + this.over = true; + this.currentPageX = e.pageX; + this.currentPageY = e.pageY; + this.currentEl = e.target; + if (!this.tooltip && this.displayTooltips) { + this.tooltip = new Tooltip(this.options); + this.tooltip.updatePosition(e.pageX, e.pageY); + } + this.updateDisplay(); + }, + + mouseleave: function () { + $(document.body).unbind('mousemove.jqs'); + var splist = this.splist, + spcount = splist.length, + needsRefresh = false, + sp, i; + this.over = false; + this.currentEl = null; + + if (this.tooltip) { + this.tooltip.remove(); + this.tooltip = null; + } + + for (i = 0; i < spcount; i++) { + sp = splist[i]; + if (sp.clearRegionHighlight()) { + needsRefresh = true; + } + } + + if (needsRefresh) { + this.canvas.render(); + } + }, + + mousemove: function (e) { + this.currentPageX = e.pageX; + this.currentPageY = e.pageY; + this.currentEl = e.target; + if (this.tooltip) { + this.tooltip.updatePosition(e.pageX, e.pageY); + } + this.updateDisplay(); + }, + + updateDisplay: function () { + var splist = this.splist, + spcount = splist.length, + needsRefresh = false, + offset = this.$canvas.offset(), + localX = this.currentPageX - offset.left, + localY = this.currentPageY - offset.top, + tooltiphtml, sp, i, result, changeEvent; + if (!this.over) { + return; + } + for (i = 0; i < spcount; i++) { + sp = splist[i]; + result = sp.setRegionHighlight(this.currentEl, localX, localY); + if (result) { + needsRefresh = true; + } + } + if (needsRefresh) { + changeEvent = $.Event('sparklineRegionChange'); + changeEvent.sparklines = this.splist; + this.$el.trigger(changeEvent); + if (this.tooltip) { + tooltiphtml = ''; + for (i = 0; i < spcount; i++) { + sp = splist[i]; + tooltiphtml += sp.getCurrentRegionTooltip(); + } + this.tooltip.setContent(tooltiphtml); + } + if (!this.disableHighlight) { + this.canvas.render(); + } + } + if (result === null) { + this.mouseleave(); + } + } + }); + + + Tooltip = createClass({ + sizeStyle: 'position: static !important;' + + 'display: block !important;' + + 'visibility: hidden !important;' + + 'float: left !important;', + + init: function (options) { + var tooltipClassname = options.get('tooltipClassname', 'jqstooltip'), + sizetipStyle = this.sizeStyle, + offset; + this.container = options.get('tooltipContainer') || document.body; + this.tooltipOffsetX = options.get('tooltipOffsetX', 10); + this.tooltipOffsetY = options.get('tooltipOffsetY', 12); + // remove any previous lingering tooltip + $('#jqssizetip').remove(); + $('#jqstooltip').remove(); + this.sizetip = $('
      ', { + id: 'jqssizetip', + style: sizetipStyle, + 'class': tooltipClassname + }); + this.tooltip = $('
      ', { + id: 'jqstooltip', + 'class': tooltipClassname + }).appendTo(this.container); + // account for the container's location + offset = this.tooltip.offset(); + this.offsetLeft = offset.left; + this.offsetTop = offset.top; + this.hidden = true; + $(window).unbind('resize.jqs scroll.jqs'); + $(window).bind('resize.jqs scroll.jqs', $.proxy(this.updateWindowDims, this)); + this.updateWindowDims(); + }, + + updateWindowDims: function () { + this.scrollTop = $(window).scrollTop(); + this.scrollLeft = $(window).scrollLeft(); + this.scrollRight = this.scrollLeft + $(window).width(); + this.updatePosition(); + }, + + getSize: function (content) { + this.sizetip.html(content).appendTo(this.container); + this.width = this.sizetip.width() + 1; + this.height = this.sizetip.height(); + this.sizetip.remove(); + }, + + setContent: function (content) { + if (!content) { + this.tooltip.css('visibility', 'hidden'); + this.hidden = true; + return; + } + this.getSize(content); + this.tooltip.html(content) + .css({ + 'width': this.width, + 'height': this.height, + 'visibility': 'visible' + }); + if (this.hidden) { + this.hidden = false; + this.updatePosition(); + } + }, + + updatePosition: function (x, y) { + if (x === undefined) { + if (this.mousex === undefined) { + return; + } + x = this.mousex - this.offsetLeft; + y = this.mousey - this.offsetTop; + + } else { + this.mousex = x = x - this.offsetLeft; + this.mousey = y = y - this.offsetTop; + } + if (!this.height || !this.width || this.hidden) { + return; + } + + y -= this.height + this.tooltipOffsetY; + x += this.tooltipOffsetX; + + if (y < this.scrollTop) { + y = this.scrollTop; + } + if (x < this.scrollLeft) { + x = this.scrollLeft; + } else if (x + this.width > this.scrollRight) { + x = this.scrollRight - this.width; + } + + this.tooltip.css({ + 'left': x, + 'top': y + }); + }, + + remove: function () { + this.tooltip.remove(); + this.sizetip.remove(); + this.sizetip = this.tooltip = undefined; + $(window).unbind('resize.jqs scroll.jqs'); + } + }); + + initStyles = function() { + addCSS(defaultStyles); + }; + + $(initStyles); + + pending = []; + $.fn.sparkline = function (userValues, userOptions) { + return this.each(function () { + var options = new $.fn.sparkline.options(this, userOptions), + $this = $(this), + render, i; + render = function () { + var values, width, height, tmp, mhandler, sp, vals; + if (userValues === 'html' || userValues === undefined) { + vals = this.getAttribute(options.get('tagValuesAttribute')); + if (vals === undefined || vals === null) { + vals = $this.html(); + } + values = vals.replace(/(^\s*\s*$)|\s+/g, '').split(','); + } else { + values = userValues; + } + + width = options.get('width') === 'auto' ? values.length * options.get('defaultPixelsPerValue') : options.get('width'); + if (options.get('height') === 'auto') { + if (!options.get('composite') || !$.data(this, '_jqs_vcanvas')) { + // must be a better way to get the line height + tmp = document.createElement('span'); + tmp.innerHTML = 'a'; + $this.html(tmp); + height = $(tmp).innerHeight() || $(tmp).height(); + $(tmp).remove(); + tmp = null; + } + } else { + height = options.get('height'); + } + + if (!options.get('disableInteraction')) { + mhandler = $.data(this, '_jqs_mhandler'); + if (!mhandler) { + mhandler = new MouseHandler(this, options); + $.data(this, '_jqs_mhandler', mhandler); + } else if (!options.get('composite')) { + mhandler.reset(); + } + } else { + mhandler = false; + } + + if (options.get('composite') && !$.data(this, '_jqs_vcanvas')) { + if (!$.data(this, '_jqs_errnotify')) { + alert('Attempted to attach a composite sparkline to an element with no existing sparkline'); + $.data(this, '_jqs_errnotify', true); + } + return; + } + + sp = new $.fn.sparkline[options.get('type')](this, values, options, width, height); + + sp.render(); + + if (mhandler) { + mhandler.registerSparkline(sp); + } + }; + if (($(this).html() && !options.get('disableHiddenCheck') && $(this).is(':hidden')) || !$(this).parents('body').length) { + if (!options.get('composite') && $.data(this, '_jqs_pending')) { + // remove any existing references to the element + for (i = pending.length; i; i--) { + if (pending[i - 1][0] == this) { + pending.splice(i - 1, 1); + } + } + } + pending.push([this, render]); + $.data(this, '_jqs_pending', true); + } else { + render.call(this); + } + }); + }; + + $.fn.sparkline.defaults = getDefaults(); + + + $.sparkline_display_visible = function () { + var el, i, pl; + var done = []; + for (i = 0, pl = pending.length; i < pl; i++) { + el = pending[i][0]; + if ($(el).is(':visible') && !$(el).parents().is(':hidden')) { + pending[i][1].call(el); + $.data(pending[i][0], '_jqs_pending', false); + done.push(i); + } else if (!$(el).closest('html').length && !$.data(el, '_jqs_pending')) { + // element has been inserted and removed from the DOM + // If it was not yet inserted into the dom then the .data request + // will return true. + // removing from the dom causes the data to be removed. + $.data(pending[i][0], '_jqs_pending', false); + done.push(i); + } + } + for (i = done.length; i; i--) { + pending.splice(done[i - 1], 1); + } + }; + + + /** + * User option handler + */ + $.fn.sparkline.options = createClass({ + init: function (tag, userOptions) { + var extendedOptions, defaults, base, tagOptionType; + this.userOptions = userOptions = userOptions || {}; + this.tag = tag; + this.tagValCache = {}; + defaults = $.fn.sparkline.defaults; + base = defaults.common; + this.tagOptionsPrefix = userOptions.enableTagOptions && (userOptions.tagOptionsPrefix || base.tagOptionsPrefix); + + tagOptionType = this.getTagSetting('type'); + if (tagOptionType === UNSET_OPTION) { + extendedOptions = defaults[userOptions.type || base.type]; + } else { + extendedOptions = defaults[tagOptionType]; + } + this.mergedOptions = $.extend({}, base, extendedOptions, userOptions); + }, + + + getTagSetting: function (key) { + var prefix = this.tagOptionsPrefix, + val, i, pairs, keyval; + if (prefix === false || prefix === undefined) { + return UNSET_OPTION; + } + if (this.tagValCache.hasOwnProperty(key)) { + val = this.tagValCache.key; + } else { + val = this.tag.getAttribute(prefix + key); + if (val === undefined || val === null) { + val = UNSET_OPTION; + } else if (val.substr(0, 1) === '[') { + val = val.substr(1, val.length - 2).split(','); + for (i = val.length; i--;) { + val[i] = normalizeValue(val[i].replace(/(^\s*)|(\s*$)/g, '')); + } + } else if (val.substr(0, 1) === '{') { + pairs = val.substr(1, val.length - 2).split(','); + val = {}; + for (i = pairs.length; i--;) { + keyval = pairs[i].split(':', 2); + val[keyval[0].replace(/(^\s*)|(\s*$)/g, '')] = normalizeValue(keyval[1].replace(/(^\s*)|(\s*$)/g, '')); + } + } else { + val = normalizeValue(val); + } + this.tagValCache.key = val; + } + return val; + }, + + get: function (key, defaultval) { + var tagOption = this.getTagSetting(key), + result; + if (tagOption !== UNSET_OPTION) { + return tagOption; + } + return (result = this.mergedOptions[key]) === undefined ? defaultval : result; + } + }); + + + $.fn.sparkline._base = createClass({ + disabled: false, + + init: function (el, values, options, width, height) { + this.el = el; + this.$el = $(el); + this.values = values; + this.options = options; + this.width = width; + this.height = height; + this.currentRegion = undefined; + }, + + /** + * Setup the canvas + */ + initTarget: function () { + var interactive = !this.options.get('disableInteraction'); + if (!(this.target = this.$el.simpledraw(this.width, this.height, this.options.get('composite'), interactive))) { + this.disabled = true; + } else { + this.canvasWidth = this.target.pixelWidth; + this.canvasHeight = this.target.pixelHeight; + } + }, + + /** + * Actually render the chart to the canvas + */ + render: function () { + if (this.disabled) { + this.el.innerHTML = ''; + return false; + } + return true; + }, + + /** + * Return a region id for a given x/y co-ordinate + */ + getRegion: function (x, y) { + }, + + /** + * Highlight an item based on the moused-over x,y co-ordinate + */ + setRegionHighlight: function (el, x, y) { + var currentRegion = this.currentRegion, + highlightEnabled = !this.options.get('disableHighlight'), + newRegion; + if (x > this.canvasWidth || y > this.canvasHeight || x < 0 || y < 0) { + return null; + } + newRegion = this.getRegion(el, x, y); + if (currentRegion !== newRegion) { + if (currentRegion !== undefined && highlightEnabled) { + this.removeHighlight(); + } + this.currentRegion = newRegion; + if (newRegion !== undefined && highlightEnabled) { + this.renderHighlight(); + } + return true; + } + return false; + }, + + /** + * Reset any currently highlighted item + */ + clearRegionHighlight: function () { + if (this.currentRegion !== undefined) { + this.removeHighlight(); + this.currentRegion = undefined; + return true; + } + return false; + }, + + renderHighlight: function () { + this.changeHighlight(true); + }, + + removeHighlight: function () { + this.changeHighlight(false); + }, + + changeHighlight: function (highlight) {}, + + /** + * Fetch the HTML to display as a tooltip + */ + getCurrentRegionTooltip: function () { + var options = this.options, + header = '', + entries = [], + fields, formats, formatlen, fclass, text, i, + showFields, showFieldsKey, newFields, fv, + formatter, format, fieldlen, j; + if (this.currentRegion === undefined) { + return ''; + } + fields = this.getCurrentRegionFields(); + formatter = options.get('tooltipFormatter'); + if (formatter) { + return formatter(this, options, fields); + } + if (options.get('tooltipChartTitle')) { + header += '
      ' + options.get('tooltipChartTitle') + '
      \n'; + } + formats = this.options.get('tooltipFormat'); + if (!formats) { + return ''; + } + if (!$.isArray(formats)) { + formats = [formats]; + } + if (!$.isArray(fields)) { + fields = [fields]; + } + showFields = this.options.get('tooltipFormatFieldlist'); + showFieldsKey = this.options.get('tooltipFormatFieldlistKey'); + if (showFields && showFieldsKey) { + // user-selected ordering of fields + newFields = []; + for (i = fields.length; i--;) { + fv = fields[i][showFieldsKey]; + if ((j = $.inArray(fv, showFields)) != -1) { + newFields[j] = fields[i]; + } + } + fields = newFields; + } + formatlen = formats.length; + fieldlen = fields.length; + for (i = 0; i < formatlen; i++) { + format = formats[i]; + if (typeof format === 'string') { + format = new SPFormat(format); + } + fclass = format.fclass || 'jqsfield'; + for (j = 0; j < fieldlen; j++) { + if (!fields[j].isNull || !options.get('tooltipSkipNull')) { + $.extend(fields[j], { + prefix: options.get('tooltipPrefix'), + suffix: options.get('tooltipSuffix') + }); + text = format.render(fields[j], options.get('tooltipValueLookups'), options); + entries.push('
      ' + text + '
      '); + } + } + } + if (entries.length) { + return header + entries.join('\n'); + } + return ''; + }, + + getCurrentRegionFields: function () {}, + + calcHighlightColor: function (color, options) { + var highlightColor = options.get('highlightColor'), + lighten = options.get('highlightLighten'), + parse, mult, rgbnew, i; + if (highlightColor) { + return highlightColor; + } + if (lighten) { + // extract RGB values + parse = /^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(color) || /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(color); + if (parse) { + rgbnew = []; + mult = color.length === 4 ? 16 : 1; + for (i = 0; i < 3; i++) { + rgbnew[i] = clipval(Math.round(parseInt(parse[i + 1], 16) * mult * lighten), 0, 255); + } + return 'rgb(' + rgbnew.join(',') + ')'; + } + + } + return color; + } + + }); + + barHighlightMixin = { + changeHighlight: function (highlight) { + var currentRegion = this.currentRegion, + target = this.target, + shapeids = this.regionShapes[currentRegion], + newShapes; + // will be null if the region value was null + if (shapeids) { + newShapes = this.renderRegion(currentRegion, highlight); + if ($.isArray(newShapes) || $.isArray(shapeids)) { + target.replaceWithShapes(shapeids, newShapes); + this.regionShapes[currentRegion] = $.map(newShapes, function (newShape) { + return newShape.id; + }); + } else { + target.replaceWithShape(shapeids, newShapes); + this.regionShapes[currentRegion] = newShapes.id; + } + } + }, + + render: function () { + var values = this.values, + target = this.target, + regionShapes = this.regionShapes, + shapes, ids, i, j; + + if (!this.cls._super.render.call(this)) { + return; + } + for (i = values.length; i--;) { + shapes = this.renderRegion(i); + if (shapes) { + if ($.isArray(shapes)) { + ids = []; + for (j = shapes.length; j--;) { + shapes[j].append(); + ids.push(shapes[j].id); + } + regionShapes[i] = ids; + } else { + shapes.append(); + regionShapes[i] = shapes.id; // store just the shapeid + } + } else { + // null value + regionShapes[i] = null; + } + } + target.render(); + } + }; + + /** + * Line charts + */ + $.fn.sparkline.line = line = createClass($.fn.sparkline._base, { + type: 'line', + + init: function (el, values, options, width, height) { + line._super.init.call(this, el, values, options, width, height); + this.vertices = []; + this.regionMap = []; + this.xvalues = []; + this.yvalues = []; + this.yminmax = []; + this.hightlightSpotId = null; + this.lastShapeId = null; + this.initTarget(); + }, + + getRegion: function (el, x, y) { + var i, + regionMap = this.regionMap; // maps regions to value positions + for (i = regionMap.length; i--;) { + if (regionMap[i] !== null && x >= regionMap[i][0] && x <= regionMap[i][1]) { + return regionMap[i][2]; + } + } + return undefined; + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion; + return { + isNull: this.yvalues[currentRegion] === null, + x: this.xvalues[currentRegion], + y: this.yvalues[currentRegion], + color: this.options.get('lineColor'), + fillColor: this.options.get('fillColor'), + offset: currentRegion + }; + }, + + renderHighlight: function () { + var currentRegion = this.currentRegion, + target = this.target, + vertex = this.vertices[currentRegion], + options = this.options, + spotRadius = options.get('spotRadius'), + highlightSpotColor = options.get('highlightSpotColor'), + highlightLineColor = options.get('highlightLineColor'), + highlightSpot, highlightLine; + + if (!vertex) { + return; + } + if (spotRadius && highlightSpotColor) { + highlightSpot = target.drawCircle(vertex[0], vertex[1], + spotRadius, undefined, highlightSpotColor); + this.highlightSpotId = highlightSpot.id; + target.insertAfterShape(this.lastShapeId, highlightSpot); + } + if (highlightLineColor) { + highlightLine = target.drawLine(vertex[0], this.canvasTop, vertex[0], + this.canvasTop + this.canvasHeight, highlightLineColor); + this.highlightLineId = highlightLine.id; + target.insertAfterShape(this.lastShapeId, highlightLine); + } + }, + + removeHighlight: function () { + var target = this.target; + if (this.highlightSpotId) { + target.removeShapeId(this.highlightSpotId); + this.highlightSpotId = null; + } + if (this.highlightLineId) { + target.removeShapeId(this.highlightLineId); + this.highlightLineId = null; + } + }, + + scanValues: function () { + var values = this.values, + valcount = values.length, + xvalues = this.xvalues, + yvalues = this.yvalues, + yminmax = this.yminmax, + i, val, isStr, isArray, sp; + for (i = 0; i < valcount; i++) { + val = values[i]; + isStr = typeof(values[i]) === 'string'; + isArray = typeof(values[i]) === 'object' && values[i] instanceof Array; + sp = isStr && values[i].split(':'); + if (isStr && sp.length === 2) { // x:y + xvalues.push(Number(sp[0])); + yvalues.push(Number(sp[1])); + yminmax.push(Number(sp[1])); + } else if (isArray) { + xvalues.push(val[0]); + yvalues.push(val[1]); + yminmax.push(val[1]); + } else { + xvalues.push(i); + if (values[i] === null || values[i] === 'null') { + yvalues.push(null); + } else { + yvalues.push(Number(val)); + yminmax.push(Number(val)); + } + } + } + if (this.options.get('xvalues')) { + xvalues = this.options.get('xvalues'); + } + + this.maxy = this.maxyorg = Math.max.apply(Math, yminmax); + this.miny = this.minyorg = Math.min.apply(Math, yminmax); + + this.maxx = Math.max.apply(Math, xvalues); + this.minx = Math.min.apply(Math, xvalues); + + this.xvalues = xvalues; + this.yvalues = yvalues; + this.yminmax = yminmax; + + }, + + processRangeOptions: function () { + var options = this.options, + normalRangeMin = options.get('normalRangeMin'), + normalRangeMax = options.get('normalRangeMax'); + + if (normalRangeMin !== undefined) { + if (normalRangeMin < this.miny) { + this.miny = normalRangeMin; + } + if (normalRangeMax > this.maxy) { + this.maxy = normalRangeMax; + } + } + if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < this.miny)) { + this.miny = options.get('chartRangeMin'); + } + if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > this.maxy)) { + this.maxy = options.get('chartRangeMax'); + } + if (options.get('chartRangeMinX') !== undefined && (options.get('chartRangeClipX') || options.get('chartRangeMinX') < this.minx)) { + this.minx = options.get('chartRangeMinX'); + } + if (options.get('chartRangeMaxX') !== undefined && (options.get('chartRangeClipX') || options.get('chartRangeMaxX') > this.maxx)) { + this.maxx = options.get('chartRangeMaxX'); + } + + }, + + drawNormalRange: function (canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey) { + var normalRangeMin = this.options.get('normalRangeMin'), + normalRangeMax = this.options.get('normalRangeMax'), + ytop = canvasTop + Math.round(canvasHeight - (canvasHeight * ((normalRangeMax - this.miny) / rangey))), + height = Math.round((canvasHeight * (normalRangeMax - normalRangeMin)) / rangey); + this.target.drawRect(canvasLeft, ytop, canvasWidth, height, undefined, this.options.get('normalRangeColor')).append(); + }, + + render: function () { + var options = this.options, + target = this.target, + canvasWidth = this.canvasWidth, + canvasHeight = this.canvasHeight, + vertices = this.vertices, + spotRadius = options.get('spotRadius'), + regionMap = this.regionMap, + rangex, rangey, yvallast, + canvasTop, canvasLeft, + vertex, path, paths, x, y, xnext, xpos, xposnext, + last, next, yvalcount, lineShapes, fillShapes, plen, + valueSpots, hlSpotsEnabled, color, xvalues, yvalues, i; + + if (!line._super.render.call(this)) { + return; + } + + this.scanValues(); + this.processRangeOptions(); + + xvalues = this.xvalues; + yvalues = this.yvalues; + + if (!this.yminmax.length || this.yvalues.length < 2) { + // empty or all null valuess + return; + } + + canvasTop = canvasLeft = 0; + + rangex = this.maxx - this.minx === 0 ? 1 : this.maxx - this.minx; + rangey = this.maxy - this.miny === 0 ? 1 : this.maxy - this.miny; + yvallast = this.yvalues.length - 1; + + if (spotRadius && (canvasWidth < (spotRadius * 4) || canvasHeight < (spotRadius * 4))) { + spotRadius = 0; + } + if (spotRadius) { + // adjust the canvas size as required so that spots will fit + hlSpotsEnabled = options.get('highlightSpotColor') && !options.get('disableInteraction'); + if (hlSpotsEnabled || options.get('minSpotColor') || (options.get('spotColor') && yvalues[yvallast] === this.miny)) { + canvasHeight -= Math.ceil(spotRadius); + } + if (hlSpotsEnabled || options.get('maxSpotColor') || (options.get('spotColor') && yvalues[yvallast] === this.maxy)) { + canvasHeight -= Math.ceil(spotRadius); + canvasTop += Math.ceil(spotRadius); + } + if (hlSpotsEnabled || + ((options.get('minSpotColor') || options.get('maxSpotColor')) && (yvalues[0] === this.miny || yvalues[0] === this.maxy))) { + canvasLeft += Math.ceil(spotRadius); + canvasWidth -= Math.ceil(spotRadius); + } + if (hlSpotsEnabled || options.get('spotColor') || + (options.get('minSpotColor') || options.get('maxSpotColor') && + (yvalues[yvallast] === this.miny || yvalues[yvallast] === this.maxy))) { + canvasWidth -= Math.ceil(spotRadius); + } + } + + + canvasHeight--; + + if (options.get('normalRangeMin') !== undefined && !options.get('drawNormalOnTop')) { + this.drawNormalRange(canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey); + } + + path = []; + paths = [path]; + last = next = null; + yvalcount = yvalues.length; + for (i = 0; i < yvalcount; i++) { + x = xvalues[i]; + xnext = xvalues[i + 1]; + y = yvalues[i]; + xpos = canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)); + xposnext = i < yvalcount - 1 ? canvasLeft + Math.round((xnext - this.minx) * (canvasWidth / rangex)) : canvasWidth; + next = xpos + ((xposnext - xpos) / 2); + regionMap[i] = [last || 0, next, i]; + last = next; + if (y === null) { + if (i) { + if (yvalues[i - 1] !== null) { + path = []; + paths.push(path); + } + vertices.push(null); + } + } else { + if (y < this.miny) { + y = this.miny; + } + if (y > this.maxy) { + y = this.maxy; + } + if (!path.length) { + // previous value was null + path.push([xpos, canvasTop + canvasHeight]); + } + vertex = [xpos, canvasTop + Math.round(canvasHeight - (canvasHeight * ((y - this.miny) / rangey)))]; + path.push(vertex); + vertices.push(vertex); + } + } + + lineShapes = []; + fillShapes = []; + plen = paths.length; + for (i = 0; i < plen; i++) { + path = paths[i]; + if (path.length) { + if (options.get('fillColor')) { + path.push([path[path.length - 1][0], (canvasTop + canvasHeight)]); + fillShapes.push(path.slice(0)); + path.pop(); + } + // if there's only a single point in this path, then we want to display it + // as a vertical line which means we keep path[0] as is + if (path.length > 2) { + // else we want the first value + path[0] = [path[0][0], path[1][1]]; + } + lineShapes.push(path); + } + } + + // draw the fill first, then optionally the normal range, then the line on top of that + plen = fillShapes.length; + for (i = 0; i < plen; i++) { + target.drawShape(fillShapes[i], + options.get('fillColor'), options.get('fillColor')).append(); + } + + if (options.get('normalRangeMin') !== undefined && options.get('drawNormalOnTop')) { + this.drawNormalRange(canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey); + } + + plen = lineShapes.length; + for (i = 0; i < plen; i++) { + target.drawShape(lineShapes[i], options.get('lineColor'), undefined, + options.get('lineWidth')).append(); + } + + if (spotRadius && options.get('valueSpots')) { + valueSpots = options.get('valueSpots'); + if (valueSpots.get === undefined) { + valueSpots = new RangeMap(valueSpots); + } + for (i = 0; i < yvalcount; i++) { + color = valueSpots.get(yvalues[i]); + if (color) { + target.drawCircle(canvasLeft + Math.round((xvalues[i] - this.minx) * (canvasWidth / rangex)), + canvasTop + Math.round(canvasHeight - (canvasHeight * ((yvalues[i] - this.miny) / rangey))), + spotRadius, undefined, + color).append(); + } + } + + } + if (spotRadius && options.get('spotColor') && yvalues[yvallast] !== null) { + target.drawCircle(canvasLeft + Math.round((xvalues[xvalues.length - 1] - this.minx) * (canvasWidth / rangex)), + canvasTop + Math.round(canvasHeight - (canvasHeight * ((yvalues[yvallast] - this.miny) / rangey))), + spotRadius, undefined, + options.get('spotColor')).append(); + } + if (this.maxy !== this.minyorg) { + if (spotRadius && options.get('minSpotColor')) { + x = xvalues[$.inArray(this.minyorg, yvalues)]; + target.drawCircle(canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)), + canvasTop + Math.round(canvasHeight - (canvasHeight * ((this.minyorg - this.miny) / rangey))), + spotRadius, undefined, + options.get('minSpotColor')).append(); + } + if (spotRadius && options.get('maxSpotColor')) { + x = xvalues[$.inArray(this.maxyorg, yvalues)]; + target.drawCircle(canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)), + canvasTop + Math.round(canvasHeight - (canvasHeight * ((this.maxyorg - this.miny) / rangey))), + spotRadius, undefined, + options.get('maxSpotColor')).append(); + } + } + + this.lastShapeId = target.getLastShapeId(); + this.canvasTop = canvasTop; + target.render(); + } + }); + + /** + * Bar charts + */ + $.fn.sparkline.bar = bar = createClass($.fn.sparkline._base, barHighlightMixin, { + type: 'bar', + + init: function (el, values, options, width, height) { + var barWidth = parseInt(options.get('barWidth'), 10), + barSpacing = parseInt(options.get('barSpacing'), 10), + chartRangeMin = options.get('chartRangeMin'), + chartRangeMax = options.get('chartRangeMax'), + chartRangeClip = options.get('chartRangeClip'), + stackMin = Infinity, + stackMax = -Infinity, + isStackString, groupMin, groupMax, stackRanges, + numValues, i, vlen, range, zeroAxis, xaxisOffset, min, max, clipMin, clipMax, + stacked, vlist, j, slen, svals, val, yoffset, yMaxCalc, canvasHeightEf; + bar._super.init.call(this, el, values, options, width, height); + + // scan values to determine whether to stack bars + for (i = 0, vlen = values.length; i < vlen; i++) { + val = values[i]; + isStackString = typeof(val) === 'string' && val.indexOf(':') > -1; + if (isStackString || $.isArray(val)) { + stacked = true; + if (isStackString) { + val = values[i] = normalizeValues(val.split(':')); + } + val = remove(val, null); // min/max will treat null as zero + groupMin = Math.min.apply(Math, val); + groupMax = Math.max.apply(Math, val); + if (groupMin < stackMin) { + stackMin = groupMin; + } + if (groupMax > stackMax) { + stackMax = groupMax; + } + } + } + + this.stacked = stacked; + this.regionShapes = {}; + this.barWidth = barWidth; + this.barSpacing = barSpacing; + this.totalBarWidth = barWidth + barSpacing; + this.width = width = (values.length * barWidth) + ((values.length - 1) * barSpacing); + + this.initTarget(); + + if (chartRangeClip) { + clipMin = chartRangeMin === undefined ? -Infinity : chartRangeMin; + clipMax = chartRangeMax === undefined ? Infinity : chartRangeMax; + } + + numValues = []; + stackRanges = stacked ? [] : numValues; + var stackTotals = []; + var stackRangesNeg = []; + for (i = 0, vlen = values.length; i < vlen; i++) { + if (stacked) { + vlist = values[i]; + values[i] = svals = []; + stackTotals[i] = 0; + stackRanges[i] = stackRangesNeg[i] = 0; + for (j = 0, slen = vlist.length; j < slen; j++) { + val = svals[j] = chartRangeClip ? clipval(vlist[j], clipMin, clipMax) : vlist[j]; + if (val !== null) { + if (val > 0) { + stackTotals[i] += val; + } + if (stackMin < 0 && stackMax > 0) { + if (val < 0) { + stackRangesNeg[i] += Math.abs(val); + } else { + stackRanges[i] += val; + } + } else { + stackRanges[i] += Math.abs(val - (val < 0 ? stackMax : stackMin)); + } + numValues.push(val); + } + } + } else { + val = chartRangeClip ? clipval(values[i], clipMin, clipMax) : values[i]; + val = values[i] = normalizeValue(val); + if (val !== null) { + numValues.push(val); + } + } + } + this.max = max = Math.max.apply(Math, numValues); + this.min = min = Math.min.apply(Math, numValues); + this.stackMax = stackMax = stacked ? Math.max.apply(Math, stackTotals) : max; + this.stackMin = stackMin = stacked ? Math.min.apply(Math, numValues) : min; + + if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < min)) { + min = options.get('chartRangeMin'); + } + if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > max)) { + max = options.get('chartRangeMax'); + } + + this.zeroAxis = zeroAxis = options.get('zeroAxis', true); + if (min <= 0 && max >= 0 && zeroAxis) { + xaxisOffset = 0; + } else if (zeroAxis == false) { + xaxisOffset = min; + } else if (min > 0) { + xaxisOffset = min; + } else { + xaxisOffset = max; + } + this.xaxisOffset = xaxisOffset; + + range = stacked ? (Math.max.apply(Math, stackRanges) + Math.max.apply(Math, stackRangesNeg)) : max - min; + + // as we plot zero/min values a single pixel line, we add a pixel to all other + // values - Reduce the effective canvas size to suit + this.canvasHeightEf = (zeroAxis && min < 0) ? this.canvasHeight - 2 : this.canvasHeight - 1; + + if (min < xaxisOffset) { + yMaxCalc = (stacked && max >= 0) ? stackMax : max; + yoffset = (yMaxCalc - xaxisOffset) / range * this.canvasHeight; + if (yoffset !== Math.ceil(yoffset)) { + this.canvasHeightEf -= 2; + yoffset = Math.ceil(yoffset); + } + } else { + yoffset = this.canvasHeight; + } + this.yoffset = yoffset; + + if ($.isArray(options.get('colorMap'))) { + this.colorMapByIndex = options.get('colorMap'); + this.colorMapByValue = null; + } else { + this.colorMapByIndex = null; + this.colorMapByValue = options.get('colorMap'); + if (this.colorMapByValue && this.colorMapByValue.get === undefined) { + this.colorMapByValue = new RangeMap(this.colorMapByValue); + } + } + + this.range = range; + }, + + getRegion: function (el, x, y) { + var result = Math.floor(x / this.totalBarWidth); + return (result < 0 || result >= this.values.length) ? undefined : result; + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion, + values = ensureArray(this.values[currentRegion]), + result = [], + value, i; + for (i = values.length; i--;) { + value = values[i]; + result.push({ + isNull: value === null, + value: value, + color: this.calcColor(i, value, currentRegion), + offset: currentRegion + }); + } + return result; + }, + + calcColor: function (stacknum, value, valuenum) { + var colorMapByIndex = this.colorMapByIndex, + colorMapByValue = this.colorMapByValue, + options = this.options, + color, newColor; + if (this.stacked) { + color = options.get('stackedBarColor'); + } else { + color = (value < 0) ? options.get('negBarColor') : options.get('barColor'); + } + if (value === 0 && options.get('zeroColor') !== undefined) { + color = options.get('zeroColor'); + } + if (colorMapByValue && (newColor = colorMapByValue.get(value))) { + color = newColor; + } else if (colorMapByIndex && colorMapByIndex.length > valuenum) { + color = colorMapByIndex[valuenum]; + } + return $.isArray(color) ? color[stacknum % color.length] : color; + }, + + /** + * Render bar(s) for a region + */ + renderRegion: function (valuenum, highlight) { + var vals = this.values[valuenum], + options = this.options, + xaxisOffset = this.xaxisOffset, + result = [], + range = this.range, + stacked = this.stacked, + target = this.target, + x = valuenum * this.totalBarWidth, + canvasHeightEf = this.canvasHeightEf, + yoffset = this.yoffset, + y, height, color, isNull, yoffsetNeg, i, valcount, val, minPlotted, allMin; + + vals = $.isArray(vals) ? vals : [vals]; + valcount = vals.length; + val = vals[0]; + isNull = all(null, vals); + allMin = all(xaxisOffset, vals, true); + + if (isNull) { + if (options.get('nullColor')) { + color = highlight ? options.get('nullColor') : this.calcHighlightColor(options.get('nullColor'), options); + y = (yoffset > 0) ? yoffset - 1 : yoffset; + return target.drawRect(x, y, this.barWidth - 1, 0, color, color); + } else { + return undefined; + } + } + yoffsetNeg = yoffset; + for (i = 0; i < valcount; i++) { + val = vals[i]; + + if (stacked && val === xaxisOffset) { + if (!allMin || minPlotted) { + continue; + } + minPlotted = true; + } + + if (range > 0) { + height = Math.floor(canvasHeightEf * ((Math.abs(val - xaxisOffset) / range))) + 1; + } else { + height = 1; + } + if (val < xaxisOffset || (val === xaxisOffset && yoffset === 0)) { + y = yoffsetNeg; + yoffsetNeg += height; + } else { + y = yoffset - height; + yoffset -= height; + } + color = this.calcColor(i, val, valuenum); + if (highlight) { + color = this.calcHighlightColor(color, options); + } + result.push(target.drawRect(x, y, this.barWidth - 1, height - 1, color, color)); + } + if (result.length === 1) { + return result[0]; + } + return result; + } + }); + + /** + * Tristate charts + */ + $.fn.sparkline.tristate = tristate = createClass($.fn.sparkline._base, barHighlightMixin, { + type: 'tristate', + + init: function (el, values, options, width, height) { + var barWidth = parseInt(options.get('barWidth'), 10), + barSpacing = parseInt(options.get('barSpacing'), 10); + tristate._super.init.call(this, el, values, options, width, height); + + this.regionShapes = {}; + this.barWidth = barWidth; + this.barSpacing = barSpacing; + this.totalBarWidth = barWidth + barSpacing; + this.values = $.map(values, Number); + this.width = width = (values.length * barWidth) + ((values.length - 1) * barSpacing); + + if ($.isArray(options.get('colorMap'))) { + this.colorMapByIndex = options.get('colorMap'); + this.colorMapByValue = null; + } else { + this.colorMapByIndex = null; + this.colorMapByValue = options.get('colorMap'); + if (this.colorMapByValue && this.colorMapByValue.get === undefined) { + this.colorMapByValue = new RangeMap(this.colorMapByValue); + } + } + this.initTarget(); + }, + + getRegion: function (el, x, y) { + return Math.floor(x / this.totalBarWidth); + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion; + return { + isNull: this.values[currentRegion] === undefined, + value: this.values[currentRegion], + color: this.calcColor(this.values[currentRegion], currentRegion), + offset: currentRegion + }; + }, + + calcColor: function (value, valuenum) { + var values = this.values, + options = this.options, + colorMapByIndex = this.colorMapByIndex, + colorMapByValue = this.colorMapByValue, + color, newColor; + + if (colorMapByValue && (newColor = colorMapByValue.get(value))) { + color = newColor; + } else if (colorMapByIndex && colorMapByIndex.length > valuenum) { + color = colorMapByIndex[valuenum]; + } else if (values[valuenum] < 0) { + color = options.get('negBarColor'); + } else if (values[valuenum] > 0) { + color = options.get('posBarColor'); + } else { + color = options.get('zeroBarColor'); + } + return color; + }, + + renderRegion: function (valuenum, highlight) { + var values = this.values, + options = this.options, + target = this.target, + canvasHeight, height, halfHeight, + x, y, color; + + canvasHeight = target.pixelHeight; + halfHeight = Math.round(canvasHeight / 2); + + x = valuenum * this.totalBarWidth; + if (values[valuenum] < 0) { + y = halfHeight; + height = halfHeight - 1; + } else if (values[valuenum] > 0) { + y = 0; + height = halfHeight - 1; + } else { + y = halfHeight - 1; + height = 2; + } + color = this.calcColor(values[valuenum], valuenum); + if (color === null) { + return; + } + if (highlight) { + color = this.calcHighlightColor(color, options); + } + return target.drawRect(x, y, this.barWidth - 1, height - 1, color, color); + } + }); + + /** + * Discrete charts + */ + $.fn.sparkline.discrete = discrete = createClass($.fn.sparkline._base, barHighlightMixin, { + type: 'discrete', + + init: function (el, values, options, width, height) { + discrete._super.init.call(this, el, values, options, width, height); + + this.regionShapes = {}; + this.values = values = $.map(values, Number); + this.min = Math.min.apply(Math, values); + this.max = Math.max.apply(Math, values); + this.range = this.max - this.min; + this.width = width = options.get('width') === 'auto' ? values.length * 2 : this.width; + this.interval = Math.floor(width / values.length); + this.itemWidth = width / values.length; + if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < this.min)) { + this.min = options.get('chartRangeMin'); + } + if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > this.max)) { + this.max = options.get('chartRangeMax'); + } + this.initTarget(); + if (this.target) { + this.lineHeight = options.get('lineHeight') === 'auto' ? Math.round(this.canvasHeight * 0.3) : options.get('lineHeight'); + } + }, + + getRegion: function (el, x, y) { + return Math.floor(x / this.itemWidth); + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion; + return { + isNull: this.values[currentRegion] === undefined, + value: this.values[currentRegion], + offset: currentRegion + }; + }, + + renderRegion: function (valuenum, highlight) { + var values = this.values, + options = this.options, + min = this.min, + max = this.max, + range = this.range, + interval = this.interval, + target = this.target, + canvasHeight = this.canvasHeight, + lineHeight = this.lineHeight, + pheight = canvasHeight - lineHeight, + ytop, val, color, x; + + val = clipval(values[valuenum], min, max); + x = valuenum * interval; + ytop = Math.round(pheight - pheight * ((val - min) / range)); + color = (options.get('thresholdColor') && val < options.get('thresholdValue')) ? options.get('thresholdColor') : options.get('lineColor'); + if (highlight) { + color = this.calcHighlightColor(color, options); + } + return target.drawLine(x, ytop, x, ytop + lineHeight, color); + } + }); + + /** + * Bullet charts + */ + $.fn.sparkline.bullet = bullet = createClass($.fn.sparkline._base, { + type: 'bullet', + + init: function (el, values, options, width, height) { + var min, max, vals; + bullet._super.init.call(this, el, values, options, width, height); + + // values: target, performance, range1, range2, range3 + this.values = values = normalizeValues(values); + // target or performance could be null + vals = values.slice(); + vals[0] = vals[0] === null ? vals[2] : vals[0]; + vals[1] = values[1] === null ? vals[2] : vals[1]; + min = Math.min.apply(Math, values); + max = Math.max.apply(Math, values); + if (options.get('base') === undefined) { + min = min < 0 ? min : 0; + } else { + min = options.get('base'); + } + this.min = min; + this.max = max; + this.range = max - min; + this.shapes = {}; + this.valueShapes = {}; + this.regiondata = {}; + this.width = width = options.get('width') === 'auto' ? '4.0em' : width; + this.target = this.$el.simpledraw(width, height, options.get('composite')); + if (!values.length) { + this.disabled = true; + } + this.initTarget(); + }, + + getRegion: function (el, x, y) { + var shapeid = this.target.getShapeAt(el, x, y); + return (shapeid !== undefined && this.shapes[shapeid] !== undefined) ? this.shapes[shapeid] : undefined; + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion; + return { + fieldkey: currentRegion.substr(0, 1), + value: this.values[currentRegion.substr(1)], + region: currentRegion + }; + }, + + changeHighlight: function (highlight) { + var currentRegion = this.currentRegion, + shapeid = this.valueShapes[currentRegion], + shape; + delete this.shapes[shapeid]; + switch (currentRegion.substr(0, 1)) { + case 'r': + shape = this.renderRange(currentRegion.substr(1), highlight); + break; + case 'p': + shape = this.renderPerformance(highlight); + break; + case 't': + shape = this.renderTarget(highlight); + break; + } + this.valueShapes[currentRegion] = shape.id; + this.shapes[shape.id] = currentRegion; + this.target.replaceWithShape(shapeid, shape); + }, + + renderRange: function (rn, highlight) { + var rangeval = this.values[rn], + rangewidth = Math.round(this.canvasWidth * ((rangeval - this.min) / this.range)), + color = this.options.get('rangeColors')[rn - 2]; + if (highlight) { + color = this.calcHighlightColor(color, this.options); + } + return this.target.drawRect(0, 0, rangewidth - 1, this.canvasHeight - 1, color, color); + }, + + renderPerformance: function (highlight) { + var perfval = this.values[1], + perfwidth = Math.round(this.canvasWidth * ((perfval - this.min) / this.range)), + color = this.options.get('performanceColor'); + if (highlight) { + color = this.calcHighlightColor(color, this.options); + } + return this.target.drawRect(0, Math.round(this.canvasHeight * 0.3), perfwidth - 1, + Math.round(this.canvasHeight * 0.4) - 1, color, color); + }, + + renderTarget: function (highlight) { + var targetval = this.values[0], + x = Math.round(this.canvasWidth * ((targetval - this.min) / this.range) - (this.options.get('targetWidth') / 2)), + targettop = Math.round(this.canvasHeight * 0.10), + targetheight = this.canvasHeight - (targettop * 2), + color = this.options.get('targetColor'); + if (highlight) { + color = this.calcHighlightColor(color, this.options); + } + return this.target.drawRect(x, targettop, this.options.get('targetWidth') - 1, targetheight - 1, color, color); + }, + + render: function () { + var vlen = this.values.length, + target = this.target, + i, shape; + if (!bullet._super.render.call(this)) { + return; + } + for (i = 2; i < vlen; i++) { + shape = this.renderRange(i).append(); + this.shapes[shape.id] = 'r' + i; + this.valueShapes['r' + i] = shape.id; + } + if (this.values[1] !== null) { + shape = this.renderPerformance().append(); + this.shapes[shape.id] = 'p1'; + this.valueShapes.p1 = shape.id; + } + if (this.values[0] !== null) { + shape = this.renderTarget().append(); + this.shapes[shape.id] = 't0'; + this.valueShapes.t0 = shape.id; + } + target.render(); + } + }); + + /** + * Pie charts + */ + $.fn.sparkline.pie = pie = createClass($.fn.sparkline._base, { + type: 'pie', + + init: function (el, values, options, width, height) { + var total = 0, i; + + pie._super.init.call(this, el, values, options, width, height); + + this.shapes = {}; // map shape ids to value offsets + this.valueShapes = {}; // maps value offsets to shape ids + this.values = values = $.map(values, Number); + + if (options.get('width') === 'auto') { + this.width = this.height; + } + + if (values.length > 0) { + for (i = values.length; i--;) { + total += values[i]; + } + } + this.total = total; + this.initTarget(); + this.radius = Math.floor(Math.min(this.canvasWidth, this.canvasHeight) / 2); + }, + + getRegion: function (el, x, y) { + var shapeid = this.target.getShapeAt(el, x, y); + return (shapeid !== undefined && this.shapes[shapeid] !== undefined) ? this.shapes[shapeid] : undefined; + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion; + return { + isNull: this.values[currentRegion] === undefined, + value: this.values[currentRegion], + percent: this.values[currentRegion] / this.total * 100, + color: this.options.get('sliceColors')[currentRegion % this.options.get('sliceColors').length], + offset: currentRegion + }; + }, + + changeHighlight: function (highlight) { + var currentRegion = this.currentRegion, + newslice = this.renderSlice(currentRegion, highlight), + shapeid = this.valueShapes[currentRegion]; + delete this.shapes[shapeid]; + this.target.replaceWithShape(shapeid, newslice); + this.valueShapes[currentRegion] = newslice.id; + this.shapes[newslice.id] = currentRegion; + }, + + renderSlice: function (valuenum, highlight) { + var target = this.target, + options = this.options, + radius = this.radius, + borderWidth = options.get('borderWidth'), + offset = options.get('offset'), + circle = 2 * Math.PI, + values = this.values, + total = this.total, + next = offset ? (2*Math.PI)*(offset/360) : 0, + start, end, i, vlen, color; + + vlen = values.length; + for (i = 0; i < vlen; i++) { + start = next; + end = next; + if (total > 0) { // avoid divide by zero + end = next + (circle * (values[i] / total)); + } + if (valuenum === i) { + color = options.get('sliceColors')[i % options.get('sliceColors').length]; + if (highlight) { + color = this.calcHighlightColor(color, options); + } + + return target.drawPieSlice(radius, radius, radius - borderWidth, start, end, undefined, color); + } + next = end; + } + }, + + render: function () { + var target = this.target, + values = this.values, + options = this.options, + radius = this.radius, + borderWidth = options.get('borderWidth'), + shape, i; + + if (!pie._super.render.call(this)) { + return; + } + if (borderWidth) { + target.drawCircle(radius, radius, Math.floor(radius - (borderWidth / 2)), + options.get('borderColor'), undefined, borderWidth).append(); + } + for (i = values.length; i--;) { + if (values[i]) { // don't render zero values + shape = this.renderSlice(i).append(); + this.valueShapes[i] = shape.id; // store just the shapeid + this.shapes[shape.id] = i; + } + } + target.render(); + } + }); + + /** + * Box plots + */ + $.fn.sparkline.box = box = createClass($.fn.sparkline._base, { + type: 'box', + + init: function (el, values, options, width, height) { + box._super.init.call(this, el, values, options, width, height); + this.values = $.map(values, Number); + this.width = options.get('width') === 'auto' ? '4.0em' : width; + this.initTarget(); + if (!this.values.length) { + this.disabled = 1; + } + }, + + /** + * Simulate a single region + */ + getRegion: function () { + return 1; + }, + + getCurrentRegionFields: function () { + var result = [ + { field: 'lq', value: this.quartiles[0] }, + { field: 'med', value: this.quartiles[1] }, + { field: 'uq', value: this.quartiles[2] } + ]; + if (this.loutlier !== undefined) { + result.push({ field: 'lo', value: this.loutlier}); + } + if (this.routlier !== undefined) { + result.push({ field: 'ro', value: this.routlier}); + } + if (this.lwhisker !== undefined) { + result.push({ field: 'lw', value: this.lwhisker}); + } + if (this.rwhisker !== undefined) { + result.push({ field: 'rw', value: this.rwhisker}); + } + return result; + }, + + render: function () { + var target = this.target, + values = this.values, + vlen = values.length, + options = this.options, + canvasWidth = this.canvasWidth, + canvasHeight = this.canvasHeight, + minValue = options.get('chartRangeMin') === undefined ? Math.min.apply(Math, values) : options.get('chartRangeMin'), + maxValue = options.get('chartRangeMax') === undefined ? Math.max.apply(Math, values) : options.get('chartRangeMax'), + canvasLeft = 0, + lwhisker, loutlier, iqr, q1, q2, q3, rwhisker, routlier, i, + size, unitSize; + + if (!box._super.render.call(this)) { + return; + } + + if (options.get('raw')) { + if (options.get('showOutliers') && values.length > 5) { + loutlier = values[0]; + lwhisker = values[1]; + q1 = values[2]; + q2 = values[3]; + q3 = values[4]; + rwhisker = values[5]; + routlier = values[6]; + } else { + lwhisker = values[0]; + q1 = values[1]; + q2 = values[2]; + q3 = values[3]; + rwhisker = values[4]; + } + } else { + values.sort(function (a, b) { return a - b; }); + q1 = quartile(values, 1); + q2 = quartile(values, 2); + q3 = quartile(values, 3); + iqr = q3 - q1; + if (options.get('showOutliers')) { + lwhisker = rwhisker = undefined; + for (i = 0; i < vlen; i++) { + if (lwhisker === undefined && values[i] > q1 - (iqr * options.get('outlierIQR'))) { + lwhisker = values[i]; + } + if (values[i] < q3 + (iqr * options.get('outlierIQR'))) { + rwhisker = values[i]; + } + } + loutlier = values[0]; + routlier = values[vlen - 1]; + } else { + lwhisker = values[0]; + rwhisker = values[vlen - 1]; + } + } + this.quartiles = [q1, q2, q3]; + this.lwhisker = lwhisker; + this.rwhisker = rwhisker; + this.loutlier = loutlier; + this.routlier = routlier; + + unitSize = canvasWidth / (maxValue - minValue + 1); + if (options.get('showOutliers')) { + canvasLeft = Math.ceil(options.get('spotRadius')); + canvasWidth -= 2 * Math.ceil(options.get('spotRadius')); + unitSize = canvasWidth / (maxValue - minValue + 1); + if (loutlier < lwhisker) { + target.drawCircle((loutlier - minValue) * unitSize + canvasLeft, + canvasHeight / 2, + options.get('spotRadius'), + options.get('outlierLineColor'), + options.get('outlierFillColor')).append(); + } + if (routlier > rwhisker) { + target.drawCircle((routlier - minValue) * unitSize + canvasLeft, + canvasHeight / 2, + options.get('spotRadius'), + options.get('outlierLineColor'), + options.get('outlierFillColor')).append(); + } + } + + // box + target.drawRect( + Math.round((q1 - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight * 0.1), + Math.round((q3 - q1) * unitSize), + Math.round(canvasHeight * 0.8), + options.get('boxLineColor'), + options.get('boxFillColor')).append(); + // left whisker + target.drawLine( + Math.round((lwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 2), + Math.round((q1 - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 2), + options.get('lineColor')).append(); + target.drawLine( + Math.round((lwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 4), + Math.round((lwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight - canvasHeight / 4), + options.get('whiskerColor')).append(); + // right whisker + target.drawLine(Math.round((rwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 2), + Math.round((q3 - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 2), + options.get('lineColor')).append(); + target.drawLine( + Math.round((rwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 4), + Math.round((rwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight - canvasHeight / 4), + options.get('whiskerColor')).append(); + // median line + target.drawLine( + Math.round((q2 - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight * 0.1), + Math.round((q2 - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight * 0.9), + options.get('medianColor')).append(); + if (options.get('target')) { + size = Math.ceil(options.get('spotRadius')); + target.drawLine( + Math.round((options.get('target') - minValue) * unitSize + canvasLeft), + Math.round((canvasHeight / 2) - size), + Math.round((options.get('target') - minValue) * unitSize + canvasLeft), + Math.round((canvasHeight / 2) + size), + options.get('targetColor')).append(); + target.drawLine( + Math.round((options.get('target') - minValue) * unitSize + canvasLeft - size), + Math.round(canvasHeight / 2), + Math.round((options.get('target') - minValue) * unitSize + canvasLeft + size), + Math.round(canvasHeight / 2), + options.get('targetColor')).append(); + } + target.render(); + } + }); + + // Setup a very simple "virtual canvas" to make drawing the few shapes we need easier + // This is accessible as $(foo).simpledraw() + + VShape = createClass({ + init: function (target, id, type, args) { + this.target = target; + this.id = id; + this.type = type; + this.args = args; + }, + append: function () { + this.target.appendShape(this); + return this; + } + }); + + VCanvas_base = createClass({ + _pxregex: /(\d+)(px)?\s*$/i, + + init: function (width, height, target) { + if (!width) { + return; + } + this.width = width; + this.height = height; + this.target = target; + this.lastShapeId = null; + if (target[0]) { + target = target[0]; + } + $.data(target, '_jqs_vcanvas', this); + }, + + drawLine: function (x1, y1, x2, y2, lineColor, lineWidth) { + return this.drawShape([[x1, y1], [x2, y2]], lineColor, lineWidth); + }, + + drawShape: function (path, lineColor, fillColor, lineWidth) { + return this._genShape('Shape', [path, lineColor, fillColor, lineWidth]); + }, + + drawCircle: function (x, y, radius, lineColor, fillColor, lineWidth) { + return this._genShape('Circle', [x, y, radius, lineColor, fillColor, lineWidth]); + }, + + drawPieSlice: function (x, y, radius, startAngle, endAngle, lineColor, fillColor) { + return this._genShape('PieSlice', [x, y, radius, startAngle, endAngle, lineColor, fillColor]); + }, + + drawRect: function (x, y, width, height, lineColor, fillColor) { + return this._genShape('Rect', [x, y, width, height, lineColor, fillColor]); + }, + + getElement: function () { + return this.canvas; + }, + + /** + * Return the most recently inserted shape id + */ + getLastShapeId: function () { + return this.lastShapeId; + }, + + /** + * Clear and reset the canvas + */ + reset: function () { + alert('reset not implemented'); + }, + + _insert: function (el, target) { + $(target).html(el); + }, + + /** + * Calculate the pixel dimensions of the canvas + */ + _calculatePixelDims: function (width, height, canvas) { + // XXX This should probably be a configurable option + var match; + match = this._pxregex.exec(height); + if (match) { + this.pixelHeight = match[1]; + } else { + this.pixelHeight = $(canvas).height(); + } + match = this._pxregex.exec(width); + if (match) { + this.pixelWidth = match[1]; + } else { + this.pixelWidth = $(canvas).width(); + } + }, + + /** + * Generate a shape object and id for later rendering + */ + _genShape: function (shapetype, shapeargs) { + var id = shapeCount++; + shapeargs.unshift(id); + return new VShape(this, id, shapetype, shapeargs); + }, + + /** + * Add a shape to the end of the render queue + */ + appendShape: function (shape) { + alert('appendShape not implemented'); + }, + + /** + * Replace one shape with another + */ + replaceWithShape: function (shapeid, shape) { + alert('replaceWithShape not implemented'); + }, + + /** + * Insert one shape after another in the render queue + */ + insertAfterShape: function (shapeid, shape) { + alert('insertAfterShape not implemented'); + }, + + /** + * Remove a shape from the queue + */ + removeShapeId: function (shapeid) { + alert('removeShapeId not implemented'); + }, + + /** + * Find a shape at the specified x/y co-ordinates + */ + getShapeAt: function (el, x, y) { + alert('getShapeAt not implemented'); + }, + + /** + * Render all queued shapes onto the canvas + */ + render: function () { + alert('render not implemented'); + } + }); + + VCanvas_canvas = createClass(VCanvas_base, { + init: function (width, height, target, interact) { + VCanvas_canvas._super.init.call(this, width, height, target); + this.canvas = document.createElement('canvas'); + if (target[0]) { + target = target[0]; + } + $.data(target, '_jqs_vcanvas', this); + $(this.canvas).css({ display: 'inline-block', width: width, height: height, verticalAlign: 'top' }); + this._insert(this.canvas, target); + this._calculatePixelDims(width, height, this.canvas); + this.canvas.width = this.pixelWidth; + this.canvas.height = this.pixelHeight; + this.interact = interact; + this.shapes = {}; + this.shapeseq = []; + this.currentTargetShapeId = undefined; + $(this.canvas).css({width: this.pixelWidth, height: this.pixelHeight}); + }, + + _getContext: function (lineColor, fillColor, lineWidth) { + var context = this.canvas.getContext('2d'); + if (lineColor !== undefined) { + context.strokeStyle = lineColor; + } + context.lineWidth = lineWidth === undefined ? 1 : lineWidth; + if (fillColor !== undefined) { + context.fillStyle = fillColor; + } + return context; + }, + + reset: function () { + var context = this._getContext(); + context.clearRect(0, 0, this.pixelWidth, this.pixelHeight); + this.shapes = {}; + this.shapeseq = []; + this.currentTargetShapeId = undefined; + }, + + _drawShape: function (shapeid, path, lineColor, fillColor, lineWidth) { + var context = this._getContext(lineColor, fillColor, lineWidth), + i, plen; + context.beginPath(); + context.moveTo(path[0][0] + 0.5, path[0][1] + 0.5); + for (i = 1, plen = path.length; i < plen; i++) { + context.lineTo(path[i][0] + 0.5, path[i][1] + 0.5); // the 0.5 offset gives us crisp pixel-width lines + } + if (lineColor !== undefined) { + context.stroke(); + } + if (fillColor !== undefined) { + context.fill(); + } + if (this.targetX !== undefined && this.targetY !== undefined && + context.isPointInPath(this.targetX, this.targetY)) { + this.currentTargetShapeId = shapeid; + } + }, + + _drawCircle: function (shapeid, x, y, radius, lineColor, fillColor, lineWidth) { + var context = this._getContext(lineColor, fillColor, lineWidth); + context.beginPath(); + context.arc(x, y, radius, 0, 2 * Math.PI, false); + if (this.targetX !== undefined && this.targetY !== undefined && + context.isPointInPath(this.targetX, this.targetY)) { + this.currentTargetShapeId = shapeid; + } + if (lineColor !== undefined) { + context.stroke(); + } + if (fillColor !== undefined) { + context.fill(); + } + }, + + _drawPieSlice: function (shapeid, x, y, radius, startAngle, endAngle, lineColor, fillColor) { + var context = this._getContext(lineColor, fillColor); + context.beginPath(); + context.moveTo(x, y); + context.arc(x, y, radius, startAngle, endAngle, false); + context.lineTo(x, y); + context.closePath(); + if (lineColor !== undefined) { + context.stroke(); + } + if (fillColor) { + context.fill(); + } + if (this.targetX !== undefined && this.targetY !== undefined && + context.isPointInPath(this.targetX, this.targetY)) { + this.currentTargetShapeId = shapeid; + } + }, + + _drawRect: function (shapeid, x, y, width, height, lineColor, fillColor) { + return this._drawShape(shapeid, [[x, y], [x + width, y], [x + width, y + height], [x, y + height], [x, y]], lineColor, fillColor); + }, + + appendShape: function (shape) { + this.shapes[shape.id] = shape; + this.shapeseq.push(shape.id); + this.lastShapeId = shape.id; + return shape.id; + }, + + replaceWithShape: function (shapeid, shape) { + var shapeseq = this.shapeseq, + i; + this.shapes[shape.id] = shape; + for (i = shapeseq.length; i--;) { + if (shapeseq[i] == shapeid) { + shapeseq[i] = shape.id; + } + } + delete this.shapes[shapeid]; + }, + + replaceWithShapes: function (shapeids, shapes) { + var shapeseq = this.shapeseq, + shapemap = {}, + sid, i, first; + + for (i = shapeids.length; i--;) { + shapemap[shapeids[i]] = true; + } + for (i = shapeseq.length; i--;) { + sid = shapeseq[i]; + if (shapemap[sid]) { + shapeseq.splice(i, 1); + delete this.shapes[sid]; + first = i; + } + } + for (i = shapes.length; i--;) { + shapeseq.splice(first, 0, shapes[i].id); + this.shapes[shapes[i].id] = shapes[i]; + } + + }, + + insertAfterShape: function (shapeid, shape) { + var shapeseq = this.shapeseq, + i; + for (i = shapeseq.length; i--;) { + if (shapeseq[i] === shapeid) { + shapeseq.splice(i + 1, 0, shape.id); + this.shapes[shape.id] = shape; + return; + } + } + }, + + removeShapeId: function (shapeid) { + var shapeseq = this.shapeseq, + i; + for (i = shapeseq.length; i--;) { + if (shapeseq[i] === shapeid) { + shapeseq.splice(i, 1); + break; + } + } + delete this.shapes[shapeid]; + }, + + getShapeAt: function (el, x, y) { + this.targetX = x; + this.targetY = y; + this.render(); + return this.currentTargetShapeId; + }, + + render: function () { + var shapeseq = this.shapeseq, + shapes = this.shapes, + shapeCount = shapeseq.length, + context = this._getContext(), + shapeid, shape, i; + context.clearRect(0, 0, this.pixelWidth, this.pixelHeight); + for (i = 0; i < shapeCount; i++) { + shapeid = shapeseq[i]; + shape = shapes[shapeid]; + this['_draw' + shape.type].apply(this, shape.args); + } + if (!this.interact) { + // not interactive so no need to keep the shapes array + this.shapes = {}; + this.shapeseq = []; + } + } + + }); + + VCanvas_vml = createClass(VCanvas_base, { + init: function (width, height, target) { + var groupel; + VCanvas_vml._super.init.call(this, width, height, target); + if (target[0]) { + target = target[0]; + } + $.data(target, '_jqs_vcanvas', this); + this.canvas = document.createElement('span'); + $(this.canvas).css({ display: 'inline-block', position: 'relative', overflow: 'hidden', width: width, height: height, margin: '0px', padding: '0px', verticalAlign: 'top'}); + this._insert(this.canvas, target); + this._calculatePixelDims(width, height, this.canvas); + this.canvas.width = this.pixelWidth; + this.canvas.height = this.pixelHeight; + groupel = ''; + this.canvas.insertAdjacentHTML('beforeEnd', groupel); + this.group = $(this.canvas).children()[0]; + this.rendered = false; + this.prerender = ''; + }, + + _drawShape: function (shapeid, path, lineColor, fillColor, lineWidth) { + var vpath = [], + initial, stroke, fill, closed, vel, plen, i; + for (i = 0, plen = path.length; i < plen; i++) { + vpath[i] = '' + (path[i][0]) + ',' + (path[i][1]); + } + initial = vpath.splice(0, 1); + lineWidth = lineWidth === undefined ? 1 : lineWidth; + stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="' + lineWidth + 'px" strokeColor="' + lineColor + '" '; + fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; + closed = vpath[0] === vpath[vpath.length - 1] ? 'x ' : ''; + vel = '' + + ' '; + return vel; + }, + + _drawCircle: function (shapeid, x, y, radius, lineColor, fillColor, lineWidth) { + var stroke, fill, vel; + x -= radius; + y -= radius; + stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="' + lineWidth + 'px" strokeColor="' + lineColor + '" '; + fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; + vel = ''; + return vel; + + }, + + _drawPieSlice: function (shapeid, x, y, radius, startAngle, endAngle, lineColor, fillColor) { + var vpath, startx, starty, endx, endy, stroke, fill, vel; + if (startAngle === endAngle) { + return ''; // VML seems to have problem when start angle equals end angle. + } + if ((endAngle - startAngle) === (2 * Math.PI)) { + startAngle = 0.0; // VML seems to have a problem when drawing a full circle that doesn't start 0 + endAngle = (2 * Math.PI); + } + + startx = x + Math.round(Math.cos(startAngle) * radius); + starty = y + Math.round(Math.sin(startAngle) * radius); + endx = x + Math.round(Math.cos(endAngle) * radius); + endy = y + Math.round(Math.sin(endAngle) * radius); + + if (startx === endx && starty === endy) { + if ((endAngle - startAngle) < Math.PI) { + // Prevent very small slices from being mistaken as a whole pie + return ''; + } + // essentially going to be the entire circle, so ignore startAngle + startx = endx = x + radius; + starty = endy = y; + } + + if (startx === endx && starty === endy && (endAngle - startAngle) < Math.PI) { + return ''; + } + + vpath = [x - radius, y - radius, x + radius, y + radius, startx, starty, endx, endy]; + stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="1px" strokeColor="' + lineColor + '" '; + fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; + vel = '' + + ' '; + return vel; + }, + + _drawRect: function (shapeid, x, y, width, height, lineColor, fillColor) { + return this._drawShape(shapeid, [[x, y], [x, y + height], [x + width, y + height], [x + width, y], [x, y]], lineColor, fillColor); + }, + + reset: function () { + this.group.innerHTML = ''; + }, + + appendShape: function (shape) { + var vel = this['_draw' + shape.type].apply(this, shape.args); + if (this.rendered) { + this.group.insertAdjacentHTML('beforeEnd', vel); + } else { + this.prerender += vel; + } + this.lastShapeId = shape.id; + return shape.id; + }, + + replaceWithShape: function (shapeid, shape) { + var existing = $('#jqsshape' + shapeid), + vel = this['_draw' + shape.type].apply(this, shape.args); + existing[0].outerHTML = vel; + }, + + replaceWithShapes: function (shapeids, shapes) { + // replace the first shapeid with all the new shapes then toast the remaining old shapes + var existing = $('#jqsshape' + shapeids[0]), + replace = '', + slen = shapes.length, + i; + for (i = 0; i < slen; i++) { + replace += this['_draw' + shapes[i].type].apply(this, shapes[i].args); + } + existing[0].outerHTML = replace; + for (i = 1; i < shapeids.length; i++) { + $('#jqsshape' + shapeids[i]).remove(); + } + }, + + insertAfterShape: function (shapeid, shape) { + var existing = $('#jqsshape' + shapeid), + vel = this['_draw' + shape.type].apply(this, shape.args); + existing[0].insertAdjacentHTML('afterEnd', vel); + }, + + removeShapeId: function (shapeid) { + var existing = $('#jqsshape' + shapeid); + this.group.removeChild(existing[0]); + }, + + getShapeAt: function (el, x, y) { + var shapeid = el.id.substr(8); + return shapeid; + }, + + render: function () { + if (!this.rendered) { + // batch the intial render into a single repaint + this.group.innerHTML = this.prerender; + this.rendered = true; + } + } + }); + +}))}(document, Math)); diff --git a/public/assets/js/plugins/sparkline/jquery.sparkline.min.js b/public/assets/js/plugins/sparkline/jquery.sparkline.min.js new file mode 100755 index 00000000..fa616bf9 --- /dev/null +++ b/public/assets/js/plugins/sparkline/jquery.sparkline.min.js @@ -0,0 +1,5 @@ +/* jquery.sparkline 2.1.2 - http://omnipotent.net/jquery.sparkline/ +** Licensed under the New BSD License - see above site for details */ + +(function(a,b,c){(function(a){typeof define=="function"&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.sparkline&&a(jQuery)})(function(d){"use strict";var e={},f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L=0;f=function(){return{common:{type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:!1,tagValuesAttribute:"values",tagOptionsPrefix:"spark",enableTagOptions:!1,enableHighlight:!0,highlightLighten:1.4,tooltipSkipNull:!0,tooltipPrefix:"",tooltipSuffix:"",disableHiddenCheck:!1,numberFormatter:!1,numberDigitGroupCount:3,numberDigitGroupSep:",",numberDecimalMark:".",disableTooltips:!1,disableInteraction:!1},line:{spotColor:"#f80",highlightSpotColor:"#5f5",highlightLineColor:"#f22",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:c,normalRangeMax:c,normalRangeColor:"#ccc",drawNormalOnTop:!1,chartRangeMin:c,chartRangeMax:c,chartRangeMinX:c,chartRangeMaxX:c,tooltipFormat:new h(' {{prefix}}{{y}}{{suffix}}')},bar:{barColor:"#3366cc",negBarColor:"#f44",stackedBarColor:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],zeroColor:c,nullColor:c,zeroAxis:!0,barWidth:4,barSpacing:1,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,colorMap:c,tooltipFormat:new h(' {{prefix}}{{value}}{{suffix}}')},tristate:{barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{},tooltipFormat:new h(' {{value:map}}'),tooltipValueLookups:{map:{"-1":"Loss",0:"Draw",1:"Win"}}},discrete:{lineHeight:"auto",thresholdColor:c,thresholdValue:0,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,tooltipFormat:new h("{{prefix}}{{value}}{{suffix}}")},bullet:{targetColor:"#f33",targetWidth:3,performanceColor:"#33f",rangeColors:["#d3dafe","#a8b6ff","#7f94ff"],base:c,tooltipFormat:new h("{{fieldkey:fields}} - {{value}}"),tooltipValueLookups:{fields:{r:"Range",p:"Performance",t:"Target"}}},pie:{offset:0,sliceColors:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],borderWidth:0,borderColor:"#000",tooltipFormat:new h(' {{value}} ({{percent.1}}%)')},box:{raw:!1,boxLineColor:"#000",boxFillColor:"#cdf",whiskerColor:"#000",outlierLineColor:"#333",outlierFillColor:"#fff",medianColor:"#f00",showOutliers:!0,outlierIQR:1.5,spotRadius:1.5,target:c,targetColor:"#4a2",chartRangeMax:c,chartRangeMin:c,tooltipFormat:new h("{{field:fields}}: {{value}}"),tooltipFormatFieldlistKey:"field",tooltipValueLookups:{fields:{lq:"Lower Quartile",med:"Median",uq:"Upper Quartile",lo:"Left Outlier",ro:"Right Outlier",lw:"Left Whisker",rw:"Right Whisker"}}}}},E='.jqstooltip { position: absolute;left: 0px;top: 0px;visibility: hidden;background: rgb(0, 0, 0) transparent;background-color: rgba(0,0,0,0.6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";color: white;font: 10px arial, san serif;text-align: left;white-space: nowrap;padding: 5px;border: 1px solid white;z-index: 10000;}.jqsfield { color: white;font: 10px arial, san serif;text-align: left;}',g=function(){var a,b;return a=function(){this.init.apply(this,arguments)},arguments.length>1?(arguments[0]?(a.prototype=d.extend(new arguments[0],arguments[arguments.length-1]),a._super=arguments[0].prototype):a.prototype=arguments[arguments.length-1],arguments.length>2&&(b=Array.prototype.slice.call(arguments,1,-1),b.unshift(a.prototype),d.extend.apply(d,b))):a.prototype=arguments[0],a.prototype.cls=a,a},d.SPFormatClass=h=g({fre:/\{\{([\w.]+?)(:(.+?))?\}\}/g,precre:/(\w+)\.(\d+)/,init:function(a,b){this.format=a,this.fclass=b},render:function(a,b,d){var e=this,f=a,g,h,i,j,k;return this.format.replace(this.fre,function(){var a;return h=arguments[1],i=arguments[3],g=e.precre.exec(h),g?(k=g[2],h=g[1]):k=!1,j=f[h],j===c?"":i&&b&&b[i]?(a=b[i],a.get?b[i].get(j)||j:b[i][j]||j):(n(j)&&(d.get("numberFormatter")?j=d.get("numberFormatter")(j):j=s(j,k,d.get("numberDigitGroupCount"),d.get("numberDigitGroupSep"),d.get("numberDecimalMark"))),j)})}}),d.spformat=function(a,b){return new h(a,b)},i=function(a,b,c){return ac?c:a},j=function(a,c){var d;return c===2?(d=b.floor(a.length/2),a.length%2?a[d]:(a[d-1]+a[d])/2):a.length%2?(d=(a.length*c+c)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1]):(d=(a.length*c+2)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1])},k=function(a){var b;switch(a){case"undefined":a=c;break;case"null":a=null;break;case"true":a=!0;break;case"false":a=!1;break;default:b=parseFloat(a),a==b&&(a=b)}return a},l=function(a){var b,c=[];for(b=a.length;b--;)c[b]=k(a[b]);return c},m=function(a,b){var c,d,e=[];for(c=0,d=a.length;c0;h-=c)a.splice(h,0,e);return a.join("")},o=function(a,b,c){var d;for(d=b.length;d--;){if(c&&b[d]===null)continue;if(b[d]!==a)return!1}return!0},p=function(a){var b=0,c;for(c=a.length;c--;)b+=typeof a[c]=="number"?a[c]:0;return b},r=function(a){return d.isArray(a)?a:[a]},q=function(b){var c;a.createStyleSheet?a.createStyleSheet().cssText=b:(c=a.createElement("style"),c.type="text/css",a.getElementsByTagName("head")[0].appendChild(c),c[typeof a.body.style.WebkitAppearance=="string"?"innerText":"innerHTML"]=b)},d.fn.simpledraw=function(b,e,f,g){var h,i;if(f&&(h=this.data("_jqs_vcanvas")))return h;if(d.fn.sparkline.canvas===!1)return!1;if(d.fn.sparkline.canvas===c){var j=a.createElement("canvas");if(!j.getContext||!j.getContext("2d")){if(!a.namespaces||!!a.namespaces.v)return d.fn.sparkline.canvas=!1,!1;a.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML"),d.fn.sparkline.canvas=function(a,b,c,d){return new J(a,b,c)}}else d.fn.sparkline.canvas=function(a,b,c,d){return new I(a,b,c,d)}}return b===c&&(b=d(this).innerWidth()),e===c&&(e=d(this).innerHeight()),h=d.fn.sparkline.canvas(b,e,this,g),i=d(this).data("_jqs_mhandler"),i&&i.registerCanvas(h),h},d.fn.cleardraw=function(){var a=this.data("_jqs_vcanvas");a&&a.reset()},d.RangeMapClass=t=g({init:function(a){var b,c,d=[];for(b in a)a.hasOwnProperty(b)&&typeof b=="string"&&b.indexOf(":")>-1&&(c=b.split(":"),c[0]=c[0].length===0?-Infinity:parseFloat(c[0]),c[1]=c[1].length===0?Infinity:parseFloat(c[1]),c[2]=a[b],d.push(c));this.map=a,this.rangelist=d||!1},get:function(a){var b=this.rangelist,d,e,f;if((f=this.map[a])!==c)return f;if(b)for(d=b.length;d--;){e=b[d];if(e[0]<=a&&e[1]>=a)return e[2]}return c}}),d.range_map=function(a){return new t(a)},u=g({init:function(a,b){var c=d(a);this.$el=c,this.options=b,this.currentPageX=0,this.currentPageY=0,this.el=a,this.splist=[],this.tooltip=null,this.over=!1,this.displayTooltips=!b.get("disableTooltips"),this.highlightEnabled=!b.get("disableHighlight")},registerSparkline:function(a){this.splist.push(a),this.over&&this.updateDisplay()},registerCanvas:function(a){var b=d(a.canvas);this.canvas=a,this.$canvas=b,b.mouseenter(d.proxy(this.mouseenter,this)),b.mouseleave(d.proxy(this.mouseleave,this)),b.click(d.proxy(this.mouseclick,this))},reset:function(a){this.splist=[],this.tooltip&&a&&(this.tooltip.remove(),this.tooltip=c)},mouseclick:function(a){var b=d.Event("sparklineClick");b.originalEvent=a,b.sparklines=this.splist,this.$el.trigger(b)},mouseenter:function(b){d(a.body).unbind("mousemove.jqs"),d(a.body).bind("mousemove.jqs",d.proxy(this.mousemove,this)),this.over=!0,this.currentPageX=b.pageX,this.currentPageY=b.pageY,this.currentEl=b.target,!this.tooltip&&this.displayTooltips&&(this.tooltip=new v(this.options),this.tooltip.updatePosition(b.pageX,b.pageY)),this.updateDisplay()},mouseleave:function(){d(a.body).unbind("mousemove.jqs");var b=this.splist,c=b.length,e=!1,f,g;this.over=!1,this.currentEl=null,this.tooltip&&(this.tooltip.remove(),this.tooltip=null);for(g=0;g