diff --git a/vendor/bootstrap-toggle/Gruntfile.js b/vendor/bootstrap-toggle/Gruntfile.js
new file mode 100644
index 00000000..9ac6fc52
--- /dev/null
+++ b/vendor/bootstrap-toggle/Gruntfile.js
@@ -0,0 +1,37 @@
+module.exports = function(grunt) {
+ 'use strict';
+
+ grunt.initConfig({
+ clean: ['dist'],
+ uglify: {
+ options: {
+ preserveComments: 'some',
+ sourceMap: true
+ },
+ build: {
+ expand: true,
+ cwd: 'js',
+ src: ['**/*.js', ['!**/*.min.js']],
+ dest: 'js',
+ ext: '.min.js',
+ }
+ },
+ cssmin: {
+ options: {
+ keepBreaks: true
+ },
+ build: {
+ expand: true,
+ cwd: 'css',
+ src: ['**/*.css', ['!**/*.min.css']],
+ dest: 'css',
+ ext: '.min.css',
+ }
+ }
+ });
+ grunt.loadNpmTasks('grunt-contrib-clean');
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-contrib-cssmin');
+ grunt.registerTask('default', ['clean', 'uglify', 'cssmin']);
+
+};
\ No newline at end of file
diff --git a/vendor/bootstrap-toggle/LICENSE b/vendor/bootstrap-toggle/LICENSE
new file mode 100644
index 00000000..88bb5abf
--- /dev/null
+++ b/vendor/bootstrap-toggle/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2011-2014 Min Hur, The New York Times Company
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/vendor/bootstrap-toggle/README.md b/vendor/bootstrap-toggle/README.md
new file mode 100644
index 00000000..f9c0dcd4
--- /dev/null
+++ b/vendor/bootstrap-toggle/README.md
@@ -0,0 +1,175 @@
+# Bootstrap Toggle
+Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles.
+
+Visit http://www.bootstraptoggle.com for demos.
+
+## Getting Started
+
+### Installation
+You can [download](https://github.com/minhur/bootstrap-toggle/archive/master.zip) the latest version of Bootstrap Toggle or use CDN to load the library.
+
+`Warning` If you are using Bootstrap v2.3.2, use `bootstrap2-toggle.min.js` and `bootstrap2-toggle.min.css` instead.
+
+```html
+
+
+```
+
+### Bower Install
+```bash
+bower install bootstrap-toggle
+```
+
+## Usage
+
+### Basic example
+Simply add `data-toggle="toggle"` to convert checkboxes into toggles.
+
+```html
+
+```
+
+### Stacked checkboxes
+Refer to Bootstrap Form Controls documentation to create stacked checkboxes. Simply add `data-toggle="toggle"` to convert checkboxes into toggles.
+
+```html
+
+
+
+
+
+
+```
+
+### Inline Checkboxes
+Refer to Bootstrap Form Controls documentation to create inline checkboxes. Simply add `data-toggle="toggle"` to a convert checkboxes into toggles.
+
+```html
+
+
+
+```
+
+## API
+
+### Initialize by JavaScript
+Initialize toggles with id `toggle-one` with a single line of JavaScript.
+
+```html
+
+
+```
+
+### Options
+Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-on="Enabled"`.
+
+```html
+
+
+
+```
+
+Name|Type|Default|Description|
+---|---|---|---
+on|string/html|"On"|Text of the on toggle
+off|string/html|"Off"|Text of the off toggle
+size|string|"normal"|Size of the toggle. Possible values are `large`, `normal`, `small`, `mini`.
+onstyle|string|"primary"|Style of the on toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger`
+offstyle|string|"default"|Style of the off toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger`
+style|string| |Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference.
+width|integer|*null*|Sets the width of the toggle. if set to *null*, width will be calculated.
+height|integer|*null*|Sets the height of the toggle. if set to *null*, height will be calculated.
+
+### Methods
+Methods can be used to control toggles directly.
+
+```html
+
+```
+
+Method|Example|Description
+---|---|---
+initialize|$('#toggle-demo').bootstrapToggle()|Initializes the toggle plugin with options
+destroy|$('#toggle-demo').bootstrapToggle('destroy')|Destroys the toggle
+on|$('#toggle-demo').bootstrapToggle('on')|Sets the toggle to 'On' state
+off|$('#toggle-demo').bootstrapToggle('off')|Sets the toggle to 'Off' state
+toggle|$('#toggle-demo').bootstrapToggle('toggle')|Toggles the state of the toggle
+enable|$('#toggle-demo').bootstrapToggle('enable')|Enables the toggle
+disable|$('#toggle-demo').bootstrapToggle('disable')|Disables the toggle
+
+## Events
+
+### Event Propagation
+Note All events are propagated to and from input element to the toggle.
+
+You should listen to events from the `` directly rather than look for custom events.
+
+```html
+
+
+
+```
+
+### API vs Input
+This also means that using the API or Input to trigger events will work both ways.
+
+```html
+
+
+
+
+
+
+```
+
+### Integration
+
+#### [KnockoutJS](http://knockoutjs.com)
+
+A binding for knockout is available here: [aAXEe/knockout-bootstrap-toggle](https://github.com/aAXEe/knockout-bootstrap-toggle)
+
+## Demos
+
+Visit http://www.bootstraptoggle.com for demos.
diff --git a/vendor/bootstrap-toggle/bower.json b/vendor/bootstrap-toggle/bower.json
new file mode 100644
index 00000000..9d941dff
--- /dev/null
+++ b/vendor/bootstrap-toggle/bower.json
@@ -0,0 +1,32 @@
+{
+ "name": "bootstrap-toggle",
+ "description": "Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles",
+ "version": "2.2.1",
+ "keywords": [
+ "bootstrap",
+ "toggle",
+ "bootstrap-toggle",
+ "switch",
+ "bootstrap-switch"
+ ],
+ "homepage": "http://www.bootstraptoggle.com",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/minhur/bootstrap-toggle.git"
+ },
+ "license": "MIT",
+ "authors": [
+ "Min Hur "
+ ],
+ "main": [
+ "./js/bootstrap-toggle.min.js",
+ "./css/bootstrap-toggle.min.css"
+ ],
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "test",
+ "tests"
+ ]
+}
diff --git a/vendor/bootstrap-toggle/css/bootstrap-toggle.css b/vendor/bootstrap-toggle/css/bootstrap-toggle.css
new file mode 100644
index 00000000..057d08b3
--- /dev/null
+++ b/vendor/bootstrap-toggle/css/bootstrap-toggle.css
@@ -0,0 +1,83 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap-toggle.css v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
+
+
+.checkbox label .toggle,
+.checkbox-inline .toggle {
+ margin-left: -20px;
+ margin-right: 5px;
+}
+
+.toggle {
+ position: relative;
+ overflow: hidden;
+}
+.toggle input[type="checkbox"] {
+ display: none;
+}
+.toggle-group {
+ position: absolute;
+ width: 200%;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ transition: left 0.35s;
+ -webkit-transition: left 0.35s;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+}
+.toggle.off .toggle-group {
+ left: -100%;
+}
+.toggle-on {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 50%;
+ margin: 0;
+ border: 0;
+ border-radius: 0;
+}
+.toggle-off {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 50%;
+ right: 0;
+ margin: 0;
+ border: 0;
+ border-radius: 0;
+}
+.toggle-handle {
+ position: relative;
+ margin: 0 auto;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ height: 100%;
+ width: 0px;
+ border-width: 0 1px;
+}
+
+.toggle.btn { min-width: 59px; min-height: 34px; }
+.toggle-on.btn { padding-right: 24px; }
+.toggle-off.btn { padding-left: 24px; }
+
+.toggle.btn-lg { min-width: 79px; min-height: 45px; }
+.toggle-on.btn-lg { padding-right: 31px; }
+.toggle-off.btn-lg { padding-left: 31px; }
+.toggle-handle.btn-lg { width: 40px; }
+
+.toggle.btn-sm { min-width: 50px; min-height: 30px;}
+.toggle-on.btn-sm { padding-right: 20px; }
+.toggle-off.btn-sm { padding-left: 20px; }
+
+.toggle.btn-xs { min-width: 35px; min-height: 22px;}
+.toggle-on.btn-xs { padding-right: 12px; }
+.toggle-off.btn-xs { padding-left: 12px; }
+
diff --git a/vendor/bootstrap-toggle/css/bootstrap-toggle.min.css b/vendor/bootstrap-toggle/css/bootstrap-toggle.min.css
new file mode 100644
index 00000000..0d42ed09
--- /dev/null
+++ b/vendor/bootstrap-toggle/css/bootstrap-toggle.min.css
@@ -0,0 +1,28 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap-toggle.css v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
+.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}
+.toggle{position:relative;overflow:hidden}
+.toggle input[type=checkbox]{display:none}
+.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}
+.toggle.off .toggle-group{left:-100%}
+.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}
+.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}
+.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}
+.toggle.btn{min-width:59px;min-height:34px}
+.toggle-on.btn{padding-right:24px}
+.toggle-off.btn{padding-left:24px}
+.toggle.btn-lg{min-width:79px;min-height:45px}
+.toggle-on.btn-lg{padding-right:31px}
+.toggle-off.btn-lg{padding-left:31px}
+.toggle-handle.btn-lg{width:40px}
+.toggle.btn-sm{min-width:50px;min-height:30px}
+.toggle-on.btn-sm{padding-right:20px}
+.toggle-off.btn-sm{padding-left:20px}
+.toggle.btn-xs{min-width:35px;min-height:22px}
+.toggle-on.btn-xs{padding-right:12px}
+.toggle-off.btn-xs{padding-left:12px}
\ No newline at end of file
diff --git a/vendor/bootstrap-toggle/css/bootstrap2-toggle.css b/vendor/bootstrap-toggle/css/bootstrap2-toggle.css
new file mode 100644
index 00000000..3f48927e
--- /dev/null
+++ b/vendor/bootstrap-toggle/css/bootstrap2-toggle.css
@@ -0,0 +1,85 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap2-toggle.css v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
+
+
+label.checkbox .toggle,
+label.checkbox.inline .toggle {
+ margin-left: -20px;
+ margin-right: 5px;
+}
+.toggle {
+ min-width: 40px;
+ height: 20px;
+ position: relative;
+ overflow: hidden;
+}
+.toggle input[type="checkbox"] {
+ display: none;
+}
+.toggle-group {
+ position: absolute;
+ width: 200%;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ transition: left 0.35s;
+ -webkit-transition: left 0.35s;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+}
+.toggle.off .toggle-group {
+ left: -100%;
+}
+.toggle-on {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 50%;
+ margin: 0;
+ border: 0;
+ border-radius: 0;
+}
+.toggle-off {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 50%;
+ right: 0;
+ margin: 0;
+ border: 0;
+ border-radius: 0;
+}
+.toggle-handle {
+ position: relative;
+ margin: 0 auto;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ height: 100%;
+ width: 0px;
+ border-width: 0 1px;
+}
+.toggle-handle.btn-mini {
+ top: -1px;
+}
+.toggle.btn { min-width: 30px; }
+.toggle-on.btn { padding-right: 24px; }
+.toggle-off.btn { padding-left: 24px; }
+
+.toggle.btn-large { min-width: 40px; }
+.toggle-on.btn-large { padding-right: 35px; }
+.toggle-off.btn-large { padding-left: 35px; }
+
+.toggle.btn-small { min-width: 25px; }
+.toggle-on.btn-small { padding-right: 20px; }
+.toggle-off.btn-small { padding-left: 20px; }
+
+.toggle.btn-mini { min-width: 20px; }
+.toggle-on.btn-mini { padding-right: 12px; }
+.toggle-off.btn-mini { padding-left: 12px; }
+
diff --git a/vendor/bootstrap-toggle/css/bootstrap2-toggle.min.css b/vendor/bootstrap-toggle/css/bootstrap2-toggle.min.css
new file mode 100644
index 00000000..1509c573
--- /dev/null
+++ b/vendor/bootstrap-toggle/css/bootstrap2-toggle.min.css
@@ -0,0 +1,28 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap2-toggle.css v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
+label.checkbox .toggle,label.checkbox.inline .toggle{margin-left:-20px;margin-right:5px}
+.toggle{min-width:40px;height:20px;position:relative;overflow:hidden}
+.toggle input[type=checkbox]{display:none}
+.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}
+.toggle.off .toggle-group{left:-100%}
+.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}
+.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}
+.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}
+.toggle-handle.btn-mini{top:-1px}
+.toggle.btn{min-width:30px}
+.toggle-on.btn{padding-right:24px}
+.toggle-off.btn{padding-left:24px}
+.toggle.btn-large{min-width:40px}
+.toggle-on.btn-large{padding-right:35px}
+.toggle-off.btn-large{padding-left:35px}
+.toggle.btn-small{min-width:25px}
+.toggle-on.btn-small{padding-right:20px}
+.toggle-off.btn-small{padding-left:20px}
+.toggle.btn-mini{min-width:20px}
+.toggle-on.btn-mini{padding-right:12px}
+.toggle-off.btn-mini{padding-left:12px}
\ No newline at end of file
diff --git a/vendor/bootstrap-toggle/doc/header.png b/vendor/bootstrap-toggle/doc/header.png
new file mode 100644
index 00000000..eb8d58be
Binary files /dev/null and b/vendor/bootstrap-toggle/doc/header.png differ
diff --git a/vendor/bootstrap-toggle/doc/nyt.png b/vendor/bootstrap-toggle/doc/nyt.png
new file mode 100644
index 00000000..4025f263
Binary files /dev/null and b/vendor/bootstrap-toggle/doc/nyt.png differ
diff --git a/vendor/bootstrap-toggle/doc/nytdev.svg b/vendor/bootstrap-toggle/doc/nytdev.svg
new file mode 100644
index 00000000..39669eeb
--- /dev/null
+++ b/vendor/bootstrap-toggle/doc/nytdev.svg
@@ -0,0 +1,239 @@
+
+
+
+
diff --git a/vendor/bootstrap-toggle/doc/script.js b/vendor/bootstrap-toggle/doc/script.js
new file mode 100644
index 00000000..863728ae
--- /dev/null
+++ b/vendor/bootstrap-toggle/doc/script.js
@@ -0,0 +1,49 @@
++function ($) {
+ 'use strict';
+
+ $('.example:not(.skip)').each(function() {
+ // fetch & encode html
+ var html = $('
Simply add data-toggle="toggle" to convert checkboxes into toggles.
+
+
+
+
+
Stacked checkboxes
+
Refer to Bootstrap Form Controls documentation to create stacked checkboxes. Simply add data-toggle="toggle" to convert checkboxes into toggles.
+
+
+
+
+
+
+
+
+
+
Inline Checkboxes
+
Refer to Bootstrap Form Controls documentation to create inline checkboxes. Simply add data-toggle="toggle" to a convert checkboxes into toggles.
+
+
+
+
+
+
+
+
+
API
+
+
+
Initialize by JavaScript
+
Initialize toggles with id toggle-one with a single line of JavaScript.
+
+
+
+
+
+
Options
+
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-on="Enabled".
+
+
+
+
+
+
+
+
+
+
Name
+
Type
+
Default
+
Description
+
+
+
+
+
on
+
string | html
+
"On"
+
Text of the on toggle
+
+
+
off
+
string | html
+
"Off"
+
Text of the off toggle
+
+
+
size
+
string
+
"normal"
+
+ Size of the toggle. Possible values are:large,normal,small,mini
+ Refer to Bootstrap Button Sizes documentation for more information.
+
+
+
+
onstyle
+
string
+
"primary"
+
+ Style of the on toggle. Possible values are:default,primary,success,info,warning,danger
+ Refer to Bootstrap Button Options documentation for more information.
+
+
+
+
offstyle
+
string
+
"default"
+
+ Style of the off toggle. Possible values are:default,primary,success,info,warning,danger
+ Refer to Bootstrap Button Options documentation for more information.
+
+
+
+
style
+
string
+
+
+ Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference.
+
+
+
+
width
+
integer
+
null
+
+ Sets the width of the toggle. if set to null, width will be calculated.
+
+
+
+
height
+
integer
+
null
+
+ Sets the height of the toggle. if set to null, height will be calculated.
+
+
+
+
+
+
+
Methods
+
Methods can be used to control toggles directly.
+
+
+
+
+
+
+
+
Method
+
Example
+
Description
+
Demo
+
+
+
+
+
initialize
+
$('#toggle-demo').bootstrapToggle()
+
Initializes the toggle plugin with options
+
+
+
+
destroy
+
$('#toggle-demo').bootstrapToggle('destroy')
+
Destroys the toggle
+
+
+
+
on
+
$('#toggle-demo').bootstrapToggle('on')
+
Sets the toggle to 'On' state
+
+
+
+
off
+
$('#toggle-demo').bootstrapToggle('off')
+
Sets the toggle to 'Off' state
+
+
+
+
toggle
+
$('#toggle-demo').bootstrapToggle('toggle')
+
Toggles the state of the toggle
+
+
+
+
enable
+
$('#toggle-demo').bootstrapToggle('enable')
+
Enables the toggle
+
+
+
+
disable
+
$('#toggle-demo').bootstrapToggle('disable')
+
Disables the toggle
+
+
+
+
+
+
+
+
+
+
Events
+
+
+
Event Propagation
+
Note All events are propagated to and from input element to the toggle.
+
You should listen to events from the <input type="checkbox"> directly rather than look for custom events.
+
+
+
+
+
+
+
API vs Input
+
This also means that using the API or Input to trigger events will work both ways.
+
+
+
+
+
+
+
+
+
+
+
+
Demos
+
+
+
Sizes
+
Bootstrap toggle is available in different sizes. Refer to Bootstrap Button Sizes documentation for more information.
+
+
+
+
+
+
+
+
Custom Sizes
+
Bootstrap toggle can handle custom sizes by data-width and data-height options.
+
+
+
+
+
+
+
Colors
+
Bootstrap Toggle supports various colors. Refer to Bootstrap Button Options documentation for more information.
+
+
+
+
+
+
+
+
+
+
Colors Mix
+
You can style on state as well as the off state.
+
+
+
+
+
+
Custom Style
+
Customized styles can be applied as easily.
+
+
+
+
+
+
+
+
Custom Text
+
The text can be changed easily with attributes or options.
+
+
+
+
+
Icons/Html Text
+
You can easily add icons or images since html is supported for on/off text.
+
+
+
+
+
Multiple Lines of Text
+
Toggles with multiple lines will adjust its heights.
+
+
+
+
+
Animation Speed
+
Transition speed can be easily controlled with css transition property on .toggle-group. You can also turn animation off completely.