diff --git a/main/inc/lib/javascript/bootstrap-select/css/bootstrap-select.css b/main/inc/lib/javascript/bootstrap-select/css/bootstrap-select.css
new file mode 100644
index 0000000000..bac4967987
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/css/bootstrap-select.css
@@ -0,0 +1,263 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */
+
+.bootstrap-select {
+ width: 220px \0;
+ /*IE9 and below*/
+}
+.bootstrap-select > .dropdown-toggle {
+ width: 100%;
+ padding-right: 25px;
+}
+.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 .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%;
+ z-index: 1035;
+ -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;
+}
+.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: 1036;
+}
+.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 {
+ float: left;
+ 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%;
+}
+select.bs-select-hidden,
+select.selectpicker {
+ display: none !important;
+}
+select.mobile-device {
+ position: absolute !important;
+ top: 0;
+ left: 0;
+ display: block !important;
+ width: 100%;
+ height: 100% !important;
+ opacity: 0;
+}
+/*# sourceMappingURL=bootstrap-select.css.map */
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/css/bootstrap-select.css.map b/main/inc/lib/javascript/bootstrap-select/css/bootstrap-select.css.map
new file mode 100644
index 0000000000..535fdf23dc
--- /dev/null
+++ b/main/inc/lib/javascript/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\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 }\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 // 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 z-index: @zindex-select-dropdown;\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\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 float: left;\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 }\n}\n\nselect.bs-select-hidden,\nselect.selectpicker {\n display: none !important;\n}\n\nselect.mobile-device {\n position: absolute !important;\n top: 0;\n left: 0;\n display: block !important;\n width: 100%;\n height: 100% !important;\n opacity: 0;\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}\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 .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 z-index: 1035;\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}\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: 1036;\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 float: left;\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}\nselect.bs-select-hidden,\nselect.selectpicker {\n display: none !important;\n}\nselect.mobile-device {\n position: absolute !important;\n top: 0;\n left: 0;\n display: block !important;\n width: 100%;\n height: 100% !important;\n opacity: 0;\n}\n/*# sourceMappingURL=bootstrap-select.css.map */"]}
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/css/bootstrap-select.min.css b/main/inc/lib/javascript/bootstrap-select/css/bootstrap-select.min.css
new file mode 100644
index 0000000000..156f41bfbf
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/css/bootstrap-select.min.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ */.bootstrap-select{width:220px \0}.bootstrap-select>.dropdown-toggle{width:100%;padding-right:25px}.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 .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%;z-index:1035;-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}.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:1036}.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{float:left;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%}select.bs-select-hidden,select.selectpicker{display:none!important}select.mobile-device{position:absolute!important;top:0;left:0;display:block!important;width:100%;height:100%!important;opacity:0}
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/bootstrap-select.js b/main/inc/lib/javascript/bootstrap-select/js/bootstrap-select.js
new file mode 100644
index 0000000000..2ff31d0daf
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/bootstrap-select.js
@@ -0,0 +1,1650 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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 TypeError();
+ }
+ var string = String(this);
+ if (search && toString.call(search) == '[object RegExp]') {
+ throw 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 TypeError();
+ }
+ var string = String(this);
+ if (search && toString.call(search) == '[object RegExp]') {
+ throw 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()).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()).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()).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()).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.remove;
+ this.remove = Selectpicker.prototype.remove;
+ this.show = Selectpicker.prototype.show;
+ this.hide = Selectpicker.prototype.hide;
+
+ this.init();
+ };
+
+ Selectpicker.VERSION = '1.7.2';
+
+ // 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',
+ 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);
+ 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');
+
+ if (this.options.dropdownAlignRight)
+ 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);
+ });
+
+ this.$newElement.on('hidden.bs.dropdown', function (e) {
+ that.$element.trigger('hidden.bs.select', e);
+ });
+
+ this.$newElement.on('show.bs.dropdown', function (e) {
+ that.$element.trigger('show.bs.select', e);
+ });
+
+ this.$newElement.on('shown.bs.dropdown', function (e) {
+ that.$element.trigger('shown.bs.select', e);
+ });
+
+ setTimeout(function () {
+ that.$element.trigger('loaded.bs.select');
+ });
+ },
+
+ createDropdown: function () {
+ // Options
+ // If we are multiple, then add the show-tick class by default
+ var multiple = this.multiple ? ' 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.
+ if ($(element.options[element.selectedIndex]).attr('selected') === undefined) 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' ? ' ' : '',
+ isDisabled = this.disabled || (this.parentElement.tagName === 'OPTGROUP' && this.parentElement.disabled);
+
+ if (icon !== '' && isDisabled) {
+ icon = '' + icon + '';
+ }
+
+ if (that.options.hideDisabled && isDisabled) {
+ liIndex--;
+ return;
+ }
+
+ if (!$this.data('content')) {
+ // Prepend any icon and append any subtext to the main text.
+ text = icon + '' + text + subtext + '';
+ }
+
+ if (this.parentElement.tagName === 'OPTGROUP' && $this.data('divider') !== true) {
+ var optGroupClass = ' ' + this.parentElement.className || '';
+
+ if ($this.index() === 0) { // Is it the first option of the optgroup?
+ optID += 1;
+
+ // Get the opt group label
+ var label = this.parentElement.label,
+ labelSubtext = typeof $this.parent().data('subtext') !== 'undefined' ? '' + $this.parent().data('subtext') + '' : '',
+ labelIcon = $this.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));
+ }
+ _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 {
+ if (this.previousElementSibling && this.previousElementSibling.tagName === 'OPTGROUP') {
+ 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.parentElement.tagName === 'OPTGROUP' && this.parentElement.disabled, $lis);
+ that.setSelected(index, this.selected, $lis);
+ });
+ }
+
+ this.tabIndex();
+
+ var selectedItems = this.$element.find('option').map(function () {
+ if (this.selected) {
+ if (that.options.hideDisabled && (this.disabled || this.parentElement.tagName === 'OPTGROUP' && this.parentElement.disabled)) return false;
+
+ 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')[0].cloneNode(true) : null,
+ search = this.options.liveSearch ? document.createElement('div') : null,
+ actions = this.options.actionsBox && this.multiple ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null,
+ doneButton = this.options.doneButton && this.multiple ? 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 = 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')),
+ menuExtras = menuPadding +
+ parseInt(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) +
+ parseInt(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 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,
+ 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,
+ getHeight,
+ selectOffsetTop,
+ selectOffsetBot,
+ posVert = function () {
+ selectOffsetTop = that.$newElement.offset().top - $window.scrollTop();
+ selectOffsetBot = $window.height() - selectOffsetTop - selectHeight;
+ };
+
+ posVert();
+
+ 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');
+
+ posVert();
+ menuHeight = selectOffsetBot - menuExtras;
+
+ 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) {
+ that.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && (menuHeight - menuExtras) < getHeight);
+ }
+ if (that.$newElement.hasClass('dropup')) {
+ menuHeight = selectOffsetTop - menuExtras;
+ }
+
+ if ((lisVisible.length + optGroup.length) > 3) {
+ minHeight = liHeight * 3 + menuExtras - 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 + 'px',
+ 'overflow-y': 'auto',
+ 'min-height': Math.max(minHeight - menuPadding, 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;
+
+ 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) < getHeight);
+ }
+ $menu.css({
+ 'max-height': menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px',
+ 'overflow': 'hidden',
+ 'min-height': ''
+ });
+ $menuInner.css({
+ 'max-height': menuHeight - menuPadding + '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 () {
+ var that = this,
+ drop = '',
+ $drop = $(drop),
+ pos,
+ actualHeight,
+ getPlacement = function ($element) {
+ $drop.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;
+ $drop.css({
+ 'top': pos.top + actualHeight,
+ 'left': pos.left,
+ 'width': $element[0].offsetWidth,
+ 'position': 'absolute'
+ });
+ };
+
+ this.$newElement.on('click', function () {
+ if (that.isDisabled()) {
+ return;
+ }
+ getPlacement($(this));
+ $drop.appendTo(that.options.container);
+ $drop.toggleClass('open', !$(this).hasClass('open'));
+ $drop.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());
+ $drop.detach();
+ });
+ },
+
+ setSelected: function (index, selected, $lis) {
+ if (!$lis) {
+ var $lis = this.findLis().eq(this.liObj[index]);
+ }
+
+ $lis.toggleClass('selected', selected);
+ },
+
+ setDisabled: function (index, disabled, $lis) {
+ if (!$lis) {
+ var $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();
+ });
+ },
+
+ tabIndex: function () {
+ if (this.$element.is('[tabindex]')) {
+ this.$element.data('tabindex', this.$element.attr('tabindex'));
+ this.$button.attr('tabindex', this.$element.data('tabindex'));
+ }
+ },
+
+ 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.$newElement.on('click', function () {
+ that.setSize();
+ that.$element.on('shown.bs.select', function () {
+ if (!that.options.liveSearch && !that.multiple) {
+ that.$menu.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.$menu.on('click', 'li a', function (e) {
+ var $this = $(this),
+ clickedIndex = $this.parent().data('originalIndex'),
+ prevValue = that.$element.val(),
+ prevIndex = that.$element.prop('selectedIndex');
+
+ // Don't close on multi choice menu
+ if (that.multiple) {
+ 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.$menu.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.$menu.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.$menu.find('[data-optgroup="' + optgroupID + '"]').removeClass('selected');
+ that.setSelected(clickedIndex, true);
+ } else {
+ var maxOptionsArr = (typeof that.options.maxOptionsText === 'function') ?
+ that.options.maxOptionsText(maxOptions, maxOptionsGrp) : that.options.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 + '
'));
+ that.$element.trigger('maxReached.bs.select');
+ }
+
+ if (maxOptionsGrp && maxReachedGrp) {
+ $notify.append($('' + maxTxtGrp + '
'));
+ 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.$button.focus();
+ } else if (that.options.liveSearch) {
+ that.$searchbox.focus();
+ }
+
+ // Trigger select 'change'
+ if ((prevValue != that.$element.val() && that.multiple) || (prevIndex != that.$element.prop('selectedIndex') && !that.multiple)) {
+ that.$element.triggerNative('change');
+ // $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]);
+ }
+ }
+ });
+
+ 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.$menu.on('click', 'li.divider, li.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();
+ }
+ that.$element.triggerNative('change');
+ });
+
+ this.$element.change(function () {
+ that.render(false);
+ });
+ },
+
+ liveSearchListener: function () {
+ var that = this,
+ $no_results = $('');
+
+ this.$newElement.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.eq(0).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 style = 'icontains';
+ switch (this.options.liveSearchStyle) {
+ case 'begins':
+ case 'startsWith':
+ style = 'ibegins';
+ break;
+ case 'contains':
+ default:
+ break; //no need to change the default
+ }
+
+ return style;
+ },
+
+ val: function (value) {
+ if (typeof value !== 'undefined') {
+ this.$element.val(value);
+ this.render();
+
+ return this.$element;
+ } else {
+ return this.$element.val();
+ }
+ },
+
+ selectAll: function () {
+ this.findLis();
+ this.$element.find('option:enabled').not('[data-divider], [data-hidden]').prop('selected', true);
+ this.$lis.not('.divider, .dropdown-header, .disabled, .hidden').addClass('selected');
+ this.render(false);
+ },
+
+ deselectAll: function () {
+ this.findLis();
+ this.$element.find('option:enabled').not('[data-divider], [data-hidden]').prop('selected', false);
+ this.$lis.not('.divider, .dropdown-header, .disabled, .hidden').removeClass('selected');
+ this.render(false);
+ },
+
+ 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 a', $parent);
+
+ isActive = that.$menu.parent().hasClass('open');
+
+ if (!isActive && (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 65 && e.keyCode <= 90)) {
+ if (!that.options.container) {
+ that.setSize();
+ that.$menu.parent().addClass('open');
+ isActive = true;
+ } else {
+ that.$newElement.trigger('click');
+ }
+ that.$searchbox.focus();
+ }
+
+ 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:not(.disabled, .hidden, .dropdown-header, .divider)', $parent);
+ if (!$this.val() && !/(38|40)/.test(e.keyCode.toString(10))) {
+ if ($items.filter('.active').length === 0) {
+ $items = that.$newElement.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.filter(':focus'));
+ first = $items.parent(selector).first().data('originalIndex');
+ last = $items.parent(selector).last().data('originalIndex');
+ next = $items.eq(index).parent().nextAll(selector).eq(0).data('originalIndex');
+ prev = $items.eq(index).parent().prevAll(selector).eq(0).data('originalIndex');
+ nextPrev = $items.eq(next).parent().prevAll(selector).eq(0).data('originalIndex');
+
+ 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 -= 1;
+ 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 += 1;
+ 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).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).parent().hasClass('disabled')) {
+ if ($.trim($(this).text().toLowerCase()).substring(0, 1) == keyCodeMap[e.keyCode]) {
+ keyIndex.push($(this).parent().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]).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.$menu.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').appendTo(this.$newElement);
+ if (this.options.container) this.$menu.hide();
+ },
+
+ 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();
+ }
+ };
+
+ // 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);
+ $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', '.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/main/inc/lib/javascript/bootstrap-select/js/bootstrap-select.js.map b/main/inc/lib/javascript/bootstrap-select/js/bootstrap-select.js.map
new file mode 100644
index 0000000000..5b851e9921
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/bootstrap-select.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bootstrap-select.min.js","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","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","maxOptions","mobile","selectOnTab","dropdownAlignRight","constructor","that","id","addClass","liObj","multiple","prop","autofocus","createView","after","children","$menuInner","$searchbox","find","click","focus","checkDisabled","clickListener","liveSearchListener","setWidth","selectPosition","on","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","selectedIndex","selected","optionClass","cssText","subtext","icon","isDisabled","disabled","parentElement","tagName","optGroupClass","label","labelSubtext","labelIcon","previousElementSibling","eq","findLis","updateLi","notDisabled","setDisabled","setSelected","tabIndex","selectedItems","map","toArray","split","totalCount","not","tr8nText","trim","status","buttonClass","removeClass","liHeight","sizeInfo","newElement","menu","menuInner","divider","a","cloneNode","actions","parentNode","input","body","offsetHeight","headerHeight","searchHeight","actionsHeight","doneButtonHeight","dividerHeight","outerHeight","menuStyle","getComputedStyle","menuPadding","parseInt","paddingTop","css","paddingBottom","borderTopWidth","borderBottomWidth","menuExtras","marginTop","marginBottom","removeChild","setSize","menuHeight","getHeight","selectOffsetTop","selectOffsetBot","$window","window","selectHeight","divHeight","posVert","offset","top","scrollTop","height","getSize","minHeight","include","classList","contains","lis","getElementsByTagName","lisVisible","Array","filter","optGroup","toggleClass","max-height","overflow","min-height","overflow-y","off","optIndex","slice","last","divLength","$selectClone","clone","appendTo","$selectClone2","ulWidth","outerWidth","btnWidth","actualHeight","getPlacement","left","offsetWidth","append","detach","removeAttr","$document","keyCode","offsetTop","clickedIndex","prevValue","prevIndex","$options","$option","state","$optgroup","maxOptionsGrp","blur","maxReached","maxReachedGrp","optgroupID","maxOptionsArr","maxTxt","maxTxtGrp","$notify","delay","fadeOut","currentTarget","target","change","$no_results","$searchBase","_searchStyle","$lisVisible","keydown","$items","next","first","prev","nextPrev","isActive","$parent","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","prevAll","count","prevKey","keyIndex","toLowerCase","substring","elem","old","Constructor","noConflict","$selectpicker"],"mappings":"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"}
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/bootstrap-select.min.js b/main/inc/lib/javascript/bootstrap-select/js/bootstrap-select.min.js
new file mode 100644
index 0000000000..95b1c9e1dc
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/bootstrap-select.min.js
@@ -0,0 +1,8 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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);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 TypeError();var d=String(this);if(b&&"[object RegExp]"==a.call(b))throw 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 TypeError();var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw 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'+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),void 0===a(k.options[k.selectedIndex]).attr("selected")&&(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=this.disabled||"OPTGROUP"===this.parentElement.tagName&&this.parentElement.disabled;if(""!==o&&p&&(o=""+o+""),d.options.hideDisabled&&p)return void h--;if(c.data("content")||(l=o+''+l+n+""),"OPTGROUP"===this.parentElement.tagName&&c.data("divider")!==!0){var q=" "+this.parentElement.className||"";if(0===c.index()){f+=1;var r=this.parentElement.label,s="undefined"!=typeof c.parent().data("subtext")?''+c.parent().data("subtext")+"":"",t=c.parent().data("icon")?' ':"";r=t+''+r+s+"",0!==b&&e.length>0&&(h++,e.push(i("",null,"divider",f+"div"))),h++,e.push(i(r,null,"dropdown-header"+q,f))}e.push(i(j(l,"opt "+g+q,k,m),b,"",f))}else c.data("divider")===!0?e.push(i("",b,"divider")):c.data("hidden")===!0?e.push(i(j(l,g,k,m),b,"hidden is-hidden")):(this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName&&(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.parentElement.tagName&&this.parentElement.disabled,b),d.setSelected(a,this.selected,b)}),this.tabIndex();var e=this.$element.find("option").map(function(){if(this.selected){if(d.options.hideDisabled&&(this.disabled||"OPTGROUP"===this.parentElement.tagName&&this.parentElement.disabled))return!1;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")[0].cloneNode(!0):null,k=this.options.liveSearch?document.createElement("div"):null,l=this.options.actionsBox&&this.multiple?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,m=this.options.doneButton&&this.multiple?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=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")),x=w+parseInt(u?u.marginTop:v.css("marginTop"))+parseInt(u?u.marginBottom:v.css("marginBottom"))+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=this,g=this.$menu,h=this.$menuInner,i=a(window),j=this.$newElement[0].offsetHeight,k=this.sizeInfo.liHeight,l=this.sizeInfo.headerHeight,m=this.sizeInfo.searchHeight,n=this.sizeInfo.actionsHeight,o=this.sizeInfo.doneButtonHeight,p=this.sizeInfo.dividerHeight,q=this.sizeInfo.menuPadding,r=this.sizeInfo.menuExtras,s=this.options.hideDisabled?".disabled":"",t=function(){d=f.$newElement.offset().top-i.scrollTop(),e=i.height()-d-j};if(t(),"auto"===this.options.size){var u=function(){var i,j=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))}},p=f.$menuInner[0].getElementsByTagName("li"),s=Array.prototype.filter?Array.prototype.filter.call(p,j("hidden",!1)):f.$lis.not(".hidden"),u=Array.prototype.filter?Array.prototype.filter.call(s,j("dropdown-header",!0)):s.filter(".dropdown-header");t(),b=e-r,f.options.container?(g.data("height")||g.data("height",g.height()),c=g.data("height")):c=g.height(),f.options.dropupAuto&&f.$newElement.toggleClass("dropup",d>e&&c>b-r),f.$newElement.hasClass("dropup")&&(b=d-r),i=s.length+u.length>3?3*k+r-2:0,g.css({"max-height":b+"px",overflow:"hidden","min-height":i+l+m+n+o+"px"}),h.css({"max-height":b-l-m-n-o-q+"px","overflow-y":"auto","min-height":Math.max(i-q,0)+"px"})};u(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",u),i.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize",u)}else if(this.options.size&&"auto"!=this.options.size&&this.$lis.not(s).length>this.options.size){var v=this.$lis.not(".divider").not(s).children().slice(0,this.options.size).last().parent().index(),w=this.$lis.slice(0,v+1).filter(".divider").length;b=k*this.options.size+w*p+q,f.options.container?(g.data("height")||g.data("height",g.height()),c=g.data("height")):c=g.height(),f.options.dropupAuto&&this.$newElement.toggleClass("dropup",d>e&&c>b-r),g.css({"max-height":b+l+m+n+o+"px",overflow:"hidden","min-height":""}),h.css({"max-height":b-q+"px","overflow-y":"auto","min-height":""})}}},setWidth:function(){if("auto"===this.options.width){this.$menu.css("min-width","0");var a=this.$menu.parent().clone().appendTo("body"),b=this.options.container?this.$newElement.clone().appendTo("body"):a,c=a.children(".dropdown-menu").outerWidth(),d=b.css("width","auto").children("button").outerWidth();a.remove(),b.remove(),this.$newElement.css("width",Math.max(c,d)+"px")}else"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width",""));this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){var b,c,d=this,e="",f=a(e),g=function(a){f.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,f.css({top:b.top+c,left:b.left,width:a[0].offsetWidth,position:"absolute"})};this.$newElement.on("click",function(){d.isDisabled()||(g(a(this)),f.appendTo(d.options.container),f.toggleClass("open",!a(this).hasClass("open")),f.append(d.$menu))}),a(window).on("resize scroll",function(){g(d.$newElement)}),this.$element.on("hide.bs.select",function(){d.$menu.data("height",d.$menu.height()),f.detach()})},setSelected:function(a,b,c){if(!c)var c=this.findLis().eq(this.liObj[a]);c.toggleClass("selected",b)},setDisabled:function(a,b,c){if(!c)var 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()})},tabIndex:function(){this.$element.is("[tabindex]")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex")))},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.$newElement.on("click",function(){b.setSize(),b.$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.$menu.find(".selected a").focus()})}),this.$menu.on("click","li a",function(c){var d=a(this),e=d.parent().data("originalIndex"),f=b.$element.val(),g=b.$element.prop("selectedIndex");if(b.multiple&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var h=b.$element.find("option"),i=h.eq(e),j=i.prop("selected"),k=i.parent("optgroup"),l=b.options.maxOptions,m=k.data("maxOptions")||!1;if(b.multiple){if(i.prop("selected",!j),b.setSelected(e,!j),d.blur(),l!==!1||m!==!1){var n=l');q[2]&&(r=r.replace("{var}",q[2][l>1?0:1]),s=s.replace("{var}",q[2][m>1?0:1])),i.prop("selected",!1),b.$menu.append(t),l&&n&&(t.append(a(""+r+"
")),b.$element.trigger("maxReached.bs.select")),m&&o&&(t.append(a(""+s+"
")),b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(e,!1)},10),t.delay(750).fadeOut(300,function(){a(this).remove()})}}}else h.prop("selected",!1),i.prop("selected",!0),b.$menu.find(".selected").removeClass("selected"),b.setSelected(e,!0);b.multiple?b.options.liveSearch&&b.$searchbox.focus():b.$button.focus(),(f!=b.$element.val()&&b.multiple||g!=b.$element.prop("selectedIndex")&&!b.multiple)&&(b.$element.triggerNative("change"),b.$element.trigger("changed.bs.select",[e,i.prop("selected"),j]))}}),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.$menu.on("click","li.divider, li.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(),b.$element.triggerNative("change")}),this.$element.change(function(){b.render(!1)})},liveSearchListener:function(){var d=this,e=a('');this.$newElement.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.eq(0).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="icontains";switch(this.options.liveSearchStyle){case"begins":case"startsWith":a="ibegins";break;case"contains":}return a},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},selectAll:function(){this.findLis(),this.$element.find("option:enabled").not("[data-divider], [data-hidden]").prop("selected",!0),this.$lis.not(".divider, .dropdown-header, .disabled, .hidden").addClass("selected"),this.render(!1)},deselectAll:function(){this.findLis(),this.$element.find("option:enabled").not("[data-divider], [data-hidden]").prop("selected",!1),this.$lis.not(".divider, .dropdown-header, .disabled, .hidden").removeClass("selected"),this.render(!1)},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 a",n),l=o.$menu.parent().hasClass("open"),!l&&(c.keyCode>=48&&c.keyCode<=57||c.keyCode>=65&&c.keyCode<=90)&&(o.options.container?o.$newElement.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),o.$searchbox.focus()),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:not(.disabled, .hidden, .dropdown-header, .divider)",n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$newElement.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.filter(":focus")),g=d.parent(p).first().data("originalIndex"),h=d.parent(p).last().data("originalIndex"),f=d.eq(e).parent().nextAll(p).eq(0).data("originalIndex"),i=d.eq(e).parent().prevAll(p).eq(0).data("originalIndex"),j=d.eq(f).parent().prevAll(p).eq(0).data("originalIndex"),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-=1),e!=j&&e>i&&(e=i),g>e&&(e=g),e==k&&(e=h)):40==c.keyCode&&(o.options.liveSearch&&(e+=1),-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).focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).parent().hasClass("disabled")||a.trim(a(this).text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).parent().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]).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.$menu.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").appendTo(this.$newElement),this.options.container&&this.$menu.hide()},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()}};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",'.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())})})}(jQuery)});
+//# sourceMappingURL=bootstrap-select.js.map
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-bg_BG.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-bg_BG.js
new file mode 100644
index 0000000000..3f714ae558
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-bg_BG.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-bg_BG.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-bg_BG.min.js
new file mode 100644
index 0000000000..3475f21a74
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-bg_BG.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-cs_CZ.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-cs_CZ.js
new file mode 100644
index 0000000000..cfe317dae2
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-cs_CZ.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-cs_CZ.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-cs_CZ.min.js
new file mode 100644
index 0000000000..c3890f69fc
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-cs_CZ.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-da_DK.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-da_DK.js
new file mode 100644
index 0000000000..9b905bd12e
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-da_DK.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-da_DK.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-da_DK.min.js
new file mode 100644
index 0000000000..df4030a487
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-da_DK.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-de_DE.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-de_DE.js
new file mode 100644
index 0000000000..ba350b395e
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-de_DE.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-de_DE.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-de_DE.min.js
new file mode 100644
index 0000000000..3866e0448b
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-de_DE.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-en_US.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-en_US.js
new file mode 100644
index 0000000000..118c78c8ea
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-en_US.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-en_US.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-en_US.min.js
new file mode 100644
index 0000000000..5d683fb21c
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-en_US.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-es_CL.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-es_CL.js
new file mode 100644
index 0000000000..e2a9911990
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-es_CL.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-es_CL.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-es_CL.min.js
new file mode 100644
index 0000000000..651bd10de1
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-es_CL.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-eu.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-eu.js
new file mode 100644
index 0000000000..ab2728431a
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-eu.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-eu.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-eu.min.js
new file mode 100644
index 0000000000..384bb81689
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-eu.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fa_IR.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fa_IR.js
new file mode 100644
index 0000000000..7edc4d3c6d
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fa_IR.js
@@ -0,0 +1,37 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'چیزی انتخاب نشده است',
+ noneResultsText: 'هیج مشابهی برای {0} پیدا نشد',
+ countSelectedText: "{0} از {1} مورد انتخاب شده",
+ maxOptionsText: ['بیشتر ممکن نیست {حداکثر {n} عدد}', 'بیشتر ممکن نیست {حداکثر {n} عدد}'],
+ selectAllText: 'انتخاب همه',
+ deselectAllText: 'انتخاب هیچ کدام',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fa_IR.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fa_IR.min.js
new file mode 100644
index 0000000000..b45020cf99
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fa_IR.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"چیزی انتخاب نشده است",noneResultsText:"هیج مشابهی برای {0} پیدا نشد",countSelectedText:"{0} از {1} مورد انتخاب شده",maxOptionsText:["بیشتر ممکن نیست {حداکثر {n} عدد}","بیشتر ممکن نیست {حداکثر {n} عدد}"],selectAllText:"انتخاب همه",deselectAllText:"انتخاب هیچ کدام",multipleSeparator:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fr_FR.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fr_FR.js
new file mode 100644
index 0000000000..db77fa3349
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fr_FR.js
@@ -0,0 +1,42 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fr_FR.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fr_FR.min.js
new file mode 100644
index 0000000000..e999af859f
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-fr_FR.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-hu_HU.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-hu_HU.js
new file mode 100644
index 0000000000..4d7f502ae3
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-hu_HU.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Válasszon!',
+ noneResultsText: 'Nincs találat {0}',
+ countSelectedText: function (numSelected, numTotal) {
+ return '{n} 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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-hu_HU.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-hu_HU.min.js
new file mode 100644
index 0000000000..98cdef7072
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-hu_HU.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Válasszon!",noneResultsText:"Nincs találat {0}",countSelectedText:function(a,b){return"{n} 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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-it_IT.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-it_IT.js
new file mode 100644
index 0000000000..f41331d115
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-it_IT.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-it_IT.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-it_IT.min.js
new file mode 100644
index 0000000000..746f011e46
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-it_IT.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ko_KR.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ko_KR.js
new file mode 100644
index 0000000000..823db4c4f0
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ko_KR.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ko_KR.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ko_KR.min.js
new file mode 100644
index 0000000000..73b57451d5
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ko_KR.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-nl_NL.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-nl_NL.js
new file mode 100644
index 0000000000..b53167097a
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-nl_NL.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-nl_NL.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-nl_NL.min.js
new file mode 100644
index 0000000000..07a951e5e9
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-nl_NL.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pl_PL.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pl_PL.js
new file mode 100644
index 0000000000..d7e425157a
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pl_PL.js
@@ -0,0 +1,37 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pl_PL.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pl_PL.min.js
new file mode 100644
index 0000000000..6c0a986ecf
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pl_PL.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_BR.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_BR.js
new file mode 100644
index 0000000000..c899b5e7ec
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_BR.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_BR.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_BR.min.js
new file mode 100644
index 0000000000..af7e2b8029
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_BR.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_PT.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_PT.js
new file mode 100644
index 0000000000..6e840f9c87
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_PT.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_PT.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_PT.min.js
new file mode 100644
index 0000000000..1bdbfca127
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-pt_PT.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ro_RO.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ro_RO.js
new file mode 100644
index 0000000000..7acdcaf2b4
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ro_RO.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ro_RO.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ro_RO.min.js
new file mode 100644
index 0000000000..0bab32a59d
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ro_RO.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ru_RU.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ru_RU.js
new file mode 100644
index 0000000000..6afe385f39
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ru_RU.js
@@ -0,0 +1,36 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Ничего не выбрано',
+ noneResultsText: 'Совпадений не найдено {0}',
+ countSelectedText: 'Выбрано {0} из {1}',
+ maxOptionsText: ['Достигнут предел ({n} {var} максимум)', 'Достигнут предел в группе ({n} {var} максимум)', ['items', 'item']],
+ doneButtonText: 'Закрыть',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ru_RU.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ru_RU.min.js
new file mode 100644
index 0000000000..07b7c430ae
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ru_RU.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Ничего не выбрано",noneResultsText:"Совпадений не найдено {0}",countSelectedText:"Выбрано {0} из {1}",maxOptionsText:["Достигнут предел ({n} {var} максимум)","Достигнут предел в группе ({n} {var} максимум)",["items","item"]],doneButtonText:"Закрыть",multipleSeparator:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sk_SK.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sk_SK.js
new file mode 100644
index 0000000000..6591959b20
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sk_SK.js
@@ -0,0 +1,37 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sk_SK.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sk_SK.min.js
new file mode 100644
index 0000000000..5f2edaf04a
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sk_SK.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sl_SI.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sl_SI.js
new file mode 100644
index 0000000000..4830b33930
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sl_SI.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sl_SI.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sl_SI.min.js
new file mode 100644
index 0000000000..361f503502
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sl_SI.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sv_SE.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sv_SE.js
new file mode 100644
index 0000000000..ec834f95ab
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sv_SE.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sv_SE.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sv_SE.min.js
new file mode 100644
index 0000000000..5cbff5e144
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-sv_SE.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-tr_TR.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-tr_TR.js
new file mode 100644
index 0000000000..027c8c76d0
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-tr_TR.js
@@ -0,0 +1,44 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(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/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-tr_TR.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-tr_TR.min.js
new file mode 100644
index 0000000000..049bf167c4
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-tr_TR.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!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:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ua_UA.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ua_UA.js
new file mode 100644
index 0000000000..35203c238e
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ua_UA.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: 'Нічого не вибрано',
+ noneResultsText: 'Збігів не знайдено {0}',
+ countSelectedText: 'Вибрано {0} із {1}',
+ maxOptionsText: ['Досягнута межа ({n} {var} максимум)', 'Досягнута межа в групі ({n} {var} максимум)', ['items', 'item']],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ua_UA.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ua_UA.min.js
new file mode 100644
index 0000000000..bced6aa8b1
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-ua_UA.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Нічого не вибрано",noneResultsText:"Збігів не знайдено {0}",countSelectedText:"Вибрано {0} із {1}",maxOptionsText:["Досягнута межа ({n} {var} максимум)","Досягнута межа в групі ({n} {var} максимум)",["items","item"]],multipleSeparator:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_CN.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_CN.js
new file mode 100644
index 0000000000..2a9fa34529
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_CN.js
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: '没有选中任何项',
+ noneResultsText: '没有找到匹配项',
+ countSelectedText: '选中{1}中的{0}项',
+ maxOptionsText: ['超出限制 (最多选择{n}项)', '组选择超出限制(最多选择{n}组)'],
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_CN.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_CN.min.js
new file mode 100644
index 0000000000..bb7023bff0
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_CN.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"没有选中任何项",noneResultsText:"没有找到匹配项",countSelectedText:"选中{1}中的{0}项",maxOptionsText:["超出限制 (最多选择{n}项)","组选择超出限制(最多选择{n}组)"],multipleSeparator:", "}}(jQuery)});
\ No newline at end of file
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_TW.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_TW.js
new file mode 100644
index 0000000000..33ce805741
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_TW.js
@@ -0,0 +1,37 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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 () {
+
+(function ($) {
+ $.fn.selectpicker.defaults = {
+ noneSelectedText: '沒有選取任何項目',
+ noneResultsText: '沒有找到符合的結果',
+ countSelectedText: '已經選取{0}個項目',
+ maxOptionsText: ['超過限制 (最多選擇{n}項)', '超過限制(最多選擇{n}組)'],
+ selectAllText: '選取全部',
+ deselectAllText: '全部取消',
+ multipleSeparator: ', '
+ };
+})(jQuery);
+
+
+}));
diff --git a/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_TW.min.js b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_TW.min.js
new file mode 100644
index 0000000000..7e871b80d1
--- /dev/null
+++ b/main/inc/lib/javascript/bootstrap-select/js/i18n/defaults-zh_TW.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap-select v1.7.3 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 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(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"沒有選取任何項目",noneResultsText:"沒有找到符合的結果",countSelectedText:"已經選取{0}個項目",maxOptionsText:["超過限制 (最多選擇{n}項)","超過限制(最多選擇{n}組)"],selectAllText:"選取全部",deselectAllText:"全部取消",multipleSeparator:", "}}(jQuery)});
\ No newline at end of file