//dna.js v0.1.6 ~~ dnajs.org/license.html
var dna={};dna.util={toCamel:function(a){function b(a,b){return b.toUpperCase()}return(""+a).replace(/\-(.)/g,b)},toCode:function(a){function b(a){return"-"+a.toLowerCase()}return(""+a).replace(/([A-Z])/g,b).replace(/\s|^-/g,"")},value:function(a,b){return"string"==typeof b&&(b=b.split(".")),null===a||void 0===a||void 0===b?null:1===b.length?a[b[0]]:this.value(a[b[0]],b.slice(1))},call:function(a,b){function c(d,e){d?1==e.length?d[e[0]](b):c(d[e[0]],e.slice(1)):dna.core.berserk('Invalid name before "'+e[0]+'" in: '+a)}a&&b.length&&c(window,a.split("."))},apply:function(a,b,c){a.find(b).addBack(b).each(c)}},dna.compile={regexDnaField:/^[\s]*(~~|\{\{).*(~~|\}\})[\s]*$/,regexDnaBasePair:/~~|{{|}}/,regexDnaBasePairs:/~~|\{\{|\}\}/g,isDnaField:function(){var a=$(this)[0].childNodes[0];return a&&a.nodeValue&&a.nodeValue.match(dna.compile.regexDnaField)},field:function(){var a=$(this);a.addClass("dna-field").data("dna-field",$.trim(a.text()).replace(dna.compile.regexDnaBasePairs,"")).empty()},attrs:function(){function a(){3===this.value.split(dna.compile.regexDnaBasePair).length&&c.push(this.name.replace(/^data-dna-attr-/,""),this.value.split(dna.compile.regexDnaBasePair))}var b=$(this),c=[];$.each(b.get(0).attributes,a),c.length>0&&b.addClass("dna-attr").data("dna",c)},getDataField:function(a,b){return $.trim(a.data("dna-"+b).replace(dna.compile.regexDnaBasePairs,""))},addDataToElems:function(a,b){function c(){var a=$(this),c=a.data("dna-model")?a.data("dna-model"):{};c[b]=dna.compile.getDataField(a,b),a.data("dna-model",c).addClass("dna-data")}return a.filter("[data-dna-"+b+"]").each(c)},template:function(a){var b=a.elem.find("*").addBack();b.filter(dna.compile.isDnaField).each(dna.compile.field),b.each(dna.compile.attrs),dna.compile.addDataToElems(b,"class"),dna.compile.addDataToElems(b,"require"),dna.compile.addDataToElems(b,"missing"),a.elem.removeClass("dna-template").addClass("dna-clone").addClass(a.name),a.compiled=!0}},dna.store={templates:{},stash:function(a,b){function c(){var b=$(this),c=b.parent(),d=c.data("dna-model")?b.data("dna-model"):{};d.array=dna.compile.getDataField(b,"array"),c.data("dna-model",d).addClass("dna-data"),c.data("dna-array-index",b.index()),b.attr("id",a+"-"+d.array+"-instance")}var d=$("#"+a);return b||(d.find("[data-dna-array]").addClass("dna-template").each(c),d.find(".dna-template").each(dna.store.stashNested)),d.hasClass("dna-template")&&(dna.store.templates[a]={name:a,elem:d,container:d.parent().addClass("dna-contains-"+a).data("dna-contains",a),compiled:!1,clones:0}),d.removeAttr("id").detach(),dna.store.templates[a]},stashNested:function(){dna.store.stash($(this).attr("id"),!0)},getTemplate:function(a){var b=dna.store.templates[a]||dna.store.stash(a);return b||dna.core.berserk("Template not found: "+a),b.compiled||dna.compile.template(b),b}},dna.core={inject:function(a,b,c,d){function e(){function a(a){return-1!==["string","number","boolean"].indexOf(typeof a)}var e=$(this),f=e.data("dna-field"),g="object"==typeof b?dna.util.value(b,f):"[count]"===f?c:"[value]"===f?b:null;a(g)&&(e=d.html?e.html(g):e.text(g))}function f(){var a=$(this);g=$(this).data("dna");for(var c=0;c "+a}},dna.api={clone:function(a,b,c){var d={fade:!1,top:!1,holder:null,empty:!1,task:null,html:!1,callback:null};$.extend(d,c);var e=dna.store.getTemplate(a);d.empty&&dna.api.empty(a);for(var f=b instanceof Array?b:[b],g=$(),h=0;h