(function() { function require(path, parent, orig) { var resolved = require.resolve(path); if (null == resolved) { orig = orig || path; parent = parent || "root"; var err = new Error('Failed to require "' + orig + '" from "' + parent + '"'); err.path = orig; err.parent = parent; err.require = true; throw err } var module = require.modules[resolved]; if (!module._resolving && !module.exports) { var mod = {}; mod.exports = {}; mod.client = mod.component = true; module._resolving = true; module.call(this, mod.exports, require.relative(resolved), mod); delete module._resolving; module.exports = mod.exports } return module.exports } require.modules = {}; require.aliases = {}; require.resolve = function(path) { if (path.charAt(0) === "/") path = path.slice(1); var paths = [ path, path + ".js", path + ".json", path + "/index.js", path + "/index.json" ]; for (var i = 0; i < paths.length; i++) { var path = paths[i]; if (require.modules.hasOwnProperty(path)) return path; if (require.aliases.hasOwnProperty(path)) return require.aliases[path] } }; require.normalize = function(curr, path) { var segs = []; if ("." != path.charAt(0)) return path; curr = curr.split("/"); path = path.split("/"); for (var i = 0; i < path.length; ++i) { if (".." == path[i]) { curr.pop() } else if ("." != path[i] && "" != path[i]) { segs.push(path[i]) } } return curr.concat(segs).join("/") }; require.register = function(path, definition) { require.modules[path] = definition }; require.alias = function(from, to) { if (!require.modules.hasOwnProperty(from)) { throw new Error('Failed to alias "' + from + '", it does not exist') } require.aliases[to] = from }; require.relative = function(parent) { var p = require.normalize(parent, ".."); function lastIndexOf(arr, obj) { var i = arr.length; while (i--) { if (arr[i] === obj) return i } return -1 } function localRequire(path) { var resolved = localRequire.resolve(path); return require(resolved, parent, path) } localRequire.resolve = function(path) { var c = path.charAt(0); if ("/" == c) return path.slice(1); if ("." == c) return require.normalize(p, path); var segs = parent.split("/"); var i = lastIndexOf(segs, "deps") + 1; if (!i) i = 0; path = segs.slice(0, i + 1).join("/") + "/deps/" + path; return path }; localRequire.exists = function(path) { return require.modules.hasOwnProperty(localRequire.resolve(path)) }; return localRequire }; require.register("abpetkov-transitionize/transitionize.js", function( exports, require, module) { module.exports = Transitionize; function Transitionize(element, props) { if (!(this instanceof Transitionize)) return new Transitionize(element, props); this.element = element; this.props = props || {}; this.init() } Transitionize.prototype.isSafari = function() { return /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor) }; Transitionize.prototype.init = function() { var transitions = []; for ( var key in this.props) { transitions.push(key + " " + this.props[key]) } this.element.style.transition = transitions.join(", "); if (this.isSafari()) this.element.style.webkitTransition = transitions.join(", ") } }); require .register( "ftlabs-fastclick/lib/fastclick.js", function(exports, require, module) { function FastClick(layer) { "use strict"; var oldOnClick, self = this; this.trackingClick = false; this.trackingClickStart = 0; this.targetElement = null; this.touchStartX = 0; this.touchStartY = 0; this.lastTouchIdentifier = 0; this.touchBoundary = 10; this.layer = layer; if (!layer || !layer.nodeType) { throw new TypeError( "Layer must be a document node") } this.onClick = function() { return FastClick.prototype.onClick.apply(self, arguments) }; this.onMouse = function() { return FastClick.prototype.onMouse.apply(self, arguments) }; this.onTouchStart = function() { return FastClick.prototype.onTouchStart.apply( self, arguments) }; this.onTouchMove = function() { return FastClick.prototype.onTouchMove.apply( self, arguments) }; this.onTouchEnd = function() { return FastClick.prototype.onTouchEnd.apply( self, arguments) }; this.onTouchCancel = function() { return FastClick.prototype.onTouchCancel.apply( self, arguments) }; if (FastClick.notNeeded(layer)) { return } if (this.deviceIsAndroid) { layer.addEventListener("mouseover", this.onMouse, true); layer.addEventListener("mousedown", this.onMouse, true); layer.addEventListener("mouseup", this.onMouse, true) } layer.addEventListener("click", this.onClick, true); layer.addEventListener("touchstart", this.onTouchStart, false); layer.addEventListener("touchmove", this.onTouchMove, false); layer.addEventListener("touchend", this.onTouchEnd, false); layer.addEventListener("touchcancel", this.onTouchCancel, false); if (!Event.prototype.stopImmediatePropagation) { layer.removeEventListener = function(type, callback, capture) { var rmv = Node.prototype.removeEventListener; if (type === "click") { rmv.call(layer, type, callback.hijacked || callback, capture) } else { rmv .call(layer, type, callback, capture) } }; layer.addEventListener = function(type, callback, capture) { var adv = Node.prototype.addEventListener; if (type === "click") { adv .call( layer, type, callback.hijacked || (callback.hijacked = function( event) { if (!event.propagationStopped) { callback(event) } }), capture) } else { adv .call(layer, type, callback, capture) } } } if (typeof layer.onclick === "function") { oldOnClick = layer.onclick; layer.addEventListener("click", function(event) { oldOnClick(event) }, false); layer.onclick = null } } FastClick.prototype.deviceIsAndroid = navigator.userAgent .indexOf("Android") > 0; FastClick.prototype.deviceIsIOS = /iP(ad|hone|od)/ .test(navigator.userAgent); FastClick.prototype.deviceIsIOS4 = FastClick.prototype.deviceIsIOS && /OS 4_\d(_\d)?/.test(navigator.userAgent); FastClick.prototype.deviceIsIOSWithBadTarget = FastClick.prototype.deviceIsIOS && /OS ([6-9]|\d{2})_\d/ .test(navigator.userAgent); FastClick.prototype.needsClick = function(target) { "use strict"; switch (target.nodeName.toLowerCase()) { case "button": case "select": case "textarea": if (target.disabled) { return true } break; case "input": if (this.deviceIsIOS && target.type === "file" || target.disabled) { return true } break; case "label": case "video": return true } return /\bneedsclick\b/.test(target.className) }; FastClick.prototype.needsFocus = function(target) { "use strict"; switch (target.nodeName.toLowerCase()) { case "textarea": return true; case "select": return !this.deviceIsAndroid; case "input": switch (target.type) { case "button": case "checkbox": case "file": case "image": case "radio": case "submit": return false } return !target.disabled && !target.readOnly; default: return /\bneedsfocus\b/.test(target.className) } }; FastClick.prototype.sendClick = function(targetElement, event) { "use strict"; var clickEvent, touch; if (document.activeElement && document.activeElement !== targetElement) { document.activeElement.blur() } touch = event.changedTouches[0]; clickEvent = document.createEvent("MouseEvents"); clickEvent.initMouseEvent(this .determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null); clickEvent.forwardedTouchEvent = true; targetElement.dispatchEvent(clickEvent) }; FastClick.prototype.determineEventType = function( targetElement) { "use strict"; if (this.deviceIsAndroid && targetElement.tagName.toLowerCase() === "select") { return "mousedown" } return "click" }; FastClick.prototype.focus = function(targetElement) { "use strict"; var length; if (this.deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf("date") !== 0 && targetElement.type !== "time") { length = targetElement.value.length; targetElement.setSelectionRange(length, length) } else { targetElement.focus() } }; FastClick.prototype.updateScrollParent = function( targetElement) { "use strict"; var scrollParent, parentElement; scrollParent = targetElement.fastClickScrollParent; if (!scrollParent || !scrollParent.contains(targetElement)) { parentElement = targetElement; do { if (parentElement.scrollHeight > parentElement.offsetHeight) { scrollParent = parentElement; targetElement.fastClickScrollParent = parentElement; break } parentElement = parentElement.parentElement } while (parentElement) } if (scrollParent) { scrollParent.fastClickLastScrollTop = scrollParent.scrollTop } }; FastClick.prototype.getTargetElementFromEventTarget = function( eventTarget) { "use strict"; if (eventTarget.nodeType === Node.TEXT_NODE) { return eventTarget.parentNode } return eventTarget }; FastClick.prototype.onTouchStart = function(event) { "use strict"; var targetElement, touch, selection; if (event.targetTouches.length > 1) { return true } targetElement = this .getTargetElementFromEventTarget(event.target); touch = event.targetTouches[0]; if (this.deviceIsIOS) { selection = window.getSelection(); if (selection.rangeCount && !selection.isCollapsed) { return true } if (!this.deviceIsIOS4) { if (touch.identifier === this.lastTouchIdentifier) { event.preventDefault(); return false } this.lastTouchIdentifier = touch.identifier; this.updateScrollParent(targetElement) } } this.trackingClick = true; this.trackingClickStart = event.timeStamp; this.targetElement = targetElement; this.touchStartX = touch.pageX; this.touchStartY = touch.pageY; if (event.timeStamp - this.lastClickTime < 200) { event.preventDefault() } return true }; FastClick.prototype.touchHasMoved = function(event) { "use strict"; var touch = event.changedTouches[0], boundary = this.touchBoundary; if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) { return true } return false }; FastClick.prototype.onTouchMove = function(event) { "use strict"; if (!this.trackingClick) { return true } if (this.targetElement !== this .getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) { this.trackingClick = false; this.targetElement = null } return true }; FastClick.prototype.findControl = function(labelElement) { "use strict"; if (labelElement.control !== undefined) { return labelElement.control } if (labelElement.htmlFor) { return document .getElementById(labelElement.htmlFor) } return labelElement .querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea") }; FastClick.prototype.onTouchEnd = function(event) { "use strict"; var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement; if (!this.trackingClick) { return true } if (event.timeStamp - this.lastClickTime < 200) { this.cancelNextClick = true; return true } this.cancelNextClick = false; this.lastClickTime = event.timeStamp; trackingClickStart = this.trackingClickStart; this.trackingClick = false; this.trackingClickStart = 0; if (this.deviceIsIOSWithBadTarget) { touch = event.changedTouches[0]; targetElement = document.elementFromPoint( touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement; targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent } targetTagName = targetElement.tagName.toLowerCase(); if (targetTagName === "label") { forElement = this.findControl(targetElement); if (forElement) { this.focus(targetElement); if (this.deviceIsAndroid) { return false } targetElement = forElement } } else if (this.needsFocus(targetElement)) { if (event.timeStamp - trackingClickStart > 100 || this.deviceIsIOS && window.top !== window && targetTagName === "input") { this.targetElement = null; return false } this.focus(targetElement); if (!this.deviceIsIOS4 || targetTagName !== "select") { this.targetElement = null; event.preventDefault() } return false } if (this.deviceIsIOS && !this.deviceIsIOS4) { scrollParent = targetElement.fastClickScrollParent; if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) { return true } } if (!this.needsClick(targetElement)) { event.preventDefault(); this.sendClick(targetElement, event) } return false }; FastClick.prototype.onTouchCancel = function() { "use strict"; this.trackingClick = false; this.targetElement = null }; FastClick.prototype.onMouse = function(event) { "use strict"; if (!this.targetElement) { return true } if (event.forwardedTouchEvent) { return true } if (!event.cancelable) { return true } if (!this.needsClick(this.targetElement) || this.cancelNextClick) { if (event.stopImmediatePropagation) { event.stopImmediatePropagation() } else { event.propagationStopped = true } event.stopPropagation(); event.preventDefault(); return false } return true }; FastClick.prototype.onClick = function(event) { "use strict"; var permitted; if (this.trackingClick) { this.targetElement = null; this.trackingClick = false; return true } if (event.target.type === "submit" && event.detail === 0) { return true } permitted = this.onMouse(event); if (!permitted) { this.targetElement = null } return permitted }; FastClick.prototype.destroy = function() { "use strict"; var layer = this.layer; if (this.deviceIsAndroid) { layer.removeEventListener("mouseover", this.onMouse, true); layer.removeEventListener("mousedown", this.onMouse, true); layer.removeEventListener("mouseup", this.onMouse, true) } layer.removeEventListener("click", this.onClick, true); layer.removeEventListener("touchstart", this.onTouchStart, false); layer.removeEventListener("touchmove", this.onTouchMove, false); layer.removeEventListener("touchend", this.onTouchEnd, false); layer.removeEventListener("touchcancel", this.onTouchCancel, false) }; FastClick.notNeeded = function(layer) { "use strict"; var metaViewport; var chromeVersion; if (typeof window.ontouchstart === "undefined") { return true } chromeVersion = +(/Chrome\/([0-9]+)/ .exec(navigator.userAgent) || [ , 0 ])[1]; if (chromeVersion) { if (FastClick.prototype.deviceIsAndroid) { metaViewport = document .querySelector("meta[name=viewport]"); if (metaViewport) { if (metaViewport.content .indexOf("user-scalable=no") !== -1) { return true } if (chromeVersion > 31 && window.innerWidth <= window.screen.width) { return true } } } else { return true } } if (layer.style.msTouchAction === "none") { return true } return false }; FastClick.attach = function(layer) { "use strict"; return new FastClick(layer) }; if (typeof define !== "undefined" && define.amd) { define(function() { "use strict"; return FastClick }) } else if (typeof module !== "undefined" && module.exports) { module.exports = FastClick.attach; module.exports.FastClick = FastClick } else { window.FastClick = FastClick } }); require .register( "switchery/switchery.js", function(exports, require, module) { var transitionize = require("transitionize"), fastclick = require("fastclick"); module.exports = Switchery; var defaults = { color : "#64bd63", secondaryColor : "#dfdfdf", className : "switchery", disabled : false, disabledOpacity : .5, speed : "0.4s" }; function Switchery(element, options) { if (!(this instanceof Switchery)) return new Switchery(element, options); this.element = element; this.options = options || {}; for ( var i in defaults) { if (this.options[i] == null) { this.options[i] = defaults[i] } } if (this.element != null && this.element.type == "checkbox") this.init() } Switchery.prototype.hide = function() { this.element.style.display = "none" }; Switchery.prototype.show = function() { var switcher = this.create(); this.insertAfter(this.element, switcher) }; Switchery.prototype.create = function() { this.switcher = document.createElement("span"); this.jack = document.createElement("small"); this.switcher.appendChild(this.jack); this.switcher.className = this.options.className; return this.switcher }; Switchery.prototype.insertAfter = function(reference, target) { reference.parentNode.insertBefore(target, reference.nextSibling) }; Switchery.prototype.isChecked = function() { return this.element.checked }; Switchery.prototype.isDisabled = function() { return this.options.disabled || this.element.disabled }; Switchery.prototype.setPosition = function(clicked) { var checked = this.isChecked(), switcher = this.switcher, jack = this.jack; if (clicked && checked) checked = false; else if (clicked && !checked) checked = true; if (checked === true) { this.element.checked = true; if (window.getComputedStyle) jack.style.left = parseInt(window .getComputedStyle(switcher).width) - parseInt(window .getComputedStyle(jack).width) + "px"; else jack.style.left = parseInt(switcher.currentStyle["width"]) - parseInt(jack.currentStyle["width"]) + "px"; if (this.options.color) this.colorize(); this.setSpeed() } else { jack.style.left = 0; this.element.checked = false; this.switcher.style.boxShadow = "inset 0 0 0 0 " + this.options.secondaryColor; this.switcher.style.borderColor = this.options.secondaryColor; this.switcher.style.backgroundColor = ""; this.setSpeed() } }; Switchery.prototype.setSpeed = function() { var switcherProp = {}, jackProp = { left : this.options.speed.replace(/[a-z]/, "") / 2 + "s" }; if (this.isChecked()) { switcherProp = { border : this.options.speed, "box-shadow" : this.options.speed, "background-color" : this.options.speed .replace(/[a-z]/, "") * 3 + "s" } } else { switcherProp = { border : this.options.speed, "box-shadow" : this.options.speed } } transitionize(this.switcher, switcherProp); transitionize(this.jack, jackProp) }; Switchery.prototype.setAttributes = function() { var id = this.element.getAttribute("id"), name = this.element .getAttribute("name"); if (id) this.switcher.setAttribute("id", id); if (name) this.switcher.setAttribute("name", name) }; Switchery.prototype.colorize = function() { this.switcher.style.backgroundColor = this.options.color; this.switcher.style.borderColor = this.options.color; this.switcher.style.boxShadow = "inset 0 0 0 16px " + this.options.color }; Switchery.prototype.handleOnchange = function(state) { if (typeof Event === "function" || !document.fireEvent) { var event = document.createEvent("HTMLEvents"); event.initEvent("change", true, true); this.element.dispatchEvent(event) } else { this.element.fireEvent("onchange") } }; Switchery.prototype.handleChange = function() { var self = this, el = this.element; if (el.addEventListener) { el.addEventListener("change", function() { self.setPosition() }) } else { el.attachEvent("onchange", function() { self.setPosition() }) } }; Switchery.prototype.handleClick = function() { var self = this, switcher = this.switcher; if (this.isDisabled() === false) { fastclick(switcher); if (switcher.addEventListener) { switcher .addEventListener( "click", function() { self.setPosition(true); self .handleOnchange(self.element.checked) }) } else { switcher .attachEvent( "onclick", function() { self.setPosition(true); self .handleOnchange(self.element.checked) }) } } else { this.element.disabled = true; this.switcher.style.opacity = this.options.disabledOpacity } }; Switchery.prototype.disableLabel = function() { var parent = this.element.parentNode, labels = document .getElementsByTagName("label"), attached = null; for (var i = 0; i < labels.length; i++) { if (labels[i].getAttribute("for") === this.element.id) { attached = true } } if (attached === true || parent.tagName.toLowerCase() === "label") { if (parent.addEventListener) { parent.addEventListener("click", function(e) { e.preventDefault() }) } else { parent.attachEvent("onclick", function(e) { e.returnValue = false }) } } }; Switchery.prototype.markAsSwitched = function() { this.element.setAttribute("data-switchery", true) }; Switchery.prototype.markedAsSwitched = function() { return this.element.getAttribute("data-switchery") }; Switchery.prototype.init = function() { this.hide(); this.show(); this.setPosition(); this.setAttributes(); this.markAsSwitched(); this.disableLabel(); this.handleChange(); this.handleClick() } }); require.alias("abpetkov-transitionize/transitionize.js", "switchery/deps/transitionize/transitionize.js"); require.alias("abpetkov-transitionize/transitionize.js", "switchery/deps/transitionize/index.js"); require.alias("abpetkov-transitionize/transitionize.js", "transitionize/index.js"); require.alias("abpetkov-transitionize/transitionize.js", "abpetkov-transitionize/index.js"); require.alias("ftlabs-fastclick/lib/fastclick.js", "switchery/deps/fastclick/lib/fastclick.js"); require.alias("ftlabs-fastclick/lib/fastclick.js", "switchery/deps/fastclick/index.js"); require.alias("ftlabs-fastclick/lib/fastclick.js", "fastclick/index.js"); require.alias("ftlabs-fastclick/lib/fastclick.js", "ftlabs-fastclick/index.js"); require.alias("switchery/switchery.js", "switchery/index.js"); if (typeof exports == "object") { module.exports = require("switchery") } else if (typeof define == "function" && define.amd) { define(function() { return require("switchery") }) } else { this["Switchery"] = require("switchery") } })();