(function(){function nt(t){function r(n,i,r,u,f,e){for(;f>=0&&e>f;f+=t){var o=u?u[f]:f;r=i(r,n[o],o,n)}return r}return function(u,f,o,s){f=e(f,s,4);var h=!i(u)&&n.keys(u),l=(h||u).length,c=t>0?0:l-1;return arguments.length<3&&(o=u[h?h[c]:c],c+=t),r(u,f,o,h,c,l)}}function tt(n){return function(i,r,f){r=t(r,f);for(var o=u(i),e=n>0?0:o-1;e>=0&&o>e;e+=n)if(r(i[e],e,i))return e;return-1}}function it(t,i,f){return function(e,o,s){var c=0,h=u(e);if("number"==typeof s)t>0?c=s>=0?s:Math.max(s+h,c):h=s>=0?Math.min(s+1,h):s+h+1;else if(f&&s&&h)return s=f(e,o),e[s]===o?s:-1;if(o!==o)return s=i(r.call(e,c,h),n.isNaN),s>=0?s+c:-1;for(s=t>0?c:h-1;s>=0&&h>s;s+=t)if(e[s]===o)return s;return-1}}function rt(t,i){var u=d.length,f=t.constructor,e=n.isFunction(f)&&f.prototype||v,r="constructor";for(n.has(t,r)&&!n.contains(i,r)&&i.push(r);u--;)r=d[u],r in t&&t[r]!==e[r]&&!n.contains(i,r)&&i.push(r)}var a=this,lt=a._,s=Array.prototype,v=Object.prototype,at=Function.prototype,vt=s.push,r=s.slice,o=v.toString,yt=v.hasOwnProperty,pt=Array.isArray,ut=Object.keys,y=at.bind,ft=Object.create,p=function(){},n=function(t){return t instanceof n?t:this instanceof n?void(this._wrapped=t):new n(t)},e,t,h,f,b,k,d,c,ct,l;"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports._=n):a._=n;n.VERSION="1.8.3";e=function(n,t,i){if(t===void 0)return n;switch(null==i?3:i){case 1:return function(i){return n.call(t,i)};case 2:return function(i,r){return n.call(t,i,r)};case 3:return function(i,r,u){return n.call(t,i,r,u)};case 4:return function(i,r,u,f){return n.call(t,i,r,u,f)}}return function(){return n.apply(t,arguments)}};t=function(t,i,r){return null==t?n.identity:n.isFunction(t)?e(t,i,r):n.isObject(t)?n.matcher(t):n.property(t)};n.iteratee=function(n,i){return t(n,i,1/0)};var w=function(n,t){return function(i){var e=arguments.length,r,u;if(2>e||null==i)return i;for(r=1;e>r;r++)for(var o=arguments[r],s=n(o),h=s.length,f=0;h>f;f++)u=s[f],t&&i[u]!==void 0||(i[u]=o[u]);return i}},et=function(t){if(!n.isObject(t))return{};if(ft)return ft(t);p.prototype=t;var i=new p;return p.prototype=null,i},ot=function(n){return function(t){if(null!=t)return t[n]}},wt=Math.pow(2,53)-1,u=ot("length"),i=function(n){var t=u(n);return"number"==typeof t&&t>=0&&wt>=t};n.each=n.forEach=function(t,r,u){var f,o,s;if(r=e(r,u),i(t))for(f=0,o=t.length;o>f;f++)r(t[f],f,t);else for(s=n.keys(t),f=0,o=s.length;o>f;f++)r(t[s[f]],s[f],t);return t};n.map=n.collect=function(r,u,f){var s;u=t(u,f);for(var o=!i(r)&&n.keys(r),h=(o||r).length,c=Array(h),e=0;h>e;e++)s=o?o[e]:e,c[e]=u(r[s],s,r);return c};n.reduce=n.foldl=n.inject=nt(1);n.reduceRight=n.foldr=nt(-1);n.find=n.detect=function(t,r,u){var f;return f=i(t)?n.findIndex(t,r,u):n.findKey(t,r,u),f!==void 0&&f!==-1?t[f]:void 0};n.filter=n.select=function(i,r,u){var f=[];return r=t(r,u),n.each(i,function(n,t,i){r(n,t,i)&&f.push(n)}),f};n.reject=function(i,r,u){return n.filter(i,n.negate(t(r)),u)};n.every=n.all=function(r,u,f){var s;u=t(u,f);for(var o=!i(r)&&n.keys(r),h=(o||r).length,e=0;h>e;e++)if(s=o?o[e]:e,!u(r[s],s,r))return!1;return!0};n.some=n.any=function(r,u,f){var s;u=t(u,f);for(var o=!i(r)&&n.keys(r),h=(o||r).length,e=0;h>e;e++)if(s=o?o[e]:e,u(r[s],s,r))return!0;return!1};n.contains=n.includes=n.include=function(t,r,u,f){return i(t)||(t=n.values(t)),("number"!=typeof u||f)&&(u=0),n.indexOf(t,r,u)>=0};n.invoke=function(t,i){var u=r.call(arguments,2),f=n.isFunction(i);return n.map(t,function(n){var t=f?i:n[i];return null==t?t:t.apply(n,u)})};n.pluck=function(t,i){return n.map(t,n.property(i))};n.where=function(t,i){return n.filter(t,n.matcher(i))};n.findWhere=function(t,i){return n.find(t,n.matcher(i))};n.max=function(r,u,f){var h,o,e=-1/0,c=-1/0,s,l;if(null==u&&null!=r)for(r=i(r)?r:n.values(r),s=0,l=r.length;l>s;s++)h=r[s],h>e&&(e=h);else u=t(u,f),n.each(r,function(n,t,i){o=u(n,t,i);(o>c||o===-1/0&&e===-1/0)&&(e=n,c=o)});return e};n.min=function(r,u,f){var h,o,e=1/0,c=1/0,s,l;if(null==u&&null!=r)for(r=i(r)?r:n.values(r),s=0,l=r.length;l>s;s++)h=r[s],e>h&&(e=h);else u=t(u,f),n.each(r,function(n,t,i){o=u(n,t,i);(c>o||1/0===o&&1/0===e)&&(e=n,c=o)});return e};n.shuffle=function(t){for(var u,e=i(t)?t:n.values(t),o=e.length,f=Array(o),r=0;o>r;r++)u=n.random(0,r),u!==r&&(f[r]=f[u]),f[u]=e[r];return f};n.sample=function(t,r,u){return null==r||u?(i(t)||(t=n.values(t)),t[n.random(t.length-1)]):n.shuffle(t).slice(0,Math.max(0,r))};n.sortBy=function(i,r,u){return r=t(r,u),n.pluck(n.map(i,function(n,t,i){return{value:n,index:t,criteria:r(n,t,i)}}).sort(function(n,t){var i=n.criteria,r=t.criteria;if(i!==r){if(i>r||i===void 0)return 1;if(r>i||r===void 0)return-1}return n.index-t.index}),"value")};h=function(i){return function(r,u,f){var e={};return u=t(u,f),n.each(r,function(n,t){var f=u(n,t,r);i(e,n,f)}),e}};n.groupBy=h(function(t,i,r){n.has(t,r)?t[r].push(i):t[r]=[i]});n.indexBy=h(function(n,t,i){n[i]=t});n.countBy=h(function(t,i,r){n.has(t,r)?t[r]++:t[r]=1});n.toArray=function(t){return t?n.isArray(t)?r.call(t):i(t)?n.map(t,n.identity):n.values(t):[]};n.size=function(t){return null==t?0:i(t)?t.length:n.keys(t).length};n.partition=function(i,r,u){r=t(r,u);var f=[],e=[];return n.each(i,function(n,t,i){(r(n,t,i)?f:e).push(n)}),[f,e]};n.first=n.head=n.take=function(t,i,r){if(null!=t)return null==i||r?t[0]:n.initial(t,t.length-i)};n.initial=function(n,t,i){return r.call(n,0,Math.max(0,n.length-(null==t||i?1:t)))};n.last=function(t,i,r){if(null!=t)return null==i||r?t[t.length-1]:n.rest(t,Math.max(0,t.length-i))};n.rest=n.tail=n.drop=function(n,t,i){return r.call(n,null==t||i?1:t)};n.compact=function(t){return n.filter(t,n.identity)};f=function(t,r,e,o){for(var s,l,a,h=[],v=0,c=o||0,y=u(t);y>c;c++)if(s=t[c],i(s)&&(n.isArray(s)||n.isArguments(s)))for(r||(s=f(s,r,e)),l=0,a=s.length,h.length+=a;a>l;)h[v++]=s[l++];else e||(h[v++]=s);return h};n.flatten=function(n,t){return f(n,t,!1)};n.without=function(t){return n.difference(t,r.call(arguments,1))};n.uniq=n.unique=function(i,r,f,e){var o,c;n.isBoolean(r)||(e=f,f=r,r=!1);null!=f&&(f=t(f,e));for(var s=[],l=[],h=0,a=u(i);a>h;h++)o=i[h],c=f?f(o,h,i):o,r?(h&&l===c||s.push(o),l=c):f?n.contains(l,c)||(l.push(c),s.push(o)):n.contains(s,o)||s.push(o);return s};n.union=function(){return n.uniq(f(arguments,!0,!0))};n.intersection=function(t){for(var r,i,f=[],o=arguments.length,e=0,s=u(t);s>e;e++)if(r=t[e],!n.contains(f,r)){for(i=1;o>i&&n.contains(arguments[i],r);i++);i===o&&f.push(r)}return f};n.difference=function(t){var i=f(arguments,!0,!0,1);return n.filter(t,function(t){return!n.contains(i,t)})};n.zip=function(){return n.unzip(arguments)};n.unzip=function(t){for(var r=t&&n.max(t,u).length||0,f=Array(r),i=0;r>i;i++)f[i]=n.pluck(t,i);return f};n.object=function(n,t){for(var r={},i=0,f=u(n);f>i;i++)t?r[n[i]]=t[i]:r[n[i][0]]=n[i][1];return r};n.findIndex=tt(1);n.findLastIndex=tt(-1);n.sortedIndex=function(n,i,r,f){var o;r=t(r,f,1);for(var h=r(i),e=0,s=u(n);s>e;)o=Math.floor((e+s)/2),r(n[o])<h?e=o+1:s=o;return e};n.indexOf=it(1,n.findIndex,n.sortedIndex);n.lastIndexOf=it(-1,n.findLastIndex);n.range=function(n,t,i){null==t&&(t=n||0,n=0);i=i||1;for(var u=Math.max(Math.ceil((t-n)/i),0),f=Array(u),r=0;u>r;r++,n+=i)f[r]=n;return f};b=function(t,i,r,u,f){if(!(u instanceof i))return t.apply(r,f);var e=et(t.prototype),o=t.apply(e,f);return n.isObject(o)?o:e};n.bind=function(t,i){if(y&&t.bind===y)return y.apply(t,r.call(arguments,1));if(!n.isFunction(t))throw new TypeError("Bind must be called on a function");var f=r.call(arguments,2),u=function(){return b(t,u,i,this,f.concat(r.call(arguments)))};return u};n.partial=function(t){var i=r.call(arguments,1),u=function(){for(var f=0,o=i.length,e=Array(o),r=0;o>r;r++)e[r]=i[r]===n?arguments[f++]:i[r];for(;f<arguments.length;)e.push(arguments[f++]);return b(t,u,this,this,e)};return u};n.bindAll=function(t){var i,r,u=arguments.length;if(1>=u)throw new Error("bindAll must be passed function names");for(i=1;u>i;i++)r=arguments[i],t[r]=n.bind(t[r],t);return t};n.memoize=function(t,i){var r=function(u){var f=r.cache,e=""+(i?i.apply(this,arguments):u);return n.has(f,e)||(f[e]=t.apply(this,arguments)),f[e]};return r.cache={},r};n.delay=function(n,t){var i=r.call(arguments,2);return setTimeout(function(){return n.apply(null,i)},t)};n.defer=n.partial(n.delay,n,1);n.throttle=function(t,i,r){var f,e,s,u=null,o=0,h;return r||(r={}),h=function(){o=r.leading===!1?0:n.now();u=null;s=t.apply(f,e);u||(f=e=null)},function(){var l=n.now(),c;return o||r.leading!==!1||(o=l),c=i-(l-o),f=this,e=arguments,0>=c||c>i?(u&&(clearTimeout(u),u=null),o=l,s=t.apply(f,e),u||(f=e=null)):u||r.trailing===!1||(u=setTimeout(h,c)),s}};n.debounce=function(t,i,r){var u,f,e,s,o,h=function(){var c=n.now()-s;i>c&&c>=0?u=setTimeout(h,i-c):(u=null,r||(o=t.apply(e,f),u||(e=f=null)))};return function(){e=this;f=arguments;s=n.now();var c=r&&!u;return u||(u=setTimeout(h,i)),c&&(o=t.apply(e,f),e=f=null),o}};n.wrap=function(t,i){return n.partial(i,t)};n.negate=function(n){return function(){return!n.apply(this,arguments)}};n.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,i=n[t].apply(this,arguments);r--;)i=n[r].call(this,i);return i}};n.after=function(n,t){return function(){if(--n<1)return t.apply(this,arguments)}};n.before=function(n,t){var i;return function(){return--n>0&&(i=t.apply(this,arguments)),1>=n&&(t=null),i}};n.once=n.partial(n.before,2);k=!{toString:null}.propertyIsEnumerable("toString");d=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];n.keys=function(t){var i,r;if(!n.isObject(t))return[];if(ut)return ut(t);i=[];for(r in t)n.has(t,r)&&i.push(r);return k&&rt(t,i),i};n.allKeys=function(t){var i,r;if(!n.isObject(t))return[];i=[];for(r in t)i.push(r);return k&&rt(t,i),i};n.values=function(t){for(var r=n.keys(t),u=r.length,f=Array(u),i=0;u>i;i++)f[i]=t[r[i]];return f};n.mapObject=function(i,r,u){r=t(r,u);for(var f,o=n.keys(i),h=o.length,s={},e=0;h>e;e++)f=o[e],s[f]=r(i[f],f,i);return s};n.pairs=function(t){for(var r=n.keys(t),u=r.length,f=Array(u),i=0;u>i;i++)f[i]=[r[i],t[r[i]]];return f};n.invert=function(t){for(var u={},r=n.keys(t),i=0,f=r.length;f>i;i++)u[t[r[i]]]=r[i];return u};n.functions=n.methods=function(t){var i=[];for(var r in t)n.isFunction(t[r])&&i.push(r);return i.sort()};n.extend=w(n.allKeys);n.extendOwn=n.assign=w(n.keys);n.findKey=function(i,r,u){r=t(r,u);for(var f,o=n.keys(i),e=0,s=o.length;s>e;e++)if(f=o[e],r(i[f],f,i))return f};n.pick=function(t,i,r){var c,o,l={},u=t,s,v,h,a;if(null==u)return l;for(n.isFunction(i)?(o=n.allKeys(u),c=e(i,r)):(o=f(arguments,!1,!1,1),c=function(n,t,i){return t in i},u=Object(u)),s=0,v=o.length;v>s;s++)h=o[s],a=u[h],c(a,h,u)&&(l[h]=a);return l};n.omit=function(t,i,r){if(n.isFunction(i))i=n.negate(i);else{var u=n.map(f(arguments,!1,!1,1),String);i=function(t,i){return!n.contains(u,i)}}return n.pick(t,i,r)};n.defaults=w(n.allKeys,!0);n.create=function(t,i){var r=et(t);return i&&n.extendOwn(r,i),r};n.clone=function(t){return n.isObject(t)?n.isArray(t)?t.slice():n.extend({},t):t};n.tap=function(n,t){return t(n),n};n.isMatch=function(t,i){var e=n.keys(i),o=e.length,f,r,u;if(null==t)return!o;for(f=Object(t),r=0;o>r;r++)if(u=e[r],i[u]!==f[u]||!(u in f))return!1;return!0};c=function(t,i,r,u){var h,a,e,s,f,l,v;if(t===i)return 0!==t||1/t==1/i;if(null==t||null==i)return t===i;if(t instanceof n&&(t=t._wrapped),i instanceof n&&(i=i._wrapped),h=o.call(t),h!==o.call(i))return!1;switch(h){case"[object RegExp]":case"[object String]":return""+t==""+i;case"[object Number]":return+t!=+t?+i!=+i:0==+t?1/+t==1/i:+t==+i;case"[object Date]":case"[object Boolean]":return+t==+i}if(a="[object Array]"===h,!a&&("object"!=typeof t||"object"!=typeof i||(e=t.constructor,s=i.constructor,e!==s&&!(n.isFunction(e)&&e instanceof e&&n.isFunction(s)&&s instanceof s)&&"constructor"in t&&"constructor"in i)))return!1;for(r=r||[],u=u||[],f=r.length;f--;)if(r[f]===t)return u[f]===i;if(r.push(t),u.push(i),a){if(f=t.length,f!==i.length)return!1;for(;f--;)if(!c(t[f],i[f],r,u))return!1}else{if(v=n.keys(t),f=v.length,n.keys(i).length!==f)return!1;for(;f--;)if(l=v[f],!n.has(i,l)||!c(t[l],i[l],r,u))return!1}return r.pop(),u.pop(),!0};n.isEqual=function(n,t){return c(n,t)};n.isEmpty=function(t){return null==t?!0:i(t)&&(n.isArray(t)||n.isString(t)||n.isArguments(t))?0===t.length:0===n.keys(t).length};n.isElement=function(n){return!(!n||1!==n.nodeType)};n.isArray=pt||function(n){return"[object Array]"===o.call(n)};n.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n};n.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(t){n["is"+t]=function(n){return o.call(n)==="[object "+t+"]"}});n.isArguments(arguments)||(n.isArguments=function(t){return n.has(t,"callee")});"function"!=typeof/./&&"object"!=typeof Int8Array&&(n.isFunction=function(n){return"function"==typeof n||!1});n.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))};n.isNaN=function(t){return n.isNumber(t)&&t!==+t};n.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===o.call(n)};n.isNull=function(n){return null===n};n.isUndefined=function(n){return n===void 0};n.has=function(n,t){return null!=n&&yt.call(n,t)};n.noConflict=function(){return a._=lt,this};n.identity=function(n){return n};n.constant=function(n){return function(){return n}};n.noop=function(){};n.property=ot;n.propertyOf=function(n){return null==n?function(){}:function(t){return n[t]}};n.matcher=n.matches=function(t){return t=n.extendOwn({},t),function(i){return n.isMatch(i,t)}};n.times=function(n,t,i){var u=Array(Math.max(0,n)),r;for(t=e(t,i,1),r=0;n>r;r++)u[r]=t(r);return u};n.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};n.now=Date.now||function(){return(new Date).getTime()};var st={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},bt=n.invert(st),ht=function(t){var r=function(n){return t[n]},i="(?:"+n.keys(t).join("|")+")",u=RegExp(i),f=RegExp(i,"g");return function(n){return n=null==n?"":""+n,u.test(n)?n.replace(f,r):n}};n.escape=ht(st);n.unescape=ht(bt);n.result=function(t,i,r){var u=null==t?void 0:t[i];return u===void 0&&(u=r),n.isFunction(u)?u.call(t):u};ct=0;n.uniqueId=function(n){var t=++ct+"";return n?n+t:t};n.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var g=/(.)^/,kt={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},dt=/\\|'|\r|\n|\u2028|\u2029/g,gt=function(n){return"\\"+kt[n]};n.template=function(t,i,r){var o,f,h;!i&&r&&(i=r);i=n.defaults({},i,n.templateSettings);var c=RegExp([(i.escape||g).source,(i.interpolate||g).source,(i.evaluate||g).source].join("|")+"|$","g"),e=0,u="__p+='";t.replace(c,function(n,i,r,f,o){return u+=t.slice(e,o).replace(dt,gt),e=o+n.length,i?u+="'+\n((__t=("+i+"))==null?'':_.escape(__t))+\n'":r?u+="'+\n((__t=("+r+"))==null?'':__t)+\n'":f&&(u+="';\n"+f+"\n__p+='"),n});u+="';\n";i.variable||(u="with(obj||{}){\n"+u+"}\n");u="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+u+"return __p;\n";try{o=new Function(i.variable||"obj","_",u)}catch(s){throw s.source=u,s;}return f=function(t){return o.call(this,t,n)},h=i.variable||"obj",f.source="function("+h+"){\n"+u+"}",f};n.chain=function(t){var i=n(t);return i._chain=!0,i};l=function(t,i){return t._chain?n(i).chain():i};n.mixin=function(t){n.each(n.functions(t),function(i){var r=n[i]=t[i];n.prototype[i]=function(){var t=[this._wrapped];return vt.apply(t,arguments),l(this,r.apply(n,t))}})};n.mixin(n);n.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var i=s[t];n.prototype[t]=function(){var n=this._wrapped;return i.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],l(this,n)}});n.each(["concat","join","slice"],function(t){var i=s[t];n.prototype[t]=function(){return l(this,i.apply(this._wrapped,arguments))}});n.prototype.value=function(){return this._wrapped};n.prototype.valueOf=n.prototype.toJSON=n.prototype.value;n.prototype.toString=function(){return""+this._wrapped};"function"==typeof define&&define.amd&&define("underscore",[],function(){return n})}).call(this);Array.prototype.indexOf||(Array.prototype.indexOf=function(n,t){if(this===undefined||this===null)throw new TypeError('"this" is null or not defined');var i=this.length>>>0;for(t=+t||0,Math.abs(t)===Infinity&&(t=0),t<0&&(t+=i,t<0&&(t=0));t<i;t++)if(this[t]===n)return t;return-1});var app=angular.module("app",["kendo.directives","ngSanitize","ngMessages"],function(){});app.loadRequestVerificationToken=function(n,t){n.defaults.headers.common.RequestVerificationToken=t;$.ajaxSetup({beforeSend:function(n){n.setRequestHeader("RequestVerificationToken",t)}})};app.run(["$window","$http",function(n,t){n.getQueryStringParameter=function(t){t=t.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var r=new RegExp("[\\?&]"+t+"=([^&#]*)"),i=r.exec(n.location.search);return i==null?"":decodeURIComponent(i[1].replace(/\+/g," "))};var i=angular.element("meta[name=RequestVerificationToken]").attr("content");app.loadRequestVerificationToken(t,i)}]),function(){var n=angular.module("app");n.filter("as",["$parse",function(n){return function(t,i,r){return n(r).assign(i,t)}}]);n.filter("contributing",function(){return function(n){return n.amount>0}});n.filter("sumByKey",function(){return function(n,t){var i=0;return angular.forEach(n,function(n){var r=n[t],u;if(typeof r=="number"&&r>0){i+=r;return}typeof r=="string"&&(r=r.replace("$",""),u=parseFloat(r),u&&(i+=u))}),i}});n.filter("truncatedCurrency",["$filter",function(n){return function(t){if(!t)return"$0";var i=n("currency")(t);return i.replace(".00","")}}]);n.filter("recipientOffice",function(){return function(n){if(!n)return"";var t=n.office||n.Office,i=n.district||n.District;return i?t+" ("+i+")":t}});n.filter("cssClass",function(){return function(n){return n?n.replace(/\s/g,"-").toLowerCase():""}});n.filter("recipientCssClasses",function(){var n=function(n){return n?n.replace(/\s/g,"-").replace(/\./g,"").toLowerCase():""};return function(t){if(!t)return"";var i=[];return i.push(t.identifier.toLowerCase()),t.state&&i.push("state-"+n(t.state)),t.office&&i.push("office-"+n(t.office)),t.cycle&&i.push("cycle-"+n(t.cycle)),t.politicalParty&&i.push(n(t.politicalParty)),t.customField1&&i.push(n(t.customField1)),t.customField2&&i.push(n(t.customField2)),t.contributionLimit==-1&&i.push("maxed-out"),t.featured&&i.push("featured"),i.join(" ")}})}(),function(){var n=angular.module("app");n.factory("GoogleAnalytics",function(){function n(n,t,i,r,u,f){typeof ga!="undefined"&&ga(n,t,i,r,u,f)}return n})}(),function(){var n=angular.module("app");n.factory("Page",["$http","$window",function(n,t){function c(n){if(!n||n.indexOf("<")>-1)return n;var i=n.replace(/\r/g,"").replace(/\n\n/g,"\n").split(/\n/),t="";return i.forEach(n=>{t+="<p>"+n+"<\/p>"}),t}var i=this,e;i.page=null;var r=function(){var n=[],i=t.getQueryStringParameter("recipients"),r;return i&&(r=i.split(";"),_.each(r,function(t){var i=t.split(":"),r={identifier:i[0],amount:parseFloat(i[1])||0};n.push(r)})),n},f=function(){var n=angular.fromJson(localStorage.getItem("contribution-details:"+i.page)),t;return n?(t=(new Date-new Date(n.timestamp))/1e3,t>600)?(localStorage.removeItem("contribution-details:"+i.page),[]):n.recipients:[]},u=function(n,t){if(t.length){let i=_.findWhere(t,{identifier:n.identifier});i&&n.contributionLimit>0&&i.amount>0?n.amount=Math.min(n.contributionLimit,i.amount||0):i&&n.contributionLimit==0&&i.amount>0&&(n.amount=i.amount||0)}},o=function(n){let t=r();u(n,t)},s=function(n){let t=f();u(n,t)},h=function(n){let t=r();return t.length==0?!0:_.findWhere(t,{identifier:n.identifier})!==undefined};return e=function(n){var t={customField1:n.CustomField1,customField2:n.CustomField2,cycle:n.Cycle,displayName:n.DisplayName,externalProfileUrl:n.ExternalProfileUrl,identifier:n.Identifier,state:n.State,district:n.District,office:n.Office,politicalParty:n.PoliticalParty,description:c(n.Description),contributionLimit:n.ContributionLimit,contributionLimitReached:n.ContributionLimit===-1,photoUrl:n.PhotoUrl,amount:n.DefaultAmount,featured:n.Featured,order:n.Order,requireEmployerAddress:n.RequireEmployerAddress,goalAmount:n.GoalAmount,goalProgress:n.GoalProgress,goalAchieved:n.GoalAmount>0&&n.GoalProgress>=n.GoalAmount,politicalParty:n.PoliticalParty};return t.amount==0?t.amount=null:t.amount>0&&t.contributionLimit>0?t.amount=Math.min(t.amount,t.contributionLimit):t.contributionLimit==-1&&(t.amount=0),t.goalAmount&&(t.goalAmount>t.goalProgress?(t.goalPercent=t.goalProgress/t.goalAmount*100+"%",t.goalRemaining=t.goalAmount-t.goalProgress):(t.goalRemaining=0,t.goalPercent="100%")),t},{getPageRecipients:function(t){return i.page=t,n.get("/api/recipients/summaries?page="+t).then(function(n){var t=_.map(n.data.Summaries,e);return t=t.filter(h),_.each(t,o),_.each(t,s),{recipients:t,terms:n.data.Terms,paymentCheckbox:n.data.paymentCheckbox}})},getPaymentRecipients:function(e){i.page=e;let o=[];if(t.getQueryStringParameter("recipients")){let n=r();o=o.concat(n)}else{let n=f();o=o.concat(n)}let c=_.map(o,function(n){return n.identifier}),s=c.join(","),h="/api/recipients/payment?identifier="+e;return s&&(h+="&rids="+s),n.get(h).then(function(n){var t=n.data.recipients,i;return o.length>0&&(t=_.filter(t,function(n){return _.findWhere(o,{identifier:n.identifier})!==undefined}),_.each(t,function(n){u(n,o)})),i=n.data.tip?n.data.tip.recipient.identifier:"",t=_.filter(t,function(n){return n.amount>0||n.identifier==i}),{recipients:t,tip:n.data.tip,terms:n.data.terms,paymentCheckbox:n.data.paymentCheckbox,paymentPageHeaderHtml:n.data.paymentPageHeaderHtml}})},getSubscription:function(n){var t=angular.fromJson(localStorage.getItem("contribution-details:"+n));return t?{createSubscription:t.createSubscription}:{createSubscription:!1}},getTrackingData:function(n){var i=angular.fromJson(localStorage.getItem("contribution-details:"+n));return i?{source:i.source||t.getQueryStringParameter("sc"),url:i.url||t.location.href}:{source:t.getQueryStringParameter("sc"),url:t.location.href}},storeContributionDetails:function(n,t,i,r,u){var f=new Date,e={timestamp:f,source:t,url:i,createSubscription:u,recipients:r.map(function(n){if(n.amount>0)return{identifier:n.identifier,amount:n.amount}})};localStorage.setItem("contribution-details:"+n,angular.toJson(e))},removeContributionDetails:function(n){localStorage.removeItem("contribution-details:"+n)},getContributionDetails:function(n){return angular.fromJson(localStorage.getItem("contribution-details:"+n))}}}])}(),function(){var n=angular.module("app");n.factory("User",["$http",function(n){return{getCurrentUser:function(){return n.get("/api/users/current").then(function(n){return n.data},function(){return null})}}}])}(),function(){var n=angular.module("app");n.directive("validationSummary",function(){return{template:"<section ng-show='errors.length > 0' class='validation-summary'><h1>{{ message }}<\/h1><ul><li ng-repeat='error in errors'>{{ error }}<\/li><\/ul><\/section>",restrict:"E",scope:{errors:"=",message:"@"}}});n.directive("limitCurrencyDecimals",function(){return{link:function(n,t){t.bind("keypress",function(n){var t=angular.element(this).val(),i=t+(n.charCode!==0?String.fromCharCode(n.charCode):"");t.search(/(.*)\.[0-9][0-9]/)===0&&i.length>t.length&&n.preventDefault()})}}});n.directive("minimumDonation",function(){var n=function(n){return!n||n==0||n>=1?!0:!1};return{require:"ngModel",restrict:"A",link:function(t,i,r,u){t.$watch(r.ngModel,function(){var t=u.$modelValue||0;u.$setValidity("minimumDonation",n(t))})}}});n.directive("electronicCheckRoutingNumberFormat",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){var e=new RegExp("^[0-9]{9}$",""),u=function(n,t){try{return parseInt(n.charAt(t))}catch(i){console.log(i)}},f=function(n){var t,r,i,f;return n?(t=n.toString(),!e.test(t))?!0:(r=parseInt(t.substr(t.length-1)),i=0,i+=7*(u(t,0)+u(t,3)+u(t,6)),i+=3*(u(t,1)+u(t,4)+u(t,7)),i+=9*(u(t,2)+u(t,5)),f=i%10,r===f):!0};r.$parsers.push(function(n){var t=f(n);return r.$setValidity("routingNumber",t),t?n:undefined});r.$formatters.push(function(n){var t=f(n);return r.$setValidity("routingNumber",t),n})}}});n.directive("creditCardFormat",function(){var n=function(n){if(!n)return!0;if(n.match(/[^\d\s-]/))return!1;n=n.match(/\d+/g).join("");for(var i=n.length,r=0,u=[[0,1,2,3,4,5,6,7,8,9],[0,2,4,6,8,1,3,5,7,9]],t=0;i--;)t+=u[r][parseInt(n.charAt(i),10)],r^=1;return t%10==0&&t>0&&(n.length==15||n.length==16)};return{require:"ngModel",restrict:"A",link:function(t,i,r,u){t.$watch(r.ngModel,function(){var t=u.$modelValue||"";u.$setValidity("creditCardFormat",n(t))})}}});n.directive("creditCardIssuer",function(){var n=function(n){return/^(34)|^(37)/.test(n)?"amex":/^(6011)|^(622(1(2[6-9]|[3-9][0-9])|[2-8][0-9]{2}|9([01][0-9]|2[0-5])))|^(64[4-9])|^65/.test(n)?"discover":/^5[1-5]/.test(n)?"mastercard":/^4/.test(n)?"visa":""};return{require:"ngModel",restrict:"E",template:"<div class='credit-card-issuers'><img src='/content/images/visa.png' alt='Visa' class='visa' /><img src='/content/images/mastercard.png' alt='Mastercard' class='mastercard' /><img src='/content/images/amex.png' alt='American Express' class='amex' /><img src='/content/images/discover.png' alt='Discover' class='discover' /><\/div>",link:function(t,i,r,u){var f=i.find("div");t.$watch(r.ngModel,function(){if(u.$modelValue){var t=n(u.$modelValue);t?(f.find("img").addClass("disabled"),angular.forEach(f.find("img"),function(n){angular.element(n).hasClass(t)&&angular.element(n).toggleClass("disabled")})):f.find("img").removeClass("disabled")}else f.find("img").removeClass("disabled")})}}});n.directive("parsedate",function(){return{require:"ngModel",link:function(n,t,i,r){function u(n){return kendo.toString(n,i.parsedate)}r.$parsers.push(u)}}});n.directive("recipientProfileDialog",function(){function n(n){if(!n||n.indexOf("<")>-1)return n;var i=n.replace(/\r/g,"").replace(/\n\n/g,"\n").split(/\n/),t="";return i.forEach(n=>{t+="<p>"+n+"<\/p>"}),t}function t(t,i,r,u,f){i.donate={amount:0};i.dialogWindowOptions={visible:!1,modal:!0,title:"",width:680,pinned:!1,resizable:!1,top:50};i.control={showExternalProfile:function(n){var t=Math.max(document.documentElement.clientWidth,window.innerWidth||0),i=Math.max(document.documentElement.clientHeight,window.innerHeight||0);t<680?(t=t-20,i=i-20):(t=680,i=450);window.open(n,"","width="+t+",height="+i+",toolbar=no,scrollbars=yes,resizable=yes,top=50")},showProfile:function(t,r){t&&f.get("/api/recipients/profile?identifier="+t).then(function(t){i.recipient=t.data;i.recipient.defaultDescription=n(i.recipient.defaultDescription);i.donate.amount=r||0;var u=Math.max(document.documentElement.clientWidth,window.innerWidth||0),f=Math.max(document.documentElement.clientHeight,window.innerHeight||0);u<680?(i.recipientProfileWindow.setOptions({width:u-20}),i.recipientProfileWindow.center().wrapper.css({top:"0px"})):(i.recipientProfileWindow.setOptions({width:680,height:"auto"}),i.recipientProfileWindow.center().wrapper.css({top:"50px"}),i.recipientProfileWindow.restore());i.recipientProfileWindow.open()})},closeProfile:function(){i.recipientProfileWindow.close()}};i.addDonation=function(){t.$broadcast("DonateToRecipient",{identifier:i.recipient.identifier,amount:i.donate.amount});i.recipientProfileWindow.close()}}return{controller:["$rootScope","$scope","$element","$attrs","$http",t],restrict:"E",templateUrl:"/recipients/profile",scope:{control:"=",suggestedDonationAmounts:"<"}}});n.factory("MaxOutService",function(){return{maxAmount:5e3}});n.directive("recipientMaxOut",function(){function n(n){n.dialogWindowOptions={visible:!1,modal:!0,title:"Confirm Maximum Donation",width:400,pinned:!1,resizable:!1,top:50};n.maxAmount=5e3;n.$watch("maxAmount",function(t){n.maxAmount=parseInt(t)});n.maxOutCore=function(t){angular.forEach(t,function(t){var i=t.contributionLimit;i>0?t.amount=i>n.thresholdAmount?n.maxAmount:i:i==0&&(t.amount=n.maxAmount)})};n.maxOut=function(){var t=n.getRecipients();n.highLimitRecipients=_.filter(t,function(t){return t.contributionLimit==0||t.contributionLimit>n.thresholdAmount});n.highLimitRecipients.length>0?(n.maxAmount=n.thresholdAmount,n.maxOutWindow.open(),n.maxOutWindow.center().wrapper.css({top:"20%"})):n.maxOutCore(t)};n.cancelMaxOut=function(){n.maxOutWindow.close()};n.confirmMaxOut=function(){var t=n.getRecipients();n.maxOutCore(t);n.maxOutWindow.close()}}return{controller:["$scope",n],restrict:"E",templateUrl:"max-out-feature-template",scope:{getRecipients:"=",thresholdAmount:"@"}}});n.directive("profileFieldExpander",["$sce",function(n){return{restrict:"E",template:"<div class='profile-field-expander {{ title | lowercase }}'><header><h3 ng-click='toggle()'>{{ title }}<\/h3> <span ng-click='toggle()' class='toggle'><\/span><\/header><div ng-bind-html='htmlContent' class='content'><\/div><\/div>",replace:!0,scope:{title:"=",content:"="},link:function(t,i){t.htmlContent=n.trustAsHtml(t.content);t.toggle=function(){i.find(".content").toggleClass("expanded");i.find(".toggle").toggleClass("expanded")}}}}]);n.directive("paymentProcessingDialog",function(){function n(n,t){t.dialogWindowOptions={animation:!1,visible:!1,modal:!0,title:!1,appendTo:"body",width:210,height:210,pinned:!1,resizable:!1,actions:[],center:!0,top:0,draggable:!1};t.control={show:function(){t.paymentProcessingWindow.open().center()},hide:function(){t.paymentProcessingWindow.close()}}}return{controller:["$rootScope","$scope","$element","$attrs","$http",n],restrict:"E",template:"<section kendo-window='paymentProcessingWindow' k-options='dialogWindowOptions' style='padding: 0;'><img src='/content/images/processing_animation.gif' alt='Processing payment. Please wait.' /><\/section>",scope:{control:"="}}});n.directive("checklistModel",["$parse","$compile",function(n,t){function i(n,t){if(angular.isArray(n))for(var i=0;i<n.length;i++)if(angular.equals(n[i],t))return!0;return!1}function r(n,t){n=angular.isArray(n)?n:[];for(var i=0;i<n.length;i++)if(angular.equals(n[i],t))return n;return n.push(t),n}function u(n,t){if(angular.isArray(n))for(var i=0;i<n.length;i++)if(angular.equals(n[i],t)){n.splice(i,1);break}return n}function f(f,e,o){t(e)(f);var h=n(o.checklistModel),c=h.assign,s=n(o.checklistValue)(f.$parent);f.$watch("checked",function(n,t){if(n!==t){var i=h(f.$parent);n===!0?c(f.$parent,r(i,s)):c(f.$parent,u(i,s))}});f.$parent.$watch(o.checklistModel,function(n){f.checked=i(n,s)},!0)}return{restrict:"A",priority:1e3,terminal:!0,scope:!0,compile:function(n,t){if(n[0].tagName!=="INPUT"||n.attr("type")!=="checkbox")throw'checklist-model should be applied to `input[type="checkbox"]`.';if(!t.checklistValue)throw"You should provide `checklist-value`.";return n.removeAttr("checklist-model"),n.attr("ng-model","checked"),f}}}]);n.directive("maxOut",function(){function n(n){n.dialogWindowOptions={visible:!1,modal:!0,title:"Confirm Maximum Donation",width:400,pinned:!1,resizable:!1,top:50};n.maxAmount=5e3;n.$watch("maxAmount",function(t){n.maxAmount=parseInt(t)});n.maxOutCore=function(t){angular.forEach(t,function(t){var i=t.contributionLimit;i>0?t.amount=i>n.thresholdAmount?n.maxAmount:i:i==0&&(t.amount=n.maxAmount)})};n.maxOut=function(){var t=n.getRecipients();n.highLimitRecipients=_.filter(t,function(t){return t.contributionLimit==0||t.contributionLimit>n.thresholdAmount});n.highLimitRecipients.length>0?(n.maxAmount=n.thresholdAmount,n.maxOutWindow.open(),n.maxOutWindow.center().wrapper.css({top:"20%"})):n.maxOutCore(t)};n.cancelMaxOut=function(){n.maxOutWindow.close()};n.confirmMaxOut=function(){var t=n.getRecipients();n.maxOutCore(t);n.maxOutWindow.close()}}return{controller:["$scope",n],restrict:"E",replace:!0,template:"<section class='max-out'>  <header><h1>Donate the max to each<\/label><\/header>   <button ng-click='maxOut()'>Max Out<\/button>     <section kendo-window='maxOutWindow' k-options='dialogWindowOptions' style='display:none; position: relative;'>     <div style='padding: 0 15px 15px 15px;'>       <div ng-show='highLimitRecipients.length == 1'>         <p style='line-height: 1.5;'>One recipient on this page has either no maximum or a large maximum donation limit (i.e. more than {{ thresholdAmount | truncatedCurrency }}).<\/p>         <p>Donate $<input type='text' ng-model='maxAmount' class='k-textbox' style='width: 90px; font-size: 18px;' pattern='[\\d\\.]+' /> to this recipient.<\/p>       <\/div>       <div ng-show='highLimitRecipients.length > 1'>         <p style='line-height: 1.5;'>{{ highLimitRecipients.length }} recipients on this page have either no maximum or a large maximum donation limit (i.e. more than {{ thresholdAmount | truncatedCurrency }}).<\/p>         <p>Donate $<input type='text' ng-model='maxAmount' class='k-textbox' style='width: 90px; font-size: 18px;' pattern='[\\d\\.]+' /> to each of them.<\/p>       <\/div>       <div style='text-align: center; margin-top: 15px; border-top: 1px solid #ccc; padding-top: 15px;'><button ng-click='confirmMaxOut()' class='action-button' style='width: 40%;'>OK<\/button>  <button ng-click='cancelMaxOut()' class='action-button' style='width: 40%;'>Cancel<\/button><\/div>     <\/div>   <\/section><\/section>",scope:{getRecipients:"=",thresholdAmount:"@"}}});n.directive("splitIt",function(){function n(n){n.splitAmountEvenly=function(){var o=function(n,t){var i=n.length,r,u,f;for(angular.forEach(n,function(n){n.amount=0}),r=100;i>0&&t>=r;)u=Math.max(r,Math.round(t/i)),f=n[i-1],f.amount=u/100,i--,t-=u},s=parseFloat(n.splitAmount),c;if(s){var i=_.filter(n.getRecipients(),function(n){return n.goalAchieved||n.contributionLimitReached?!1:!0}),r=s*100,u=Math.round(r/i.length),f=1e8;if(_.each(i,function(n){n.contributionLimit>0&&n.contributionLimit*100<f&&(f=n.contributionLimit*100)}),f>u)o(i,r);else{for(var e=r,t=i,h=0;t.length!=h;)h=t.length,c=t,t=[],_.each(c,function(n){n.contributionLimit*100<u&&n.contributionLimit>0?(n.amount=n.contributionLimit,e-=n.contributionLimit*100):t.push(n)}),u=e/t.length;o(t,e)}}n.splitAmount=""}}return{controller:["$scope",n],restrict:"E",replace:!0,template:function(n,t){return t.legacy?"              <div class='page-amount-splitter page-amount-tool' >                <label for='split-amount'>Divide your contribution between the recipients shown.<\/label>                <input type='number' step='any' ng-model='splitAmount' placeholder='0.00' min='1' id='split-amount' limit-currency-decimals />                <button ng-click='splitAmountEvenly()' ng-disabled='splitAmount <= 0' class='action-button'>Split It<\/button>              <\/div>":"              <section class='split-it'>              <header>                <h1>Split It<\/h1>                <p>Divide amount equally<\/p>              <\/header>              <div class='currency-input'><input type='number' step='any' ng-model='splitAmount' min='1' id='split-amount' limit-currency-decimals /><\/div>              <button ng-click='splitAmountEvenly()' ng-disabled='splitAmount <= 0'>{{ buttonText }}<\/button>              <\/section >"},scope:{getRecipients:"=",buttonText:"@",legacy:"@"}}});n.directive("featuredFilter",function(){return{restrict:"E",replace:!0,template:"          <div class='featured-filter'>            <label ng-class=\"showFeatured ? 'selected' : ''\" class='featured'><span><input type='radio' ng-model='showFeatured' ng-value='true' />View Featured<\/span><\/label>            <label ng-class=\"showFeatured ? '' : 'selected'\"><span><input type='radio' ng-model='showFeatured' ng-value='false' />View All<\/span><\/label>          <\/div>",scope:{showFeatured:"="}}});n.directive("customFilters",function(){return{restrict:"E",replace:!0,template:"          <div class='custom-filters'>            <select kendo-multi-select k-ng-model='filterOffices' k-value-primitive='true' k-data-source='availableOffices' k-placeholder=\"'Office'\" ng-show='availableOffices.length' ><\/select>            <select kendo-multi-select k-ng-model='filterPoliticalParties' k-value-primitive='true' k-data-source='availablePoliticalParties' k-placeholder=\"'Party'\" ng-show='availablePoliticalParties.length' ><\/select>            <select kendo-multi-select k-ng-model='filterState' k-value-primitive='true' k-data-source='availableStates' k-placeholder=\"'State'\" ><\/select>            <select kendo-multi-select k-ng-model='filterCustomFields1' k-value-primitive='true' k-data-source='availableCustomFields1' ng-show='availableCustomFields1.length' k-placeholder=\"{{ customField1Name }}\"><\/select>            <select kendo-multi-select k-ng-model='filterCustomFields2' k-value-primitive='true' k-data-source='availableCustomFields2' ng-show='availableCustomFields2.length' k-placeholder=\"{{ customField2Name }}\"><\/select>       <\/div>",scope:{filterOffices:"=",filterState:"=",filterPoliticalParties:"=",filterCustomFields1:"=",filterCustomFields2:"=",availableStates:"=",availableOffices:"=",availablePoliticalParties:"=",availableCustomFields1:"=",availableCustomFields2:"=",customField1Name:"@",customField2Name:"@"}}});n.directive("contributionTerms",function(){return{restrict:"E",replace:!0,template:"          <div class='contribution-terms'>            <p>By clicking on the “Express Donate” button you confirm that the following statements are true and accurate: <\/p>            <div ng-bind-html='terms'><\/div>            <p class='de-terms'>I understand that my payment is being made to Democracy Engine, who accepts the responsibility of distributing the funds to my designated recipient(s). My card or bank statement will show a payment to “Democracy Engine” and if there are any issues or discrepancies with the payment or I wish to revoke the payment, I can contact Democracy Engine at support@democracyengine.com.<\/p>          <\/div>",scope:{terms:"="}}})}(),function(){var n=angular.module("app");n.directive("lazySrc",["$window","$document",function(n,t){function e(n){var t=n.data("__uid");return t||n.data("__uid",t=""+ ++c),t}function l(){var n,t=typeof i.pageXOffset=="number"?i.pageXOffset:(((n=u.documentElement)||(n=f.parentNode))&&typeof n.scrollLeft=="number"?n:f).scrollLeft,r=typeof i.pageYOffset=="number"?i.pageYOffset:(((n=u.documentElement)||(n=f.parentNode))&&typeof n.scrollTop=="number"?n:f).scrollTop;return{offsetX:t,offsetY:r}}function h(n){var s=n[0],f=s.getBoundingClientRect(),a=l(),t=a.offsetX,r=a.offsetY,v=f.width||s.width,y=f.height||s.height,e=f.left+t,o=f.top+r,p=Math.max(u.documentElement.clientWidth,i.innerWidth||0),w=Math.max(u.documentElement.clientHeight,i.innerHeight||0),h,c;return o<=r?o+y>=r&&(c=!0):o>=r&&o<=r+w&&(c=!0),e<=t?e+v>=t&&(h=!0):e>=t&&e<=t+p&&(h=!0),h&&c}function o(){angular.forEach(r,function(n){var t=n.iElement,i=n.$scope;h(t)&&t.attr("src",i.lazySrc)})}function a(){var n=angular.element(this),t=e(n);n.css("opacity",1);r.hasOwnProperty(t)&&delete r[t]}var u=t[0],f=u.body,i=n,s=angular.element(i),c=0,r={};return s.bind("scroll",o),s.bind("resize",o),{restrict:"A",scope:{lazySrc:"@",animateVisible:"@",animateSpeed:"@"},link:function(n,t){t.bind("load",a);const i=new IntersectionObserver(o),u=angular.element(t)[0];i.observe(u);n.$watch("lazySrc",function(){var i=".5s",u;n.animateSpeed!=null&&(i=n.animateSpeed);h(t)?(n.animateVisible&&t.css({opacity:0,"-webkit-transition":"opacity "+i,transition:"opacity "+i}),t.attr("src",n.lazySrc)):(u=e(t),t.css({opacity:0,"-webkit-transition":"opacity "+i,transition:"opacity "+i}),r[u]={iElement:t,$scope:n})});n.$on("$destroy",function(){t.unbind("load");var n=e(t);r.hasOwnProperty(n)&&delete r[n]})}}}])}(),function(){function n(n){var t=this;t.$onInit=function(){n.get()}}var t=angular.module("app");t.component("recipientProfile",{bindings:{},template:"<div>{{ $ctrl.recipient.DisplayName }}<\/div>",controller:["$http",n]})}(),function(){function n(n){var t=this;t.oldAmount=null;t.suggestedAmount=0;t.otherAmount=null;t.otherAmountHasFocus=!1;t.suggestedAmountsValues=[];t.$doCheck=function(){if(t.amount!=t.oldAmount&&!t.otherAmountHasFocus&&Array.isArray(t.suggestedAmounts)&&(t.suggestedAmounts.indexOf(t.amount)>=0?t.setSuggestedAmount(t.amount):t.setOtherAmount(t.amount),t.oldAmount=t.amount),!t.suggestedAmounts){n.addClass("suggested-amounts-0");return}for(t.suggestedAmountsValues=Array.isArray(t.suggestedAmounts)?Array.isArray(t.suggestedAmounts)?t.suggestedAmounts.slice():[]:t.suggestedAmounts.split(",").map(function(n){return parseInt(n.trim())}),t.suggestedAmountsValues.length&&n.removeClass,i=0;i<10;i++)n.removeClass("suggested-amounts-"+i);const r="suggested-amounts-"+t.suggestedAmountsValues.length;n.addClass(r)};t.$onInit=function(){const n=t.amount;t.oldAmount=t.amount;t.suggestedAmountsValues.indexOf(n)>=0?t.setSuggestedAmount(n):t.setOtherAmount(n)};t.onSuggestedAmountClick=function(n){const i=n<t.suggestedAmountsValues.length?t.suggestedAmountsValues[n]:0;t.contributionLimit&&i>t.contributionLimit||(i>0&&i==t.amount?(t.suggestedAmount=null,t.amount=null):t.setSuggestedAmount(i))};t.onOtherAmountBlur=function(){t.otherAmountHasFocus=!1};t.onOtherAmountChange=function(){t.suggestedAmount=null;t.amount=t.otherAmount};t.onOtherAmountFocus=function(){t.otherAmountHasFocus=!0};t.setOtherAmount=function(n){t.suggestedAmount=null;t.otherAmount=n;t.amount=n};t.setSuggestedAmount=function(n){t.suggestedAmount=n;t.otherAmount=null;t.amount=n}}var t=angular.module("app");t.component("suggestedDonations",{bindings:{amount:"=",suggestedAmounts:"<",contributionLimit:"<"},template:"<label ng-repeat='donationAmount in $ctrl.suggestedAmountsValues track by $index' ng-click='$ctrl.onSuggestedAmountClick($index)' class='amount-option' ng-class='{ selected: $ctrl.suggestedAmount == donationAmount, disabled: $ctrl.contributionLimit && (donationAmount > $ctrl.contributionLimit) }'><span>${{ donationAmount }}<\/span><\/label><div><label>$<\/label><input type='number' ng-value='$ctrl.otherAmount' ng-model='$ctrl.otherAmount' ng-change='$ctrl.onOtherAmountChange()' ng-blur='$ctrl.onOtherAmountBlur()' ng-focus='$ctrl.onOtherAmountFocus()' min='0' max='{{ $ctrl.contributionLimit ? $ctrl.contributionLimit : 1000000 }}' step='any' ng-class='{ selected: $ctrl.otherAmount && ($ctrl.otherAmount === $ctrl.amount) }' /><\/div>",controller:["$element",n]})}(),function(){var n=angular.module("app");n.controller("ConfirmEmailController",["$http",function(n){var t=this;t.sendConfirmationEmail=function(){t.successMessage=null;t.errorMessage=null;n.post("/api/users/sendemailconfirmation?email="+encodeURIComponent(t.email)).then(function(){t.successMessage="Please check your email for instructions on how to confirm your email address."},function(){t.errorMessage="There was an error sending the confirmation email."})}}])}(),function(){var n=angular.module("app");n.controller("EnrollManagedUserController",["$http","$window",function(n,t){var i=this,r=function(){i.emailAddress=t.getQueryStringParameter("email");i.firstName=t.getQueryStringParameter("firstname");i.lastName=t.getQueryStringParameter("lastname");i.address=t.getQueryStringParameter("address");i.city=t.getQueryStringParameter("city");i.state=t.getQueryStringParameter("state");i.postalCode=t.getQueryStringParameter("postalcode");i.employer=t.getQueryStringParameter("employer");i.occupation=t.getQueryStringParameter("occupation");i.phoneNumber=t.getQueryStringParameter("phone");i.creditCard={};i.electronicCheck={};i.paymentMethod="CreditCard";i.processingPayment=!1;i.successfullyEnrolled=!1};i.enroll=function(){if(!i.processingPayment){i.errors=[];i.paymentProcessingDialog.show();var t={emailAddress:i.emailAddress,firstName:i.firstName,lastName:i.lastName,address:i.address,city:i.city,state:i.state,postalCode:i.postalCode,employer:i.employer,occupation:i.occupation,phoneNumber:i.phoneNumber,expressDonate:{creditCard:i.creditCard,electronicCheck:i.electronicCheck,paymentMethod:i.paymentMethod}};n.post("/api/managedusers/register",t).then(function(){i.successfullyEnrolled=!0;i.processingPayment=!1;i.paymentProcessingDialog.hide();window.history.pushState({},null,"/userregistration/managed/complete")},function(n){i.errors=[];console.log(n);var r=n.data.ModelState;for(t in r)i.errors.push(r[t][0]);console.log(i.errors);i.processingPayment=!1;i.paymentProcessingDialog.hide()})}};r()}])}(),function(){var n=angular.module("app");n.controller("ManageExpressDonateController",["$http",function(n){var t=this,i=function(){t.creditCard={};t.electronicCheck={};t.paymentMethod="CreditCard";t.processingPayment=!1;t.successfullyEnrolled=!1};t.enroll=function(){t.processingPayment||(t.errors=[],t.paymentProcessingDialog.show(),n.post("/api/manageexpressdonate/enroll",{creditCard:t.creditCard,electronicCheck:t.electronicCheck,paymentMethod:t.paymentMethod}).then(function(){t.successfullyEnrolled=!0;t.processingPayment=!1;t.paymentProcessingDialog.hide()},function(n){t.errors=[];for(model in n.ModelState)t.errors.push(n.ModelState[model][0]);t.processingPayment=!1;t.paymentProcessingDialog.hide()}))};i()}])}(),function(){var n=angular.module("app");n.controller("PageController",["$scope","$http","$window","$timeout","User","Page","GoogleAnalytics",function(n,t,i,r,u,f,e){var o=this,s,h;this.filterOffices=[];this.filterState=[];this.filterCustomFields1=[];this.filterCustomFields2=[];this.filterPoliticalParties=[];this.recipients=[];this.showFeatured=!0;this.enableFeaturedFilter=!1;this.filteredByQueryString=!1;this.expressDonate=!1;this.createSubscription=!1;this.availableOffices=[];this.availableCustomFields1=[];this.availableCustomFields2=[];this.availablePoliticalParties=[];this.offices=[];this.states=[];this.page=_.filter(i.location.pathname.split("/"),function(n){return n!=""}).pop();i.getQueryStringParameter("recipients")?(this.showFeatured=!1,this.filteredByQueryString=!0):i.getQueryStringParameter("featured")==="false"&&(this.showFeatured=!1);s=f.getTrackingData(this.page);this.source=s.source;this.url=s.url;o.createSubscription=f.getSubscription(this.page).createSubscription;u.getCurrentUser().then(function(n){o.user=n},function(){});this.mobile=i.innerWidth<768;angular.element(i).bind("resize",function(){o.mobile=i.innerWidth<768;n.$digest()});h=function(){f.storeContributionDetails(o.page,o.source,o.url,o.contributingRecipients(),o.createSubscription)};n.$watch("vm.recipients",function(n,t){t!==n&&h()},!0);this.continueToPayment=function(){h();i.location="/page/"+o.page+"/payment?express=false"};this.clearContributingRecipients=function(){angular.forEach(o.recipients,function(n){n.amount=null})};this.clearFilters=function(){o.filterOffices=o.filterOffices==null||typeof o.filterOffices=="string"?"":[];o.filterState=[];o.filterPoliticalParties=[];o.filterCustomFields1=[];o.filterCustomFields2=[]};this.submitExpressDonation=function(){if(!o.processingPayment){o.processingPayment=!0;o.paymentProcessingDialog.show();var n={recipients:o.contributingRecipients(),page:o.page,sourceCode:o.source,createSubscription:o.createSubscription},u=function(){t.post("/api/contribute/express",n).then(function(n){o.processingPayment=!1;i.location="/contribution/complete?id="+n.data.ContributionId},function(n){o.processingPayment=!1;o.errors=[];for(var t in n.data.ModelState)o.errors.push(n.data.ModelState[t][0]);alert("An error occurred processing your donation. Please complete the form on the following page and retry your submission.");o.paymentProcessingDialog.hide();i.location="/page/"+o.page+"/payment?express=false"})};r(u,500)}};this.contributingRecipients=function(){return _.filter(o.filteredRecipients,function(n){return n.amount>0})};this.recipientFilter=function(n){return o.enableFeaturedFilter&&o.showFeatured&&!n.featured?!1:o.filterState&&o.filterState!="All"&&o.filterState.length>0&&o.filterState.indexOf(n.state)<0?!1:o.filterOffices.length>0&&o.filterOffices.indexOf(n.office)<0?!1:o.filterPoliticalParties.length>0&&o.filterPoliticalParties.indexOf(n.politicalParty)<0?!1:o.filterCustomFields1.length>0&&o.filterCustomFields1.indexOf(n.customField1)<0?!1:o.filterCustomFields2.length>0&&o.filterCustomFields2.indexOf(n.customField2)<0?!1:!0};this.contributingRecipients=function(){return _.filter(o.recipients,function(n){return n.amount>=1})};this.getFilteredRecipients=function(){return o.filteredRecipients};this.displayProfile=function(n){n.externalProfileUrl?o.recipientProfileDialog.showExternalProfile(n.externalProfileUrl):(console.log(n),o.recipientProfileDialog.showProfile(n.identifier,n.amount));e("send","event","recipient-profile","view")};n.$on("DonateToRecipient",function(n,t){_.findWhere(o.recipients,{identifier:t.identifier}).amount=t.amount});f.getPageRecipients(o.page).then(function(n){o.recipients=n.recipients;o.contributionTerms=n.terms.reverse().join(" ");o.availableCustomFields1=_.uniq(_.filter(_.pluck(o.recipients,"customField1"),function(n){return n!=null})).sort();o.availableCustomFields2=_.uniq(_.filter(_.pluck(o.recipients,"customField2"),function(n){return n!=null})).sort();o.availableOffices=_.uniq(_.filter(_.pluck(o.recipients,"office"),function(n){return n!=null})).sort();o.availablePoliticalParties=_.uniq(_.filter(_.pluck(o.recipients,"politicalParty"),function(n){return n!=null})).sort();o.availableStates=_.uniq(_.filter(_.pluck(o.recipients,"state"),function(n){return n!=null})).sort()})}])}(),function(){var n=angular.module("app");n.controller("PaymentController",["$http","$window","$scope","$timeout","User","Page",function(t,i,r,u,f,e){var o=this,h=function(){var n,t;o.express=/^true$/i.test(i.getQueryStringParameter("express"));o.expressSet=i.getQueryStringParameter("express")!=="";n=_.filter(i.location.pathname.split("/"),function(n){return n!=""});o.pageType=n[0];o.page=n[1];o.recipients=[];o.creditCard={};o.electronicCheck={accountType:"Checking"};o.paymentMethod="CreditCard";o.donor={noEmployer:!1};o.processingPayment=!1;o.createSubscription=!1;o.tipAmount=0;o.showRecipients=!(i.innerWidth<768);t=e.getTrackingData(o.page);o.source=t.source;o.url=t.url;c()},c=function(){e.getPaymentRecipients(o.page).then(function(n){n.recipients.length==0?i.location="/"+o.pageType+"/"+o.page:(console.log(n),o.recipients=n.recipients,o.tip=n.tip,o.contributionTerms=n.terms.join(" "),o.paymentCheckbox=n.paymentCheckbox,o.paymentPageHeaderHtml=n.paymentPageHeaderHtml)});o.createSubscription=e.getSubscription(o.page).createSubscription},s=function(n){o.user=n;o.user&&(o.donor.firstName=o.user.firstName,o.donor.lastName=o.user.lastName,o.donor.email=o.user.email,o.donor.employer=o.user.employer,o.donor.occupation=o.user.occupation,o.donor.streetAddress=o.user.address,o.donor.city=o.user.city,o.donor.state=o.user.state,o.donor.postalCode=o.user.postalCode,o.donor.phoneNumber=o.user.phoneNumber,o.employerAddress={address:o.user.employerAddress,city:o.user.employerCity,state:o.user.employerState,postalCode:o.user.employerPostalCode})};r.$watch("vm.donor.noEmployer",function(){o.donor.noEmployer?(o.donor.employer="none",o.donor.occupation="none"):(o.donor.employer="",o.donor.occupation="",r.donor_step.employer.$setPristine(),r.donor_step.occupation.$setPristine())});o.getAllDonatingRecipients=function(){var n=o.recipients.concat([]);return o.tipRecipient&&o.tipRecipient.amount&&(n=n.concat([o.tipRecipient])),n};o.getRecipientsForDonationRequest=function(){var n=o.recipients.concat([]);return o.tip&&o.tip.recipient&&o.tip.recipient.amount&&(n=n.concat([o.tip.recipient])),n.map(function(n){return{identifier:n.identifier,amount:n.amount}})};o.getDonationAmount=function(){var t=o.getAllDonatingRecipients(),n;return t.length?(n=t.reduce(function(n,t){return n+t.amount},0),o.tip&&o.tip.recipient&&o.tip.recipient.amount&&(n+=o.tip.recipient.amount),n):0};o.requireEmployerAddress=function(){return o.donor.noEmployer?!1:_.findWhere(o.recipients,{requireEmployerAddress:!0})!=undefined};o.showExpressDonateButton=function(){return o.user&&o.express};o.showExpressDonateSignIn=function(){return o.user?!1:o.express};o.showPaymentForm=function(){return!o.express};o.signInAndExpressDonate=function(){t.post("/api/userauthentication/signin",o.signIn).then(function(i){s(i.data.user);t.get("/api/userauthentication/verificationtoken").then(function(i){n.loadRequestVerificationToken(t,i.data.token);o.submitExpressDonation()})},function(n){o.pushErrors(n.data.ModelState)})};o.submitExpressDonation=function(){var n,r,f;o.processingPayment||(o.processingPayment=!0,o.paymentProcessingDialog.show(),n=o.recipients,o.tipRecipient.amount&&n.push(o.tipRecipient),r={recipients:o.getAllDonatingRecipients(),page:o.page,sourceCode:o.source,createSubscription:o.createSubscription},f=function(){t.post("/api/contribute/express",r).then(function(n){o.processingPayment=!1;e.removeContributionDetails(o.page);i.location="/contribution/complete?id="+n.data.ContributionId},function(n){o.pushErrors(n.data.ModelState);o.processingPayment=!1;o.express=!1;o.expressSet=!0;o.paymentProcessingDialog.hide()})},u(f,500))};o.submitDonation=function(n){var f,s;o.processingPayment||(o.processingPayment=!0,r.donor_step.$invalid?(r.donor_step.$setSubmitted(),n.preventDefault(),o.processingPayment=!1):o.paymentMethod==="CreditCard"&&r.credit_card_form.$invalid?(r.credit_card_form.$setSubmitted(),n.preventDefault(),o.processingPayment=!1):o.paymentMethod==="ElectronicCheck"&&r.electronic_check_form.$invalid?(r.electronic_check_form.$setSubmitted(),n.preventDefault(),o.processingPayment=!1):(o.paymentProcessingDialog.show(),f={firstName:o.donor.firstName,lastName:o.donor.lastName,email:o.donor.email,phoneNumber:o.donor.phoneNumber,address:{address:o.donor.streetAddress,city:o.donor.city,state:o.donor.state,postalCode:o.donor.postalCode},employer:o.donor.employer,occupation:o.donor.occupation,paymentMethod:o.paymentMethod,recipients:o.getRecipientsForDonationRequest(),page:o.page,sourceCode:o.source,url:o.url,storePaymentInformation:o.storePaymentInformation,password:o.password,passwordConfirmation:o.passwordConfirmation,employerAddress:o.employerAddress,createSubscription:o.createSubscription,paymentPageCheckboxName:o.paymentCheckbox?o.paymentCheckbox.name:null,paymentPageCheckboxChecked:o.paymentCheckboxValue||!1},o.paymentMethod==="ElectronicCheck"?f.electronicCheck=o.electronicCheck:o.paymentMethod=="CreditCard"&&(f.creditCard=o.creditCard),s=function(){t.post("/api/contribute",f).then(function(n){o.processingPayment=!1;e.removeContributionDetails(o.page);var t="/contribution/complete?id="+n.data.ContributionId;n.data.SavingOfPaymentAuthorizationNotAllowed&&(t+="&duplicateAccount=true");i.location=t},function(n){o.pushErrors(n.data.ModelState);o.processingPayment=!1;o.paymentProcessingDialog.hide()})},u(s,500)))};o.pushErrors=function(n){o.errors=[];for(model in n){var t=n[model];angular.forEach(t,function(n){o.errors.push(n)})}};h();f.getCurrentUser().then(function(n){s(n);o.user&&(o.expressSet?o.user.paymentAuthorizationSaved||(o.express=!1):o.express=o.user.paymentAuthorizationSaved)})}])}(),function(){var n=angular.module("app");n.controller("ResetPasswordController",["$http","$window",function(n,t){var i=this;i.currentView="form";i.code=t.getQueryStringParameter("code");i.resetPassword=function(){n.post("/api/passwordreset/reset",angular.toJson(i)).then(function(){i.currentView="success"},function(n){i.errors=[];for(model in n.data.ModelState)i.errors.push(n.data.ModelState[model][0])})}}])}(),function(){var n=angular.module("app");n.controller("StartPasswordResetController",["$http","$window",function(n){var t=this;t.currentView="form";t.startPasswordReset=function(){n.post("/api/passwordreset/start",angular.toJson(t)).then(function(){t.currentView="success"},function(){t.errorMessage="We're sorry, an error has occurred."})}}])}()