/*! Django Superformset - v1.0.4 - 2014-06-13 * https://github.com/jgerigmeyer/jquery-django-superformset * Based on jQuery Formset 1.1r14, by Stanislaus Madueke * Original Portions Copyright (c) 2009 Stanislaus Madueke * Modifications Copyright (c) 2014 Jonny Gerig Meyer; Licensed BSDv3 */ !function(a){"use strict";var b={init:function(c){var d={},e=d.opts=a.extend({},a.fn.superformset.defaults,c),f=d.wrapper=a(this),g=d.rows=f.find(e.rowSel),h=d.container=g.closest(e.containerSel);d.totalForms=f.find('input[id$="'+e.prefix+'-TOTAL_FORMS"]'),d.maxForms=f.find('input[id$="'+e.prefix+'-MAX_NUM_FORMS"]');var i=d.tpl=h.find(e.formTemplate).clone(!0);return h.find(e.formTemplate).find("[required], .required").removeAttr("required").removeData("required-by").addClass("required"),i.removeAttr("id").find("input, select, textarea").filter("[required]").addClass("required").removeAttr("required"),b.addDeleteTrigger(i,e.canDelete,d),b.addInsertAboveTrigger(i,d),g.each(function(){var c=a(this);b.addDeleteTrigger(c,e.canDelete&&!e.deleteOnlyNew,d),b.addInsertAboveTrigger(c,d),b.watchForChangesToOptionalIfEmptyRow(c,d)}),e.autoAdd||b.activateAddTrigger(d),e.alwaysShowExtra&&e.autoAdd&&(b.autoAddRow(d),f.closest("form").submit(function(){a(this).find(e.rowSel).filter(".extra-row").find("input, select, textarea").each(function(){a(this).removeAttr("name")})})),f},activateAddTrigger:function(c){var d,e=c.opts;d=c.addButton=c.wrapper.find(e.addTriggerSel).length?c.wrapper.find(e.addTriggerSel):a(e.addTrigger).appendTo(c.wrapper),b.showAddButton(c)||d.hide(),d.click(function(d){var f=a(this),g=parseInt(c.totalForms.val(),10),h=c.tpl.clone(!0).addClass("new-row"),i=c.wrapper.find(e.rowSel).last();h.find("input, select, textarea").filter(".required").attr("required","required"),e.addAnimationSpeed?(i.length?h.hide().insertAfter(i):h.hide().insertBefore(f),h.animate({height:"toggle",opacity:"toggle"},e.addAnimationSpeed)):i.length?h.insertAfter(i).show():h.insertBefore(f).show(),h.find("input, select, textarea, label").each(function(){b.updateElementIndex(a(this),e.prefix,g)}),b.watchForChangesToOptionalIfEmptyRow(h,c),c.totalForms.val(g+1),b.showAddButton(c)||f.hide(),e.addedCallback&&e.addedCallback(h),d.preventDefault()})},watchForChangesToOptionalIfEmptyRow:function(a,c){var d=c.opts;if(d.optionalIfEmpty&&a.is(d.optionalIfEmptySel)){var e=a.find("input, select, textarea");e.filter("[required], .required").removeAttr("required").data("required-by",d.prefix).addClass("required"),a.data("original-vals",e.serialize()),e.not(d.deleteTriggerSel).change(function(){b.updateRequiredFields(a,c)})}},updateElementIndex:function(a,b,c){var d=new RegExp("("+b+"-(\\d+|__prefix__))"),e=b+"-"+c;a.attr("for")&&a.attr("for",a.attr("for").replace(d,e)),a.attr("id")&&a.attr("id",a.attr("id").replace(d,e)),a.attr("name")&&a.attr("name",a.attr("name").replace(d,e))},showAddButton:function(a){return""===a.maxForms.val()||a.maxForms.val()-a.totalForms.val()>0},addDeleteTrigger:function(c,d,e){var f=e.opts;d?a(f.deleteTrigger).appendTo(c).click(function(c){var d,g,h=a(this).closest(f.rowSel),i=function(c,d){c.eq(d).find("input, select, textarea, label").each(function(){b.updateElementIndex(a(this),f.prefix,d)})},j=function(){for(h.remove(),d=e.wrapper.find(f.rowSel),e.totalForms.val(d.not(".extra-row").length),g=0;gremove',deleteTriggerSel:".remove-row",addTrigger:'add',addTriggerSel:null,addedCallback:null,removedCallback:null,deletedRowClass:"deleted",addAnimationSpeed:"normal",removeAnimationSpeed:"fast",autoAdd:!1,alwaysShowExtra:!1,deleteOnlyActive:!1,canDelete:!1,deleteOnlyNew:!1,insertAbove:!1,insertAboveTrigger:'insert',optionalIfEmpty:!0,optionalIfEmptySel:'[data-empty-permitted="true"]'}}(jQuery);