!function(t){"use strict";var e=function(t){return t},n=function(e){return t.isArray(e)},i=function(t){return!n(t)&&t instanceof Object},r=function(e,n){return t.inArray(n,e)},u=function(t,e){for(var n in t)t.hasOwnProperty(n)&&e(t[n],n,t)},a=function(t){return t[t.length-1]},c=function(){var t,e={};return u((t=arguments,Array.prototype.slice.call(t)),(function(t){u(t,(function(t,n){e[n]=t}))})),e},o=function(t,e,i){return n(t)?function(t,e){var n=[];return u(t,(function(t,i,r){n.push(e(t,i,r))})),n}(t,e):function(t,e,n){var i={};return u(t,(function(t,r,u){r=n?n(r,t):r,i[r]=e(t,r,u)})),i}(t,e,i)},f=function(t,e,n){return o(t,(function(t,i){return t[e].apply(t,n||[])}))};!function(t){var e=function(t,e){var n,i,a,c=(i={},(n=n||{}).publish=function(t,e){u(i[t],(function(t){t(e)}))},n.subscribe=function(t,e){i[t]=i[t]||[],i[t].push(e)},n.unsubscribe=function(t){u(i,(function(e){var n=r(e,t);-1!==n&&e.splice(n,1)}))},n),o=t.$;return c.getType=function(){throw'implement me (return type. "text", "radio", etc.)'},c.$=function(t){return t?o.find(t):o},c.disable=function(){c.$().prop("disabled",!0),c.publish("isEnabled",!1)},c.enable=function(){c.$().prop("disabled",!1),c.publish("isEnabled",!0)},e.equalTo=function(t,e){return t===e},e.publishChange=function(t,n){var i=c.get();e.equalTo(i,a)||c.publish("change",{e:t,domElement:n}),a=i},c},c=function(t,n){var i=e(t,n);return i.get=function(){return i.$().val()},i.set=function(t){i.$().val(t)},i.clear=function(){i.set("")},n.buildSetter=function(t){return function(e){t.call(i,e)}},i},o=function(t,e){t=n(t)?t:[t],e=n(e)?e:[e];var i=!0;return t.length!==e.length?i=!1:u(t,(function(t){(function(t,e){return-1!==r(t,e)})(e,t)||(i=!1)})),i},s=function(t){var e={},n=c(t,e);return n.getType=function(){return"button"},n.$().on("change",(function(t){e.publishChange(t,this)})),n},p=function(e){var i={},r=c(e,i);return r.getType=function(){return"checkbox"},r.get=function(){var e=[];return r.$().filter(":checked").each((function(){e.push(t(this).val())})),e},r.set=function(e){e=n(e)?e:[e],r.$().each((function(){t(this).prop("checked",!1)})),u(e,(function(t){r.$().filter('[value="'+t+'"]').prop("checked",!0)}))},i.equalTo=o,r.$().change((function(t){i.publishChange(t,this)})),r},l=function(t){var e=k(t,{});return e.getType=function(){return"email"},e},h=function(n){var i={},r=e(n,i);return r.getType=function(){return"file"},r.get=function(){return a(r.$().val().split("\\"))},r.clear=function(){this.$().each((function(){t(this).wrap("