{"version":3,"file":"application_bootstrap.js","sources":["application_bootstrap.js"],"sourcesContent":["//TODO: MOVE jQuery Validation TO MVC\r\n\r\n/*! jQuery Validation Plugin - v1.11.1 - 3/22/2013\\n* https://github.com/jzaefferer/jquery-validation\r\n* Copyright (c) 2013 Jörn Zaefferer; Licensed MIT */(function (t) { t.extend(t.fn, { validate: function (e) { if (!this.length) return e && e.debug && window.console && console.warn(\"Nothing selected, can't validate, returning nothing.\"), void 0; var i = t.data(this[0], \"validator\"); return i ? i : (this.attr(\"novalidate\", \"novalidate\"), i = new t.validator(e, this[0]), t.data(this[0], \"validator\", i), i.settings.onsubmit && (this.validateDelegate(\":submit\", \"click\", function (e) { i.settings.submitHandler && (i.submitButton = e.target), t(e.target).hasClass(\"cancel\") && (i.cancelSubmit = !0), void 0 !== t(e.target).attr(\"formnovalidate\") && (i.cancelSubmit = !0) }), this.submit(function (e) { function s() { var s; return i.settings.submitHandler ? (i.submitButton && (s = t(\"<input type='hidden'/>\").attr(\"name\", i.submitButton.name).val(t(i.submitButton).val()).appendTo(i.currentForm)), i.settings.submitHandler.call(i, i.currentForm, e), i.submitButton && s.remove(), !1) : !0 } return i.settings.debug && e.preventDefault(), i.cancelSubmit ? (i.cancelSubmit = !1, s()) : i.form() ? i.pendingRequest ? (i.formSubmitted = !0, !1) : s() : (i.focusInvalid(), !1) })), i) }, valid: function () { if (t(this[0]).is(\"form\")) return this.validate().form(); var e = !0, i = t(this[0].form).validate(); return this.each(function () { e = e && i.element(this) }), e }, removeAttrs: function (e) { var i = {}, s = this; return t.each(e.split(/\\s/), function (t, e) { i[e] = s.attr(e), s.removeAttr(e) }), i }, rules: function (e, i) { var s = this[0]; if (e) { var r = t.data(s.form, \"validator\").settings, n = r.rules, a = t.validator.staticRules(s); switch (e) { case \"add\": t.extend(a, t.validator.normalizeRule(i)), delete a.messages, n[s.name] = a, i.messages && (r.messages[s.name] = t.extend(r.messages[s.name], i.messages)); break; case \"remove\": if (!i) return delete n[s.name], a; var u = {}; return t.each(i.split(/\\s/), function (t, e) { u[e] = a[e], delete a[e] }), u } } var o = t.validator.normalizeRules(t.extend({}, t.validator.classRules(s), t.validator.attributeRules(s), t.validator.dataRules(s), t.validator.staticRules(s)), s); if (o.required) { var l = o.required; delete o.required, o = t.extend({ required: l }, o) } return o } }), t.extend(t.expr[\":\"], { blank: function (e) { return !t.trim(\"\" + t(e).val()) }, filled: function (e) { return !!t.trim(\"\" + t(e).val()) }, unchecked: function (e) { return !t(e).prop(\"checked\") } }), t.validator = function (e, i) { this.settings = t.extend(!0, {}, t.validator.defaults, e), this.currentForm = i, this.init() }, t.validator.format = function (e, i) { return 1 === arguments.length ? function () { var i = t.makeArray(arguments); return i.unshift(e), t.validator.format.apply(this, i) } : (arguments.length > 2 && i.constructor !== Array && (i = t.makeArray(arguments).slice(1)), i.constructor !== Array && (i = [i]), t.each(i, function (t, i) { e = e.replace(RegExp(\"\\\\{\" + t + \"\\\\}\", \"g\"), function () { return i }) }), e) }, t.extend(t.validator, { defaults: { messages: {}, groups: {}, rules: {}, errorClass: \"error\", validClass: \"valid\", errorElement: \"label\", focusInvalid: !0, errorContainer: t([]), errorLabelContainer: t([]), onsubmit: !0, ignore: \":hidden\", ignoreTitle: !1, onfocusin: function (t) { this.lastActive = t, this.settings.focusCleanup && !this.blockFocusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, t, this.settings.errorClass, this.settings.validClass), this.addWrapper(this.errorsFor(t)).hide()) }, onfocusout: function (t) { this.checkable(t) || !(t.name in this.submitted) && this.optional(t) || this.element(t) }, onkeyup: function (t, e) { (9 !== e.which || \"\" !== this.elementValue(t)) && (t.name in this.submitted || t === this.lastElement) && this.element(t) }, onclick: function (t) { t.name in this.submitted ? this.element(t) : t.parentNode.name in this.submitted && this.element(t.parentNode) }, highlight: function (e, i, s) { \"radio\" === e.type ? this.findByName(e.name).addClass(i).removeClass(s) : t(e).addClass(i).removeClass(s) }, unhighlight: function (e, i, s) { \"radio\" === e.type ? this.findByName(e.name).removeClass(i).addClass(s) : t(e).removeClass(i).addClass(s) } }, setDefaults: function (e) { t.extend(t.validator.defaults, e) }, messages: { required: \"This field is required.\", remote: \"Please fix this field.\", email: \"Please enter a valid email address.\", url: \"Please enter a valid URL.\", date: \"Please enter a valid date.\", dateISO: \"Please enter a valid date (ISO).\", number: \"Please enter a valid number.\", digits: \"Please enter only digits.\", creditcard: \"Please enter a valid credit card number.\", equalTo: \"Please enter the same value again.\", maxlength: t.validator.format(\"Please enter no more than {0} characters.\"), minlength: t.validator.format(\"Please enter at least {0} characters.\"), rangelength: t.validator.format(\"Please enter a value between {0} and {1} characters long.\"), range: t.validator.format(\"Please enter a value between {0} and {1}.\"), max: t.validator.format(\"Please enter a value less than or equal to {0}.\"), min: t.validator.format(\"Please enter a value greater than or equal to {0}.\") }, autoCreateRanges: !1, prototype: { init: function () { function e(e) { var i = t.data(this[0].form, \"validator\"), s = \"on\" + e.type.replace(/^validate/, \"\"); i.settings[s] && i.settings[s].call(i, this[0], e) } this.labelContainer = t(this.settings.errorLabelContainer), this.errorContext = this.labelContainer.length && this.labelContainer || t(this.currentForm), this.containers = t(this.settings.errorContainer).add(this.settings.errorLabelContainer), this.submitted = {}, this.valueCache = {}, this.pendingRequest = 0, this.pending = {}, this.invalid = {}, this.reset(); var i = this.groups = {}; t.each(this.settings.groups, function (e, s) { \"string\" == typeof s && (s = s.split(/\\s/)), t.each(s, function (t, s) { i[s] = e }) }); var s = this.settings.rules; t.each(s, function (e, i) { s[e] = t.validator.normalizeRule(i) }), t(this.currentForm).validateDelegate(\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] \", \"focusin focusout keyup\", e).validateDelegate(\"[type='radio'], [type='checkbox'], select, option\", \"click\", e), this.settings.invalidHandler && t(this.currentForm).bind(\"invalid-form.validate\", this.settings.invalidHandler) }, form: function () { return this.checkForm(), t.extend(this.submitted, this.errorMap), this.invalid = t.extend({}, this.errorMap), this.valid() || t(this.currentForm).triggerHandler(\"invalid-form\", [this]), this.showErrors(), this.valid() }, checkForm: function () { this.prepareForm(); for (var t = 0, e = this.currentElements = this.elements(); e[t]; t++)this.check(e[t]); return this.valid() }, element: function (e) { e = this.validationTargetFor(this.clean(e)), this.lastElement = e, this.prepareElement(e), this.currentElements = t(e); var i = this.check(e) !== !1; return i ? delete this.invalid[e.name] : this.invalid[e.name] = !0, this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), i }, showErrors: function (e) { if (e) { t.extend(this.errorMap, e), this.errorList = []; for (var i in e) this.errorList.push({ message: e[i], element: this.findByName(i)[0] }); this.successList = t.grep(this.successList, function (t) { return !(t.name in e) }) } this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors() }, resetForm: function () { t.fn.resetForm && t(this.currentForm).resetForm(), this.submitted = {}, this.lastElement = null, this.prepareForm(), this.hideErrors(), this.elements().removeClass(this.settings.errorClass).removeData(\"previousValue\") }, numberOfInvalids: function () { return this.objectLength(this.invalid) }, objectLength: function (t) { var e = 0; for (var i in t) e++; return e }, hideErrors: function () { this.addWrapper(this.toHide).hide() }, valid: function () { return 0 === this.size() }, size: function () { return this.errorList.length }, focusInvalid: function () { if (this.settings.focusInvalid) try { t(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(\":visible\").focus().trigger(\"focusin\") } catch (e) { } }, findLastActive: function () { var e = this.lastActive; return e && 1 === t.grep(this.errorList, function (t) { return t.element.name === e.name }).length && e }, elements: function () { var e = this, i = {}; return t(this.currentForm).find(\"input, select, textarea\").not(\":submit, :reset, :image, [disabled]\").not(this.settings.ignore).filter(function () { return !this.name && e.settings.debug && window.console && console.error(\"%o has no name assigned\", this), this.name in i || !e.objectLength(t(this).rules()) ? !1 : (i[this.name] = !0, !0) }) }, clean: function (e) { return t(e)[0] }, errors: function () { var e = this.settings.errorClass.replace(\" \", \".\"); return t(this.settings.errorElement + \".\" + e, this.errorContext) }, reset: function () { this.successList = [], this.errorList = [], this.errorMap = {}, this.toShow = t([]), this.toHide = t([]), this.currentElements = t([]) }, prepareForm: function () { this.reset(), this.toHide = this.errors().add(this.containers) }, prepareElement: function (t) { this.reset(), this.toHide = this.errorsFor(t) }, elementValue: function (e) { var i = t(e).attr(\"type\"), s = t(e).val(); return \"radio\" === i || \"checkbox\" === i ? t(\"input[name='\" + t(e).attr(\"name\") + \"']:checked\").val() : \"string\" == typeof s ? s.replace(/\\r/g, \"\") : s }, check: function (e) { e = this.validationTargetFor(this.clean(e)); var i, s = t(e).rules(), r = !1, n = this.elementValue(e); for (var a in s) { var u = { method: a, parameters: s[a] }; try { if (i = t.validator.methods[a].call(this, n, e, u.parameters), \"dependency-mismatch\" === i) { r = !0; continue } if (r = !1, \"pending\" === i) return this.toHide = this.toHide.not(this.errorsFor(e)), void 0; if (!i) return this.formatAndAdd(e, u), !1 } catch (o) { throw this.settings.debug && window.console && console.log(\"Exception occurred when checking element \" + e.id + \", check the '\" + u.method + \"' method.\", o), o } } return r ? void 0 : (this.objectLength(s) && this.successList.push(e), !0) }, customDataMessage: function (e, i) { return t(e).data(\"msg-\" + i.toLowerCase()) || e.attributes && t(e).attr(\"data-msg-\" + i.toLowerCase()) }, customMessage: function (t, e) { var i = this.settings.messages[t]; return i && (i.constructor === String ? i : i[e]) }, findDefined: function () { for (var t = 0; arguments.length > t; t++)if (void 0 !== arguments[t]) return arguments[t]; return void 0 }, defaultMessage: function (e, i) { return this.findDefined(this.customMessage(e.name, i), this.customDataMessage(e, i), !this.settings.ignoreTitle && e.title || void 0, t.validator.messages[i], \"<strong>Warning: No message defined for \" + e.name + \"</strong>\") }, formatAndAdd: function (e, i) { var s = this.defaultMessage(e, i.method), r = /\\$?\\{(\\d+)\\}/g; \"function\" == typeof s ? s = s.call(this, i.parameters, e) : r.test(s) && (s = t.validator.format(s.replace(r, \"{$1}\"), i.parameters)), this.errorList.push({ message: s, element: e }), this.errorMap[e.name] = s, this.submitted[e.name] = s }, addWrapper: function (t) { return this.settings.wrapper && (t = t.add(t.parent(this.settings.wrapper))), t }, defaultShowErrors: function () { var t, e; for (t = 0; this.errorList[t]; t++) { var i = this.errorList[t]; this.settings.highlight && this.settings.highlight.call(this, i.element, this.settings.errorClass, this.settings.validClass), this.showLabel(i.element, i.message) } if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success) for (t = 0; this.successList[t]; t++)this.showLabel(this.successList[t]); if (this.settings.unhighlight) for (t = 0, e = this.validElements(); e[t]; t++)this.settings.unhighlight.call(this, e[t], this.settings.errorClass, this.settings.validClass); this.toHide = this.toHide.not(this.toShow), this.hideErrors(), this.addWrapper(this.toShow).show() }, validElements: function () { return this.currentElements.not(this.invalidElements()) }, invalidElements: function () { return t(this.errorList).map(function () { return this.element }) }, showLabel: function (e, i) { var s = this.errorsFor(e); s.length ? (s.removeClass(this.settings.validClass).addClass(this.settings.errorClass), s.html(i)) : (s = t(\"<\" + this.settings.errorElement + \">\").attr(\"for\", this.idOrName(e)).addClass(this.settings.errorClass).html(i || \"\"), this.settings.wrapper && (s = s.hide().show().wrap(\"<\" + this.settings.wrapper + \"/>\").parent()), this.labelContainer.append(s).length || (this.settings.errorPlacement ? this.settings.errorPlacement(s, t(e)) : s.insertAfter(e))), !i && this.settings.success && (s.text(\"\"), \"string\" == typeof this.settings.success ? s.addClass(this.settings.success) : this.settings.success(s, e)), this.toShow = this.toShow.add(s) }, errorsFor: function (e) { var i = this.idOrName(e); return this.errors().filter(function () { return t(this).attr(\"for\") === i }) }, idOrName: function (t) { return this.groups[t.name] || (this.checkable(t) ? t.name : t.id || t.name) }, validationTargetFor: function (t) { return this.checkable(t) && (t = this.findByName(t.name).not(this.settings.ignore)[0]), t }, checkable: function (t) { return /radio|checkbox/i.test(t.type) }, findByName: function (e) { return t(this.currentForm).find(\"[name='\" + e + \"']\") }, getLength: function (e, i) { switch (i.nodeName.toLowerCase()) { case \"select\": return t(\"option:selected\", i).length; case \"input\": if (this.checkable(i)) return this.findByName(i.name).filter(\":checked\").length }return e.length }, depend: function (t, e) { return this.dependTypes[typeof t] ? this.dependTypes[typeof t](t, e) : !0 }, dependTypes: { \"boolean\": function (t) { return t }, string: function (e, i) { return !!t(e, i.form).length }, \"function\": function (t, e) { return t(e) } }, optional: function (e) { var i = this.elementValue(e); return !t.validator.methods.required.call(this, i, e) && \"dependency-mismatch\" }, startRequest: function (t) { this.pending[t.name] || (this.pendingRequest++ , this.pending[t.name] = !0) }, stopRequest: function (e, i) { this.pendingRequest-- , 0 > this.pendingRequest && (this.pendingRequest = 0), delete this.pending[e.name], i && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (t(this.currentForm).submit(), this.formSubmitted = !1) : !i && 0 === this.pendingRequest && this.formSubmitted && (t(this.currentForm).triggerHandler(\"invalid-form\", [this]), this.formSubmitted = !1) }, previousValue: function (e) { return t.data(e, \"previousValue\") || t.data(e, \"previousValue\", { old: null, valid: !0, message: this.defaultMessage(e, \"remote\") }) } }, classRuleSettings: { required: { required: !0 }, email: { email: !0 }, url: { url: !0 }, date: { date: !0 }, dateISO: { dateISO: !0 }, number: { number: !0 }, digits: { digits: !0 }, creditcard: { creditcard: !0 } }, addClassRules: function (e, i) { e.constructor === String ? this.classRuleSettings[e] = i : t.extend(this.classRuleSettings, e) }, classRules: function (e) { var i = {}, s = t(e).attr(\"class\"); return s && t.each(s.split(\" \"), function () { this in t.validator.classRuleSettings && t.extend(i, t.validator.classRuleSettings[this]) }), i }, attributeRules: function (e) { var i = {}, s = t(e), r = s[0].getAttribute(\"type\"); for (var n in t.validator.methods) { var a; \"required\" === n ? (a = s.get(0).getAttribute(n), \"\" === a && (a = !0), a = !!a) : a = s.attr(n), /min|max/.test(n) && (null === r || /number|range|text/.test(r)) && (a = Number(a)), a ? i[n] = a : r === n && \"range\" !== r && (i[n] = !0) } return i.maxlength && /-1|2147483647|524288/.test(i.maxlength) && delete i.maxlength, i }, dataRules: function (e) { var i, s, r = {}, n = t(e); for (i in t.validator.methods) s = n.data(\"rule-\" + i.toLowerCase()), void 0 !== s && (r[i] = s); return r }, staticRules: function (e) { var i = {}, s = t.data(e.form, \"validator\"); return s.settings.rules && (i = t.validator.normalizeRule(s.settings.rules[e.name]) || {}), i }, normalizeRules: function (e, i) { return t.each(e, function (s, r) { if (r === !1) return delete e[s], void 0; if (r.param || r.depends) { var n = !0; switch (typeof r.depends) { case \"string\": n = !!t(r.depends, i.form).length; break; case \"function\": n = r.depends.call(i, i) }n ? e[s] = void 0 !== r.param ? r.param : !0 : delete e[s] } }), t.each(e, function (s, r) { e[s] = t.isFunction(r) ? r(i) : r }), t.each([\"minlength\", \"maxlength\"], function () { e[this] && (e[this] = Number(e[this])) }), t.each([\"rangelength\", \"range\"], function () { var i; e[this] && (t.isArray(e[this]) ? e[this] = [Number(e[this][0]), Number(e[this][1])] : \"string\" == typeof e[this] && (i = e[this].split(/[\\s,]+/), e[this] = [Number(i[0]), Number(i[1])])) }), t.validator.autoCreateRanges && (e.min && e.max && (e.range = [e.min, e.max], delete e.min, delete e.max), e.minlength && e.maxlength && (e.rangelength = [e.minlength, e.maxlength], delete e.minlength, delete e.maxlength)), e }, normalizeRule: function (e) { if (\"string\" == typeof e) { var i = {}; t.each(e.split(/\\s/), function () { i[this] = !0 }), e = i } return e }, addMethod: function (e, i, s) { t.validator.methods[e] = i, t.validator.messages[e] = void 0 !== s ? s : t.validator.messages[e], 3 > i.length && t.validator.addClassRules(e, t.validator.normalizeRule(e)) }, methods: { required: function (e, i, s) { if (!this.depend(s, i)) return \"dependency-mismatch\"; if (\"select\" === i.nodeName.toLowerCase()) { var r = t(i).val(); return r && r.length > 0 } return this.checkable(i) ? this.getLength(e, i) > 0 : t.trim(e).length > 0 }, email: function (t, e) { return this.optional(e) || /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i.test(t) }, url: function (t, e) { return this.optional(e) || /^(https?|s?ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i.test(t) }, date: function (t, e) { return this.optional(e) || !/Invalid|NaN/.test(\"\" + new Date(t)) }, dateISO: function (t, e) { return this.optional(e) || /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/.test(t) }, number: function (t, e) { return this.optional(e) || /^-?(?:\\d+|\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test(t) }, digits: function (t, e) { return this.optional(e) || /^\\d+$/.test(t) }, creditcard: function (t, e) { if (this.optional(e)) return \"dependency-mismatch\"; if (/[^0-9 \\-]+/.test(t)) return !1; var i = 0, s = 0, r = !1; t = t.replace(/\\D/g, \"\"); for (var n = t.length - 1; n >= 0; n--) { var a = t.charAt(n); s = parseInt(a, 10), r && (s *= 2) > 9 && (s -= 9), i += s, r = !r } return 0 === i % 10 }, minlength: function (e, i, s) { var r = t.isArray(e) ? e.length : this.getLength(t.trim(e), i); return this.optional(i) || r >= s }, maxlength: function (e, i, s) { var r = t.isArray(e) ? e.length : this.getLength(t.trim(e), i); return this.optional(i) || s >= r }, rangelength: function (e, i, s) { var r = t.isArray(e) ? e.length : this.getLength(t.trim(e), i); return this.optional(i) || r >= s[0] && s[1] >= r }, min: function (t, e, i) { return this.optional(e) || t >= i }, max: function (t, e, i) { return this.optional(e) || i >= t }, range: function (t, e, i) { return this.optional(e) || t >= i[0] && i[1] >= t }, equalTo: function (e, i, s) { var r = t(s); return this.settings.onfocusout && r.unbind(\".validate-equalTo\").bind(\"blur.validate-equalTo\", function () { t(i).valid() }), e === r.val() }, remote: function (e, i, s) { if (this.optional(i)) return \"dependency-mismatch\"; var r = this.previousValue(i); if (this.settings.messages[i.name] || (this.settings.messages[i.name] = {}), r.originalMessage = this.settings.messages[i.name].remote, this.settings.messages[i.name].remote = r.message, s = \"string\" == typeof s && { url: s } || s, r.old === e) return r.valid; r.old = e; var n = this; this.startRequest(i); var a = {}; return a[i.name] = e, t.ajax(t.extend(!0, { url: s, mode: \"abort\", port: \"validate\" + i.name, dataType: \"json\", data: a, success: function (s) { n.settings.messages[i.name].remote = r.originalMessage; var a = s === !0 || \"true\" === s; if (a) { var u = n.formSubmitted; n.prepareElement(i), n.formSubmitted = u, n.successList.push(i), delete n.invalid[i.name], n.showErrors() } else { var o = {}, l = s || n.defaultMessage(i, \"remote\"); o[i.name] = r.message = t.isFunction(l) ? l(e) : l, n.invalid[i.name] = !0, n.showErrors(o) } r.valid = a, n.stopRequest(i, a) } }, s)), \"pending\" } } }), t.format = t.validator.format })(jQuery), function (t) { var e = {}; if (t.ajaxPrefilter) t.ajaxPrefilter(function (t, i, s) { var r = t.port; \"abort\" === t.mode && (e[r] && e[r].abort(), e[r] = s) }); else { var i = t.ajax; t.ajax = function (s) { var r = (\"mode\" in s ? s : t.ajaxSettings).mode, n = (\"port\" in s ? s : t.ajaxSettings).port; return \"abort\" === r ? (e[n] && e[n].abort(), e[n] = i.apply(this, arguments), e[n]) : i.apply(this, arguments) } } }(jQuery), function (t) { t.extend(t.fn, { validateDelegate: function (e, i, s) { return this.bind(i, function (i) { var r = t(i.target); return r.is(e) ? s.apply(r, arguments) : void 0 }) } }) }(jQuery);\r\n\r\n// END jQuery Validation\r\n\r\n/* http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript */\r\n(function ($) {\r\n $.QueryString = (function (a) {\r\n if (a == \"\") return {};\r\n var b = {};\r\n for (var i = 0; i < a.length; ++i) {\r\n var p = a[i].split('=');\r\n if (p.length != 2) continue;\r\n b[p[0]] = decodeURIComponent(p[1].replace(/\\+/g, \" \"));\r\n }\r\n return b;\r\n })(window.location.search.substr(1).split('&'))\r\n})(jQuery);\r\n\r\n////if user clicks outside of the top task cards, collapse the top task card accordion\r\n//$(document).on('click', function (e) {\r\n// //if there are open top task accordion\r\n// if ($(\".cardwithcategory .toptaskHeader.showless\").length) {\r\n// alert(\"check 3\");\r\n// // closest return 0 - ancestor not found, outside toptaskheader\r\n// // closest return 1 - ancestor found, inside toptaskheader\r\n\r\n// if ($(e.target).closest(\".toptaskHeader\").length === 0) {\r\n\r\n// if ($(e.target).attr(\"class\") === \"svg-inline--fa fa-chevron-down fa-w-14 toptaskHeaderIcon\") {\r\n// //do not do anything\r\n// }\r\n// else {\r\n// collapseCards();\r\n// }\r\n// }\r\n// }\r\n//});\r\n\r\n// on DOM ready\r\n$(function () {\r\n\r\n if (navigator.userAgent.match(/IEMobile\\/10\\.0/)) {\r\n var msViewportStyle = document.createElement(\"style\")\r\n msViewportStyle.appendChild(\r\n document.createTextNode(\r\n \"@-ms-viewport{width:auto!important}\"\r\n )\r\n )\r\n document.getElementsByTagName(\"head\")[0].appendChild(msViewportStyle)\r\n }\r\n \r\n // Add slide down animation to Bootstrap dropdown when expanding.\r\n $('.topRequest.dropDown').on('show.bs.dropdown', function () {\r\n $(this).find('.dropdown-menu').first().stop(true, true).slideDown();\r\n });\r\n\r\n // Add slide up animation to Bootstrap dropdown when collapsing.\r\n $('.topRequest.dropDown').on('hide.bs.dropdown', function () {\r\n $(this).find('.dropdown-menu').first().stop(true, true).slideUp();\r\n });\r\n\r\n //remove the vertical for the last time period\r\n $('.VerticalTimelineListComponent div.description:last').removeClass('description').addClass('descriptionLast');\r\n $('.mainColumnTwoColumn').each(function () {\r\n $(this).find('.twoColLeft div.description:last').removeClass('description').addClass('descriptionLast');\r\n $(this).find('.twoColRight div.description:last').removeClass('description').addClass('descriptionLast');\r\n });\r\n\r\n // add container class for allowable components in the maincoltopcolorblock/maincolbtmcolorblock section to fix width issue.\r\n $('MajorEvent .QuoteComponentList.colorBlock, .DepartmentHome .QuoteComponentList.colorBlock, .DepartmentPortal .QuoteComponentList.colorBlock, .DepartmentDetail .QuoteComponentList.colorBlock, .Program .QuoteComponentList.colorBlock').each(function () {\r\n $(this).addClass('container');\r\n });\r\n $('MajorEvent .QuoteComponent.colorBlock, .DepartmentHome .QuoteComponent.colorBlock, .DepartmentPortal .QuoteComponent.colorBlock, .DepartmentDetail .QuoteComponent.colorBlock, .Program .QuoteComponent.colorBlock').each(function () {\r\n $(this).addClass('container');\r\n });\r\n $('MajorEvent .ScrollSpyContainerComponent.colorBlock, .DepartmentHome .ScrollSpyContainerComponent.colorBlock, .DepartmentPortal .ScrollSpyContainerComponent.colorBlock, .DepartmentDetail .ScrollSpyContainerComponent.colorBlock, .Program .ScrollSpyContainerComponent.colorBlock').each(function () {\r\n $(this).addClass('container');\r\n });\r\n\r\n //for each card container find the children\r\n $('.CardContainerComponent, .serviceList.cardContainer').each(function () {\r\n //alert(\"parent container\");\r\n\r\n //auto height for default card components with just title, excerpt and link\r\n var maxHeight = -1;\r\n var maxTopSectionHeight = -1;\r\n var defaultCardWithExtraSpace = false;\r\n\r\n //check if there are ext links or cta, needs extra height\r\n if ($(this).find(\".card.cardwithlink.extlink\")[0] || $(this).find(\".card.cardwithlink.actionlink\")[0] || $(this).find(\".card.cardwithlink.extactionlink\")[0]) {\r\n defaultCardWithExtraSpace = true;\r\n }\r\n\r\n //check if there is a calendar icon\r\n if ($(this).find(\".card.cardwithlink .fa-calendar-alt\")[0]) {\r\n defaultCardWithExtraSpace = true;\r\n }\r\n //find the tallest topsection\r\n $(this).find('.card.cardwithlink .topSection').each(function () {\r\n maxTopSectionHeight = maxTopSectionHeight > $(this).height() ? maxTopSectionHeight : $(this).height();\r\n //alert(maxTopSectionHeight);\r\n });\r\n\r\n //set the tallest top section\r\n $(this).find('.card.cardwithlink .topSection').each(function () {\r\n $(this).height(maxTopSectionHeight);\r\n });\r\n\r\n //find the tallest card in the container\r\n $(this).find('.card.cardwithlink .content').each(function () {\r\n maxHeight = maxHeight > $(this).height() ? maxHeight : $(this).height();\r\n });\r\n\r\n //set the height for the cards\r\n $(this).find('.card.cardwithlink').each(function () {\r\n var extraspacing = defaultCardWithExtraSpace ? 60 : 20;\r\n $(this).height(maxHeight + extraspacing);\r\n });\r\n\r\n\r\n //auto height for btile cards\r\n //var maxBtileHeight = -1;\r\n var btileCardWithExtraSpace = false;\r\n var maxBtilecardTopTitleHeight = -1;\r\n var maxBtilecardTopExcerptHeight = -1;\r\n\r\n //check if there are ext links or cta, needs extra height\r\n if ($(this).find(\".card.cardwiththumbnailexcerpt .btmright\")[0]) {\r\n btileCardWithExtraSpace = true;\r\n }\r\n\r\n //check if there are icons (calendar, download or external)\r\n if ($(this).find(\".card.cardwiththumbnailexcerpt .iconrow\")[0]) {\r\n btileCardWithExtraSpace = true;\r\n }\r\n\r\n $(this).find('.card.cardwiththumbnailexcerpt .topTitle').each(function () {\r\n maxBtilecardTopTitleHeight = maxBtilecardTopTitleHeight > $(this).height() ? maxBtilecardTopTitleHeight : $(this).height();\r\n });\r\n\r\n $(this).find('.card.cardwiththumbnailexcerpt .topExcerpt').each(function () {\r\n maxBtilecardTopExcerptHeight = maxBtilecardTopExcerptHeight > $(this).height() ? maxBtilecardTopExcerptHeight : $(this).height();\r\n });\r\n\r\n $(this).find('.card.cardwiththumbnailexcerpt .topTitle').each(function () {\r\n $(this).height(maxBtilecardTopTitleHeight);\r\n });\r\n\r\n $(this).find('.card.cardwiththumbnailexcerpt .topExcerpt').each(function () {\r\n $(this).height(maxBtilecardTopExcerptHeight);\r\n });\r\n\r\n $(this).find('.card.cardwiththumbnailexcerpt .content').each(function () {\r\n var totspace = maxBtilecardTopTitleHeight + maxBtilecardTopExcerptHeight;\r\n var extraspacing = btileCardWithExtraSpace ? 30 : 0;\r\n $(this).height(totspace + extraspacing);\r\n });\r\n\r\n //auto height for cards with icons\r\n var maxCardWithIconTopTitleHeight = -1;\r\n var maxCardWithIconTopExcerptHeight = -1;\r\n var iconCardWithExtraSpace = false;\r\n\r\n if ($(this).find(\".card.cardwithicon.extlink\")[0] || $(this).find(\".card.cardwithicon.actionlink\")[0] || $(this).find(\".card.cardwithicon.extactionlink\")[0]) {\r\n iconCardWithExtraSpace = true;\r\n }\r\n\r\n //check if there are icons (calendar, download or external)\r\n if ($(this).find(\".card.cardwithicon .fa-calendar-alt\")[0]) {\r\n iconCardWithExtraSpace = true;\r\n }\r\n\r\n $(this).find('.card.cardwithicon .topTitle').each(function () {\r\n maxCardWithIconTopTitleHeight = maxCardWithIconTopTitleHeight > $(this).height() ? maxCardWithIconTopTitleHeight : $(this).height();\r\n });\r\n\r\n $(this).find('.card.cardwithicon .topExcerpt').each(function () {\r\n maxCardWithIconTopExcerptHeight = maxCardWithIconTopExcerptHeight > $(this).height() ? maxCardWithIconTopExcerptHeight : $(this).height();\r\n });\r\n\r\n $(this).find('.card.cardwithicon .topTitle').each(function () {\r\n $(this).height(maxCardWithIconTopTitleHeight);\r\n });\r\n\r\n $(this).find('.card.cardwithicon .topExcerpt').each(function () {\r\n $(this).height(maxCardWithIconTopExcerptHeight);\r\n });\r\n\r\n $(this).find('.card.cardwithicon .content').each(function () {\r\n var totspace = maxCardWithIconTopTitleHeight + maxCardWithIconTopExcerptHeight;\r\n var extraspacing = iconCardWithExtraSpace ? 20 : 0;\r\n $(this).height(totspace + extraspacing);\r\n });\r\n\r\n //auto height for card components with top tasks accordion\r\n var maxCatTopSectionHeight = -1;\r\n\r\n $(this).find('.card.cardwithcategory .catTopSection').each(function () {\r\n maxCatTopSectionHeight = maxCatTopSectionHeight > $(this).height() ? maxCatTopSectionHeight : $(this).height();\r\n });\r\n\r\n $(this).find('.card.cardwithcategory .catTopSection').each(function () {\r\n $(this).height(maxCatTopSectionHeight + 20);\r\n });\r\n\r\n });\r\n\r\n\r\n //Accordion Font Awesome & update styling - that will slide the content down by implementing a calculated max-height.\r\n //by default, collapse all accordionss\r\n $('.accordsFa .accordion-toggle').each(function () {\r\n $(this).addClass('plus').removeClass('minus');\r\n $(this).next().addClass('collapsed');\r\n });\r\n\r\n //for each click, collapse all sibling accordions and toggle the css classes to expand only the clicked accordion\r\n $('.accordsFa .accordion-toggle').click(function () {\r\n //if expanded accordion\r\n if ($(this).hasClass('plus')) {\r\n\r\n $('.accordsFa .accordion-toggle').removeClass('minus').addClass('plus');\r\n $('.accordsFa .accordionWrapper').slideUp(600);\r\n $('.accordsFa .accordionWrapper').removeClass('expanded').addClass('collapsed');\r\n $('.accordsFa .accordionWrapper').css({ 'display': 'none' });\r\n $('.accordsFa .accordion-toggle').find('.fa-minus').remove();\r\n $('.accordsFa .accordion-toggle').prepend('<i class=\"far fa-plus\" title=\"expanded accordion\"></i>');\r\n\r\n toggleAccordionsOpen($(this));\r\n\r\n //set the url hash of the accordion's name attribute\r\n window.location.hash = $(this).attr('name');\r\n reloadPageForAnchorTag();\r\n //if collapse accordion \r\n } else {\r\n $(this).find('.fa-minus').remove();\r\n $(this).prepend('<i class=\"far fa-plus\" title=\"expanded accordion\"></i>');\r\n $(this).removeClass('minus').addClass('plus');\r\n $(this).next().slideUp(600);//.delay(300);\r\n $(this).next().addClass('collapsed').removeClass('expanded');\r\n\r\n toggleAccordionsClose($(this));\r\n\r\n //remove the urlhash but don't jump to the top of the page\r\n history.pushState(null, null, window.location.href.split('#')[0]);\r\n }\r\n });\r\n\r\n // Portal banner external icon. \r\n if ($(\".bannerDarkGray .bannerTextWithButton\")[0] || $(\".bannerLightGray .bannerTextWithButton\")[0] || $(\".bannerLightBlue .bannerTextWithButton\")[0]) {\r\n if ($(this).find(\".btn .fa-external-link\")[0]) {\r\n $(\".btn\").css(\"padding\", \"9px 35px 0px 9px\");\r\n }\r\n }\r\n\r\n $(\".tabs\").tabs();\r\n try {\r\n $(\"#photos\").galleryView({\r\n panel_width: 702,\r\n panel_height: 203,\r\n frame_width: 27,\r\n frame_height: 26,\r\n transition_speed: 600,\r\n transition_interval: 9000,\r\n overlay_color: 'transparent',\r\n overlay_text_color: 'black',\r\n caption_text_color: '#000',\r\n background_color: '',\r\n border: 'none',\r\n nav_theme: 'light',\r\n easing: 'easeInOutQuad',\r\n pause_on_hover: true\r\n });\r\n }\r\n catch (e) { }\r\n\r\n slideCount = 5;\r\n var usedots = true;\r\n if ($(\".slickCarousel\").width() > 680 && $(\".slickCarousel\").width() <= 768) {\r\n slideCount = 4;\r\n } else if ($(\".slickCarousel\").width() > 480 && $(\".slickCarousel\").width() <= 680) {\r\n slideCount = 3;\r\n }\r\n else if ($(\".slickCarousel\").width() < 280) {\r\n slideCount = 1;\r\n usedots = false;\r\n }\r\n else if ($(\".slickCarousel\").width() <= 480) {\r\n slideCount = 2;\r\n usedots = false;\r\n }\r\n\r\n\r\n if ($('.slickCarousel').length > 0) {\r\n $('.slickCarousel').slick({\r\n lazyLoad: 'ondemand',\r\n dots: usedots,\r\n infinite: false,\r\n speed: 300,\r\n slidesToShow: slideCount,\r\n slidesToScroll: slideCount\r\n });\r\n $('.emptyCarousel').parents('.seaCarousel').hide()\r\n }\r\n\r\n if ($(\".memberBio\")) {\r\n $(\".toggleArrow\").addClass(\"arrowDown\");\r\n $(\".toggleBio\").click(function () {\r\n $(this).next(\".memberBio\").slideToggle();\r\n $(this).find(\".toggleArrow\").toggleClass(\"arrowDown arrowUp\");\r\n });\r\n };\r\n\r\n $('a.lightbox').attr(\"data-toggle\", \"lightbox\");\r\n\r\n $(document).delegate('*[data-toggle=\"lightbox\"]', 'click', function (event) {\r\n event.preventDefault();\r\n $(this).ekkoLightbox();\r\n });\r\n\r\n // remove inline styling in RSS feeds\r\n $('[id*=\"feedContainer\"]').find('*').removeAttr('style');\r\n\r\n // add contrast stripe to RSS Feeds\r\n // $(\".feedContainer p:even\").addClass(\"even\");\r\n $(\".feedContainer ol li:even\").addClass(\"even\");\r\n $(\".feedContainer div.rssItem:even\").addClass(\"even\");\r\n\r\n $(\".stripe tr:even\").addClass(\"even\");\r\n\r\n if ($(\"div#leftNav\").length > 0) {\r\n $(\"div#leftNav ul ul\").hide();\r\n\r\n //show navigation folder's 1st child\r\n $(\"div#leftNav ul.navFolder\").show();\r\n $(\"div#leftNav ul.navFolder ul\").show();\r\n $(\"div#leftNav ul.navFolder ul ul:not(.navFolder)\").hide();\r\n\r\n // show active page and parents of active page\r\n $(\"div#leftNav li.activePage a.activePage\").parent(this).addClass(\"activePage\").parentsUntil(\"div#leftNav\").addClass(\"activeParent\").show();\r\n $(\"div#leftNav li.activePage a.activePage\").parent(this).children(this).show();\r\n $(\"div#leftNav ul li:first\").css(\"border-top\", \"0px\");\r\n\r\n // clear our negative margin if top level menu item has children\r\n if ($(\"div#leftNav > ul#primaryTier > li > ul\").length > 0) {\r\n $(\"#primaryTier\").addClass('primaryTierHasChildren')\r\n }\r\n // add font awesome carets to menu items with children \r\n $(\"div#leftNav ul li a\").each(function () {\r\n if ($(this).siblings(\"ul\").length > 0) {\r\n $(this)\r\n .html('<span class=\"parentLinkTextWrap\">' + $(this).text() + '</span>')\r\n .prepend('<span class=\"fa fa-chevron-right\"></span')\r\n .addClass('hasChildren')\r\n }\r\n })\r\n // adjust caret direction for active pages\r\n $(\"div#leftNav ul li.activePage > a > span.fa\").removeClass(\"fa-chevron-right\").addClass(\"fa-chevron-down\");\r\n $(\"li.activeParent > a > span.fa\").removeClass(\"fa-chevron-right\").addClass(\"fa-chevron-down\");\r\n } else if ($(\"div#taxNav\").length > 0) {\r\n $(\"div#taxNav ul\").hide();\r\n $(\"div#taxNav li.activePage a.activePage\").parent(this).addClass(\"activePage\").parentsUntil(\"div#taxNav\").addClass(\"activeParent\").show();\r\n $(\"div#taxNav li .activePage a.activePage\").parent(this).children(this).show();\r\n $(\"div#taxNav li:first\").css(\"border-top\", \"0px\");\r\n }\r\n\r\n if ($(\"nav.leftNav2\").length > 0) {\r\n $(\"nav.leftNav2 ul ul\").hide();\r\n\r\n // show active page and parents of active page\r\n $(\"nav.leftNav2 li.activePage a.activePage\").parent(this).addClass(\"activePage\").parentsUntil(\"nav.leftNav2\").addClass(\"activeParent\").show();\r\n $(\"nav.leftNav2 li.activePage a.activePage\").parent(this).children(this).show();\r\n $(\"nav.leftNav2 ul li:first\").css(\"border-top\", \"0px\");\r\n\r\n // add font awesome carets to items with children \r\n $(\"nav.leftNav2 ul li a\").each(function () {\r\n if ($(this).siblings(\"ul\").length > 0) {\r\n $(this)\r\n .html('<span class=\"parentLinkTextWrap\">' + $(this).text() + '</span>')\r\n .prepend('<span class=\"fa fa-chevron-right\"></span')\r\n .addClass('hasChildren')\r\n }\r\n })\r\n // clear our negative margin if top level menu item has children\r\n if ($(\"nav.leftNav2 > ul.navlist a.hasChildren\").length > 0) {\r\n $(\".navlist\").addClass('primaryTierHasChildren')\r\n }\r\n // adjust caret direction for active pages\r\n $(\"nav.leftNav2 ul li.activePage > span.fa\").removeClass(\"fa-chevron-right\").addClass(\"fa-chevron-down\");\r\n $(\"li.activeParent > span.fa\").removeClass(\"fa-chevron-right\").addClass(\"fa-chevron-down\");\r\n }\r\n\r\n // Event handler for Mayor's Priorities\r\n $(\"#seagovBannerAction, #seagovBanner_close\").click(function () {\r\n $(\"#seagovPriorityPanel\").toggle(\"drop\", { direction: \"up\", opacity: 0.9 }, 1000, function () {\r\n if ($(\"#seagovPriorityPanel\").is(':visible')) {\r\n $(\"#seagovBannerAction\").html(\"<span class=\\\"ui-icon ui-icon-close\\\" style=\\\"float:right\\\"></span><span style=\\\"text-decoration: underline;float:right\\\">Close</span>\");\r\n } else {\r\n $(\"#seagovBannerAction\").html(\"<span class=\\\"ui-icon ui-icon-triangle-1-s\\\" style=\\\"float:right\\\"></span><span style=\\\"text-decoration: underline;float:right\\\">Learn More</span>\")\r\n }\r\n });\r\n });\r\n\r\n $(\"div.seagovTopicStyle\").hover(\r\n function () {\r\n $(this).addClass(\"seagovTopicStyleHover\").fadeIn(5000);\r\n },\r\n function () {\r\n $(this).stop(0, 0);\r\n $(this).removeClass(\"seagovTopicStyleHover\");\r\n }\r\n );\r\n\r\n $('div.videoIndex > a.seekItem').click(this, function () {\r\n jwplayer().seek($(this).data('seek')); return false;\r\n });\r\n\r\n if ($.QueryString[\"stop\"] != null) {\r\n jwplayer().on('time', function (x) {\r\n if (x.position >= TimeToSeconds($.QueryString[\"stop\"])) {\r\n jwplayer().stop();\r\n }\r\n });\r\n }\r\n\r\n $(\"input[name=Email],input[name=email]\").attr(\"title\", \"Email Address\");\r\n\r\n $('#seagovNav').remove();\r\n\r\n /* accessibility bandaids */\r\n $('td[valign=\"top\"]').css('vertical-align', 'top').removeAttr('valign');\r\n $('td[align=\"left\"]').removeAttr('align');\r\n $('table[border=\"0\"]').removeAttr('border');\r\n $('td[align=\"center\"]').css('text-align', 'center').removeAttr('align');\r\n});\r\n// DOM Ready end\r\n\r\nfunction submitenter(myfield, e) {\r\n var keycode;\r\n\r\n if (window.event) keycode = window.event.keyCode;\r\n else if (e) keycode = e.which;\r\n else return true;\r\n\r\n if (keycode == 13) {\r\n if (myfield.id == \"Text1\") {\r\n document.forms['tester'].g1.click()\r\n } else {\r\n document.forms['tester'].g2.click()\r\n }\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n}\r\n\r\n//Truncate text function\r\nfunction truncStr(str, len) {\r\n if (str.length > len) {\r\n str = str.substr(0, len);\r\n str = str.substr(0, str.lastIndexOf(\" \")) + \"...\";\r\n }\r\n document.write(str);\r\n}\r\n\r\n//Date Format from RSS format\r\nfunction checkEntryDate(entryItem) {\r\n newEntryDate = dateFormat(entryItem);\r\n splitDate = newEntryDate.split(\"/\");\r\n var myDate = new Date();\r\n myDate.setFullYear(splitDate[2], splitDate[0] - 1, splitDate[1]);\r\n today = new Date();\r\n today.setDate(today.getDate() - 1)\r\n newEntryDate = newEntryDate;\r\n document.write(newEntryDate);\r\n}\r\n\r\nfunction checkEntryDateSm(entryItem) {\r\n newEntryDate = dateFormat(entryItem);\r\n splitDate = newEntryDate.split(\"/\");\r\n var myDate = new Date();\r\n myDate.setFullYear(splitDate[2], splitDate[0] - 1, splitDate[1]);\r\n today = new Date();\r\n today.setDate(today.getDate() - 1)\r\n newEntryDate = '';\r\n return newEntryDate;\r\n}\r\n\r\nfunction dateFormat(dateObj) {\r\n\r\n var strDate = dateObj.slice(5, dateObj.length - 15);\r\n strDate = strDate.split(\" \");\r\n switch (strDate[1].toUpperCase()) {\r\n case \"JAN\":\r\n strDate[1] = \"01\";\r\n break;\r\n case \"FEB\":\r\n strDate[1] = \"02\";\r\n break;\r\n case \"MAR\":\r\n strDate[1] = \"03\";\r\n break;\r\n case \"APR\":\r\n strDate[1] = \"04\";\r\n break;\r\n case \"MAY\":\r\n strDate[1] = \"05\";\r\n break;\r\n case \"JUN\":\r\n strDate[1] = \"06\";\r\n break;\r\n case \"JUL\":\r\n strDate[1] = \"07\";\r\n break;\r\n case \"AUG\":\r\n strDate[1] = \"08\";\r\n break;\r\n case \"SEP\":\r\n strDate[1] = \"09\";\r\n break;\r\n case \"OCT\":\r\n strDate[1] = \"10\";\r\n break;\r\n case \"NOV\":\r\n strDate[1] = \"11\";\r\n break;\r\n case \"DEC\":\r\n strDate[1] = \"12\";\r\n break;\r\n default:\r\n }\r\n\r\n var newDate = strDate[1] + \"/\" + strDate[0] + \"/\" + strDate[2];\r\n var PostDate = new Date(strDate[2], strDate[1] - 1, strDate[0]);\r\n var myDate = new Date();\r\n myDate.setFullYear(strDate[2], strDate[1] - 1, \"20\" + strDate[0]);\r\n HoldDate = new Date();\r\n return newDate;\r\n}\r\n\r\nfunction video(id) {\r\n loC = \"http://www.seattlechannel.org/videos/video.asp?ID=\" + id\r\n window.open(loC, \"viewer\", \"location=no,status=yes,scrollbars=no,resizable=yes,width=800,height=400\")\r\n}\r\n\r\nfunction submitenter(myfield, e) {\r\n var keycode;\r\n if (window.event) {\r\n keycode = window.event.keyCode;\r\n } else if (e) {\r\n keycode = e.which;\r\n } else {\r\n return true;\r\n }\r\n if (keycode == 13) {\r\n if (myfield.id == \"addr\" && myfield.value !== \"\") {\r\n formatAddress();\r\n }\r\n return false;\r\n }\r\n}\r\n\r\nfunction TimeToSeconds(inputTime) {\r\n var timeVals = inputTime.split(':');\r\n var mins = 0, hours = 0, seconds = 0;\r\n if (timeVals.length == 0) {\r\n return 0;\r\n }\r\n if (timeVals.length == 1) {\r\n seconds = parseInt(timeVals[0]);\r\n }\r\n if (timeVals.length == 2) {\r\n mins = parseInt(timeVals[0]);\r\n seconds = parseInt(timeVals[1]);\r\n }\r\n if (timeVals.length == 3) {\r\n hours = parseInt(timeVals[0]);\r\n mins = parseInt(timeVals[1]);\r\n seconds = parseInt(timeVals[2]);\r\n }\r\n return (hours * 3600) + (mins * 60) + seconds;\r\n}\r\n\r\n// SolarWind Service\r\nvar _prum = [['id', '54d39fd1abe53d404a5d1d56'],\r\n['mark', 'firstbyte', (new Date()).getTime()]];\r\n(function () {\r\n var s = document.getElementsByTagName('script')[0]\r\n , p = document.createElement('script');\r\n p.async = 'async';\r\n p.src = '//rum-static.pingdom.net/prum.min.js';\r\n s.parentNode.insertBefore(p, s);\r\n})();\r\n\r\n\r\n\r\n/* loads new podcast into podcastplayer, takes list of arguments. Sends a GA request */\r\nfunction loadJWPodcastPlayer7(myFile, myImage, description, notice, title, pubdate, duration, msn, hasHD, xid, closedCaption) {\r\n\r\n // if ($('.videoIndex').length > 0) {\r\n // $('.videoIndex').empty();\r\n // }\r\n\r\n // //display podcast\r\n // $('.podcastContainer').show();\r\n\r\n // var dur = $('.podcastDuration').text(duration);\r\n // $('.podcastDate').html(pubdate).append(dur);\r\n // $('.podcastTitle').html(title);\r\n // $('.podcastDescription').html(description);\r\n // $('.podcastMsn').html(msn);\r\n // var podcastImage = \"<img id='podcastImage'src='\" + myImage + \"'/>\";\r\n // $(\"#podcastImage img\").remove();\r\n // $('#podcastImage').prepend(podcastImage);\r\n\r\n // try {\r\n // podcastplayerInstance.remove();\r\n // }\r\n // catch (e) {\r\n // try {\r\n // var id = podcastplayerInstance.id;\r\n // podcastplayerInstance.remove();\r\n // $('#' + id).attr('id', 'jwplayerID');\r\n // }\r\n // catch (e2) { }\r\n // }\r\n\r\n // podcastplayerInstance = jwplayer(\"jwplayerID\");\r\n // podcastplayerInstance.setup({\r\n\r\n // file: myFile,\r\n // primary: \"html5\",\r\n // title: title,\r\n // displaytitle: false,\r\n // width: 300,\r\n // height: 40,\r\n // ga: {\r\n // idstring: \"title\"\r\n // }\r\n\r\n // });\r\n\r\n // podcastplayerInstance.on('complete', function () {\r\n\r\n // });\r\n // podcastplayerInstance.on('error', function (message) {\r\n // $(\"#jwplayerID\" ).text( \"There was an error with the podcast.\" );\r\n // });\r\n // podcastplayerInstance.on('setupError', function () {\r\n // //ex file is missing error\r\n // $( \"#jwplayerID\" ).text( \"There was an error with podcast set up.\" );\r\n // });\r\n // podcastplayerInstance.on('ready', function () {\r\n // $('body, html').animate({\r\n // scrollTop: (0)\r\n // }, 1000);\r\n // //podcastplayerInstance.play();\r\n // });\r\n\r\n // //hide default podcast player\r\n // $(\"#listenNowID\").show();\r\n // $(\"#playerContainer\").hide();\r\n\r\n // //toggle default podcast player\r\n // $(\"#listenNowID\").click(function(){\r\n // //show default podcast player\r\n // $(\"#playerContainer\").show();\r\n // //hide default listen now\r\n // $(\"#listenNowID\").hide();\r\n // });\r\n\r\n // History.replaceState(null, title, '?podcastid=' + xid)\r\n return false;\r\n\r\n};\r\n\r\n\r\n/* loads new video into videoplayer, takes list of arguments. Sends a GA request */\r\n/* video items from the carousel use this function */\r\nfunction loadJWPlayer7(myFile, myImage, description, title, pubdate, duration, msn, hasHD, xid, closedCaption, podcastTitle, podcastDate, podcastDuration, podcastDescription, podcastNotice, podcastMsn, podcastFeatureImage, podcastFileStandard) {\r\n\r\n if ($('.videoIndex').length > 0) {\r\n $('.videoIndex').empty();\r\n }\r\n $(\".programImage .overlayBox\").hide();\r\n $(\".VideoComponent .overlayBox\").hide();\r\n var dur = $('.episodeDuration').text(duration);\r\n $('.episodeDate').html(pubdate).append(dur);\r\n $('.episodeTitle').html(title);\r\n $('.episodeDescription').html(description);\r\n $('.msn').html(msn);\r\n $('.overlayBox .videoTitle').text(title);\r\n if ($('img#videoError').length) {\r\n $('img#videoError').hide();\r\n $('#' + playerInstance.id).show();\r\n }\r\n\r\n //populate podcast when the a video w a podcast in the carousel is clicked\r\n var dur = $('.podcastDuration').text(podcastDuration);\r\n $('.podcastDate').html(podcastDate).append(dur);\r\n $('.podcastTitle').html(podcastTitle);\r\n $('.podcastDescription').html(podcastDescription);\r\n $('.podcastNotice').html(podcastNotice);\r\n $('.podcastMsn').html(podcastMsn);\r\n\r\n var embedCode = \"<iframe src=\\\"\" + location.protocol + \"//\" + location.host + \"/embedvideoplayer?videoid=\" + xid + \"\\\" frameborder=\\\"0\\\" scrolling=\\\"no\\\" style=\\\"min-height: 270px; min-width: 480px\\\" ></iframe>\";\r\n var shareLink = location.protocol + \"//\" + location.host + location.pathname + \"?videoid=\" + xid;\r\n try {\r\n playerInstance.remove();\r\n }\r\n catch (e) {\r\n try {\r\n var id = playerInstance.id;\r\n playerInstance.remove();\r\n $('#' + id).attr('id', 'vidPlayer');\r\n }\r\n catch (e2) { }\r\n }\r\n var sourceFiles = [{ file: myFile, label: \"360p SD\" }];\r\n var closedCaptionPath = \"documents/seattlechannel/closedcaption/\" + closedCaption;\r\n var closedCaptionFile = [{\r\n file: closedCaptionPath,\r\n label: \"On\",\r\n kind: \"captions\",\r\n \"default\": true\r\n }]\r\n if (hasHD) {\r\n sourceFiles.push({ file: myFile.replace(\".mp4\", \"HD.mp4\"), label: \"720p HD\" });\r\n }\r\n\r\n playerInstance = jwplayer(\"vidPlayer\");\r\n if (closedCaption != \"\") {\r\n playerInstance.setup({\r\n sources: sourceFiles,\r\n image: myImage,\r\n primary: \"html5\",\r\n title: title,\r\n displaytitle: false,\r\n tracks: closedCaptionFile,\r\n sharing: {\r\n code: encodeURI(embedCode),\r\n link: shareLink\r\n },\r\n ga: {\r\n idstring: \"title\"\r\n }\r\n });\r\n }\r\n else {\r\n playerInstance.setup({\r\n\r\n sources: sourceFiles,\r\n image: myImage,\r\n primary: \"html5\",\r\n title: title,\r\n displaytitle: false,\r\n\r\n sharing: {\r\n code: encodeURI(embedCode),\r\n link: shareLink\r\n },\r\n ga: {\r\n idstring: \"title\"\r\n }\r\n\r\n });\r\n };\r\n\r\n\r\n playerInstance.on('complete', function () {\r\n $('#vidPlayer').append($('.overlayBox'));\r\n });\r\n playerInstance.on('play', function () {\r\n $('.overlayBox').hide();\r\n });\r\n\r\n playerInstance.on('pause', function () {\r\n $('.overlayBox').show();\r\n });\r\n\r\n playerInstance.on('error', function (message) {\r\n if (playerInstance.getPlaylist()[0].sources.length > 1) {\r\n playerInstance.load({ file: playerInstance.getPlaylist()[0].file });\r\n playerInstance.play();\r\n }\r\n else {\r\n if (!$('img#videoError').length) {\r\n $('#vidPlayer').after(\"<img id='videoError' class='img-responsive' src='images/seattlechannel/videoimages/channelGeneric.jpg' alt='There was an error with the video' />\");\r\n }\r\n else {\r\n $('img#videoError').show();\r\n }\r\n $('#vidPlayer').hide();\r\n }\r\n });\r\n playerInstance.on('setupError', function () {\r\n if (!$('img#videoError').length) {\r\n $('#vidPlayer').after(\"<img id='videoError' class='img-responsive' src='images/seattlechannel/videoimages/channelGeneric.jpg' alt='There was an error with set up' />\");\r\n }\r\n else {\r\n $('img#videoError').show();\r\n }\r\n $('#vidPlayer').hide();\r\n });\r\n playerInstance.on('ready', function () {\r\n $(\".programImage .overlayBox\").show();\r\n $(\".VideoComponent .overlayBox\").show();\r\n $('body, html').animate({\r\n scrollTop: (0)\r\n }, 1000);\r\n //playerInstance.play();\r\n })\r\n\r\n playerInstance.addButton(\r\n \"/images/seattlechannel/download.png\",\r\n \"Download Video\",\r\n\r\n function () {\r\n window.location.href = playerInstance.getPlaylistItem()['file'];\r\n },\r\n 'downloadvidPlayer'\r\n );\r\n\r\n //populate podcast when the a video w a podcast in the carousel is clicked\r\n //hide podcast container if there's none\r\n if (podcastTitle == '') {\r\n $('.podcastContainer').hide();\r\n }\r\n else {\r\n\r\n var dur = $('.podcastDuration').text(podcastDuration);\r\n $('.podcastDate').html(podcastDate).append(dur);\r\n $('.podcastTitle').html(podcastTitle);\r\n $('.podcastDescription').html(podcastDescription);\r\n $('.podcastNotice').html(podcastNotice);\r\n $('.podcastMsn').html(podcastMsn);\r\n\r\n podcastFileStandard = \"http://video.seattle.gov:8080/media/\" + podcastFileStandard;\r\n\r\n $('.podcastContainer').show();\r\n podcastImage = \"<img id='podcastImage'src='images/\" + podcastFeatureImage + \"'/>\";\r\n $(\"#podcastImage img\").remove();\r\n $('#podcastImage').prepend(podcastImage);\r\n\r\n var podcastplayerInstance = jwplayer(\"jwplayerID\");\r\n podcastplayerInstance.setup({\r\n\r\n file: podcastFileStandard,\r\n primary: \"html5\",\r\n title: podcastTitle,\r\n displaytitle: false,\r\n width: 300,\r\n height: 40,\r\n ga: {\r\n idstring: \"title\"\r\n }\r\n\r\n });\r\n\r\n podcastplayerInstance.on('complete', function () {\r\n });\r\n\r\n podcastplayerInstance.on('error', function (message) {\r\n $(\"#jwplayerID\").text(\"There was an error with podcast.\");\r\n });\r\n\r\n podcastplayerInstance.on('setupError', function () {\r\n //ex file is missing error\r\n $(\"#jwplayerID\").text(\"There was an error with podcast set up.\");\r\n });\r\n }\r\n\r\n //hide podcast player\r\n $(\"#listenNowID\").show();\r\n $(\"#playerContainer\").hide();\r\n\r\n //toggle podcast player\r\n $(\"#listenNowID\").click(function () {\r\n //show podcast player\r\n $(\"#playerContainer\").show();\r\n //hide default listen now\r\n $(\"#listenNowID\").hide();\r\n });\r\n\r\n History.replaceState(null, title, '?videoid=' + xid)\r\n return false;\r\n\r\n};\r\n\r\nfunction loadJWPlayer7Index(msn, year) {\r\n if ($('.videoIndex').length > 0) {\r\n var videoIndex = $('.videoIndex');\r\n }\r\n else {\r\n var videoIndex = $('<div/>').addClass(\"videoIndex\");\r\n }\r\n indexPath = location.protocol + \"//\" + location.host + \"/documents/seattlechannel/indexing/\";\r\n if (year > 2015) {\r\n indexPath = indexPath + year + \"/\" + msn + \".xml\";\r\n }\r\n else {\r\n indexPath = indexPath + msn + \".xml\";\r\n }\r\n\r\n var reqPath = indexPath;\r\n $.ajax(reqPath)\r\n .done(function (data, textStatus, jqXHR) {\r\n var indexLinks = \"<div class=\\\"indexHeading\\\">Advance to a specific part </div>\";\r\n $(data).find('[start]').each(function (index, item) {\r\n var seekTime = TimeToSeconds($(item).attr('start'));\r\n indexLinks += \"<a class=\\\"seekItem\\\" onclick=\\\"playerInstance.seek($(this).data('seek')); return false;\\\" href=\\\"#\\\" data-seek=\\\"\" + seekTime + \"\\\" >\" + $(item).parent().find('title').text() + \" - \" + $(item).attr('start') + \"</a>\";\r\n });\r\n videoIndex.html(indexLinks);\r\n })\r\n .fail(function (jqXHR, textStatus, errorThrown) {\r\n videoIndex.empty();\r\n });\r\n}\r\n\r\nfunction toggleAccordionsOpen(accordion) {\r\n accordion.find('.fa-plus').remove();\r\n accordion.prepend('<i class=\"far fa-minus\" title=\"collapsed accordion\"></i>');\r\n accordion.removeClass('plus').addClass('minus');\r\n accordion.next().slideDown(600);\r\n accordion.next().addClass('expanded').removeClass('collapsed');\r\n}\r\n\r\nfunction toggleAccordionsClose(accordion) {\r\n accordion.find('.fa-minus').remove();\r\n accordion.prepend('<i class=\"far fa-plus\" title=\"expanded accordion\"></i>');\r\n accordion.removeClass('minus').addClass('plus');\r\n accordion.next().slideUp(600);//.delay(300);\r\n accordion.next().addClass('collapsed').removeClass('expanded');\r\n}"],"names":["submitenter","myfield","e","keycode","window","event","keyCode","which","id","document","forms","g1","click","g2","truncStr","str","len","length","substr","lastIndexOf","write","checkEntryDate","entryItem","newEntryDate","dateFormat","splitDate","split","Date","setFullYear","today","setDate","getDate","checkEntryDateSm","dateObj","strDate","slice","toUpperCase","newDate","HoldDate","video","loC","open","value","formatAddress","TimeToSeconds","inputTime","timeVals","mins","hours","seconds","parseInt","t","extend","fn","validate","this","i","data","attr","validator","settings","onsubmit","validateDelegate","submitHandler","submitButton","target","hasClass","cancelSubmit","submit","s","name","val","appendTo","currentForm","call","remove","debug","preventDefault","form","pendingRequest","formSubmitted","focusInvalid","console","warn","valid","is","each","element","removeAttrs","removeAttr","rules","r","n","a","staticRules","normalizeRule","messages","u","l","o","normalizeRules","classRules","attributeRules","dataRules","required","expr","blank","trim","filled","unchecked","prop","defaults","init","format","arguments","makeArray","unshift","apply","constructor","Array","replace","RegExp","groups","errorClass","validClass","errorElement","errorContainer","errorLabelContainer","ignore","ignoreTitle","onfocusin","lastActive","focusCleanup","blockFocusCleanup","unhighlight","addWrapper","errorsFor","hide","onfocusout","checkable","submitted","optional","onkeyup","elementValue","lastElement","onclick","parentNode","highlight","type","findByName","addClass","removeClass","setDefaults","remote","email","url","date","dateISO","number","digits","creditcard","equalTo","maxlength","minlength","rangelength","range","max","min","autoCreateRanges","prototype","labelContainer","errorContext","containers","add","valueCache","pending","invalid","reset","invalidHandler","bind","checkForm","errorMap","triggerHandler","showErrors","prepareForm","currentElements","elements","check","validationTargetFor","clean","prepareElement","numberOfInvalids","toHide","errorList","push","message","successList","grep","defaultShowErrors","resetForm","hideErrors","removeData","objectLength","size","findLastActive","filter","focus","trigger","find","not","error","errors","toShow","method","parameters","methods","formatAndAdd","log","customDataMessage","toLowerCase","attributes","customMessage","String","findDefined","defaultMessage","title","test","wrapper","parent","showLabel","success","validElements","show","invalidElements","map","html","idOrName","wrap","append","errorPlacement","insertAfter","text","getLength","nodeName","depend","dependTypes","boolean","string","function","startRequest","stopRequest","previousValue","old","classRuleSettings","addClassRules","getAttribute","get","Number","param","depends","isFunction","isArray","addMethod","charAt","unbind","originalMessage","ajax","mode","port","dataType","jQuery","ajaxPrefilter","abort","ajaxSettings","QueryString","b","p","decodeURIComponent","location","search","$","msViewportStyle","navigator","userAgent","match","createElement","appendChild","createTextNode","getElementsByTagName","on","first","stop","slideDown","slideUp","maxHeight","maxTopSectionHeight","defaultCardWithExtraSpace","height","extraspacing","btileCardWithExtraSpace","maxBtilecardTopTitleHeight","maxBtilecardTopExcerptHeight","totspace","maxCardWithIconTopTitleHeight","maxCardWithIconTopExcerptHeight","iconCardWithExtraSpace","maxCatTopSectionHeight","next","css","display","prepend","toggleAccordionsOpen","hash","reloadPageForAnchorTag","toggleAccordionsClose","history","pushState","href","tabs","galleryView","panel_width","panel_height","frame_width","frame_height","transition_speed","transition_interval","overlay_color","overlay_text_color","caption_text_color","background_color","border","nav_theme","easing","pause_on_hover","slideCount","usedots","width","slick","lazyLoad","dots","infinite","speed","slidesToShow","slidesToScroll","parents","slideToggle","toggleClass","delegate","ekkoLightbox","parentsUntil","children","siblings","toggle","direction","opacity","hover","fadeIn","jwplayer","seek","x","position","_prum","getTime","loadJWPodcastPlayer7","myFile","myImage","description","notice","pubdate","duration","msn","hasHD","xid","closedCaption","loadJWPlayer7","podcastTitle","podcastDate","podcastDuration","podcastDescription","podcastNotice","podcastMsn","podcastFeatureImage","podcastFileStandard","empty","dur","playerInstance","embedCode","protocol","host","shareLink","pathname","e2","podcastplayerInstance","sourceFiles","file","label","closedCaptionFile","kind","default","setup","sources","image","primary","displaytitle","tracks","sharing","code","encodeURI","link","ga","idstring","getPlaylist","load","play","after","animate","scrollTop","addButton","getPlaylistItem","podcastImage","History","replaceState","loadJWPlayer7Index","year","videoIndex","indexPath","reqPath","done","textStatus","jqXHR","indexLinks","index","item","seekTime","fail","errorThrown","accordion","async","src","insertBefore"],"mappings":"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"}