text: function CFEvents(a){function b(a){return c.hasOwnProperty(a)}var c={};this.subscribe=function(a,d){b(a)||(c[a]=[]),c[a].push(d)},this.trigger=function(d,e){b(d)&&c[d].forEach(function(b){void 0===e&&(e=a.getState(d)),b(d,e)})},this.emit=function(a,d){b(a)&&c[a].forEach(function(b){b(d,a)})},this.detach=function(a,d){if(b(a))if(null===d)delete c[a];else for(var e in c[a])d===e&&c[a].splice(e,1)}}function CFState(a,b){function c(a){return m.hasOwnProperty(a)}function d(a){var c=b("#"+a);if(c.length)return c.on("change keyup",function(){var a=b(this);n[a.attr("id")]=f(a),j.mutateState([a.attr("id")],a.val())}),n[a]=f(b(document.getElementById(a))),j.mutateState([c.attr("id")],c.val()),c.trigger("cf.bind",{field:c.attr("id")}),!0;if(c=b("."+a),c.length){if("object"==typeof c){var d=[],e=0;c.each(function(c,h){var i=b(h),j=0;i.prop("checked")&&(j+=g(f(i)),e+=j,d.push(i.val())),n[a]=e})}return c.on("change",function(){var a,d,e=[],h=b(this),i=h.attr("type");switch(i){case"radio":a=h.data("radio-field"),d=b("[data-radio-field="+a+"]"),e="";break;case"checkbox":a=h.data("checkbox-field"),d=b("[data-checkbox-field="+a+"]");break;default:a=h.data("field"),d=b("[data-field="+a+"]")}if("checkbox"===i){var k,l=0;d.length?d.each(function(a,c){k=b(c),k.prop("checked")&&(l+=g(f(k)),e.push(k.val()))}):e=[],n[a]=l}else d.length?1==d.length?e=f(b(d[0])):d.each(function(c,d){var g=b(d);g.prop("checked")&&("radio"===i?(n[a]=f(g),e=g.val()):e.push(g.val()))}):e=0;j.mutateState(a,e),c.trigger("cf.bind",{field:c.attr("id")})}),!0}return j.unbind(a),!1}function e(a,b){m[a]=0,n[a]=0,j.events().subscribe(a,function(a,b){n[b]=a})}function f(a){if(a.is("select")&&a.has("option")&&(a=a.find(":selected")),!a.length)return 0;if(a.is("hidden"))return a.val();var b=0,c=a.attr("data-calc-value");return b=void 0===c||!1===c||isNaN(c)?a.val():a.data("calc-value"),g(b)}function g(a){return!a||isNaN(a)?0:window.parseFloat(a)}function h(a){return"number"==typeof a}function i(a){return"string"==typeof a}var j=this,k=new CFEvents(this),l={},m={},n={};this.init=function(a,b){for(var c in a)"object"==typeof b[c]?"calculation"==b[c].type&&e(c,b[c]):d(c)?(m[c]=a[c],b.hasOwnProperty(c)?n[c]=b[c]:n[c]=null):(m[c]="",l[c]=!0,n[c]=null)},this.getState=function(a){return!!c(a)&&m[a]},this.getCalcValue=function(a,d){var e=0;if(!c(a))return e;if(d){d=0;var k,l=d;return b("#"+a).each(function(){l=0,k=b(this),k.prop("checked")&&(l=f(k),g(l)>g(d)&&(d=g(l)))}),g(d)}if(n.hasOwnProperty(a)){if(!1===n[a]||null===n[a]){var m=f(b(document.getElementById(a)));i(m)&&(m=g(m)),h(m)&&(n[a]=m)}e=n[a]}else e=j.getState(a),b.isArray(e)&&(e=e.reduce(function(a,b){return g(a)+g(b)},0)),h(e)&&(n[a]=e);return g(e)},this.mutateState=function(a,b){return!!c(a)&&(m[a]!=b&&(m[a]=b,k.trigger(a,b)),!0)},this.unbind=function(a){j.mutateState(a,""),l[a]=!0,delete n[a]},this.rebind=function(a){d(a),delete l[a]},this.events=function(){return{subscribe:function(a,b){c(a)&&k.subscribe(a,b)},detach:function(a,b){k.detach(a,b)},emit:function(a,b){k.emit(a,b)},attatchEvent:function(a,b){k.subscribe(a,b)}}}}