var $ = function(i,c){return (i&&i.tagName)?i:(c||document).getElementById(i);}
var El={
	createNode: function(n,t,c,a){
		var el = document.createElement(n);
		if(t)el.appendChild(document.createTextNode(t));
		if(c)el.className = c;
		if(a)a.appendChild(el);
		return el;
	},
	empty: function(el){
		var e;
		while (e = el.firstChild) El.remove(e);
		return;
	},
	remove: function(el){
		if (!el) return;
		El.empty(el);
		el.parentNode.removeChild(el);
	}
}
var Event = {
	guid: 1,
	add: function(el, type, fn){
		if (el.addEventListener) el.addEventListener(type, fn, false);
		else{
			if (!fn.$$guid) fn.$$guid=Event.guid++;
			if (!el.events) el.events={};
			var h=el.events[type];
			if (!h){
				h=el.events[type]={};
				if (el['on'+type]) h[0]=el['on'+type];
			}
			h[fn.$$guid]=fn;
			el["on"+type]=Event.exec;
		}
	},
	exec: function(e){
		e=e||window.event;
		var r=true, i, h=this.events[e.type];
		for (i in h){
			this.$$exec=h[i];
			if (!this.$$exec(e))r=false;
		}
		return false;
	}
}
var Symp={
	inputs: 1,
	amount: 1,
	addInput: function(p, v){
		var j = Symp.inputs+1,div=El.createNode('div'),l=El.createNode('label','Naam persoon '+j),inp=El.createNode('input'),br=El.createNode('br'); 
		div.id = 'persoonDiv'+j;
		l.setAttribute('for','persoon'+j);
		inp.type='text';
		inp.id='persoon'+j;
		inp.setAttribute('name','persoon[]');
		if(v) inp.value=v;
		div.appendChild(l);
		div.appendChild(inp);
		div.appendChild(br);
		p.appendChild(div);
		++Symp.inputs;
	},
	addInputs: function(){
		var p=$('personen');
		while(Symp.inputs<Symp.amount){
			Symp.addInput(p);
		}
	},
	reset: function(){
		El.empty($('personen'));
		Symp.inputs = Symp.amount = 1;
	},
	register: function(){
		Event.add($('aantal'), 'change', Symp.updateInput, false);
		Event.add($('reset'), 'click', Symp.reset, false);
	},
	removeInputs: function(){
		var tmp = [];
		while(Symp.inputs>Symp.amount){
			var j = Symp.inputs, div=$('persoonDiv'+j), v=$('persoon'+j ).value;
			if(v!=''){
				tmp.push(v);
			}
			El.remove(div);
			--Symp.inputs;
		}
		var p=$('personen');
		while(tmp.length>0){
			v = tmp.shift();
			Symp.addInput(p,v);
		}
		Symp.amount = Symp.inputs;
		$('aantal').value = Symp.amount;
	},
	updateInput: function(){
		var a=$('aantal'), i=parseInt(a.value);
		if(typeof(i)!='number' || isNaN(i) || i<1){
			a.value = '1';
			Symp.amount = 1;
		}else{
			Symp.amount = i;
		}
		if(Symp.inputs < Symp.amount) Symp.addInputs();
		else if(Symp.inputs > Symp.amount) Symp.removeInputs();
	}
}
Event.add(window, 'load', Symp.register, false);