diff --git a/archilance/views.py b/archilance/views.py
index 3b1fbb4..28aedad 100644
--- a/archilance/views.py
+++ b/archilance/views.py
@@ -1,4 +1,4 @@
from django.views.generic import TemplateView
class HomeTemplateView(TemplateView):
- template_name = "archilance/home.html"
\ No newline at end of file
+ template_name = 'home.html'
diff --git a/assets/lib/bootstrap-select/css/bootstrap-select.css b/assets/lib/bootstrap-select/css/bootstrap-select.css
new file mode 100644
index 0000000..e6c996c
--- /dev/null
+++ b/assets/lib/bootstrap-select/css/bootstrap-select.css
@@ -0,0 +1,288 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+select.bs-select-hidden,
+select.selectpicker {
+ display: none !important;
+}
+.bootstrap-select {
+ width: 220px \0;
+ /*IE9 and below*/
+}
+.bootstrap-select > .dropdown-toggle {
+ width: 100%;
+ padding-right: 25px;
+ z-index: 1;
+}
+.bootstrap-select > .dropdown-toggle.bs-placeholder,
+.bootstrap-select > .dropdown-toggle.bs-placeholder:hover,
+.bootstrap-select > .dropdown-toggle.bs-placeholder:focus,
+.bootstrap-select > .dropdown-toggle.bs-placeholder:active {
+ color: #999;
+}
+.bootstrap-select > select {
+ position: absolute !important;
+ bottom: 0;
+ left: 50%;
+ display: block !important;
+ width: 0.5px !important;
+ height: 100% !important;
+ padding: 0 !important;
+ opacity: 0 !important;
+ border: none;
+}
+.bootstrap-select > select.mobile-device {
+ top: 0;
+ left: 0;
+ display: block !important;
+ width: 100% !important;
+ z-index: 2;
+}
+.has-error .bootstrap-select .dropdown-toggle,
+.error .bootstrap-select .dropdown-toggle {
+ border-color: #b94a48;
+}
+.bootstrap-select.fit-width {
+ width: auto !important;
+}
+.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) {
+ width: 220px;
+}
+.bootstrap-select .dropdown-toggle:focus {
+ outline: thin dotted #333333 !important;
+ outline: 5px auto -webkit-focus-ring-color !important;
+ outline-offset: -2px;
+}
+.bootstrap-select.form-control {
+ margin-bottom: 0;
+ padding: 0;
+ border: none;
+}
+.bootstrap-select.form-control:not([class*="col-"]) {
+ width: 100%;
+}
+.bootstrap-select.form-control.input-group-btn {
+ z-index: auto;
+}
+.bootstrap-select.btn-group:not(.input-group-btn),
+.bootstrap-select.btn-group[class*="col-"] {
+ float: none;
+ display: inline-block;
+ margin-left: 0;
+}
+.bootstrap-select.btn-group.dropdown-menu-right,
+.bootstrap-select.btn-group[class*="col-"].dropdown-menu-right,
+.row .bootstrap-select.btn-group[class*="col-"].dropdown-menu-right {
+ float: right;
+}
+.form-inline .bootstrap-select.btn-group,
+.form-horizontal .bootstrap-select.btn-group,
+.form-group .bootstrap-select.btn-group {
+ margin-bottom: 0;
+}
+.form-group-lg .bootstrap-select.btn-group.form-control,
+.form-group-sm .bootstrap-select.btn-group.form-control {
+ padding: 0;
+}
+.form-inline .bootstrap-select.btn-group .form-control {
+ width: 100%;
+}
+.bootstrap-select.btn-group.disabled,
+.bootstrap-select.btn-group > .disabled {
+ cursor: not-allowed;
+}
+.bootstrap-select.btn-group.disabled:focus,
+.bootstrap-select.btn-group > .disabled:focus {
+ outline: none !important;
+}
+.bootstrap-select.btn-group.bs-container {
+ position: absolute;
+}
+.bootstrap-select.btn-group.bs-container .dropdown-menu {
+ z-index: 1060;
+}
+.bootstrap-select.btn-group .dropdown-toggle .filter-option {
+ display: inline-block;
+ overflow: hidden;
+ width: 100%;
+ text-align: left;
+}
+.bootstrap-select.btn-group .dropdown-toggle .caret {
+ position: absolute;
+ top: 50%;
+ right: 12px;
+ margin-top: -2px;
+ vertical-align: middle;
+}
+.bootstrap-select.btn-group[class*="col-"] .dropdown-toggle {
+ width: 100%;
+}
+.bootstrap-select.btn-group .dropdown-menu {
+ min-width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.bootstrap-select.btn-group .dropdown-menu.inner {
+ position: static;
+ float: none;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ border-radius: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.bootstrap-select.btn-group .dropdown-menu li {
+ position: relative;
+}
+.bootstrap-select.btn-group .dropdown-menu li.active small {
+ color: #fff;
+}
+.bootstrap-select.btn-group .dropdown-menu li.disabled a {
+ cursor: not-allowed;
+}
+.bootstrap-select.btn-group .dropdown-menu li a {
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.bootstrap-select.btn-group .dropdown-menu li a.opt {
+ position: relative;
+ padding-left: 2.25em;
+}
+.bootstrap-select.btn-group .dropdown-menu li a span.check-mark {
+ display: none;
+}
+.bootstrap-select.btn-group .dropdown-menu li a span.text {
+ display: inline-block;
+}
+.bootstrap-select.btn-group .dropdown-menu li small {
+ padding-left: 0.5em;
+}
+.bootstrap-select.btn-group .dropdown-menu .notify {
+ position: absolute;
+ bottom: 5px;
+ width: 96%;
+ margin: 0 2%;
+ min-height: 26px;
+ padding: 3px 5px;
+ background: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ -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);
+ pointer-events: none;
+ opacity: 0.9;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.bootstrap-select.btn-group .no-results {
+ padding: 3px;
+ background: #f5f5f5;
+ margin: 0 5px;
+ white-space: nowrap;
+}
+.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option {
+ position: static;
+}
+.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret {
+ position: static;
+ top: auto;
+ margin-top: -1px;
+}
+.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark {
+ position: absolute;
+ display: inline-block;
+ right: 15px;
+ margin-top: 5px;
+}
+.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text {
+ margin-right: 34px;
+}
+.bootstrap-select.show-menu-arrow.open > .dropdown-toggle {
+ z-index: 1061;
+}
+.bootstrap-select.show-menu-arrow .dropdown-toggle:before {
+ content: '';
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid rgba(204, 204, 204, 0.2);
+ position: absolute;
+ bottom: -4px;
+ left: 9px;
+ display: none;
+}
+.bootstrap-select.show-menu-arrow .dropdown-toggle:after {
+ content: '';
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid white;
+ position: absolute;
+ bottom: -4px;
+ left: 10px;
+ display: none;
+}
+.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before {
+ bottom: auto;
+ top: -3px;
+ border-top: 7px solid rgba(204, 204, 204, 0.2);
+ border-bottom: 0;
+}
+.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after {
+ bottom: auto;
+ top: -3px;
+ border-top: 6px solid white;
+ border-bottom: 0;
+}
+.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before {
+ right: 12px;
+ left: auto;
+}
+.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after {
+ right: 13px;
+ left: auto;
+}
+.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:before,
+.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:after {
+ display: block;
+}
+.bs-searchbox,
+.bs-actionsbox,
+.bs-donebutton {
+ padding: 4px 8px;
+}
+.bs-actionsbox {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.bs-actionsbox .btn-group button {
+ width: 50%;
+}
+.bs-donebutton {
+ float: left;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.bs-donebutton .btn-group button {
+ width: 100%;
+}
+.bs-searchbox + .bs-actionsbox {
+ padding: 0 8px 4px;
+}
+.bs-searchbox .form-control {
+ margin-bottom: 0;
+ width: 100%;
+ float: none;
+}
+/*# sourceMappingURL=bootstrap-select.css.map */
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/css/bootstrap-select.css.map b/assets/lib/bootstrap-select/css/bootstrap-select.css.map
new file mode 100644
index 0000000..ceb5d33
--- /dev/null
+++ b/assets/lib/bootstrap-select/css/bootstrap-select.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["less/bootstrap-select.less","bootstrap-select.css"],"names":[],"mappings":"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","file":"bootstrap-select.css","sourcesContent":["@import \"variables\";\n\n// Mixins\n.cursor-disabled() {\n cursor: not-allowed;\n}\n\n// Rules\nselect.bs-select-hidden,\nselect.selectpicker {\n display: none !important;\n}\n\n.bootstrap-select {\n width: 220px \\0; /*IE9 and below*/\n\n // The selectpicker button\n > .dropdown-toggle {\n width: 100%;\n padding-right: 25px;\n z-index: 1;\n\n &.bs-placeholder,\n &.bs-placeholder:hover,\n &.bs-placeholder:focus,\n &.bs-placeholder:active { color: @input-color-placeholder; }\n }\n\n > select {\n position: absolute !important;\n bottom: 0;\n left: 50%;\n display: block !important;\n width: 0.5px !important;\n height: 100% !important;\n padding: 0 !important;\n opacity: 0 !important;\n border: none;\n\n &.mobile-device {\n top: 0;\n left: 0;\n display: block !important;\n width: 100% !important;\n z-index: 2;\n }\n }\n\n // Error display\n .has-error & .dropdown-toggle,\n .error & .dropdown-toggle {\n border-color: @color-red-error;\n }\n\n &.fit-width {\n width: auto !important;\n }\n\n &:not([class*=\"col-\"]):not([class*=\"form-control\"]):not(.input-group-btn) {\n width: @width-default;\n }\n\n .dropdown-toggle:focus {\n outline: thin dotted #333333 !important;\n outline: 5px auto -webkit-focus-ring-color !important;\n outline-offset: -2px;\n }\n}\n\n.bootstrap-select.form-control {\n margin-bottom: 0;\n padding: 0;\n border: none;\n\n &:not([class*=\"col-\"]) {\n width: 100%;\n }\n\n &.input-group-btn {\n z-index: auto;\n }\n}\n\n// The selectpicker components\n.bootstrap-select.btn-group {\n &:not(.input-group-btn),\n &[class*=\"col-\"] {\n float: none;\n display: inline-block;\n margin-left: 0;\n }\n\n // Forces the pull to the right, if necessary\n &,\n &[class*=\"col-\"],\n .row &[class*=\"col-\"] {\n &.dropdown-menu-right {\n float: right;\n }\n }\n\n .form-inline &,\n .form-horizontal &,\n .form-group & {\n margin-bottom: 0;\n }\n\n .form-group-lg &.form-control,\n .form-group-sm &.form-control {\n padding: 0;\n }\n\n // Set the width of the live search (and any other form control within an inline form)\n // see https://github.com/silviomoreto/bootstrap-select/issues/685\n .form-inline & .form-control {\n width: 100%;\n }\n\n &.disabled,\n > .disabled {\n .cursor-disabled();\n\n &:focus {\n outline: none !important;\n }\n }\n\n &.bs-container {\n position: absolute;\n \n .dropdown-menu {\n z-index: @zindex-select-dropdown;\n }\n }\n\n // The selectpicker button\n .dropdown-toggle {\n .filter-option {\n display: inline-block;\n overflow: hidden;\n width: 100%;\n text-align: left;\n }\n\n .caret {\n position: absolute;\n top: 50%;\n right: 12px;\n margin-top: -2px;\n vertical-align: middle;\n }\n }\n\n &[class*=\"col-\"] .dropdown-toggle {\n width: 100%;\n }\n\n // The selectpicker dropdown\n .dropdown-menu {\n min-width: 100%;\n box-sizing: border-box;\n\n &.inner {\n position: static;\n float: none;\n border: 0;\n padding: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n li {\n position: relative;\n\n &.active small {\n color: #fff;\n }\n\n &.disabled a {\n .cursor-disabled();\n }\n\n a {\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n &.opt {\n position: relative;\n padding-left: 2.25em;\n }\n\n span.check-mark {\n display: none;\n }\n\n span.text {\n display: inline-block;\n }\n }\n\n small {\n padding-left: 0.5em;\n }\n }\n\n .notify {\n position: absolute;\n bottom: 5px;\n width: 96%;\n margin: 0 2%;\n min-height: 26px;\n padding: 3px 5px;\n background: rgb(245, 245, 245);\n border: 1px solid rgb(227, 227, 227);\n box-shadow: inset 0 1px 1px fade(rgb(0, 0, 0), 5%);\n pointer-events: none;\n opacity: 0.9;\n box-sizing: border-box;\n }\n }\n\n .no-results {\n padding: 3px;\n background: #f5f5f5;\n margin: 0 5px;\n white-space: nowrap;\n }\n\n &.fit-width .dropdown-toggle {\n .filter-option {\n position: static;\n }\n\n .caret {\n position: static;\n top: auto;\n margin-top: -1px;\n }\n }\n\n &.show-tick .dropdown-menu li {\n &.selected a span.check-mark {\n position: absolute;\n display: inline-block;\n right: 15px;\n margin-top: 5px;\n }\n\n a span.text {\n margin-right: 34px;\n }\n }\n}\n\n.bootstrap-select.show-menu-arrow {\n &.open > .dropdown-toggle {\n z-index: (@zindex-select-dropdown + 1);\n }\n\n .dropdown-toggle {\n &:before {\n content: '';\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-bottom: 7px solid @color-grey-arrow;\n position: absolute;\n bottom: -4px;\n left: 9px;\n display: none;\n }\n\n &:after {\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid white;\n position: absolute;\n bottom: -4px;\n left: 10px;\n display: none;\n }\n }\n\n &.dropup .dropdown-toggle {\n &:before {\n bottom: auto;\n top: -3px;\n border-top: 7px solid @color-grey-arrow;\n border-bottom: 0;\n }\n\n &:after {\n bottom: auto;\n top: -3px;\n border-top: 6px solid white;\n border-bottom: 0;\n }\n }\n\n &.pull-right .dropdown-toggle {\n &:before {\n right: 12px;\n left: auto;\n }\n\n &:after {\n right: 13px;\n left: auto;\n }\n }\n\n &.open > .dropdown-toggle {\n &:before,\n &:after {\n display: block;\n }\n }\n}\n\n.bs-searchbox,\n.bs-actionsbox,\n.bs-donebutton {\n padding: 4px 8px;\n}\n\n.bs-actionsbox {\n width: 100%;\n box-sizing: border-box;\n\n & .btn-group button {\n width: 50%;\n }\n}\n\n.bs-donebutton {\n float: left;\n width: 100%;\n box-sizing: border-box;\n\n & .btn-group button {\n width: 100%;\n }\n}\n\n.bs-searchbox {\n & + .bs-actionsbox {\n padding: 0 8px 4px;\n }\n\n & .form-control {\n margin-bottom: 0;\n width: 100%;\n float: none;\n }\n}\n","select.bs-select-hidden,\nselect.selectpicker {\n display: none !important;\n}\n.bootstrap-select {\n width: 220px \\0;\n /*IE9 and below*/\n}\n.bootstrap-select > .dropdown-toggle {\n width: 100%;\n padding-right: 25px;\n z-index: 1;\n}\n.bootstrap-select > .dropdown-toggle.bs-placeholder,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:active {\n color: #999;\n}\n.bootstrap-select > select {\n position: absolute !important;\n bottom: 0;\n left: 50%;\n display: block !important;\n width: 0.5px !important;\n height: 100% !important;\n padding: 0 !important;\n opacity: 0 !important;\n border: none;\n}\n.bootstrap-select > select.mobile-device {\n top: 0;\n left: 0;\n display: block !important;\n width: 100% !important;\n z-index: 2;\n}\n.has-error .bootstrap-select .dropdown-toggle,\n.error .bootstrap-select .dropdown-toggle {\n border-color: #b94a48;\n}\n.bootstrap-select.fit-width {\n width: auto !important;\n}\n.bootstrap-select:not([class*=\"col-\"]):not([class*=\"form-control\"]):not(.input-group-btn) {\n width: 220px;\n}\n.bootstrap-select .dropdown-toggle:focus {\n outline: thin dotted #333333 !important;\n outline: 5px auto -webkit-focus-ring-color !important;\n outline-offset: -2px;\n}\n.bootstrap-select.form-control {\n margin-bottom: 0;\n padding: 0;\n border: none;\n}\n.bootstrap-select.form-control:not([class*=\"col-\"]) {\n width: 100%;\n}\n.bootstrap-select.form-control.input-group-btn {\n z-index: auto;\n}\n.bootstrap-select.btn-group:not(.input-group-btn),\n.bootstrap-select.btn-group[class*=\"col-\"] {\n float: none;\n display: inline-block;\n margin-left: 0;\n}\n.bootstrap-select.btn-group.dropdown-menu-right,\n.bootstrap-select.btn-group[class*=\"col-\"].dropdown-menu-right,\n.row .bootstrap-select.btn-group[class*=\"col-\"].dropdown-menu-right {\n float: right;\n}\n.form-inline .bootstrap-select.btn-group,\n.form-horizontal .bootstrap-select.btn-group,\n.form-group .bootstrap-select.btn-group {\n margin-bottom: 0;\n}\n.form-group-lg .bootstrap-select.btn-group.form-control,\n.form-group-sm .bootstrap-select.btn-group.form-control {\n padding: 0;\n}\n.form-inline .bootstrap-select.btn-group .form-control {\n width: 100%;\n}\n.bootstrap-select.btn-group.disabled,\n.bootstrap-select.btn-group > .disabled {\n cursor: not-allowed;\n}\n.bootstrap-select.btn-group.disabled:focus,\n.bootstrap-select.btn-group > .disabled:focus {\n outline: none !important;\n}\n.bootstrap-select.btn-group.bs-container {\n position: absolute;\n}\n.bootstrap-select.btn-group.bs-container .dropdown-menu {\n z-index: 1060;\n}\n.bootstrap-select.btn-group .dropdown-toggle .filter-option {\n display: inline-block;\n overflow: hidden;\n width: 100%;\n text-align: left;\n}\n.bootstrap-select.btn-group .dropdown-toggle .caret {\n position: absolute;\n top: 50%;\n right: 12px;\n margin-top: -2px;\n vertical-align: middle;\n}\n.bootstrap-select.btn-group[class*=\"col-\"] .dropdown-toggle {\n width: 100%;\n}\n.bootstrap-select.btn-group .dropdown-menu {\n min-width: 100%;\n box-sizing: border-box;\n}\n.bootstrap-select.btn-group .dropdown-menu.inner {\n position: static;\n float: none;\n border: 0;\n padding: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li {\n position: relative;\n}\n.bootstrap-select.btn-group .dropdown-menu li.active small {\n color: #fff;\n}\n.bootstrap-select.btn-group .dropdown-menu li.disabled a {\n cursor: not-allowed;\n}\n.bootstrap-select.btn-group .dropdown-menu li a {\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li a.opt {\n position: relative;\n padding-left: 2.25em;\n}\n.bootstrap-select.btn-group .dropdown-menu li a span.check-mark {\n display: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li a span.text {\n display: inline-block;\n}\n.bootstrap-select.btn-group .dropdown-menu li small {\n padding-left: 0.5em;\n}\n.bootstrap-select.btn-group .dropdown-menu .notify {\n position: absolute;\n bottom: 5px;\n width: 96%;\n margin: 0 2%;\n min-height: 26px;\n padding: 3px 5px;\n background: #f5f5f5;\n border: 1px solid #e3e3e3;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n pointer-events: none;\n opacity: 0.9;\n box-sizing: border-box;\n}\n.bootstrap-select.btn-group .no-results {\n padding: 3px;\n background: #f5f5f5;\n margin: 0 5px;\n white-space: nowrap;\n}\n.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option {\n position: static;\n}\n.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret {\n position: static;\n top: auto;\n margin-top: -1px;\n}\n.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark {\n position: absolute;\n display: inline-block;\n right: 15px;\n margin-top: 5px;\n}\n.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text {\n margin-right: 34px;\n}\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle {\n z-index: 1061;\n}\n.bootstrap-select.show-menu-arrow .dropdown-toggle:before {\n content: '';\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-bottom: 7px solid rgba(204, 204, 204, 0.2);\n position: absolute;\n bottom: -4px;\n left: 9px;\n display: none;\n}\n.bootstrap-select.show-menu-arrow .dropdown-toggle:after {\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid white;\n position: absolute;\n bottom: -4px;\n left: 10px;\n display: none;\n}\n.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before {\n bottom: auto;\n top: -3px;\n border-top: 7px solid rgba(204, 204, 204, 0.2);\n border-bottom: 0;\n}\n.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after {\n bottom: auto;\n top: -3px;\n border-top: 6px solid white;\n border-bottom: 0;\n}\n.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before {\n right: 12px;\n left: auto;\n}\n.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after {\n right: 13px;\n left: auto;\n}\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:before,\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:after {\n display: block;\n}\n.bs-searchbox,\n.bs-actionsbox,\n.bs-donebutton {\n padding: 4px 8px;\n}\n.bs-actionsbox {\n width: 100%;\n box-sizing: border-box;\n}\n.bs-actionsbox .btn-group button {\n width: 50%;\n}\n.bs-donebutton {\n float: left;\n width: 100%;\n box-sizing: border-box;\n}\n.bs-donebutton .btn-group button {\n width: 100%;\n}\n.bs-searchbox + .bs-actionsbox {\n padding: 0 8px 4px;\n}\n.bs-searchbox .form-control {\n margin-bottom: 0;\n width: 100%;\n float: none;\n}\n/*# sourceMappingURL=bootstrap-select.css.map */"]}
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/css/bootstrap-select.min.css b/assets/lib/bootstrap-select/css/bootstrap-select.min.css
new file mode 100644
index 0000000..a331532
--- /dev/null
+++ b/assets/lib/bootstrap-select/css/bootstrap-select.min.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{width:100%;padding-right:25px;z-index:1}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2}.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle{border-color:#b94a48}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.btn-group:not(.input-group-btn),.bootstrap-select.btn-group[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.btn-group.dropdown-menu-right,.bootstrap-select.btn-group[class*=col-].dropdown-menu-right,.row .bootstrap-select.btn-group[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-inline .bootstrap-select.btn-group{margin-bottom:0}.form-group-lg .bootstrap-select.btn-group.form-control,.form-group-sm .bootstrap-select.btn-group.form-control{padding:0}.form-inline .bootstrap-select.btn-group .form-control{width:100%}.bootstrap-select.btn-group.disabled,.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.bootstrap-select.btn-group.disabled:focus,.bootstrap-select.btn-group>.disabled:focus{outline:0!important}.bootstrap-select.btn-group.bs-container{position:absolute}.bootstrap-select.btn-group.bs-container .dropdown-menu{z-index:1060}.bootstrap-select.btn-group .dropdown-toggle .filter-option{display:inline-block;overflow:hidden;width:100%;text-align:left}.bootstrap-select.btn-group .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select.btn-group[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select.btn-group .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select.btn-group .dropdown-menu li{position:relative}.bootstrap-select.btn-group .dropdown-menu li.active small{color:#fff}.bootstrap-select.btn-group .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select.btn-group .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select.btn-group .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select.btn-group .dropdown-menu li a span.check-mark{display:none}.bootstrap-select.btn-group .dropdown-menu li a span.text{display:inline-block}.bootstrap-select.btn-group .dropdown-menu li small{padding-left:.5em}.bootstrap-select.btn-group .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option{position:static}.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:5px}.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/bootstrap-select.js b/assets/lib/bootstrap-select/js/bootstrap-select.js
new file mode 100644
index 0000000..253a54b
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/bootstrap-select.js
@@ -0,0 +1,1843 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ 'use strict';
+
+ //
+ if (!String.prototype.includes) {
+ (function () {
+ 'use strict'; // needed to support `apply`/`call` with `undefined`/`null`
+ var toString = {}.toString;
+ var defineProperty = (function () {
+ // IE 8 only supports `Object.defineProperty` on DOM elements
+ try {
+ var object = {};
+ var $defineProperty = Object.defineProperty;
+ var result = $defineProperty(object, object, object) && $defineProperty;
+ } catch (error) {
+ }
+ return result;
+ }());
+ var indexOf = ''.indexOf;
+ var includes = function (search) {
+ if (this == null) {
+ throw new TypeError();
+ }
+ var string = String(this);
+ if (search && toString.call(search) == '[object RegExp]') {
+ throw new TypeError();
+ }
+ var stringLength = string.length;
+ var searchString = String(search);
+ var searchLength = searchString.length;
+ var position = arguments.length > 1 ? arguments[1] : undefined;
+ // `ToInteger`
+ var pos = position ? Number(position) : 0;
+ if (pos != pos) { // better `isNaN`
+ pos = 0;
+ }
+ var start = Math.min(Math.max(pos, 0), stringLength);
+ // Avoid the `indexOf` call if no match is possible
+ if (searchLength + start > stringLength) {
+ return false;
+ }
+ return indexOf.call(string, searchString, pos) != -1;
+ };
+ if (defineProperty) {
+ defineProperty(String.prototype, 'includes', {
+ 'value': includes,
+ 'configurable': true,
+ 'writable': true
+ });
+ } else {
+ String.prototype.includes = includes;
+ }
+ }());
+ }
+
+ if (!String.prototype.startsWith) {
+ (function () {
+ 'use strict'; // needed to support `apply`/`call` with `undefined`/`null`
+ var defineProperty = (function () {
+ // IE 8 only supports `Object.defineProperty` on DOM elements
+ try {
+ var object = {};
+ var $defineProperty = Object.defineProperty;
+ var result = $defineProperty(object, object, object) && $defineProperty;
+ } catch (error) {
+ }
+ return result;
+ }());
+ var toString = {}.toString;
+ var startsWith = function (search) {
+ if (this == null) {
+ throw new TypeError();
+ }
+ var string = String(this);
+ if (search && toString.call(search) == '[object RegExp]') {
+ throw new TypeError();
+ }
+ var stringLength = string.length;
+ var searchString = String(search);
+ var searchLength = searchString.length;
+ var position = arguments.length > 1 ? arguments[1] : undefined;
+ // `ToInteger`
+ var pos = position ? Number(position) : 0;
+ if (pos != pos) { // better `isNaN`
+ pos = 0;
+ }
+ var start = Math.min(Math.max(pos, 0), stringLength);
+ // Avoid the `indexOf` call if no match is possible
+ if (searchLength + start > stringLength) {
+ return false;
+ }
+ var index = -1;
+ while (++index < searchLength) {
+ if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {
+ return false;
+ }
+ }
+ return true;
+ };
+ if (defineProperty) {
+ defineProperty(String.prototype, 'startsWith', {
+ 'value': startsWith,
+ 'configurable': true,
+ 'writable': true
+ });
+ } else {
+ String.prototype.startsWith = startsWith;
+ }
+ }());
+ }
+
+ if (!Object.keys) {
+ Object.keys = function (
+ o, // object
+ k, // key
+ r // result array
+ ){
+ // initialize object and result
+ r=[];
+ // iterate over object keys
+ for (k in o)
+ // fill result array with non-prototypical keys
+ r.hasOwnProperty.call(o, k) && r.push(k);
+ // return result
+ return r;
+ };
+ }
+
+ $.fn.triggerNative = function (eventName) {
+ var el = this[0],
+ event;
+
+ if (el.dispatchEvent) {
+ if (typeof Event === 'function') {
+ // For modern browsers
+ event = new Event(eventName, {
+ bubbles: true
+ });
+ } else {
+ // For IE since it doesn't support Event constructor
+ event = document.createEvent('Event');
+ event.initEvent(eventName, true, false);
+ }
+
+ el.dispatchEvent(event);
+ } else {
+ if (el.fireEvent) {
+ event = document.createEventObject();
+ event.eventType = eventName;
+ el.fireEvent('on' + eventName, event);
+ }
+
+ this.trigger(eventName);
+ }
+ };
+ //
+
+ // Case insensitive contains search
+ $.expr[':'].icontains = function (obj, index, meta) {
+ var $obj = $(obj);
+ var haystack = ($obj.data('tokens') || $obj.text()).toString().toUpperCase();
+ return haystack.includes(meta[3].toUpperCase());
+ };
+
+ // Case insensitive begins search
+ $.expr[':'].ibegins = function (obj, index, meta) {
+ var $obj = $(obj);
+ var haystack = ($obj.data('tokens') || $obj.text()).toString().toUpperCase();
+ return haystack.startsWith(meta[3].toUpperCase());
+ };
+
+ // Case and accent insensitive contains search
+ $.expr[':'].aicontains = function (obj, index, meta) {
+ var $obj = $(obj);
+ var haystack = ($obj.data('tokens') || $obj.data('normalizedText') || $obj.text()).toString().toUpperCase();
+ return haystack.includes(meta[3].toUpperCase());
+ };
+
+ // Case and accent insensitive begins search
+ $.expr[':'].aibegins = function (obj, index, meta) {
+ var $obj = $(obj);
+ var haystack = ($obj.data('tokens') || $obj.data('normalizedText') || $obj.text()).toString().toUpperCase();
+ return haystack.startsWith(meta[3].toUpperCase());
+ };
+
+ /**
+ * Remove all diatrics from the given text.
+ * @access private
+ * @param {String} text
+ * @returns {String}
+ */
+ function normalizeToBase(text) {
+ var rExps = [
+ {re: /[\xC0-\xC6]/g, ch: "A"},
+ {re: /[\xE0-\xE6]/g, ch: "a"},
+ {re: /[\xC8-\xCB]/g, ch: "E"},
+ {re: /[\xE8-\xEB]/g, ch: "e"},
+ {re: /[\xCC-\xCF]/g, ch: "I"},
+ {re: /[\xEC-\xEF]/g, ch: "i"},
+ {re: /[\xD2-\xD6]/g, ch: "O"},
+ {re: /[\xF2-\xF6]/g, ch: "o"},
+ {re: /[\xD9-\xDC]/g, ch: "U"},
+ {re: /[\xF9-\xFC]/g, ch: "u"},
+ {re: /[\xC7-\xE7]/g, ch: "c"},
+ {re: /[\xD1]/g, ch: "N"},
+ {re: /[\xF1]/g, ch: "n"}
+ ];
+ $.each(rExps, function () {
+ text = text.replace(this.re, this.ch);
+ });
+ return text;
+ }
+
+
+ function htmlEscape(html) {
+ var escapeMap = {
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ '"': '"',
+ "'": ''',
+ '`': '`'
+ };
+ var source = '(?:' + Object.keys(escapeMap).join('|') + ')',
+ testRegexp = new RegExp(source),
+ replaceRegexp = new RegExp(source, 'g'),
+ string = html == null ? '' : '' + html;
+ return testRegexp.test(string) ? string.replace(replaceRegexp, function (match) {
+ return escapeMap[match];
+ }) : string;
+ }
+
+ var Selectpicker = function (element, options, e) {
+ if (e) {
+ e.stopPropagation();
+ e.preventDefault();
+ }
+
+ this.$element = $(element);
+ this.$newElement = null;
+ this.$button = null;
+ this.$menu = null;
+ this.$lis = null;
+ this.options = options;
+
+ // If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a
+ // data-attribute)
+ if (this.options.title === null) {
+ this.options.title = this.$element.attr('title');
+ }
+
+ //Expose public methods
+ this.val = Selectpicker.prototype.val;
+ this.render = Selectpicker.prototype.render;
+ this.refresh = Selectpicker.prototype.refresh;
+ this.setStyle = Selectpicker.prototype.setStyle;
+ this.selectAll = Selectpicker.prototype.selectAll;
+ this.deselectAll = Selectpicker.prototype.deselectAll;
+ this.destroy = Selectpicker.prototype.destroy;
+ this.remove = Selectpicker.prototype.remove;
+ this.show = Selectpicker.prototype.show;
+ this.hide = Selectpicker.prototype.hide;
+
+ this.init();
+ };
+
+ Selectpicker.VERSION = '1.10.0';
+
+ // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.
+ Selectpicker.DEFAULTS = {
+ noneSelectedText: 'Nothing selected',
+ noneResultsText: 'No results matched {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected == 1) ? "{0} item selected" : "{0} items selected";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',
+ (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'
+ ];
+ },
+ selectAllText: 'Select All',
+ deselectAllText: 'Deselect All',
+ doneButton: false,
+ doneButtonText: 'Close',
+ multipleSeparator: ', ',
+ styleBase: 'btn',
+ style: 'btn-default',
+ size: 'auto',
+ title: null,
+ selectedTextFormat: 'values',
+ width: false,
+ container: false,
+ hideDisabled: false,
+ showSubtext: false,
+ showIcon: true,
+ showContent: true,
+ dropupAuto: true,
+ header: false,
+ liveSearch: false,
+ liveSearchPlaceholder: null,
+ liveSearchNormalize: false,
+ liveSearchStyle: 'contains',
+ actionsBox: false,
+ iconBase: 'glyphicon',
+ tickIcon: 'glyphicon-ok',
+ showTick: false,
+ template: {
+ caret: ''
+ },
+ maxOptions: false,
+ mobile: false,
+ selectOnTab: false,
+ dropdownAlignRight: false
+ };
+
+ Selectpicker.prototype = {
+
+ constructor: Selectpicker,
+
+ init: function () {
+ var that = this,
+ id = this.$element.attr('id');
+
+ this.$element.addClass('bs-select-hidden');
+
+ // store originalIndex (key) and newIndex (value) in this.liObj for fast accessibility
+ // allows us to do this.$lis.eq(that.liObj[index]) instead of this.$lis.filter('[data-original-index="' + index + '"]')
+ this.liObj = {};
+ this.multiple = this.$element.prop('multiple');
+ this.autofocus = this.$element.prop('autofocus');
+ this.$newElement = this.createView();
+ this.$element
+ .after(this.$newElement)
+ .appendTo(this.$newElement);
+ this.$button = this.$newElement.children('button');
+ this.$menu = this.$newElement.children('.dropdown-menu');
+ this.$menuInner = this.$menu.children('.inner');
+ this.$searchbox = this.$menu.find('input');
+
+ this.$element.removeClass('bs-select-hidden');
+
+ if (this.options.dropdownAlignRight === true) this.$menu.addClass('dropdown-menu-right');
+
+ if (typeof id !== 'undefined') {
+ this.$button.attr('data-id', id);
+ $('label[for="' + id + '"]').click(function (e) {
+ e.preventDefault();
+ that.$button.focus();
+ });
+ }
+
+ this.checkDisabled();
+ this.clickListener();
+ if (this.options.liveSearch) this.liveSearchListener();
+ this.render();
+ this.setStyle();
+ this.setWidth();
+ if (this.options.container) this.selectPosition();
+ this.$menu.data('this', this);
+ this.$newElement.data('this', this);
+ if (this.options.mobile) this.mobile();
+
+ this.$newElement.on({
+ 'hide.bs.dropdown': function (e) {
+ that.$element.trigger('hide.bs.select', e);
+ },
+ 'hidden.bs.dropdown': function (e) {
+ that.$element.trigger('hidden.bs.select', e);
+ },
+ 'show.bs.dropdown': function (e) {
+ that.$element.trigger('show.bs.select', e);
+ },
+ 'shown.bs.dropdown': function (e) {
+ that.$element.trigger('shown.bs.select', e);
+ }
+ });
+
+ if (that.$element[0].hasAttribute('required')) {
+ this.$element.on('invalid', function () {
+ that.$button
+ .addClass('bs-invalid')
+ .focus();
+
+ that.$element.on({
+ 'focus.bs.select': function () {
+ that.$button.focus();
+ that.$element.off('focus.bs.select');
+ },
+ 'shown.bs.select': function () {
+ that.$element
+ .val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened
+ .off('shown.bs.select');
+ },
+ 'rendered.bs.select': function () {
+ // if select is no longer invalid, remove the bs-invalid class
+ if (this.validity.valid) that.$button.removeClass('bs-invalid');
+ that.$element.off('rendered.bs.select');
+ }
+ });
+ });
+ }
+
+ setTimeout(function () {
+ that.$element.trigger('loaded.bs.select');
+ });
+ },
+
+ createDropdown: function () {
+ // Options
+ // If we are multiple or showTick option is set, then add the show-tick class
+ var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '',
+ inputGroup = this.$element.parent().hasClass('input-group') ? ' input-group-btn' : '',
+ autofocus = this.autofocus ? ' autofocus' : '';
+ // Elements
+ var header = this.options.header ? '
' + this.options.header + '
' : '';
+ var searchbox = this.options.liveSearch ?
+ '' +
+ '' +
+ '
'
+ : '';
+ var actionsbox = this.multiple && this.options.actionsBox ?
+ '' +
+ '
' +
+ '' +
+ '' +
+ '
' +
+ '
'
+ : '';
+ var donebutton = this.multiple && this.options.doneButton ?
+ ''
+ : '';
+ var drop =
+ '' +
+ '' +
+ '' +
+ '
';
+
+ return $(drop);
+ },
+
+ createView: function () {
+ var $drop = this.createDropdown(),
+ li = this.createLi();
+
+ $drop.find('ul')[0].innerHTML = li;
+ return $drop;
+ },
+
+ reloadLi: function () {
+ //Remove all children.
+ this.destroyLi();
+ //Re build
+ var li = this.createLi();
+ this.$menuInner[0].innerHTML = li;
+ },
+
+ destroyLi: function () {
+ this.$menu.find('li').remove();
+ },
+
+ createLi: function () {
+ var that = this,
+ _li = [],
+ optID = 0,
+ titleOption = document.createElement('option'),
+ liIndex = -1; // increment liIndex whenever a new element is created to ensure liObj is correct
+
+ // Helper functions
+ /**
+ * @param content
+ * @param [index]
+ * @param [classes]
+ * @param [optgroup]
+ * @returns {string}
+ */
+ var generateLI = function (content, index, classes, optgroup) {
+ return '' + content + '';
+ };
+
+ /**
+ * @param text
+ * @param [classes]
+ * @param [inline]
+ * @param [tokens]
+ * @returns {string}
+ */
+ var generateA = function (text, classes, inline, tokens) {
+ return '' + text +
+ '' +
+ '';
+ };
+
+ if (this.options.title && !this.multiple) {
+ // this option doesn't create a new element, but does add a new option, so liIndex is decreased
+ // since liObj is recalculated on every refresh, liIndex needs to be decreased even if the titleOption is already appended
+ liIndex--;
+
+ if (!this.$element.find('.bs-title-option').length) {
+ // Use native JS to prepend option (faster)
+ var element = this.$element[0];
+ titleOption.className = 'bs-title-option';
+ titleOption.appendChild(document.createTextNode(this.options.title));
+ titleOption.value = '';
+ element.insertBefore(titleOption, element.firstChild);
+ // Check if selected attribute is already set on an option. If not, select the titleOption option.
+ // attr gets the 'default' selected option (from markup), prop gets the 'current' selected option
+ // the selected item may have been changed by user or programmatically before the bootstrap select plugin runs
+ var $opt = $(element.options[element.selectedIndex]);
+ if ($opt.attr('selected') === undefined && $opt.prop('selected') === false) {
+ titleOption.selected = true;
+ }
+ }
+ }
+
+ this.$element.find('option').each(function (index) {
+ var $this = $(this);
+
+ liIndex++;
+
+ if ($this.hasClass('bs-title-option')) return;
+
+ // Get the class and text for the option
+ var optionClass = this.className || '',
+ inline = this.style.cssText,
+ text = $this.data('content') ? $this.data('content') : $this.html(),
+ tokens = $this.data('tokens') ? $this.data('tokens') : null,
+ subtext = typeof $this.data('subtext') !== 'undefined' ? '' + $this.data('subtext') + '' : '',
+ icon = typeof $this.data('icon') !== 'undefined' ? ' ' : '',
+ $parent = $this.parent(),
+ isOptgroup = $parent[0].tagName === 'OPTGROUP',
+ isOptgroupDisabled = isOptgroup && $parent[0].disabled,
+ isDisabled = this.disabled || isOptgroupDisabled;
+
+ if (icon !== '' && isDisabled) {
+ icon = '' + icon + '';
+ }
+
+ if (that.options.hideDisabled && (isDisabled && !isOptgroup || isOptgroupDisabled)) {
+ liIndex--;
+ return;
+ }
+
+ if (!$this.data('content')) {
+ // Prepend any icon and append any subtext to the main text.
+ text = icon + '' + text + subtext + '';
+ }
+
+ if (isOptgroup && $this.data('divider') !== true) {
+ if (that.options.hideDisabled && isDisabled) {
+ if ($parent.data('allOptionsDisabled') === undefined) {
+ var $options = $parent.children();
+ $parent.data('allOptionsDisabled', $options.filter(':disabled').length === $options.length);
+ }
+
+ if ($parent.data('allOptionsDisabled')) {
+ liIndex--;
+ return;
+ }
+ }
+
+ var optGroupClass = ' ' + $parent[0].className || '';
+
+ if ($this.index() === 0) { // Is it the first option of the optgroup?
+ optID += 1;
+
+ // Get the opt group label
+ var label = $parent[0].label,
+ labelSubtext = typeof $parent.data('subtext') !== 'undefined' ? '' + $parent.data('subtext') + '' : '',
+ labelIcon = $parent.data('icon') ? ' ' : '';
+
+ label = labelIcon + '' + label + labelSubtext + '';
+
+ if (index !== 0 && _li.length > 0) { // Is it NOT the first option of the select && are there elements in the dropdown?
+ liIndex++;
+ _li.push(generateLI('', null, 'divider', optID + 'div'));
+ }
+ liIndex++;
+ _li.push(generateLI(label, null, 'dropdown-header' + optGroupClass, optID));
+ }
+
+ if (that.options.hideDisabled && isDisabled) {
+ liIndex--;
+ return;
+ }
+
+ _li.push(generateLI(generateA(text, 'opt ' + optionClass + optGroupClass, inline, tokens), index, '', optID));
+ } else if ($this.data('divider') === true) {
+ _li.push(generateLI('', index, 'divider'));
+ } else if ($this.data('hidden') === true) {
+ _li.push(generateLI(generateA(text, optionClass, inline, tokens), index, 'hidden is-hidden'));
+ } else {
+ var showDivider = this.previousElementSibling && this.previousElementSibling.tagName === 'OPTGROUP';
+
+ // if previous element is not an optgroup and hideDisabled is true
+ if (!showDivider && that.options.hideDisabled) {
+ // get previous elements
+ var $prev = $(this).prevAll();
+
+ for (var i = 0; i < $prev.length; i++) {
+ // find the first element in the previous elements that is an optgroup
+ if ($prev[i].tagName === 'OPTGROUP') {
+ var optGroupDistance = 0;
+
+ // loop through the options in between the current option and the optgroup
+ // and check if they are hidden or disabled
+ for (var d = 0; d < i; d++) {
+ var prevOption = $prev[d];
+ if (prevOption.disabled || $(prevOption).data('hidden') === true) optGroupDistance++;
+ }
+
+ // if all of the options between the current option and the optgroup are hidden or disabled, show the divider
+ if (optGroupDistance === i) showDivider = true;
+
+ break;
+ }
+ }
+ }
+
+ if (showDivider) {
+ liIndex++;
+ _li.push(generateLI('', null, 'divider', optID + 'div'));
+ }
+ _li.push(generateLI(generateA(text, optionClass, inline, tokens), index));
+ }
+
+ that.liObj[index] = liIndex;
+ });
+
+ //If we are not multiple, we don't have a selected item, and we don't have a title, select the first element so something is set in the button
+ if (!this.multiple && this.$element.find('option:selected').length === 0 && !this.options.title) {
+ this.$element.find('option').eq(0).prop('selected', true).attr('selected', 'selected');
+ }
+
+ return _li.join('');
+ },
+
+ findLis: function () {
+ if (this.$lis == null) this.$lis = this.$menu.find('li');
+ return this.$lis;
+ },
+
+ /**
+ * @param [updateLi] defaults to true
+ */
+ render: function (updateLi) {
+ var that = this,
+ notDisabled;
+
+ //Update the LI to match the SELECT
+ if (updateLi !== false) {
+ this.$element.find('option').each(function (index) {
+ var $lis = that.findLis().eq(that.liObj[index]);
+
+ that.setDisabled(index, this.disabled || this.parentNode.tagName === 'OPTGROUP' && this.parentNode.disabled, $lis);
+ that.setSelected(index, this.selected, $lis);
+ });
+
+ this.togglePlaceholder();
+ }
+
+ this.tabIndex();
+
+ var selectedItems = this.$element.find('option').map(function () {
+ if (this.selected) {
+ if (that.options.hideDisabled && (this.disabled || this.parentNode.tagName === 'OPTGROUP' && this.parentNode.disabled)) return;
+
+ var $this = $(this),
+ icon = $this.data('icon') && that.options.showIcon ? ' ' : '',
+ subtext;
+
+ if (that.options.showSubtext && $this.data('subtext') && !that.multiple) {
+ subtext = ' ' + $this.data('subtext') + '';
+ } else {
+ subtext = '';
+ }
+ if (typeof $this.attr('title') !== 'undefined') {
+ return $this.attr('title');
+ } else if ($this.data('content') && that.options.showContent) {
+ return $this.data('content');
+ } else {
+ return icon + $this.html() + subtext;
+ }
+ }
+ }).toArray();
+
+ //Fixes issue in IE10 occurring when no default option is selected and at least one option is disabled
+ //Convert all the values into a comma delimited string
+ var title = !this.multiple ? selectedItems[0] : selectedItems.join(this.options.multipleSeparator);
+
+ //If this is multi select, and the selectText type is count, the show 1 of 2 selected etc..
+ if (this.multiple && this.options.selectedTextFormat.indexOf('count') > -1) {
+ var max = this.options.selectedTextFormat.split('>');
+ if ((max.length > 1 && selectedItems.length > max[1]) || (max.length == 1 && selectedItems.length >= 2)) {
+ notDisabled = this.options.hideDisabled ? ', [disabled]' : '';
+ var totalCount = this.$element.find('option').not('[data-divider="true"], [data-hidden="true"]' + notDisabled).length,
+ tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedItems.length, totalCount) : this.options.countSelectedText;
+ title = tr8nText.replace('{0}', selectedItems.length.toString()).replace('{1}', totalCount.toString());
+ }
+ }
+
+ if (this.options.title == undefined) {
+ this.options.title = this.$element.attr('title');
+ }
+
+ if (this.options.selectedTextFormat == 'static') {
+ title = this.options.title;
+ }
+
+ //If we dont have a title, then use the default, or if nothing is set at all, use the not selected text
+ if (!title) {
+ title = typeof this.options.title !== 'undefined' ? this.options.title : this.options.noneSelectedText;
+ }
+
+ //strip all html-tags and trim the result
+ this.$button.attr('title', $.trim(title.replace(/<[^>]*>?/g, '')));
+ this.$button.children('.filter-option').html(title);
+
+ this.$element.trigger('rendered.bs.select');
+ },
+
+ /**
+ * @param [style]
+ * @param [status]
+ */
+ setStyle: function (style, status) {
+ if (this.$element.attr('class')) {
+ this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi, ''));
+ }
+
+ var buttonClass = style ? style : this.options.style;
+
+ if (status == 'add') {
+ this.$button.addClass(buttonClass);
+ } else if (status == 'remove') {
+ this.$button.removeClass(buttonClass);
+ } else {
+ this.$button.removeClass(this.options.style);
+ this.$button.addClass(buttonClass);
+ }
+ },
+
+ liHeight: function (refresh) {
+ if (!refresh && (this.options.size === false || this.sizeInfo)) return;
+
+ var newElement = document.createElement('div'),
+ menu = document.createElement('div'),
+ menuInner = document.createElement('ul'),
+ divider = document.createElement('li'),
+ li = document.createElement('li'),
+ a = document.createElement('a'),
+ text = document.createElement('span'),
+ header = this.options.header && this.$menu.find('.popover-title').length > 0 ? this.$menu.find('.popover-title')[0].cloneNode(true) : null,
+ search = this.options.liveSearch ? document.createElement('div') : null,
+ actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null,
+ doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null;
+
+ text.className = 'text';
+ newElement.className = this.$menu[0].parentNode.className + ' open';
+ menu.className = 'dropdown-menu open';
+ menuInner.className = 'dropdown-menu inner';
+ divider.className = 'divider';
+
+ text.appendChild(document.createTextNode('Inner text'));
+ a.appendChild(text);
+ li.appendChild(a);
+ menuInner.appendChild(li);
+ menuInner.appendChild(divider);
+ if (header) menu.appendChild(header);
+ if (search) {
+ // create a span instead of input as creating an input element is slower
+ var input = document.createElement('span');
+ search.className = 'bs-searchbox';
+ input.className = 'form-control';
+ search.appendChild(input);
+ menu.appendChild(search);
+ }
+ if (actions) menu.appendChild(actions);
+ menu.appendChild(menuInner);
+ if (doneButton) menu.appendChild(doneButton);
+ newElement.appendChild(menu);
+
+ document.body.appendChild(newElement);
+
+ var liHeight = a.offsetHeight,
+ headerHeight = header ? header.offsetHeight : 0,
+ searchHeight = search ? search.offsetHeight : 0,
+ actionsHeight = actions ? actions.offsetHeight : 0,
+ doneButtonHeight = doneButton ? doneButton.offsetHeight : 0,
+ dividerHeight = $(divider).outerHeight(true),
+ // fall back to jQuery if getComputedStyle is not supported
+ menuStyle = typeof getComputedStyle === 'function' ? getComputedStyle(menu) : false,
+ $menu = menuStyle ? null : $(menu),
+ menuPadding = {
+ vert: parseInt(menuStyle ? menuStyle.paddingTop : $menu.css('paddingTop')) +
+ parseInt(menuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom')) +
+ parseInt(menuStyle ? menuStyle.borderTopWidth : $menu.css('borderTopWidth')) +
+ parseInt(menuStyle ? menuStyle.borderBottomWidth : $menu.css('borderBottomWidth')),
+ horiz: parseInt(menuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft')) +
+ parseInt(menuStyle ? menuStyle.paddingRight : $menu.css('paddingRight')) +
+ parseInt(menuStyle ? menuStyle.borderLeftWidth : $menu.css('borderLeftWidth')) +
+ parseInt(menuStyle ? menuStyle.borderRightWidth : $menu.css('borderRightWidth'))
+ },
+ menuExtras = {
+ vert: menuPadding.vert +
+ parseInt(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) +
+ parseInt(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 2,
+ horiz: menuPadding.horiz +
+ parseInt(menuStyle ? menuStyle.marginLeft : $menu.css('marginLeft')) +
+ parseInt(menuStyle ? menuStyle.marginRight : $menu.css('marginRight')) + 2
+ }
+
+ document.body.removeChild(newElement);
+
+ this.sizeInfo = {
+ liHeight: liHeight,
+ headerHeight: headerHeight,
+ searchHeight: searchHeight,
+ actionsHeight: actionsHeight,
+ doneButtonHeight: doneButtonHeight,
+ dividerHeight: dividerHeight,
+ menuPadding: menuPadding,
+ menuExtras: menuExtras
+ };
+ },
+
+ setSize: function () {
+ this.findLis();
+ this.liHeight();
+
+ if (this.options.header) this.$menu.css('padding-top', 0);
+ if (this.options.size === false) return;
+
+ var that = this,
+ $menu = this.$menu,
+ $menuInner = this.$menuInner,
+ $window = $(window),
+ selectHeight = this.$newElement[0].offsetHeight,
+ selectWidth = this.$newElement[0].offsetWidth,
+ liHeight = this.sizeInfo['liHeight'],
+ headerHeight = this.sizeInfo['headerHeight'],
+ searchHeight = this.sizeInfo['searchHeight'],
+ actionsHeight = this.sizeInfo['actionsHeight'],
+ doneButtonHeight = this.sizeInfo['doneButtonHeight'],
+ divHeight = this.sizeInfo['dividerHeight'],
+ menuPadding = this.sizeInfo['menuPadding'],
+ menuExtras = this.sizeInfo['menuExtras'],
+ notDisabled = this.options.hideDisabled ? '.disabled' : '',
+ menuHeight,
+ menuWidth,
+ getHeight,
+ getWidth,
+ selectOffsetTop,
+ selectOffsetBot,
+ selectOffsetLeft,
+ selectOffsetRight,
+ getPos = function() {
+ var pos = that.$newElement.offset();
+ selectOffsetTop = pos.top - $window.scrollTop();
+ selectOffsetBot = $window.height() - selectOffsetTop - selectHeight;
+ selectOffsetLeft = pos.left - $window.scrollLeft();
+ selectOffsetRight = $window.width() - selectOffsetLeft - selectWidth;
+ };
+
+ getPos();
+
+ if (this.options.size === 'auto') {
+ var getSize = function () {
+ var minHeight,
+ hasClass = function (className, include) {
+ return function (element) {
+ if (include) {
+ return (element.classList ? element.classList.contains(className) : $(element).hasClass(className));
+ } else {
+ return !(element.classList ? element.classList.contains(className) : $(element).hasClass(className));
+ }
+ };
+ },
+ lis = that.$menuInner[0].getElementsByTagName('li'),
+ lisVisible = Array.prototype.filter ? Array.prototype.filter.call(lis, hasClass('hidden', false)) : that.$lis.not('.hidden'),
+ optGroup = Array.prototype.filter ? Array.prototype.filter.call(lisVisible, hasClass('dropdown-header', true)) : lisVisible.filter('.dropdown-header');
+
+ getPos();
+ menuHeight = selectOffsetBot - menuExtras.vert;
+ menuWidth = selectOffsetRight - menuExtras.horiz;
+
+ if (that.options.container) {
+ if (!$menu.data('height')) $menu.data('height', $menu.height());
+ getHeight = $menu.data('height');
+
+ if (!$menu.data('width')) $menu.data('width', $menu.width());
+ getWidth = $menu.data('width');
+ } else {
+ getHeight = $menu.height();
+ getWidth = $menu.width();
+ }
+
+ if (that.options.dropupAuto) {
+ that.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && (menuHeight - menuExtras.vert) < getHeight);
+ }
+
+ if (that.$newElement.hasClass('dropup')) {
+ menuHeight = selectOffsetTop - menuExtras.vert;
+ }
+
+ if (that.options.dropdownAlignRight === 'auto') {
+ $menu.toggleClass('dropdown-menu-right', selectOffsetLeft > selectOffsetRight && (menuWidth - menuExtras.horiz) < (getWidth - selectWidth));
+ }
+
+ if ((lisVisible.length + optGroup.length) > 3) {
+ minHeight = liHeight * 3 + menuExtras.vert - 2;
+ } else {
+ minHeight = 0;
+ }
+
+ $menu.css({
+ 'max-height': menuHeight + 'px',
+ 'overflow': 'hidden',
+ 'min-height': minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px'
+ });
+ $menuInner.css({
+ 'max-height': menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert + 'px',
+ 'overflow-y': 'auto',
+ 'min-height': Math.max(minHeight - menuPadding.vert, 0) + 'px'
+ });
+ };
+ getSize();
+ this.$searchbox.off('input.getSize propertychange.getSize').on('input.getSize propertychange.getSize', getSize);
+ $window.off('resize.getSize scroll.getSize').on('resize.getSize scroll.getSize', getSize);
+ } else if (this.options.size && this.options.size != 'auto' && this.$lis.not(notDisabled).length > this.options.size) {
+ var optIndex = this.$lis.not('.divider').not(notDisabled).children().slice(0, this.options.size).last().parent().index(),
+ divLength = this.$lis.slice(0, optIndex + 1).filter('.divider').length;
+ menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert;
+
+ if (that.options.container) {
+ if (!$menu.data('height')) $menu.data('height', $menu.height());
+ getHeight = $menu.data('height');
+ } else {
+ getHeight = $menu.height();
+ }
+
+ if (that.options.dropupAuto) {
+ //noinspection JSUnusedAssignment
+ this.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && (menuHeight - menuExtras.vert) < getHeight);
+ }
+ $menu.css({
+ 'max-height': menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px',
+ 'overflow': 'hidden',
+ 'min-height': ''
+ });
+ $menuInner.css({
+ 'max-height': menuHeight - menuPadding.vert + 'px',
+ 'overflow-y': 'auto',
+ 'min-height': ''
+ });
+ }
+ },
+
+ setWidth: function () {
+ if (this.options.width === 'auto') {
+ this.$menu.css('min-width', '0');
+
+ // Get correct width if element is hidden
+ var $selectClone = this.$menu.parent().clone().appendTo('body'),
+ $selectClone2 = this.options.container ? this.$newElement.clone().appendTo('body') : $selectClone,
+ ulWidth = $selectClone.children('.dropdown-menu').outerWidth(),
+ btnWidth = $selectClone2.css('width', 'auto').children('button').outerWidth();
+
+ $selectClone.remove();
+ $selectClone2.remove();
+
+ // Set width to whatever's larger, button title or longest option
+ this.$newElement.css('width', Math.max(ulWidth, btnWidth) + 'px');
+ } else if (this.options.width === 'fit') {
+ // Remove inline min-width so width can be changed from 'auto'
+ this.$menu.css('min-width', '');
+ this.$newElement.css('width', '').addClass('fit-width');
+ } else if (this.options.width) {
+ // Remove inline min-width so width can be changed from 'auto'
+ this.$menu.css('min-width', '');
+ this.$newElement.css('width', this.options.width);
+ } else {
+ // Remove inline min-width/width so width can be changed
+ this.$menu.css('min-width', '');
+ this.$newElement.css('width', '');
+ }
+ // Remove fit-width class if width is changed programmatically
+ if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') {
+ this.$newElement.removeClass('fit-width');
+ }
+ },
+
+ selectPosition: function () {
+ this.$bsContainer = $('');
+
+ var that = this,
+ pos,
+ actualHeight,
+ getPlacement = function ($element) {
+ that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass('dropup', $element.hasClass('dropup'));
+ pos = $element.offset();
+ actualHeight = $element.hasClass('dropup') ? 0 : $element[0].offsetHeight;
+ that.$bsContainer.css({
+ 'top': pos.top + actualHeight,
+ 'left': pos.left,
+ 'width': $element[0].offsetWidth
+ });
+ };
+
+ this.$button.on('click', function () {
+ var $this = $(this);
+
+ if (that.isDisabled()) {
+ return;
+ }
+
+ getPlacement(that.$newElement);
+
+ that.$bsContainer
+ .appendTo(that.options.container)
+ .toggleClass('open', !$this.hasClass('open'))
+ .append(that.$menu);
+ });
+
+ $(window).on('resize scroll', function () {
+ getPlacement(that.$newElement);
+ });
+
+ this.$element.on('hide.bs.select', function () {
+ that.$menu.data('height', that.$menu.height());
+ that.$bsContainer.detach();
+ });
+ },
+
+ /**
+ * @param {number} index - the index of the option that is being changed
+ * @param {boolean} selected - true if the option is being selected, false if being deselected
+ * @param {JQuery} $lis - the 'li' element that is being modified
+ */
+ setSelected: function (index, selected, $lis) {
+ if (!$lis) {
+ this.togglePlaceholder(); // check if setSelected is being called by changing the value of the select
+ $lis = this.findLis().eq(this.liObj[index]);
+ }
+
+ $lis.toggleClass('selected', selected);
+ },
+
+ /**
+ * @param {number} index - the index of the option that is being disabled
+ * @param {boolean} disabled - true if the option is being disabled, false if being enabled
+ * @param {JQuery} $lis - the 'li' element that is being modified
+ */
+ setDisabled: function (index, disabled, $lis) {
+ if (!$lis) {
+ $lis = this.findLis().eq(this.liObj[index]);
+ }
+
+ if (disabled) {
+ $lis.addClass('disabled').children('a').attr('href', '#').attr('tabindex', -1);
+ } else {
+ $lis.removeClass('disabled').children('a').removeAttr('href').attr('tabindex', 0);
+ }
+ },
+
+ isDisabled: function () {
+ return this.$element[0].disabled;
+ },
+
+ checkDisabled: function () {
+ var that = this;
+
+ if (this.isDisabled()) {
+ this.$newElement.addClass('disabled');
+ this.$button.addClass('disabled').attr('tabindex', -1);
+ } else {
+ if (this.$button.hasClass('disabled')) {
+ this.$newElement.removeClass('disabled');
+ this.$button.removeClass('disabled');
+ }
+
+ if (this.$button.attr('tabindex') == -1 && !this.$element.data('tabindex')) {
+ this.$button.removeAttr('tabindex');
+ }
+ }
+
+ this.$button.click(function () {
+ return !that.isDisabled();
+ });
+ },
+
+ togglePlaceholder: function () {
+ var value = this.$element.val();
+ this.$button.toggleClass('bs-placeholder', value === null || value === '');
+ },
+
+ tabIndex: function () {
+ if (this.$element.data('tabindex') !== this.$element.attr('tabindex') &&
+ (this.$element.attr('tabindex') !== -98 && this.$element.attr('tabindex') !== '-98')) {
+ this.$element.data('tabindex', this.$element.attr('tabindex'));
+ this.$button.attr('tabindex', this.$element.data('tabindex'));
+ }
+
+ this.$element.attr('tabindex', -98);
+ },
+
+ clickListener: function () {
+ var that = this,
+ $document = $(document);
+
+ this.$newElement.on('touchstart.dropdown', '.dropdown-menu', function (e) {
+ e.stopPropagation();
+ });
+
+ $document.data('spaceSelect', false);
+
+ this.$button.on('keyup', function (e) {
+ if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')) {
+ e.preventDefault();
+ $document.data('spaceSelect', false);
+ }
+ });
+
+ this.$button.on('click', function () {
+ that.setSize();
+ });
+
+ this.$element.on('shown.bs.select', function () {
+ if (!that.options.liveSearch && !that.multiple) {
+ that.$menuInner.find('.selected a').focus();
+ } else if (!that.multiple) {
+ var selectedIndex = that.liObj[that.$element[0].selectedIndex];
+
+ if (typeof selectedIndex !== 'number' || that.options.size === false) return;
+
+ // scroll to selected option
+ var offset = that.$lis.eq(selectedIndex)[0].offsetTop - that.$menuInner[0].offsetTop;
+ offset = offset - that.$menuInner[0].offsetHeight/2 + that.sizeInfo.liHeight/2;
+ that.$menuInner[0].scrollTop = offset;
+ }
+ });
+
+ this.$menuInner.on('click', 'li a', function (e) {
+ var $this = $(this),
+ clickedIndex = $this.parent().data('originalIndex'),
+ prevValue = that.$element.val(),
+ prevIndex = that.$element.prop('selectedIndex'),
+ triggerChange = true;
+
+ // Don't close on multi choice menu
+ if (that.multiple && that.options.maxOptions !== 1) {
+ e.stopPropagation();
+ }
+
+ e.preventDefault();
+
+ //Don't run if we have been disabled
+ if (!that.isDisabled() && !$this.parent().hasClass('disabled')) {
+ var $options = that.$element.find('option'),
+ $option = $options.eq(clickedIndex),
+ state = $option.prop('selected'),
+ $optgroup = $option.parent('optgroup'),
+ maxOptions = that.options.maxOptions,
+ maxOptionsGrp = $optgroup.data('maxOptions') || false;
+
+ if (!that.multiple) { // Deselect all others if not multi select box
+ $options.prop('selected', false);
+ $option.prop('selected', true);
+ that.$menuInner.find('.selected').removeClass('selected');
+ that.setSelected(clickedIndex, true);
+ } else { // Toggle the one we have chosen if we are multi select.
+ $option.prop('selected', !state);
+ that.setSelected(clickedIndex, !state);
+ $this.blur();
+
+ if (maxOptions !== false || maxOptionsGrp !== false) {
+ var maxReached = maxOptions < $options.filter(':selected').length,
+ maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length;
+
+ if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) {
+ if (maxOptions && maxOptions == 1) {
+ $options.prop('selected', false);
+ $option.prop('selected', true);
+ that.$menuInner.find('.selected').removeClass('selected');
+ that.setSelected(clickedIndex, true);
+ } else if (maxOptionsGrp && maxOptionsGrp == 1) {
+ $optgroup.find('option:selected').prop('selected', false);
+ $option.prop('selected', true);
+ var optgroupID = $this.parent().data('optgroup');
+ that.$menuInner.find('[data-optgroup="' + optgroupID + '"]').removeClass('selected');
+ that.setSelected(clickedIndex, true);
+ } else {
+ var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText,
+ maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText,
+ maxTxt = maxOptionsArr[0].replace('{n}', maxOptions),
+ maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),
+ $notify = $('');
+ // If {var} is set in array, replace it
+ /** @deprecated */
+ if (maxOptionsArr[2]) {
+ maxTxt = maxTxt.replace('{var}', maxOptionsArr[2][maxOptions > 1 ? 0 : 1]);
+ maxTxtGrp = maxTxtGrp.replace('{var}', maxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1]);
+ }
+
+ $option.prop('selected', false);
+
+ that.$menu.append($notify);
+
+ if (maxOptions && maxReached) {
+ $notify.append($('' + maxTxt + '
'));
+ triggerChange = false;
+ that.$element.trigger('maxReached.bs.select');
+ }
+
+ if (maxOptionsGrp && maxReachedGrp) {
+ $notify.append($('' + maxTxtGrp + '
'));
+ triggerChange = false;
+ that.$element.trigger('maxReachedGrp.bs.select');
+ }
+
+ setTimeout(function () {
+ that.setSelected(clickedIndex, false);
+ }, 10);
+
+ $notify.delay(750).fadeOut(300, function () {
+ $(this).remove();
+ });
+ }
+ }
+ }
+ }
+
+ if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) {
+ that.$button.focus();
+ } else if (that.options.liveSearch) {
+ that.$searchbox.focus();
+ }
+
+ // Trigger select 'change'
+ if (triggerChange) {
+ if ((prevValue != that.$element.val() && that.multiple) || (prevIndex != that.$element.prop('selectedIndex') && !that.multiple)) {
+ // $option.prop('selected') is current option state (selected/unselected). state is previous option state.
+ that.$element
+ .trigger('changed.bs.select', [clickedIndex, $option.prop('selected'), state])
+ .triggerNative('change');
+ }
+ }
+ }
+ });
+
+ this.$menu.on('click', 'li.disabled a, .popover-title, .popover-title :not(.close)', function (e) {
+ if (e.currentTarget == this) {
+ e.preventDefault();
+ e.stopPropagation();
+ if (that.options.liveSearch && !$(e.target).hasClass('close')) {
+ that.$searchbox.focus();
+ } else {
+ that.$button.focus();
+ }
+ }
+ });
+
+ this.$menuInner.on('click', '.divider, .dropdown-header', function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ if (that.options.liveSearch) {
+ that.$searchbox.focus();
+ } else {
+ that.$button.focus();
+ }
+ });
+
+ this.$menu.on('click', '.popover-title .close', function () {
+ that.$button.click();
+ });
+
+ this.$searchbox.on('click', function (e) {
+ e.stopPropagation();
+ });
+
+ this.$menu.on('click', '.actions-btn', function (e) {
+ if (that.options.liveSearch) {
+ that.$searchbox.focus();
+ } else {
+ that.$button.focus();
+ }
+
+ e.preventDefault();
+ e.stopPropagation();
+
+ if ($(this).hasClass('bs-select-all')) {
+ that.selectAll();
+ } else {
+ that.deselectAll();
+ }
+ });
+
+ this.$element.change(function () {
+ that.render(false);
+ });
+ },
+
+ liveSearchListener: function () {
+ var that = this,
+ $no_results = $('');
+
+ this.$button.on('click.dropdown.data-api touchstart.dropdown.data-api', function () {
+ that.$menuInner.find('.active').removeClass('active');
+ if (!!that.$searchbox.val()) {
+ that.$searchbox.val('');
+ that.$lis.not('.is-hidden').removeClass('hidden');
+ if (!!$no_results.parent().length) $no_results.remove();
+ }
+ if (!that.multiple) that.$menuInner.find('.selected').addClass('active');
+ setTimeout(function () {
+ that.$searchbox.focus();
+ }, 10);
+ });
+
+ this.$searchbox.on('click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api', function (e) {
+ e.stopPropagation();
+ });
+
+ this.$searchbox.on('input propertychange', function () {
+ if (that.$searchbox.val()) {
+ var $searchBase = that.$lis.not('.is-hidden').removeClass('hidden').children('a');
+ if (that.options.liveSearchNormalize) {
+ $searchBase = $searchBase.not(':a' + that._searchStyle() + '("' + normalizeToBase(that.$searchbox.val()) + '")');
+ } else {
+ $searchBase = $searchBase.not(':' + that._searchStyle() + '("' + that.$searchbox.val() + '")');
+ }
+ $searchBase.parent().addClass('hidden');
+
+ that.$lis.filter('.dropdown-header').each(function () {
+ var $this = $(this),
+ optgroup = $this.data('optgroup');
+
+ if (that.$lis.filter('[data-optgroup=' + optgroup + ']').not($this).not('.hidden').length === 0) {
+ $this.addClass('hidden');
+ that.$lis.filter('[data-optgroup=' + optgroup + 'div]').addClass('hidden');
+ }
+ });
+
+ var $lisVisible = that.$lis.not('.hidden');
+
+ // hide divider if first or last visible, or if followed by another divider
+ $lisVisible.each(function (index) {
+ var $this = $(this);
+
+ if ($this.hasClass('divider') && (
+ $this.index() === $lisVisible.first().index() ||
+ $this.index() === $lisVisible.last().index() ||
+ $lisVisible.eq(index + 1).hasClass('divider'))) {
+ $this.addClass('hidden');
+ }
+ });
+
+ if (!that.$lis.not('.hidden, .no-results').length) {
+ if (!!$no_results.parent().length) {
+ $no_results.remove();
+ }
+ $no_results.html(that.options.noneResultsText.replace('{0}', '"' + htmlEscape(that.$searchbox.val()) + '"')).show();
+ that.$menuInner.append($no_results);
+ } else if (!!$no_results.parent().length) {
+ $no_results.remove();
+ }
+ } else {
+ that.$lis.not('.is-hidden').removeClass('hidden');
+ if (!!$no_results.parent().length) {
+ $no_results.remove();
+ }
+ }
+
+ that.$lis.filter('.active').removeClass('active');
+ if (that.$searchbox.val()) that.$lis.not('.hidden, .divider, .dropdown-header').eq(0).addClass('active').children('a').focus();
+ $(this).focus();
+ });
+ },
+
+ _searchStyle: function () {
+ var styles = {
+ begins: 'ibegins',
+ startsWith: 'ibegins'
+ };
+
+ return styles[this.options.liveSearchStyle] || 'icontains';
+ },
+
+ val: function (value) {
+ if (typeof value !== 'undefined') {
+ this.$element.val(value);
+ this.render();
+
+ return this.$element;
+ } else {
+ return this.$element.val();
+ }
+ },
+
+ changeAll: function (status) {
+ if (!this.multiple) return;
+ if (typeof status === 'undefined') status = true;
+
+ this.findLis();
+
+ var $options = this.$element.find('option'),
+ $lisVisible = this.$lis.not('.divider, .dropdown-header, .disabled, .hidden'),
+ lisVisLen = $lisVisible.length,
+ selectedOptions = [];
+
+ if (status) {
+ if ($lisVisible.filter('.selected').length === $lisVisible.length) return;
+ } else {
+ if ($lisVisible.filter('.selected').length === 0) return;
+ }
+
+ $lisVisible.toggleClass('selected', status);
+
+ for (var i = 0; i < lisVisLen; i++) {
+ var origIndex = $lisVisible[i].getAttribute('data-original-index');
+ selectedOptions[selectedOptions.length] = $options.eq(origIndex)[0];
+ }
+
+ $(selectedOptions).prop('selected', status);
+
+ this.render(false);
+
+ this.togglePlaceholder();
+
+ this.$element
+ .trigger('changed.bs.select')
+ .triggerNative('change');
+ },
+
+ selectAll: function () {
+ return this.changeAll(true);
+ },
+
+ deselectAll: function () {
+ return this.changeAll(false);
+ },
+
+ toggle: function (e) {
+ e = e || window.event;
+
+ if (e) e.stopPropagation();
+
+ this.$button.trigger('click');
+ },
+
+ keydown: function (e) {
+ var $this = $(this),
+ $parent = $this.is('input') ? $this.parent().parent() : $this.parent(),
+ $items,
+ that = $parent.data('this'),
+ index,
+ next,
+ first,
+ last,
+ prev,
+ nextPrev,
+ prevIndex,
+ isActive,
+ selector = ':not(.disabled, .hidden, .dropdown-header, .divider)',
+ keyCodeMap = {
+ 32: ' ',
+ 48: '0',
+ 49: '1',
+ 50: '2',
+ 51: '3',
+ 52: '4',
+ 53: '5',
+ 54: '6',
+ 55: '7',
+ 56: '8',
+ 57: '9',
+ 59: ';',
+ 65: 'a',
+ 66: 'b',
+ 67: 'c',
+ 68: 'd',
+ 69: 'e',
+ 70: 'f',
+ 71: 'g',
+ 72: 'h',
+ 73: 'i',
+ 74: 'j',
+ 75: 'k',
+ 76: 'l',
+ 77: 'm',
+ 78: 'n',
+ 79: 'o',
+ 80: 'p',
+ 81: 'q',
+ 82: 'r',
+ 83: 's',
+ 84: 't',
+ 85: 'u',
+ 86: 'v',
+ 87: 'w',
+ 88: 'x',
+ 89: 'y',
+ 90: 'z',
+ 96: '0',
+ 97: '1',
+ 98: '2',
+ 99: '3',
+ 100: '4',
+ 101: '5',
+ 102: '6',
+ 103: '7',
+ 104: '8',
+ 105: '9'
+ };
+
+ if (that.options.liveSearch) $parent = $this.parent().parent();
+
+ if (that.options.container) $parent = that.$menu;
+
+ $items = $('[role=menu] li', $parent);
+
+ isActive = that.$newElement.hasClass('open');
+
+ if (!isActive && (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105 || e.keyCode >= 65 && e.keyCode <= 90)) {
+ if (!that.options.container) {
+ that.setSize();
+ that.$menu.parent().addClass('open');
+ isActive = true;
+ } else {
+ that.$button.trigger('click');
+ }
+ that.$searchbox.focus();
+ return;
+ }
+
+ if (that.options.liveSearch) {
+ if (/(^9$|27)/.test(e.keyCode.toString(10)) && isActive && that.$menu.find('.active').length === 0) {
+ e.preventDefault();
+ that.$menu.parent().removeClass('open');
+ if (that.options.container) that.$newElement.removeClass('open');
+ that.$button.focus();
+ }
+ // $items contains li elements when liveSearch is enabled
+ $items = $('[role=menu] li' + selector, $parent);
+ if (!$this.val() && !/(38|40)/.test(e.keyCode.toString(10))) {
+ if ($items.filter('.active').length === 0) {
+ $items = that.$menuInner.find('li');
+ if (that.options.liveSearchNormalize) {
+ $items = $items.filter(':a' + that._searchStyle() + '(' + normalizeToBase(keyCodeMap[e.keyCode]) + ')');
+ } else {
+ $items = $items.filter(':' + that._searchStyle() + '(' + keyCodeMap[e.keyCode] + ')');
+ }
+ }
+ }
+ }
+
+ if (!$items.length) return;
+
+ if (/(38|40)/.test(e.keyCode.toString(10))) {
+ index = $items.index($items.find('a').filter(':focus').parent());
+ first = $items.filter(selector).first().index();
+ last = $items.filter(selector).last().index();
+ next = $items.eq(index).nextAll(selector).eq(0).index();
+ prev = $items.eq(index).prevAll(selector).eq(0).index();
+ nextPrev = $items.eq(next).prevAll(selector).eq(0).index();
+
+ if (that.options.liveSearch) {
+ $items.each(function (i) {
+ if (!$(this).hasClass('disabled')) {
+ $(this).data('index', i);
+ }
+ });
+ index = $items.index($items.filter('.active'));
+ first = $items.first().data('index');
+ last = $items.last().data('index');
+ next = $items.eq(index).nextAll().eq(0).data('index');
+ prev = $items.eq(index).prevAll().eq(0).data('index');
+ nextPrev = $items.eq(next).prevAll().eq(0).data('index');
+ }
+
+ prevIndex = $this.data('prevIndex');
+
+ if (e.keyCode == 38) {
+ if (that.options.liveSearch) index--;
+ if (index != nextPrev && index > prev) index = prev;
+ if (index < first) index = first;
+ if (index == prevIndex) index = last;
+ } else if (e.keyCode == 40) {
+ if (that.options.liveSearch) index++;
+ if (index == -1) index = 0;
+ if (index != nextPrev && index < next) index = next;
+ if (index > last) index = last;
+ if (index == prevIndex) index = first;
+ }
+
+ $this.data('prevIndex', index);
+
+ if (!that.options.liveSearch) {
+ $items.eq(index).children('a').focus();
+ } else {
+ e.preventDefault();
+ if (!$this.hasClass('dropdown-toggle')) {
+ $items.removeClass('active').eq(index).addClass('active').children('a').focus();
+ $this.focus();
+ }
+ }
+
+ } else if (!$this.is('input')) {
+ var keyIndex = [],
+ count,
+ prevKey;
+
+ $items.each(function () {
+ if (!$(this).hasClass('disabled')) {
+ if ($.trim($(this).children('a').text().toLowerCase()).substring(0, 1) == keyCodeMap[e.keyCode]) {
+ keyIndex.push($(this).index());
+ }
+ }
+ });
+
+ count = $(document).data('keycount');
+ count++;
+ $(document).data('keycount', count);
+
+ prevKey = $.trim($(':focus').text().toLowerCase()).substring(0, 1);
+
+ if (prevKey != keyCodeMap[e.keyCode]) {
+ count = 1;
+ $(document).data('keycount', count);
+ } else if (count >= keyIndex.length) {
+ $(document).data('keycount', 0);
+ if (count > keyIndex.length) count = 1;
+ }
+
+ $items.eq(keyIndex[count - 1]).children('a').focus();
+ }
+
+ // Select focused option if "Enter", "Spacebar" or "Tab" (when selectOnTab is true) are pressed inside the menu.
+ if ((/(13|32)/.test(e.keyCode.toString(10)) || (/(^9$)/.test(e.keyCode.toString(10)) && that.options.selectOnTab)) && isActive) {
+ if (!/(32)/.test(e.keyCode.toString(10))) e.preventDefault();
+ if (!that.options.liveSearch) {
+ var elem = $(':focus');
+ elem.click();
+ // Bring back focus for multiselects
+ elem.focus();
+ // Prevent screen from scrolling if the user hit the spacebar
+ e.preventDefault();
+ // Fixes spacebar selection of dropdown items in FF & IE
+ $(document).data('spaceSelect', true);
+ } else if (!/(32)/.test(e.keyCode.toString(10))) {
+ that.$menuInner.find('.active a').click();
+ $this.focus();
+ }
+ $(document).data('keycount', 0);
+ }
+
+ if ((/(^9$|27)/.test(e.keyCode.toString(10)) && isActive && (that.multiple || that.options.liveSearch)) || (/(27)/.test(e.keyCode.toString(10)) && !isActive)) {
+ that.$menu.parent().removeClass('open');
+ if (that.options.container) that.$newElement.removeClass('open');
+ that.$button.focus();
+ }
+ },
+
+ mobile: function () {
+ this.$element.addClass('mobile-device');
+ },
+
+ refresh: function () {
+ this.$lis = null;
+ this.liObj = {};
+ this.reloadLi();
+ this.render();
+ this.checkDisabled();
+ this.liHeight(true);
+ this.setStyle();
+ this.setWidth();
+ if (this.$lis) this.$searchbox.trigger('propertychange');
+
+ this.$element.trigger('refreshed.bs.select');
+ },
+
+ hide: function () {
+ this.$newElement.hide();
+ },
+
+ show: function () {
+ this.$newElement.show();
+ },
+
+ remove: function () {
+ this.$newElement.remove();
+ this.$element.remove();
+ },
+
+ destroy: function () {
+ this.$newElement.before(this.$element).remove();
+
+ if (this.$bsContainer) {
+ this.$bsContainer.remove();
+ } else {
+ this.$menu.remove();
+ }
+
+ this.$element
+ .off('.bs.select')
+ .removeData('selectpicker')
+ .removeClass('bs-select-hidden selectpicker');
+ }
+ };
+
+ // SELECTPICKER PLUGIN DEFINITION
+ // ==============================
+ function Plugin(option, event) {
+ // get the args of the outer function..
+ var args = arguments;
+ // The arguments of the function are explicitly re-defined from the argument list, because the shift causes them
+ // to get lost/corrupted in android 2.3 and IE9 #715 #775
+ var _option = option,
+ _event = event;
+ [].shift.apply(args);
+
+ var value;
+ var chain = this.each(function () {
+ var $this = $(this);
+ if ($this.is('select')) {
+ var data = $this.data('selectpicker'),
+ options = typeof _option == 'object' && _option;
+
+ if (!data) {
+ var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, $this.data(), options);
+ config.template = $.extend({}, Selectpicker.DEFAULTS.template, ($.fn.selectpicker.defaults ? $.fn.selectpicker.defaults.template : {}), $this.data().template, options.template);
+ $this.data('selectpicker', (data = new Selectpicker(this, config, _event)));
+ } else if (options) {
+ for (var i in options) {
+ if (options.hasOwnProperty(i)) {
+ data.options[i] = options[i];
+ }
+ }
+ }
+
+ if (typeof _option == 'string') {
+ if (data[_option] instanceof Function) {
+ value = data[_option].apply(data, args);
+ } else {
+ value = data.options[_option];
+ }
+ }
+ }
+ });
+
+ if (typeof value !== 'undefined') {
+ //noinspection JSUnusedAssignment
+ return value;
+ } else {
+ return chain;
+ }
+ }
+
+ var old = $.fn.selectpicker;
+ $.fn.selectpicker = Plugin;
+ $.fn.selectpicker.Constructor = Selectpicker;
+
+ // SELECTPICKER NO CONFLICT
+ // ========================
+ $.fn.selectpicker.noConflict = function () {
+ $.fn.selectpicker = old;
+ return this;
+ };
+
+ $(document)
+ .data('keycount', 0)
+ .on('keydown.bs.select', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input', Selectpicker.prototype.keydown)
+ .on('focusin.modal', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input', function (e) {
+ e.stopPropagation();
+ });
+
+ // SELECTPICKER DATA-API
+ // =====================
+ $(window).on('load.bs.select.data-api', function () {
+ $('.selectpicker').each(function () {
+ var $selectpicker = $(this);
+ Plugin.call($selectpicker, $selectpicker.data());
+ })
+ });
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/bootstrap-select.js.map b/assets/lib/bootstrap-select/js/bootstrap-select.js.map
new file mode 100644
index 0000000..27b8f2e
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/bootstrap-select.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["bootstrap-select.js"],"names":["root","factory","define","amd","a0","exports","module","require","jQuery","this","$","normalizeToBase","text","rExps","re","ch","each","replace","htmlEscape","html","escapeMap","&","<",">","\"","'","`","source","Object","keys","join","testRegexp","RegExp","replaceRegexp","string","test","match","Plugin","option","event","args","arguments","_option","_event","shift","apply","value","chain","$this","is","data","options","i","hasOwnProperty","config","extend","Selectpicker","DEFAULTS","fn","selectpicker","defaults","template","Function","String","prototype","includes","toString","defineProperty","object","$defineProperty","result","error","indexOf","search","TypeError","call","stringLength","length","searchString","searchLength","position","undefined","pos","Number","start","Math","min","max","configurable","writable","startsWith","index","charCodeAt","o","k","r","push","triggerNative","eventName","el","dispatchEvent","Event","bubbles","document","createEvent","initEvent","fireEvent","createEventObject","eventType","trigger","expr","icontains","obj","meta","$obj","haystack","toUpperCase","ibegins","aicontains","aibegins","element","e","stopPropagation","preventDefault","$element","$newElement","$button","$menu","$lis","title","attr","val","render","refresh","setStyle","selectAll","deselectAll","destroy","remove","show","hide","init","VERSION","noneSelectedText","noneResultsText","countSelectedText","numSelected","numTotal","maxOptionsText","numAll","numGroup","selectAllText","deselectAllText","doneButton","doneButtonText","multipleSeparator","styleBase","style","size","selectedTextFormat","width","container","hideDisabled","showSubtext","showIcon","showContent","dropupAuto","header","liveSearch","liveSearchPlaceholder","liveSearchNormalize","liveSearchStyle","actionsBox","iconBase","tickIcon","showTick","caret","maxOptions","mobile","selectOnTab","dropdownAlignRight","constructor","that","id","addClass","liObj","multiple","prop","autofocus","createView","after","appendTo","children","$menuInner","$searchbox","find","removeClass","click","focus","checkDisabled","clickListener","liveSearchListener","setWidth","selectPosition","on","hide.bs.dropdown","hidden.bs.dropdown","show.bs.dropdown","shown.bs.dropdown","hasAttribute","focus.bs.select","off","shown.bs.select","rendered.bs.select","validity","valid","setTimeout","createDropdown","inputGroup","parent","hasClass","searchbox","actionsbox","donebutton","drop","$drop","li","createLi","innerHTML","reloadLi","destroyLi","_li","optID","titleOption","createElement","liIndex","generateLI","content","classes","optgroup","generateA","inline","tokens","className","appendChild","createTextNode","insertBefore","firstChild","$opt","selectedIndex","selected","optionClass","cssText","subtext","icon","$parent","isOptgroup","tagName","isOptgroupDisabled","disabled","isDisabled","$options","filter","optGroupClass","label","labelSubtext","labelIcon","showDivider","previousElementSibling","$prev","prevAll","optGroupDistance","d","prevOption","eq","findLis","updateLi","notDisabled","setDisabled","parentNode","setSelected","togglePlaceholder","tabIndex","selectedItems","map","toArray","split","totalCount","not","tr8nText","trim","status","buttonClass","liHeight","sizeInfo","newElement","menu","menuInner","divider","a","cloneNode","actions","input","body","offsetHeight","headerHeight","searchHeight","actionsHeight","doneButtonHeight","dividerHeight","outerHeight","menuStyle","getComputedStyle","menuPadding","vert","parseInt","paddingTop","css","paddingBottom","borderTopWidth","borderBottomWidth","horiz","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","menuExtras","marginTop","marginBottom","marginLeft","marginRight","removeChild","setSize","menuHeight","menuWidth","getHeight","getWidth","selectOffsetTop","selectOffsetBot","selectOffsetLeft","selectOffsetRight","$window","window","selectHeight","selectWidth","offsetWidth","divHeight","getPos","offset","top","scrollTop","height","left","scrollLeft","getSize","minHeight","include","classList","contains","lis","getElementsByTagName","lisVisible","Array","optGroup","toggleClass","max-height","overflow","min-height","overflow-y","optIndex","slice","last","divLength","$selectClone","clone","$selectClone2","ulWidth","outerWidth","btnWidth","$bsContainer","actualHeight","getPlacement","append","detach","removeAttr","$document","keyCode","offsetTop","clickedIndex","prevValue","prevIndex","triggerChange","$option","state","$optgroup","maxOptionsGrp","blur","maxReached","maxReachedGrp","optgroupID","maxOptionsArr","maxTxt","maxTxtGrp","$notify","delay","fadeOut","currentTarget","target","change","$no_results","$searchBase","_searchStyle","$lisVisible","first","styles","begins","changeAll","lisVisLen","selectedOptions","origIndex","getAttribute","toggle","keydown","$items","next","prev","nextPrev","isActive","selector","keyCodeMap","32","48","49","50","51","52","53","54","55","56","57","59","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","96","97","98","99","100","101","102","103","104","105","nextAll","count","prevKey","keyIndex","toLowerCase","substring","elem","before","removeData","old","Constructor","noConflict","$selectpicker"],"mappings":"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","file":"bootstrap-select.min.js"}
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/bootstrap-select.min.js b/assets/lib/bootstrap-select/js/bootstrap-select.min.js
new file mode 100644
index 0000000..f514dfc
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/bootstrap-select.min.js
@@ -0,0 +1,9 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){"use strict";function b(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b.replace(this.re,this.ch)}),b}function c(a){var b={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},c="(?:"+Object.keys(b).join("|")+")",d=new RegExp(c),e=new RegExp(c,"g"),f=null==a?"":""+a;return d.test(f)?f.replace(e,function(a){return b[a]}):f}function d(b,c){var d=arguments,f=b,g=c;[].shift.apply(d);var h,i=this.each(function(){var b=a(this);if(b.is("select")){var c=b.data("selectpicker"),i="object"==typeof f&&f;if(c){if(i)for(var j in i)i.hasOwnProperty(j)&&(c.options[j]=i[j])}else{var k=a.extend({},e.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),i);k.template=a.extend({},e.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,i.template),b.data("selectpicker",c=new e(this,k,g))}"string"==typeof f&&(h=c[f]instanceof Function?c[f].apply(c,d):c.options[f])}});return"undefined"!=typeof h?h:i}String.prototype.includes||!function(){var a={}.toString,b=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),c="".indexOf,d=function(b){if(null==this)throw new TypeError;var d=String(this);if(b&&"[object RegExp]"==a.call(b))throw new TypeError;var e=d.length,f=String(b),g=f.length,h=arguments.length>1?arguments[1]:void 0,i=h?Number(h):0;i!=i&&(i=0);var j=Math.min(Math.max(i,0),e);return g+j>e?!1:-1!=c.call(d,f,i)};b?b(String.prototype,"includes",{value:d,configurable:!0,writable:!0}):String.prototype.includes=d}(),String.prototype.startsWith||!function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1},e.prototype={constructor:e,init:function(){var b=this,c=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.liObj={},this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createView(),this.$element.after(this.$newElement).appendTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element.removeClass("bs-select-hidden"),this.options.dropdownAlignRight===!0&&this.$menu.addClass("dropdown-menu-right"),"undefined"!=typeof c&&(this.$button.attr("data-id",c),a('label[for="'+c+'"]').click(function(a){a.preventDefault(),b.$button.focus()})),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(a){b.$element.trigger("hide.bs.select",a)},"hidden.bs.dropdown":function(a){b.$element.trigger("hidden.bs.select",a)},"show.bs.dropdown":function(a){b.$element.trigger("show.bs.select",a)},"shown.bs.dropdown":function(a){b.$element.trigger("shown.bs.select",a)}}),b.$element[0].hasAttribute("required")&&this.$element.on("invalid",function(){b.$button.addClass("bs-invalid").focus(),b.$element.on({"focus.bs.select":function(){b.$button.focus(),b.$element.off("focus.bs.select")},"shown.bs.select":function(){b.$element.val(b.$element.val()).off("shown.bs.select")},"rendered.bs.select":function(){this.validity.valid&&b.$button.removeClass("bs-invalid"),b.$element.off("rendered.bs.select")}})}),setTimeout(function(){b.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple||this.options.showTick?" show-tick":"",d=this.$element.parent().hasClass("input-group")?" input-group-btn":"",e=this.autofocus?" autofocus":"",f=this.options.header?''+this.options.header+"
":"",g=this.options.liveSearch?'":"",h=this.multiple&&this.options.actionsBox?' ":"",i=this.multiple&&this.options.doneButton?'":"",j='";return a(j)},createView:function(){var a=this.createDropdown(),b=this.createLi();return a.find("ul")[0].innerHTML=b,a},reloadLi:function(){this.destroyLi();var a=this.createLi();this.$menuInner[0].innerHTML=a},destroyLi:function(){this.$menu.find("li").remove()},createLi:function(){var d=this,e=[],f=0,g=document.createElement("option"),h=-1,i=function(a,b,c,d){return""+a+""},j=function(a,e,f,g){return'"+a+''};if(this.options.title&&!this.multiple&&(h--,!this.$element.find(".bs-title-option").length)){var k=this.$element[0];g.className="bs-title-option",g.appendChild(document.createTextNode(this.options.title)),g.value="",k.insertBefore(g,k.firstChild);var l=a(k.options[k.selectedIndex]);void 0===l.attr("selected")&&l.prop("selected")===!1&&(g.selected=!0)}return this.$element.find("option").each(function(b){var c=a(this);if(h++,!c.hasClass("bs-title-option")){var g=this.className||"",k=this.style.cssText,l=c.data("content")?c.data("content"):c.html(),m=c.data("tokens")?c.data("tokens"):null,n="undefined"!=typeof c.data("subtext")?''+c.data("subtext")+"":"",o="undefined"!=typeof c.data("icon")?' ':"",p=c.parent(),q="OPTGROUP"===p[0].tagName,r=q&&p[0].disabled,s=this.disabled||r;if(""!==o&&s&&(o=""+o+""),d.options.hideDisabled&&(s&&!q||r))return void h--;if(c.data("content")||(l=o+''+l+n+""),q&&c.data("divider")!==!0){if(d.options.hideDisabled&&s){if(void 0===p.data("allOptionsDisabled")){var t=p.children();p.data("allOptionsDisabled",t.filter(":disabled").length===t.length)}if(p.data("allOptionsDisabled"))return void h--}var u=" "+p[0].className||"";if(0===c.index()){f+=1;var v=p[0].label,w="undefined"!=typeof p.data("subtext")?''+p.data("subtext")+"":"",x=p.data("icon")?' ':"";v=x+''+v+w+"",0!==b&&e.length>0&&(h++,e.push(i("",null,"divider",f+"div"))),h++,e.push(i(v,null,"dropdown-header"+u,f))}if(d.options.hideDisabled&&s)return void h--;e.push(i(j(l,"opt "+g+u,k,m),b,"",f))}else if(c.data("divider")===!0)e.push(i("",b,"divider"));else if(c.data("hidden")===!0)e.push(i(j(l,g,k,m),b,"hidden is-hidden"));else{var y=this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName;if(!y&&d.options.hideDisabled)for(var z=a(this).prevAll(),A=0;AC;C++){var D=z[C];(D.disabled||a(D).data("hidden")===!0)&&B++}B===A&&(y=!0);break}y&&(h++,e.push(i("",null,"divider",f+"div"))),e.push(i(j(l,g,k,m),b))}d.liObj[b]=h}}),this.multiple||0!==this.$element.find("option:selected").length||this.options.title||this.$element.find("option").eq(0).prop("selected",!0).attr("selected","selected"),e.join("")},findLis:function(){return null==this.$lis&&(this.$lis=this.$menu.find("li")),this.$lis},render:function(b){var c,d=this;b!==!1&&(this.$element.find("option").each(function(a){var b=d.findLis().eq(d.liObj[a]);d.setDisabled(a,this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled,b),d.setSelected(a,this.selected,b)}),this.togglePlaceholder()),this.tabIndex();var e=this.$element.find("option").map(function(){if(this.selected){if(d.options.hideDisabled&&(this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled))return;var b,c=a(this),e=c.data("icon")&&d.options.showIcon?' ':"";return b=d.options.showSubtext&&c.data("subtext")&&!d.multiple?' '+c.data("subtext")+"":"","undefined"!=typeof c.attr("title")?c.attr("title"):c.data("content")&&d.options.showContent?c.data("content"):e+c.html()+b}}).toArray(),f=this.multiple?e.join(this.options.multipleSeparator):e[0];if(this.multiple&&this.options.selectedTextFormat.indexOf("count")>-1){var g=this.options.selectedTextFormat.split(">");if(g.length>1&&e.length>g[1]||1==g.length&&e.length>=2){c=this.options.hideDisabled?", [disabled]":"";var h=this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]'+c).length,i="function"==typeof this.options.countSelectedText?this.options.countSelectedText(e.length,h):this.options.countSelectedText;f=i.replace("{0}",e.length.toString()).replace("{1}",h.toString())}}void 0==this.options.title&&(this.options.title=this.$element.attr("title")),"static"==this.options.selectedTextFormat&&(f=this.options.title),f||(f="undefined"!=typeof this.options.title?this.options.title:this.options.noneSelectedText),this.$button.attr("title",a.trim(f.replace(/<[^>]*>?/g,""))),this.$button.children(".filter-option").html(f),this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a?a:this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||this.options.size!==!1&&!this.sizeInfo){var c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("ul"),f=document.createElement("li"),g=document.createElement("li"),h=document.createElement("a"),i=document.createElement("span"),j=this.options.header&&this.$menu.find(".popover-title").length>0?this.$menu.find(".popover-title")[0].cloneNode(!0):null,k=this.options.liveSearch?document.createElement("div"):null,l=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,m=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(i.className="text",c.className=this.$menu[0].parentNode.className+" open",d.className="dropdown-menu open",e.className="dropdown-menu inner",f.className="divider",i.appendChild(document.createTextNode("Inner text")),h.appendChild(i),g.appendChild(h),e.appendChild(g),e.appendChild(f),j&&d.appendChild(j),k){var n=document.createElement("span");k.className="bs-searchbox",n.className="form-control",k.appendChild(n),d.appendChild(k)}l&&d.appendChild(l),d.appendChild(e),m&&d.appendChild(m),c.appendChild(d),document.body.appendChild(c);var o=h.offsetHeight,p=j?j.offsetHeight:0,q=k?k.offsetHeight:0,r=l?l.offsetHeight:0,s=m?m.offsetHeight:0,t=a(f).outerHeight(!0),u="function"==typeof getComputedStyle?getComputedStyle(d):!1,v=u?null:a(d),w={vert:parseInt(u?u.paddingTop:v.css("paddingTop"))+parseInt(u?u.paddingBottom:v.css("paddingBottom"))+parseInt(u?u.borderTopWidth:v.css("borderTopWidth"))+parseInt(u?u.borderBottomWidth:v.css("borderBottomWidth")),horiz:parseInt(u?u.paddingLeft:v.css("paddingLeft"))+parseInt(u?u.paddingRight:v.css("paddingRight"))+parseInt(u?u.borderLeftWidth:v.css("borderLeftWidth"))+parseInt(u?u.borderRightWidth:v.css("borderRightWidth"))},x={vert:w.vert+parseInt(u?u.marginTop:v.css("marginTop"))+parseInt(u?u.marginBottom:v.css("marginBottom"))+2,horiz:w.horiz+parseInt(u?u.marginLeft:v.css("marginLeft"))+parseInt(u?u.marginRight:v.css("marginRight"))+2};document.body.removeChild(c),this.sizeInfo={liHeight:o,headerHeight:p,searchHeight:q,actionsHeight:r,doneButtonHeight:s,dividerHeight:t,menuPadding:w,menuExtras:x}}},setSize:function(){if(this.findLis(),this.liHeight(),this.options.header&&this.$menu.css("padding-top",0),this.options.size!==!1){var b,c,d,e,f,g,h,i,j=this,k=this.$menu,l=this.$menuInner,m=a(window),n=this.$newElement[0].offsetHeight,o=this.$newElement[0].offsetWidth,p=this.sizeInfo.liHeight,q=this.sizeInfo.headerHeight,r=this.sizeInfo.searchHeight,s=this.sizeInfo.actionsHeight,t=this.sizeInfo.doneButtonHeight,u=this.sizeInfo.dividerHeight,v=this.sizeInfo.menuPadding,w=this.sizeInfo.menuExtras,x=this.options.hideDisabled?".disabled":"",y=function(){var a=j.$newElement.offset();f=a.top-m.scrollTop(),g=m.height()-f-n,h=a.left-m.scrollLeft(),i=m.width()-h-o};if(y(),"auto"===this.options.size){var z=function(){var m,n=function(b,c){return function(d){return c?d.classList?d.classList.contains(b):a(d).hasClass(b):!(d.classList?d.classList.contains(b):a(d).hasClass(b))}},u=j.$menuInner[0].getElementsByTagName("li"),x=Array.prototype.filter?Array.prototype.filter.call(u,n("hidden",!1)):j.$lis.not(".hidden"),z=Array.prototype.filter?Array.prototype.filter.call(x,n("dropdown-header",!0)):x.filter(".dropdown-header");y(),b=g-w.vert,c=i-w.horiz,j.options.container?(k.data("height")||k.data("height",k.height()),d=k.data("height"),k.data("width")||k.data("width",k.width()),e=k.data("width")):(d=k.height(),e=k.width()),j.options.dropupAuto&&j.$newElement.toggleClass("dropup",f>g&&b-w.verti&&c-w.horiz3?3*p+w.vert-2:0,k.css({"max-height":b+"px",overflow:"hidden","min-height":m+q+r+s+t+"px"}),l.css({"max-height":b-q-r-s-t-v.vert+"px","overflow-y":"auto","min-height":Math.max(m-v.vert,0)+"px"})};z(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",z),m.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize",z)}else if(this.options.size&&"auto"!=this.options.size&&this.$lis.not(x).length>this.options.size){var A=this.$lis.not(".divider").not(x).children().slice(0,this.options.size).last().parent().index(),B=this.$lis.slice(0,A+1).filter(".divider").length;b=p*this.options.size+B*u+v.vert,j.options.container?(k.data("height")||k.data("height",k.height()),d=k.data("height")):d=k.height(),j.options.dropupAuto&&this.$newElement.toggleClass("dropup",f>g&&b-w.vert');var b,c,d=this,e=function(a){d.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass("dropup",a.hasClass("dropup")),b=a.offset(),c=a.hasClass("dropup")?0:a[0].offsetHeight,d.$bsContainer.css({top:b.top+c,left:b.left,width:a[0].offsetWidth})};this.$button.on("click",function(){var b=a(this);d.isDisabled()||(e(d.$newElement),d.$bsContainer.appendTo(d.options.container).toggleClass("open",!b.hasClass("open")).append(d.$menu))}),a(window).on("resize scroll",function(){e(d.$newElement)}),this.$element.on("hide.bs.select",function(){d.$menu.data("height",d.$menu.height()),d.$bsContainer.detach()})},setSelected:function(a,b,c){c||(this.togglePlaceholder(),c=this.findLis().eq(this.liObj[a])),c.toggleClass("selected",b)},setDisabled:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),b?c.addClass("disabled").children("a").attr("href","#").attr("tabindex",-1):c.removeClass("disabled").children("a").removeAttr("href").attr("tabindex",0)},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){var a=this;this.isDisabled()?(this.$newElement.addClass("disabled"),this.$button.addClass("disabled").attr("tabindex",-1)):(this.$button.hasClass("disabled")&&(this.$newElement.removeClass("disabled"),this.$button.removeClass("disabled")),-1!=this.$button.attr("tabindex")||this.$element.data("tabindex")||this.$button.removeAttr("tabindex")),this.$button.click(function(){return!a.isDisabled()})},togglePlaceholder:function(){var a=this.$element.val();this.$button.toggleClass("bs-placeholder",null===a||""===a)},tabIndex:function(){this.$element.data("tabindex")!==this.$element.attr("tabindex")&&-98!==this.$element.attr("tabindex")&&"-98"!==this.$element.attr("tabindex")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex"))),this.$element.attr("tabindex",-98)},clickListener:function(){var b=this,c=a(document);this.$newElement.on("touchstart.dropdown",".dropdown-menu",function(a){a.stopPropagation()}),c.data("spaceSelect",!1),this.$button.on("keyup",function(a){/(32)/.test(a.keyCode.toString(10))&&c.data("spaceSelect")&&(a.preventDefault(),c.data("spaceSelect",!1))}),this.$button.on("click",function(){b.setSize()}),this.$element.on("shown.bs.select",function(){if(b.options.liveSearch||b.multiple){if(!b.multiple){var a=b.liObj[b.$element[0].selectedIndex];if("number"!=typeof a||b.options.size===!1)return;var c=b.$lis.eq(a)[0].offsetTop-b.$menuInner[0].offsetTop;c=c-b.$menuInner[0].offsetHeight/2+b.sizeInfo.liHeight/2,b.$menuInner[0].scrollTop=c}}else b.$menuInner.find(".selected a").focus()}),this.$menuInner.on("click","li a",function(c){var d=a(this),e=d.parent().data("originalIndex"),f=b.$element.val(),g=b.$element.prop("selectedIndex"),h=!0;if(b.multiple&&1!==b.options.maxOptions&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var i=b.$element.find("option"),j=i.eq(e),k=j.prop("selected"),l=j.parent("optgroup"),m=b.options.maxOptions,n=l.data("maxOptions")||!1;if(b.multiple){if(j.prop("selected",!k),b.setSelected(e,!k),d.blur(),m!==!1||n!==!1){var o=m');s[2]&&(t=t.replace("{var}",s[2][m>1?0:1]),u=u.replace("{var}",s[2][n>1?0:1])),j.prop("selected",!1),b.$menu.append(v),m&&o&&(v.append(a(""+t+"
")),h=!1,b.$element.trigger("maxReached.bs.select")),n&&p&&(v.append(a(""+u+"
")),h=!1,b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(e,!1)},10),v.delay(750).fadeOut(300,function(){a(this).remove()})}}}else i.prop("selected",!1),j.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected"),b.setSelected(e,!0);!b.multiple||b.multiple&&1===b.options.maxOptions?b.$button.focus():b.options.liveSearch&&b.$searchbox.focus(),h&&(f!=b.$element.val()&&b.multiple||g!=b.$element.prop("selectedIndex")&&!b.multiple)&&b.$element.trigger("changed.bs.select",[e,j.prop("selected"),k]).triggerNative("change")}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll()}),this.$element.change(function(){b.render(!1)})},liveSearchListener:function(){var d=this,e=a('');this.$button.on("click.dropdown.data-api touchstart.dropdown.data-api",function(){d.$menuInner.find(".active").removeClass("active"),d.$searchbox.val()&&(d.$searchbox.val(""),d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove()),d.multiple||d.$menuInner.find(".selected").addClass("active"),setTimeout(function(){d.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){if(d.$searchbox.val()){var f=d.$lis.not(".is-hidden").removeClass("hidden").children("a");f=d.options.liveSearchNormalize?f.not(":a"+d._searchStyle()+'("'+b(d.$searchbox.val())+'")'):f.not(":"+d._searchStyle()+'("'+d.$searchbox.val()+'")'),f.parent().addClass("hidden"),d.$lis.filter(".dropdown-header").each(function(){var b=a(this),c=b.data("optgroup");0===d.$lis.filter("[data-optgroup="+c+"]").not(b).not(".hidden").length&&(b.addClass("hidden"),d.$lis.filter("[data-optgroup="+c+"div]").addClass("hidden"))});var g=d.$lis.not(".hidden");g.each(function(b){var c=a(this);c.hasClass("divider")&&(c.index()===g.first().index()||c.index()===g.last().index()||g.eq(b+1).hasClass("divider"))&&c.addClass("hidden")}),d.$lis.not(".hidden, .no-results").length?e.parent().length&&e.remove():(e.parent().length&&e.remove(),e.html(d.options.noneResultsText.replace("{0}",'"'+c(d.$searchbox.val())+'"')).show(),d.$menuInner.append(e))}else d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove();d.$lis.filter(".active").removeClass("active"),d.$searchbox.val()&&d.$lis.not(".hidden, .divider, .dropdown-header").eq(0).addClass("active").children("a").focus(),a(this).focus()})},_searchStyle:function(){var a={begins:"ibegins",startsWith:"ibegins"};return a[this.options.liveSearchStyle]||"icontains"},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},changeAll:function(b){if(this.multiple){"undefined"==typeof b&&(b=!0),this.findLis();var c=this.$element.find("option"),d=this.$lis.not(".divider, .dropdown-header, .disabled, .hidden"),e=d.length,f=[];if(b){if(d.filter(".selected").length===d.length)return}else if(0===d.filter(".selected").length)return;d.toggleClass("selected",b);for(var g=0;e>g;g++){var h=d[g].getAttribute("data-original-index");f[f.length]=c.eq(h)[0]}a(f).prop("selected",b),this.render(!1),this.togglePlaceholder(),this.$element.trigger("changed.bs.select").triggerNative("change")}},selectAll:function(){return this.changeAll(!0)},deselectAll:function(){return this.changeAll(!1)},toggle:function(a){a=a||window.event,a&&a.stopPropagation(),this.$button.trigger("click")},keydown:function(c){var d,e,f,g,h,i,j,k,l,m=a(this),n=m.is("input")?m.parent().parent():m.parent(),o=n.data("this"),p=":not(.disabled, .hidden, .dropdown-header, .divider)",q={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"};if(o.options.liveSearch&&(n=m.parent().parent()),o.options.container&&(n=o.$menu),d=a("[role=menu] li",n),l=o.$newElement.hasClass("open"),!l&&(c.keyCode>=48&&c.keyCode<=57||c.keyCode>=96&&c.keyCode<=105||c.keyCode>=65&&c.keyCode<=90))return o.options.container?o.$button.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),void o.$searchbox.focus();if(o.options.liveSearch&&(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&0===o.$menu.find(".active").length&&(c.preventDefault(),o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus()),d=a("[role=menu] li"+p,n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$menuInner.find("li"),d=o.options.liveSearchNormalize?d.filter(":a"+o._searchStyle()+"("+b(q[c.keyCode])+")"):d.filter(":"+o._searchStyle()+"("+q[c.keyCode]+")"))),d.length){if(/(38|40)/.test(c.keyCode.toString(10)))e=d.index(d.find("a").filter(":focus").parent()),g=d.filter(p).first().index(),h=d.filter(p).last().index(),f=d.eq(e).nextAll(p).eq(0).index(),i=d.eq(e).prevAll(p).eq(0).index(),j=d.eq(f).prevAll(p).eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).hasClass("disabled")||a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.first().data("index"),h=d.last().data("index"),f=d.eq(e).nextAll().eq(0).data("index"),i=d.eq(e).prevAll().eq(0).data("index"),j=d.eq(f).prevAll().eq(0).data("index")),k=m.data("prevIndex"),38==c.keyCode?(o.options.liveSearch&&e--,e!=j&&e>i&&(e=i),g>e&&(e=g),e==k&&(e=h)):40==c.keyCode&&(o.options.liveSearch&&e++,-1==e&&(e=0),e!=j&&f>e&&(e=f),e>h&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(c.preventDefault(),m.hasClass("dropdown-toggle")||(d.removeClass("active").eq(e).addClass("active").children("a").focus(),m.focus())):d.eq(e).children("a").focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).hasClass("disabled")||a.trim(a(this).children("a").text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).index())}),r=a(document).data("keycount"),r++,a(document).data("keycount",r),s=a.trim(a(":focus").text().toLowerCase()).substring(0,1),s!=q[c.keyCode]?(r=1,a(document).data("keycount",r)):r>=t.length&&(a(document).data("keycount",0),r>t.length&&(r=1)),d.eq(t[r-1]).children("a").focus()}if((/(13|32)/.test(c.keyCode.toString(10))||/(^9$)/.test(c.keyCode.toString(10))&&o.options.selectOnTab)&&l){if(/(32)/.test(c.keyCode.toString(10))||c.preventDefault(),o.options.liveSearch)/(32)/.test(c.keyCode.toString(10))||(o.$menuInner.find(".active a").click(),m.focus());else{var u=a(":focus");u.click(),u.focus(),c.preventDefault(),a(document).data("spaceSelect",!0)}a(document).data("keycount",0)}(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(o.multiple||o.options.liveSearch)||/(27)/.test(c.keyCode.toString(10))&&!l)&&(o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus())}},mobile:function(){this.$element.addClass("mobile-device")},refresh:function(){this.$lis=null,this.liObj={},this.reloadLi(),this.render(),this.checkDisabled(),this.liHeight(!0),this.setStyle(),this.setWidth(),this.$lis&&this.$searchbox.trigger("propertychange"),this.$element.trigger("refreshed.bs.select");
+},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var f=a.fn.selectpicker;a.fn.selectpicker=d,a.fn.selectpicker.Constructor=e,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=f,this},a(document).data("keycount",0).on("keydown.bs.select",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input',e.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);d.call(b,b.data())})})}(a)});
+//# sourceMappingURL=bootstrap-select.js.map
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-ar_AR.js b/assets/lib/bootstrap-select/js/i18n/defaults-ar_AR.js
new file mode 100644
index 0000000..4b82e50
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-ar_AR.js
@@ -0,0 +1,49 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+/*!
+ * Translated default messages for bootstrap-select.
+ * Locale: AR (Arabic)
+ * Author: Yasser Lotfy
+ */
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'لم يتم إختيار شئ',
+ noneResultsText: 'لا توجد نتائج مطابقة لـ {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected == 1) ? "{0} خيار تم إختياره" : "{0} خيارات تمت إختيارها";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll == 1) ? 'تخطى الحد المسموح ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح ({n} خيارات بحد أقصى)',
+ (numGroup == 1) ? 'تخطى الحد المسموح للمجموعة ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح للمجموعة ({n} خيارات بحد أقصى)'
+ ];
+ },
+ selectAllText: 'إختيار الجميع',
+ deselectAllText: 'إلغاء إختيار الجميع',
+ multipleSeparator: '، '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-ar_AR.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-ar_AR.min.js
new file mode 100644
index 0000000..0b3a158
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-ar_AR.min.js
@@ -0,0 +1,12 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){/*!
+ * Translated default messages for bootstrap-select.
+ * Locale: AR (Arabic)
+ * Author: Yasser Lotfy
+ */
+!function(a){a.fn.selectpicker.defaults={noneSelectedText:"لم يتم إختيار شئ",noneResultsText:"لا توجد نتائج مطابقة لـ {0}",countSelectedText:function(a,b){return 1==a?"{0} خيار تم إختياره":"{0} خيارات تمت إختيارها"},maxOptionsText:function(a,b){return[1==a?"تخطى الحد المسموح ({n} خيار بحد أقصى)":"تخطى الحد المسموح ({n} خيارات بحد أقصى)",1==b?"تخطى الحد المسموح للمجموعة ({n} خيار بحد أقصى)":"تخطى الحد المسموح للمجموعة ({n} خيارات بحد أقصى)"]},selectAllText:"إختيار الجميع",deselectAllText:"إلغاء إختيار الجميع",multipleSeparator:"، "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-bg_BG.js b/assets/lib/bootstrap-select/js/i18n/defaults-bg_BG.js
new file mode 100644
index 0000000..e142018
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-bg_BG.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Нищо избрано',
+ noneResultsText: 'Няма резултат за {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected == 1) ? "{0} избран елемент" : "{0} избрани елемента";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll == 1) ? 'Лимита е достигнат ({n} елемент максимум)' : 'Лимита е достигнат ({n} елемента максимум)',
+ (numGroup == 1) ? 'Груповия лимит е достигнат ({n} елемент максимум)' : 'Груповия лимит е достигнат ({n} елемента максимум)'
+ ];
+ },
+ selectAllText: 'Избери всички',
+ deselectAllText: 'Размаркирай всички',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-bg_BG.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-bg_BG.min.js
new file mode 100644
index 0000000..449c564
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-bg_BG.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Нищо избрано",noneResultsText:"Няма резултат за {0}",countSelectedText:function(a,b){return 1==a?"{0} избран елемент":"{0} избрани елемента"},maxOptionsText:function(a,b){return[1==a?"Лимита е достигнат ({n} елемент максимум)":"Лимита е достигнат ({n} елемента максимум)",1==b?"Груповия лимит е достигнат ({n} елемент максимум)":"Груповия лимит е достигнат ({n} елемента максимум)"]},selectAllText:"Избери всички",deselectAllText:"Размаркирай всички",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-cro_CRO.js b/assets/lib/bootstrap-select/js/i18n/defaults-cro_CRO.js
new file mode 100644
index 0000000..c785c9d
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-cro_CRO.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Odaberite stavku',
+ noneResultsText: 'Nema rezultata pretrage {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected == 1) ? "{0} stavka selektirana" : "{0} stavke selektirane";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll == 1) ? 'Limit je postignut ({n} stvar maximalno)' : 'Limit je postignut ({n} stavke maksimalno)',
+ (numGroup == 1) ? 'Grupni limit je postignut ({n} stvar maksimalno)' : 'Grupni limit je postignut ({n} stavke maksimalno)'
+ ];
+ },
+ selectAllText: 'Selektiraj sve',
+ deselectAllText: 'Deselektiraj sve',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-cro_CRO.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-cro_CRO.min.js
new file mode 100644
index 0000000..c5e8247
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-cro_CRO.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Odaberite stavku",noneResultsText:"Nema rezultata pretrage {0}",countSelectedText:function(a,b){return 1==a?"{0} stavka selektirana":"{0} stavke selektirane"},maxOptionsText:function(a,b){return[1==a?"Limit je postignut ({n} stvar maximalno)":"Limit je postignut ({n} stavke maksimalno)",1==b?"Grupni limit je postignut ({n} stvar maksimalno)":"Grupni limit je postignut ({n} stavke maksimalno)"]},selectAllText:"Selektiraj sve",deselectAllText:"Deselektiraj sve",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-cs_CZ.js b/assets/lib/bootstrap-select/js/i18n/defaults-cs_CZ.js
new file mode 100644
index 0000000..f04d4da
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-cs_CZ.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Nic není vybráno',
+ noneResultsText: 'Žádné výsledky {0}',
+ countSelectedText: 'Označeno {0} z {1}',
+ maxOptionsText: ['Limit překročen ({n} {var} max)', 'Limit skupiny překročen ({n} {var} max)', ['položek', 'položka']],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-cs_CZ.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-cs_CZ.min.js
new file mode 100644
index 0000000..1f084c8
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-cs_CZ.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nic není vybráno",noneResultsText:"Žádné výsledky {0}",countSelectedText:"Označeno {0} z {1}",maxOptionsText:["Limit překročen ({n} {var} max)","Limit skupiny překročen ({n} {var} max)",["položek","položka"]],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-da_DK.js b/assets/lib/bootstrap-select/js/i18n/defaults-da_DK.js
new file mode 100644
index 0000000..164ff4e
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-da_DK.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Intet valgt',
+ noneResultsText: 'Ingen resultater fundet {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected == 1) ? "{0} valgt" : "{0} valgt";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll == 1) ? 'Begrænsning nået (max {n} valgt)' : 'Begrænsning nået (max {n} valgte)',
+ (numGroup == 1) ? 'Gruppe-begrænsning nået (max {n} valgt)' : 'Gruppe-begrænsning nået (max {n} valgte)'
+ ];
+ },
+ selectAllText: 'Markér alle',
+ deselectAllText: 'Afmarkér alle',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-da_DK.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-da_DK.min.js
new file mode 100644
index 0000000..e46f69d
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-da_DK.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Intet valgt",noneResultsText:"Ingen resultater fundet {0}",countSelectedText:function(a,b){return"{0} valgt"},maxOptionsText:function(a,b){return[1==a?"Begrænsning nået (max {n} valgt)":"Begrænsning nået (max {n} valgte)",1==b?"Gruppe-begrænsning nået (max {n} valgt)":"Gruppe-begrænsning nået (max {n} valgte)"]},selectAllText:"Markér alle",deselectAllText:"Afmarkér alle",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-de_DE.js b/assets/lib/bootstrap-select/js/i18n/defaults-de_DE.js
new file mode 100644
index 0000000..4bf7a60
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-de_DE.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Bitte wählen...',
+ noneResultsText: 'Keine Ergebnisse für {0}',
+ countSelectedText: '{0} von {1} ausgewählt',
+ maxOptionsText: ['Limit erreicht ({n} {var} max.)', 'Gruppen-Limit erreicht ({n} {var} max.)', ['Eintrag', 'Einträge']],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-de_DE.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-de_DE.min.js
new file mode 100644
index 0000000..f47b544
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-de_DE.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Bitte wählen...",noneResultsText:"Keine Ergebnisse für {0}",countSelectedText:"{0} von {1} ausgewählt",maxOptionsText:["Limit erreicht ({n} {var} max.)","Gruppen-Limit erreicht ({n} {var} max.)",["Eintrag","Einträge"]],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-en_US.js b/assets/lib/bootstrap-select/js/i18n/defaults-en_US.js
new file mode 100644
index 0000000..f633f96
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-en_US.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Nothing selected',
+ noneResultsText: 'No results match {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected == 1) ? "{0} item selected" : "{0} items selected";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',
+ (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'
+ ];
+ },
+ selectAllText: 'Select All',
+ deselectAllText: 'Deselect All',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-en_US.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-en_US.min.js
new file mode 100644
index 0000000..74041dc
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-en_US.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nothing selected",noneResultsText:"No results match {0}",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return[1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-es_CL.js b/assets/lib/bootstrap-select/js/i18n/defaults-es_CL.js
new file mode 100644
index 0000000..1e7aa8d
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-es_CL.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'No hay selección',
+ noneResultsText: 'No hay resultados {0}',
+ countSelectedText: 'Seleccionados {0} de {1}',
+ maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-es_CL.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-es_CL.min.js
new file mode 100644
index 0000000..2ac9a57
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-es_CL.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"No hay selección",noneResultsText:"No hay resultados {0}",countSelectedText:"Seleccionados {0} de {1}",maxOptionsText:["Límite alcanzado ({n} {var} max)","Límite del grupo alcanzado({n} {var} max)",["elementos","element"]],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-eu.js b/assets/lib/bootstrap-select/js/i18n/defaults-eu.js
new file mode 100644
index 0000000..a4e12f0
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-eu.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Hautapenik ez',
+ noneResultsText: 'Emaitzarik ez {0}',
+ countSelectedText: '{1}(e)tik {0} hautatuta',
+ maxOptionsText: ['Mugara iritsita ({n} {var} gehienez)', 'Taldearen mugara iritsita ({n} {var} gehienez)', ['elementu', 'elementu']],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-eu.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-eu.min.js
new file mode 100644
index 0000000..12b36d0
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-eu.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Hautapenik ez",noneResultsText:"Emaitzarik ez {0}",countSelectedText:"{1}(e)tik {0} hautatuta",maxOptionsText:["Mugara iritsita ({n} {var} gehienez)","Taldearen mugara iritsita ({n} {var} gehienez)",["elementu","elementu"]],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-fa_IR.js b/assets/lib/bootstrap-select/js/i18n/defaults-fa_IR.js
new file mode 100644
index 0000000..bcd65b0
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-fa_IR.js
@@ -0,0 +1,37 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'چیزی انتخاب نشده است',
+ noneResultsText: 'هیج مشابهی برای {0} پیدا نشد',
+ countSelectedText: "{0} از {1} مورد انتخاب شده",
+ maxOptionsText: ['بیشتر ممکن نیست {حداکثر {n} عدد}', 'بیشتر ممکن نیست {حداکثر {n} عدد}'],
+ selectAllText: 'انتخاب همه',
+ deselectAllText: 'انتخاب هیچ کدام',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-fa_IR.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-fa_IR.min.js
new file mode 100644
index 0000000..0f2ef54
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-fa_IR.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"چیزی انتخاب نشده است",noneResultsText:"هیج مشابهی برای {0} پیدا نشد",countSelectedText:"{0} از {1} مورد انتخاب شده",maxOptionsText:["بیشتر ممکن نیست {حداکثر {n} عدد}","بیشتر ممکن نیست {حداکثر {n} عدد}"],selectAllText:"انتخاب همه",deselectAllText:"انتخاب هیچ کدام",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-fi_FI.js b/assets/lib/bootstrap-select/js/i18n/defaults-fi_FI.js
new file mode 100644
index 0000000..02c1a30
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-fi_FI.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Ei valintoja',
+ noneResultsText: 'Ei hakutuloksia {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected == 1) ? "{0} valittu" : "{0} valitut";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll == 1) ? 'Valintojen maksimimäärä ({n} saavutettu)' : 'Valintojen maksimimäärä ({n} saavutettu)',
+ (numGroup == 1) ? 'Ryhmän maksimimäärä ({n} saavutettu)' : 'Ryhmän maksimimäärä ({n} saavutettu)'
+ ];
+ },
+ selectAllText: 'Valitse kaikki',
+ deselectAllText: 'Poista kaikki',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-fi_FI.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-fi_FI.min.js
new file mode 100644
index 0000000..4f467a9
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-fi_FI.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Ei valintoja",noneResultsText:"Ei hakutuloksia {0}",countSelectedText:function(a,b){return 1==a?"{0} valittu":"{0} valitut"},maxOptionsText:function(a,b){return["Valintojen maksimimäärä ({n} saavutettu)","Ryhmän maksimimäärä ({n} saavutettu)"]},selectAllText:"Valitse kaikki",deselectAllText:"Poista kaikki",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-fr_FR.js b/assets/lib/bootstrap-select/js/i18n/defaults-fr_FR.js
new file mode 100644
index 0000000..6d834e0
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-fr_FR.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Aucune sélection',
+ noneResultsText: 'Aucun résultat pour {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected > 1) ? "{0} éléments sélectionnés" : "{0} élément sélectionné";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll > 1) ? 'Limite atteinte ({n} éléments max)' : 'Limite atteinte ({n} élément max)',
+ (numGroup > 1) ? 'Limite du groupe atteinte ({n} éléments max)' : 'Limite du groupe atteinte ({n} élément max)'
+ ];
+ },
+ multipleSeparator: ', ',
+ selectAllText: 'Tout Sélectionner',
+ deselectAllText: 'Tout Dé-selectionner',
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-fr_FR.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-fr_FR.min.js
new file mode 100644
index 0000000..0c3c120
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-fr_FR.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Aucune sélection",noneResultsText:"Aucun résultat pour {0}",countSelectedText:function(a,b){return a>1?"{0} éléments sélectionnés":"{0} élément sélectionné"},maxOptionsText:function(a,b){return[a>1?"Limite atteinte ({n} éléments max)":"Limite atteinte ({n} élément max)",b>1?"Limite du groupe atteinte ({n} éléments max)":"Limite du groupe atteinte ({n} élément max)"]},multipleSeparator:", ",selectAllText:"Tout Sélectionner",deselectAllText:"Tout Dé-selectionner"}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-hu_HU.js b/assets/lib/bootstrap-select/js/i18n/defaults-hu_HU.js
new file mode 100644
index 0000000..7f92ffc
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-hu_HU.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Válasszon!',
+ noneResultsText: 'Nincs találat {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return '{0} elem kiválasztva';
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ 'Legfeljebb {n} elem választható',
+ 'A csoportban legfeljebb {n} elem választható'
+ ];
+ },
+ selectAllText: 'Mind',
+ deselectAllText: 'Egyik sem',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-hu_HU.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-hu_HU.min.js
new file mode 100644
index 0000000..650c4ef
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-hu_HU.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Válasszon!",noneResultsText:"Nincs találat {0}",countSelectedText:function(a,b){return"{0} elem kiválasztva"},maxOptionsText:function(a,b){return["Legfeljebb {n} elem választható","A csoportban legfeljebb {n} elem választható"]},selectAllText:"Mind",deselectAllText:"Egyik sem",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-id_ID.js b/assets/lib/bootstrap-select/js/i18n/defaults-id_ID.js
new file mode 100644
index 0000000..217c946
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-id_ID.js
@@ -0,0 +1,37 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Tidak ada yang dipilih',
+ noneResultsText: 'Tidak ada yang cocok {0}',
+ countSelectedText: '{0} terpilih',
+ maxOptionsText: ['Mencapai batas (maksimum {n})', 'Mencapai batas grup (maksimum {n})'],
+ selectAllText: 'Pilih Semua',
+ deselectAllText: 'Hapus Semua',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-id_ID.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-id_ID.min.js
new file mode 100644
index 0000000..930e248
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-id_ID.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Tidak ada yang dipilih",noneResultsText:"Tidak ada yang cocok {0}",countSelectedText:"{0} terpilih",maxOptionsText:["Mencapai batas (maksimum {n})","Mencapai batas grup (maksimum {n})"],selectAllText:"Pilih Semua",deselectAllText:"Hapus Semua",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-it_IT.js b/assets/lib/bootstrap-select/js/i18n/defaults-it_IT.js
new file mode 100644
index 0000000..cd154c1
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-it_IT.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Nessuna selezione',
+ noneResultsText: 'Nessun risultato per {0}',
+ countSelectedText: 'Selezionati {0} di {1}',
+ maxOptionsText: ['Limite raggiunto ({n} {var} max)', 'Limite del gruppo raggiunto ({n} {var} max)', ['elementi', 'elemento']],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-it_IT.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-it_IT.min.js
new file mode 100644
index 0000000..f66fb1e
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-it_IT.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nessuna selezione",noneResultsText:"Nessun risultato per {0}",countSelectedText:"Selezionati {0} di {1}",maxOptionsText:["Limite raggiunto ({n} {var} max)","Limite del gruppo raggiunto ({n} {var} max)",["elementi","elemento"]],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-ko_KR.js b/assets/lib/bootstrap-select/js/i18n/defaults-ko_KR.js
new file mode 100644
index 0000000..54b8d60
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-ko_KR.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: '항목을 선택해주세요',
+ noneResultsText: '{0} 검색 결과가 없습니다',
+ countSelectedText: function (numSelected, numTotal) {
+ return "{0}개를 선택하였습니다";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ '{n}개까지 선택 가능합니다',
+ '해당 그룹은 {n}개까지 선택 가능합니다'
+ ];
+ },
+ selectAllText: '전체선택',
+ deselectAllText: '전체해제',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-ko_KR.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-ko_KR.min.js
new file mode 100644
index 0000000..822ad64
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-ko_KR.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"항목을 선택해주세요",noneResultsText:"{0} 검색 결과가 없습니다",countSelectedText:function(a,b){return"{0}개를 선택하였습니다"},maxOptionsText:function(a,b){return["{n}개까지 선택 가능합니다","해당 그룹은 {n}개까지 선택 가능합니다"]},selectAllText:"전체선택",deselectAllText:"전체해제",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-lt_LT.js b/assets/lib/bootstrap-select/js/i18n/defaults-lt_LT.js
new file mode 100644
index 0000000..6c4dbab
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-lt_LT.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Niekas nepasirinkta',
+ noneResultsText: 'Niekas nesutapo su {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected == 1) ? "{0} elementas pasirinktas" : "{0} elementai(-ų) pasirinkta";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll == 1) ? 'Pasiekta riba ({n} elementas daugiausiai)' : 'Riba pasiekta ({n} elementai(-ų) daugiausiai)',
+ (numGroup == 1) ? 'Grupės riba pasiekta ({n} elementas daugiausiai)' : 'Grupės riba pasiekta ({n} elementai(-ų) daugiausiai)'
+ ];
+ },
+ selectAllText: 'Pasirinkti visus',
+ deselectAllText: 'Atmesti visus',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-lt_LT.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-lt_LT.min.js
new file mode 100644
index 0000000..ff0cdcb
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-lt_LT.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Niekas nepasirinkta",noneResultsText:"Niekas nesutapo su {0}",countSelectedText:function(a,b){return 1==a?"{0} elementas pasirinktas":"{0} elementai(-ų) pasirinkta"},maxOptionsText:function(a,b){return[1==a?"Pasiekta riba ({n} elementas daugiausiai)":"Riba pasiekta ({n} elementai(-ų) daugiausiai)",1==b?"Grupės riba pasiekta ({n} elementas daugiausiai)":"Grupės riba pasiekta ({n} elementai(-ų) daugiausiai)"]},selectAllText:"Pasirinkti visus",deselectAllText:"Atmesti visus",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-nb_NO.js b/assets/lib/bootstrap-select/js/i18n/defaults-nb_NO.js
new file mode 100644
index 0000000..2f1f9b9
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-nb_NO.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Ingen valgt',
+ noneResultsText: 'Søket gir ingen treff {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected == 1) ? "{0} alternativ valgt" : "{0} alternativer valgt";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll == 1) ? 'Grense nådd (maks {n} valg)' : 'Grense nådd (maks {n} valg)',
+ (numGroup == 1) ? 'Grense for grupper nådd (maks {n} grupper)' : 'Grense for grupper nådd (maks {n} grupper)'
+ ];
+ },
+ selectAllText: 'Merk alle',
+ deselectAllText: 'Fjern alle',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-nb_NO.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-nb_NO.min.js
new file mode 100644
index 0000000..2eff722
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-nb_NO.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Ingen valgt",noneResultsText:"Søket gir ingen treff {0}",countSelectedText:function(a,b){return 1==a?"{0} alternativ valgt":"{0} alternativer valgt"},maxOptionsText:function(a,b){return["Grense nådd (maks {n} valg)","Grense for grupper nådd (maks {n} grupper)"]},selectAllText:"Merk alle",deselectAllText:"Fjern alle",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-nl_NL.js b/assets/lib/bootstrap-select/js/i18n/defaults-nl_NL.js
new file mode 100644
index 0000000..fa6c95a
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-nl_NL.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Niets geselecteerd',
+ noneResultsText: 'Geen resultaten gevonden voor {0}',
+ countSelectedText: '{0} van {1} geselecteerd',
+ maxOptionsText: ['Limiet bereikt ({n} {var} max)', 'Groep limiet bereikt ({n} {var} max)', ['items', 'item']],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-nl_NL.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-nl_NL.min.js
new file mode 100644
index 0000000..d2bc9d2
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-nl_NL.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Niets geselecteerd",noneResultsText:"Geen resultaten gevonden voor {0}",countSelectedText:"{0} van {1} geselecteerd",maxOptionsText:["Limiet bereikt ({n} {var} max)","Groep limiet bereikt ({n} {var} max)",["items","item"]],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-pl_PL.js b/assets/lib/bootstrap-select/js/i18n/defaults-pl_PL.js
new file mode 100644
index 0000000..c75ee1f
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-pl_PL.js
@@ -0,0 +1,37 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Nic nie zaznaczono',
+ noneResultsText: 'Brak wyników wyszukiwania {0}',
+ countSelectedText: 'Zaznaczono {0} z {1}',
+ maxOptionsText: ['Osiągnięto limit ({n} {var} max)', 'Limit grupy osiągnięty ({n} {var} max)', ['elementy', 'element']],
+ selectAll: 'Zaznacz wszystkie',
+ deselectAll: 'Odznacz wszystkie',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-pl_PL.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-pl_PL.min.js
new file mode 100644
index 0000000..078297f
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-pl_PL.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nic nie zaznaczono",noneResultsText:"Brak wyników wyszukiwania {0}",countSelectedText:"Zaznaczono {0} z {1}",maxOptionsText:["Osiągnięto limit ({n} {var} max)","Limit grupy osiągnięty ({n} {var} max)",["elementy","element"]],selectAll:"Zaznacz wszystkie",deselectAll:"Odznacz wszystkie",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-pt_BR.js b/assets/lib/bootstrap-select/js/i18n/defaults-pt_BR.js
new file mode 100644
index 0000000..82e4e7e
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-pt_BR.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Nada selecionado',
+ noneResultsText: 'Nada encontrado contendo {0}',
+ countSelectedText: 'Selecionado {0} de {1}',
+ maxOptionsText: ['Limite excedido (máx. {n} {var})', 'Limite do grupo excedido (máx. {n} {var})', ['itens', 'item']],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-pt_BR.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-pt_BR.min.js
new file mode 100644
index 0000000..3f41135
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-pt_BR.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nada selecionado",noneResultsText:"Nada encontrado contendo {0}",countSelectedText:"Selecionado {0} de {1}",maxOptionsText:["Limite excedido (máx. {n} {var})","Limite do grupo excedido (máx. {n} {var})",["itens","item"]],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-pt_PT.js b/assets/lib/bootstrap-select/js/i18n/defaults-pt_PT.js
new file mode 100644
index 0000000..6d05953
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-pt_PT.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+$.fn.selectpicker.defaults = {
+noneSelectedText: 'Nenhum seleccionado',
+noneResultsText: 'Sem resultados contendo {0}',
+countSelectedText: 'Selecionado {0} de {1}',
+maxOptionsText: ['Limite ultrapassado (máx. {n} {var})', 'Limite de seleções ultrapassado (máx. {n} {var})', ['itens', 'item']],
+multipleSeparator: ', '
+};
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-pt_PT.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-pt_PT.min.js
new file mode 100644
index 0000000..05a667b
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-pt_PT.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nenhum seleccionado",noneResultsText:"Sem resultados contendo {0}",countSelectedText:"Selecionado {0} de {1}",maxOptionsText:["Limite ultrapassado (máx. {n} {var})","Limite de seleções ultrapassado (máx. {n} {var})",["itens","item"]],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-ro_RO.js b/assets/lib/bootstrap-select/js/i18n/defaults-ro_RO.js
new file mode 100644
index 0000000..9e234d7
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-ro_RO.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Nu a fost selectat nimic',
+ noneResultsText: 'Nu exista niciun rezultat {0}',
+ countSelectedText: '{0} din {1} selectat(e)',
+ maxOptionsText: ['Limita a fost atinsa ({n} {var} max)', 'Limita de grup a fost atinsa ({n} {var} max)', ['iteme', 'item']],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-ro_RO.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-ro_RO.min.js
new file mode 100644
index 0000000..19570c1
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-ro_RO.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nu a fost selectat nimic",noneResultsText:"Nu exista niciun rezultat {0}",countSelectedText:"{0} din {1} selectat(e)",maxOptionsText:["Limita a fost atinsa ({n} {var} max)","Limita de grup a fost atinsa ({n} {var} max)",["iteme","item"]],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-ru_RU.js b/assets/lib/bootstrap-select/js/i18n/defaults-ru_RU.js
new file mode 100644
index 0000000..4bc3d90
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-ru_RU.js
@@ -0,0 +1,36 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Ничего не выбрано',
+ noneResultsText: 'Совпадений не найдено {0}',
+ countSelectedText: 'Выбрано {0} из {1}',
+ maxOptionsText: ['Достигнут предел ({n} {var} максимум)', 'Достигнут предел в группе ({n} {var} максимум)', ['items', 'item']],
+ doneButtonText: 'Закрыть',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-ru_RU.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-ru_RU.min.js
new file mode 100644
index 0000000..97983a3
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-ru_RU.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Ничего не выбрано",noneResultsText:"Совпадений не найдено {0}",countSelectedText:"Выбрано {0} из {1}",maxOptionsText:["Достигнут предел ({n} {var} максимум)","Достигнут предел в группе ({n} {var} максимум)",["items","item"]],doneButtonText:"Закрыть",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-sk_SK.js b/assets/lib/bootstrap-select/js/i18n/defaults-sk_SK.js
new file mode 100644
index 0000000..d9083ab
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-sk_SK.js
@@ -0,0 +1,37 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Vyberte zo zoznamu',
+ noneResultsText: 'Pre výraz {0} neboli nájdené žiadne výsledky',
+ countSelectedText: 'Vybrané {0} z {1}',
+ maxOptionsText: ['Limit prekročený ({n} {var} max)', 'Limit skupiny prekročený ({n} {var} max)', ['položiek', 'položka']],
+ selectAllText: 'Vybrať všetky',
+ deselectAllText: 'Zrušiť výber',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-sk_SK.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-sk_SK.min.js
new file mode 100644
index 0000000..ca58430
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-sk_SK.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Vyberte zo zoznamu",noneResultsText:"Pre výraz {0} neboli nájdené žiadne výsledky",countSelectedText:"Vybrané {0} z {1}",maxOptionsText:["Limit prekročený ({n} {var} max)","Limit skupiny prekročený ({n} {var} max)",["položiek","položka"]],selectAllText:"Vybrať všetky",deselectAllText:"Zrušiť výber",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-sl_SI.js b/assets/lib/bootstrap-select/js/i18n/defaults-sl_SI.js
new file mode 100644
index 0000000..3c57537
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-sl_SI.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Nič izbranega',
+ noneResultsText: 'Ni zadetkov za {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ "Število izbranih: {0}";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ 'Omejitev dosežena (max. izbranih: {n})',
+ 'Omejitev skupine dosežena (max. izbranih: {n})'
+ ];
+ },
+ selectAllText: 'Izberi vse',
+ deselectAllText: 'Počisti izbor',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-sl_SI.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-sl_SI.min.js
new file mode 100644
index 0000000..c00ae9e
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-sl_SI.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nič izbranega",noneResultsText:"Ni zadetkov za {0}",countSelectedText:function(a,b){"Število izbranih: {0}"},maxOptionsText:function(a,b){return["Omejitev dosežena (max. izbranih: {n})","Omejitev skupine dosežena (max. izbranih: {n})"]},selectAllText:"Izberi vse",deselectAllText:"Počisti izbor",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-sv_SE.js b/assets/lib/bootstrap-select/js/i18n/defaults-sv_SE.js
new file mode 100644
index 0000000..b764896
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-sv_SE.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Inget valt',
+ noneResultsText: 'Inget sökresultat matchar {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected === 1) ? "{0} alternativ valt" : "{0} alternativ valda";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ 'Gräns uppnåd (max {n} alternativ)',
+ 'Gräns uppnåd (max {n} gruppalternativ)'
+ ];
+ },
+ selectAllText: 'Markera alla',
+ deselectAllText: 'Avmarkera alla',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-sv_SE.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-sv_SE.min.js
new file mode 100644
index 0000000..2e82662
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-sv_SE.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Inget valt",noneResultsText:"Inget sökresultat matchar {0}",countSelectedText:function(a,b){return 1===a?"{0} alternativ valt":"{0} alternativ valda"},maxOptionsText:function(a,b){return["Gräns uppnåd (max {n} alternativ)","Gräns uppnåd (max {n} gruppalternativ)"]},selectAllText:"Markera alla",deselectAllText:"Avmarkera alla",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-tr_TR.js b/assets/lib/bootstrap-select/js/i18n/defaults-tr_TR.js
new file mode 100644
index 0000000..b03cf55
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-tr_TR.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Hiçbiri seçilmedi',
+ noneResultsText: 'Hiçbir sonuç bulunamadı {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return (numSelected == 1) ? "{0} öğe seçildi" : "{0} öğe seçildi";
+ },
+ maxOptionsText: function (numAll, numGroup) {
+ return [
+ (numAll == 1) ? 'Limit aşıldı (maksimum {n} sayıda öğe )' : 'Limit aşıldı (maksimum {n} sayıda öğe)',
+ (numGroup == 1) ? 'Grup limiti aşıldı (maksimum {n} sayıda öğe)' : 'Grup limiti aşıldı (maksimum {n} sayıda öğe)'
+ ];
+ },
+ selectAllText: 'Tümünü Seç',
+ deselectAllText: 'Seçiniz',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-tr_TR.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-tr_TR.min.js
new file mode 100644
index 0000000..7a7c696
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-tr_TR.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Hiçbiri seçilmedi",noneResultsText:"Hiçbir sonuç bulunamadı {0}",countSelectedText:function(a,b){return"{0} öğe seçildi"},maxOptionsText:function(a,b){return[1==a?"Limit aşıldı (maksimum {n} sayıda öğe )":"Limit aşıldı (maksimum {n} sayıda öğe)","Grup limiti aşıldı (maksimum {n} sayıda öğe)"]},selectAllText:"Tümünü Seç",deselectAllText:"Seçiniz",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-ua_UA.js b/assets/lib/bootstrap-select/js/i18n/defaults-ua_UA.js
new file mode 100644
index 0000000..690523c
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-ua_UA.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Нічого не вибрано',
+ noneResultsText: 'Збігів не знайдено {0}',
+ countSelectedText: 'Вибрано {0} із {1}',
+ maxOptionsText: ['Досягнута межа ({n} {var} максимум)', 'Досягнута межа в групі ({n} {var} максимум)', ['items', 'item']],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-ua_UA.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-ua_UA.min.js
new file mode 100644
index 0000000..6ce4b89
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-ua_UA.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Нічого не вибрано",noneResultsText:"Збігів не знайдено {0}",countSelectedText:"Вибрано {0} із {1}",maxOptionsText:["Досягнута межа ({n} {var} максимум)","Досягнута межа в групі ({n} {var} максимум)",["items","item"]],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-zh_CN.js b/assets/lib/bootstrap-select/js/i18n/defaults-zh_CN.js
new file mode 100644
index 0000000..3d1582f
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-zh_CN.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: '没有选中任何项',
+ noneResultsText: '没有找到匹配项',
+ countSelectedText: '选中{1}中的{0}项',
+ maxOptionsText: ['超出限制 (最多选择{n}项)', '组选择超出限制(最多选择{n}组)'],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-zh_CN.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-zh_CN.min.js
new file mode 100644
index 0000000..ff0c88d
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-zh_CN.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"没有选中任何项",noneResultsText:"没有找到匹配项",countSelectedText:"选中{1}中的{0}项",maxOptionsText:["超出限制 (最多选择{n}项)","组选择超出限制(最多选择{n}组)"],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-zh_TW.js b/assets/lib/bootstrap-select/js/i18n/defaults-zh_TW.js
new file mode 100644
index 0000000..5da8ea4
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-zh_TW.js
@@ -0,0 +1,37 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module unless amdModuleId is set
+ define(["jquery"], function (a0) {
+ return (factory(a0));
+ });
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+}(this, function (jQuery) {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: '沒有選取任何項目',
+ noneResultsText: '沒有找到符合的結果',
+ countSelectedText: '已經選取{0}個項目',
+ maxOptionsText: ['超過限制 (最多選擇{n}項)', '超過限制(最多選擇{n}組)'],
+ selectAllText: '選取全部',
+ deselectAllText: '全部取消',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/assets/lib/bootstrap-select/js/i18n/defaults-zh_TW.min.js b/assets/lib/bootstrap-select/js/i18n/defaults-zh_TW.min.js
new file mode 100644
index 0000000..68454e1
--- /dev/null
+++ b/assets/lib/bootstrap-select/js/i18n/defaults-zh_TW.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.10.0 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2016 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"沒有選取任何項目",noneResultsText:"沒有找到符合的結果",countSelectedText:"已經選取{0}個項目",maxOptionsText:["超過限制 (最多選擇{n}項)","超過限制(最多選擇{n}組)"],selectAllText:"選取全部",deselectAllText:"全部取消",multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/projects/models.py b/projects/models.py
index 6780283..9a29cb4 100644
--- a/projects/models.py
+++ b/projects/models.py
@@ -125,7 +125,7 @@ class Candidate(models.Model):
status = models.BooleanField(default=False)
def __str__(self):
- return self.user.get_full_name()
+ return self.answer.user.get_full_name()
class Meta:
verbose_name = 'Кандидат'
diff --git a/projects/templates/projects/comparison.html b/projects/templates/projects/comparison.html
index ca8ca0c..6817cfa 100644
--- a/projects/templates/projects/comparison.html
+++ b/projects/templates/projects/comparison.html
@@ -1,4 +1,5 @@
-{% extends "base.html" %}
+
+{% extends 'partials/base.html' %}
{% load staticfiles %}
{% block content %}
diff --git a/projects/templates/projects/portfolio_form.html b/projects/templates/projects/portfolio_form.html
index f2dc34a..95b8a4e 100644
--- a/projects/templates/projects/portfolio_form.html
+++ b/projects/templates/projects/portfolio_form.html
@@ -1,4 +1,4 @@
-{% extends "base.html" %}
+{% extends 'partials/base.html' %}
{% block content %}
Добавление