(function(d){d.fn.formset=function(g){var a=d.extend({},d.fn.formset.defaults,g),r=a.extraClasses.join(" "),k=d("#id_"+a.prefix+"-TOTAL_FORMS"),l=d("#id_"+a.prefix+"-MAX_NUM_FORMS");g=d(this);var m=function(b,c){if(a.extraClasses){b.removeClass(r);b.addClass(a.extraClasses[c%a.extraClasses.length])}},n=function(b,c,e){var h=RegExp("("+c+"-\\d+-)|(^)");c=c+"-"+e+"-";b.attr("for")&&b.attr("for",b.attr("for").replace(h,c));b.attr("id")&&b.attr("id",b.attr("id").replace(h,c));b.attr("name")&&b.attr("name",
b.attr("name").replace(h,c))},o=function(){return l.length==0||l.val()==""||l.val()-k.val()>0},p=function(b){if(b.is("TR"))b.children(":last").append('<a class="'+a.deleteCssClass+'" href="javascript:void(0)">'+a.deleteText+"</a>");else b.is("UL")||b.is("OL")?b.append('<li><a class="'+a.deleteCssClass+'" href="javascript:void(0)">'+a.deleteText+"</a></li>"):b.append('<a class="'+a.deleteCssClass+'" href="javascript:void(0)">'+a.deleteText+"</a>");b.find("a."+a.deleteCssClass).click(function(){var c=
d(this).parents("."+a.formCssClass),e=c.find('input:hidden[id $= "-DELETE"]'),h=c.siblings("a."+a.addCssClass+", ."+a.formCssClass+"-add"),i;if(e.length){e.val("on");c.hide();i=d("."+a.formCssClass).not(":hidden")}else{c.remove();i=d("."+a.formCssClass).not(".formset-custom-template");k.val(i.length)}for(var j=0,s=i.length;j<s;j++){m(i.eq(j),j);e.length||i.eq(j).find("input,select,textarea,label").each(function(){n(d(this),a.prefix,j)})}h.is(":hidden")&&o()&&h.show();a.removed&&a.removed(c);return false})};
g.each(function(b){var c=d(this),e=c.find('input:checkbox[id $= "-DELETE"]');if(e.length){if(e.is(":checked")){e.before('<input type="hidden" name="'+e.attr("name")+'" id="'+e.attr("id")+'" value="on" />');c.hide()}else e.before('<input type="hidden" name="'+e.attr("name")+'" id="'+e.attr("id")+'" />');d('label[for="'+e.attr("id")+'"]').hide();e.remove()}if(c.find("input,select,textarea,label").length>0){c.addClass(a.formCssClass);if(c.is(":visible")){p(c);m(c,b)}}});if(g.length){var q=!o(),f;if(a.formTemplate){f=
a.formTemplate instanceof d?a.formTemplate:d(a.formTemplate);f.removeAttr("id").addClass(a.formCssClass+" formset-custom-template");f.find("input,select,textarea,label").each(function(){n(d(this),a.prefix,2012)});p(f)}else{f=d("."+a.formCssClass+":last").clone(true).removeAttr("id");f.find('input:hidden[id $= "-DELETE"]').remove();f.find("input,select,textarea,label").each(function(){var b=d(this);b.is("input:checkbox")||b.is("input:radio")?b.attr("checked",false):b.val("")})}a.formTemplate=f;if(g.attr("tagName")==
"TR"){f=g.eq(0).children().length;f=d('<tr><td colspan="'+f+'"><a class="'+a.addCssClass+'" href="javascript:void(0)">'+a.addText+"</a></tr>").addClass(a.formCssClass+"-add");g.parent().append(f);q&&f.hide();f=f.find("a")}else{g.filter(":last").after('<a class="'+a.addCssClass+'" href="javascript:void(0)">'+a.addText+"</a>");f=g.filter(":last").next();q&&f.hide()}f.click(function(){var b=parseInt(k.val(),10),c=a.formTemplate.clone(true).removeClass("formset-custom-template"),e=d(d(this).parents("tr."+
a.formCssClass+"-add").get(0)||this);m(c,b);c.insertBefore(e).show();c.find("input,select,textarea,label").each(function(){n(d(this),a.prefix,b)});k.val(b+1);o()||e.hide();a.added&&a.added(c);return false})}return g};d.fn.formset.defaults={prefix:"form",formTemplate:null,addText:"add another",deleteText:"remove",addCssClass:"add-row",deleteCssClass:"delete-row",formCssClass:"dynamic-form",extraClasses:[],added:null,removed:null}})(jQuery);
