1. The text and text-area switch can be combined with an ||
2. The for loop in select-one can be removed by just testing defaultSelected on
the selected option (i.e. the option with index ele[i].selectedIndex). If the
defaultSelected of this option is true then the value hasn't changed.
Finally you can get round the problem with values set in the onLoad possibly
erroneously being considered as changed. In the onLoad event, just set the
defaultValue/defaultSelected property to match the value you are setting.