this is getting big enought that I think should have it's own file. FormBuilder.js?