<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js"></script>
<script src="src/jquery.jsForm.js"></script>
<script>
$(function(){
	// some json data
	var jsonData = {
		name: "TestName",	// standard inputs
		description: "long Description\nMultiline",	// textarea
		links: [{href:'http://www.gargan.org',description:'Gargan.org'},{href:'http://www.github.com',description:'GitHub'}],	// lists
		active: false,	// checkbox
		state: "VISIBLE",	// selects (enums)
		age: 45, // number 
		quips: ["Don't left school interfere with your education!", "Can you repeat the question? I was thinking about cookies.", "In my house I'm the boss, my wife is just the decision maker."]
	};

	// initialize the form, prefix is optional and defaults to data
	$("#details").jsForm({
		data:jsonData
	});

	$("#show").click(function() {
		// show the json data
		alert(JSON.stringify($("#details").jsForm("get"), null, " "));
	});
	
	$("#eval").click(function(){
		var obj = $("#details").jsForm("get");
		$("#details").jsForm("fill", obj);
	});
});
</script>
<style>
/* conditionals are always invisible per default */
.conditional { display: none } 
</style>
</head>
<body>
<h1>Conditional Form Test</h1>
<i>This form is all about sho/hiding parts of the dom based on data and input</i>
<div id="details">
	Name: <input name="data.name"/><br/>
	<input type="checkbox" name="data.active"/> activate Age<br/>
	<div class="conditional" data-show="data.active">
		Age: <input name="data.age" class="number"/><br/>
	</div>
	<textarea name="data.description" class="conditional" data-hide="data.active"></textarea><br/>
	<select name="data.state">
		<option value="VISIBLE">visible</option>
		<option value="IMPORTANT">important</option>
		<option value="HIDDEN">hidden</option>		
	</select>
	<fieldset class="conditional" data-show="data.active data.name">
		<i>links are only shown if name or active is set</i>
		<legend>Links</legend>
		<ul class="collection" data-field="data.links">
			<li><span class="field">links.description</span> Link: <input name="links.href"/> <button class="delete">x</button></li>
		</ul>
	</fieldset>
	<button class="add" data-field="data.links">add a link</button><br/>
	Additional field: <input name="data.addedField"/>
	<i>Fill something in the addional field and apply conditionals to see quips</i>
	<fieldset class="conditional" data-show="data.addedField">
		<legend>Quips</legend>
		<ul class="collection" data-field="data.quips">
			<li><input name="quips."/></li>
		</ul>
		<button class="add" data-field="data.quips">add a quip</button><br/>
	</fieldset>
</div>
<button id="show">Show Object</button><button id="eval">Apply Conditionals</button>
</body>
</html>