anchor.diff:  			
   			a#ritualkenntnis
   			section
  -				table.data-section.eigenschaften
  +				table.data-section.eigenschaften#tbl-rk
   					caption Ritualkenntnis
   					colgroup
   						col(style="width: 2em;")
  
positive.code: 		style.
  			label[for] {
  				cursor: pointer;
  			}
  	body
  		a#top
  
negative.code: 					tfoot
  						tr
  							td
  							td
  								select#rk(size="1", title="Allgemeine Ritualkenntnisse")
  									optgroup(label="Allgemeine RK")
  										each __long, __short in _data.Ritualkenntnis
  											if typeof __long === "string"
  												option(data-long=__long, data-short=__short)=__long
  							td
  							td.mitte(colspan="2")
  								button#addrk(type="button") neue Ritualkenntnis
  						tr
  							td
  							td Zaubertänzer
  							td.mitte
  								select#rkz(size="1", title="Zaubertänzer")
  									optgroup(label="Zaubertänzer")
  										each __long, __short in _data.Ritualkenntnis.Zaubertänzer
  											option(data-long="Zaubertänzer", data-short="Ztz", data-rep-short=__short, data-rep-long=__long)=__long
  							td.mitte(colspan="2")
  								button#addrkz(type="button") neue Ritualkenntnis
  						tr
  							td
  							td Schamane
  							td.mitte
  								select#rks(size="1", title="Schamanen")
  									optgroup(label="Schamanen")
  										each __long, __short in _data.Ritualkenntnis.Schamane
  											option(data-long="Schamane", data-short="Scm", data-rep-short=__short, data-rep-long=__long)=__long
  							td.mitte(colspan="2")
  								button#addrks(type="button") neue Ritualkenntnis
  		table#tmpl-tbl
  			tbody#tmpl-allg
  				tr
  					td.mitte(style="padding: 0;")
  						input.isactive(type="checkbox", id="rk_{index}", checked)
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][short]", value="{short}").short
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][long]",  value="{long}").long
  					td
  						label(for="rk_{index}") {long}
  					td
  					td.mitte
  						select.unlock(size="1", name="Magie.Ritualkenntnis[{index}][Lernstufe]")
  							each kat in ["A+", "A", "B", "C", "D", "E", "F", "G", "H"]
  								option= kat
  					td.mitte
  						input.unlock.mitte(type="number", name="Magie.Ritualkenntnis[{index}][RkW]", min="3", max="35", step="1", value="3")
  			tbody#tmpl-tanz
  				tr
  					td.mitte(style="padding: 0;")
  						input.isactive(type="checkbox", id="zt_{index}", name="Magie.Ritualkenntnis[{index}][short]", value="Ztz")
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][short]", value="Zaubertänzer")
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][long]", value="Zaubertänzer")
  					td
  						label(for="zt_{index}") Zaubertänzer
  					td 
  						label(for="zt_{index}") Tulamidische Sharisad
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][tradition]" value="Tul")
  					td.mitte
  						select.unlock(size="1", name="Magie.Ritualkenntnis[{index}][Lernstufe]")
  							each kat in ["A+", "A", "B", "C", "D", "E", "F", "G", "H"]
  								option= kat
  					td.mitte
  						input.unlock.mitte(type="number", name="Magie.Ritualkenntnis[{index}][RkW]", min="3", max="35", step="1", value="3")
  			tbody#tmpl-schm
  				tr
  					td.mitte(style="padding: 0;", rowspan="4")
  						input.isactive(type="checkbox", id="sr_{index}")
  					td
  						label Geister binden
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][_talent]", value="...")
  					td 
  						label(for="sr_{index}") Ork-Schamane
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][short]", value="Scm")
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][long]",  value="Schamane")
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][tradition]" value="Ork")
  					td.mitte
  						select.unlock(size="1", name="Magie.Ritualkenntnis[{index}][Lernstufe]")
  							each kat in ["A+", "A", "B", "C", "D", "E", "F", "G", "H"]
  								option= kat
  					td.mitte
  						input.unlock.mitte(type="number", name="Magie.Ritualkenntnis[{index}][RkW]", min="3", max="35", step="1", value="3")
  				tr
  					td
  						label Geister rufen
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][_talent]", value="...")
  					td 
  						label(for="sr_{index}") Ork-Schamane
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][short]", value="Scm")
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][long]",  value="Schamane")
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][tradition]" value="Ork")
  					td.mitte
  						select.unlock(size="1", name="Magie.Ritualkenntnis[{index}][Lernstufe]")
  							each kat in ["A+", "A", "B", "C", "D", "E", "F", "G", "H"]
  								option= kat
  					td.mitte
  						input.unlock.mitte(type="number", name="Magie.Ritualkenntnis[{index}][RkW]", min="3", max="35", step="1", value="3")
  				tr
  					td
  						label Geister bannen
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][_talent]", value="...")
  					td 
  						label(for="sr_{index}") Ork-Schamane
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][short]", value="Scm")
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][long]",  value="Schamane")
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][tradition]" value="Ork")
  					td.mitte
  						select.unlock(size="1", name="Magie.Ritualkenntnis[{index}][Lernstufe]")
  							each kat in ["A+", "A", "B", "C", "D", "E", "F", "G", "H"]
  								option= kat
  					td.mitte
  						input.unlock.mitte(type="number", name="Magie.Ritualkenntnis[{index}][RkW]", min="3", max="35", step="1", value="3")
  				tr
  					td
  						label Geister aufnehmen
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][_talent]", value="...")
  					td 
  						label(for="sr_{index}") Ork-Schamane
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][short]", value="Scm")
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][long]",  value="Schamane")
  						input.unlock(type="hidden", name="Magie.Ritualkenntnis[{index}][tradition]" value="Ork")
  					td.mitte
  						select.unlock(size="1", name="Magie.Ritualkenntnis[{index}][Lernstufe]")
  							each kat in ["A+", "A", "B", "C", "D", "E", "F", "G", "H"]
  								option= kat
  					td.mitte
  						input.unlock.mitte(type="number", name="Magie.Ritualkenntnis[{index}][RkW]", min="3", max="35", step="1", value="3")
  		script.
  			// activate/deactivate entries
  			$('#tbl-rk').on("click", "input.isactive", function(evt) {
  				var $row = $(this).closest('tr');
  				$row.find("*[name]").prop("disabled", !this.checked);
  				if (this.checked) {
  					$row.removeClass("disabled");
  				}
  				else {
  					$row.addClass("disabled");
  				}
  			});
  			$('#addrk').on("click", function() {
  				var $src = $('#rk option').filter(':selected');
  				var $row = $('#tmpl-allg tr').clone();
  				var idx  = $('#tbl-rk tbody tr').length;
  				// replace {index}
  				$row.find('.unlock').each(function(){
  					this.name = this.name.replace('{index}', idx);
  				});
  				var lbl  = $row.find('label')[0];
  				lbl.htmlFor = lbl.htmlFor.replace('{index}', idx);
  				lbl.textContent = $src.data("long");
  				var rkid = $row.find('input[type="checkbox"]')[0];
  				rkid.id  = rkid.id.replace('{index}', idx);
  				// default dropdown to "E"
  				$row.find('select').val('E');
  				// set values
  				$row.find('.short').val($src.data("short"));
  				$row.find('.long').val($src.data("long"));
  				// append
  				$('#tbl-rk').append($row);
  			});
  