/*
* a set of convenience classes to centralize implementation of
* properties and methods across multiple in-form elements
*
* the hierarchy of related HTML elements and their members is as follows:
*
*
* HTMLInputCommon: common to all elements
* .form
*
*
* [common plus:]
* .align
*
*
* [identical to "legend" plus:]
* .margin
*
*
* ****
*
*
* [common plus:]
* .dataFormatAs
* .htmlFor
* [plus data properties]
*
*
* [common plus:]
* .defaultSelected
* .index
* .label
* .selected
* .text
* .value // unique implementation, not duplicated
*
* ****
*
* HTMLTypeValueInputs: common to remaining elements
* [common plus:]
* .name
* .type
* .value
* [plus data properties]
*
*
*
* .length
* .multiple
* .options[]
* .selectedIndex
* .add()
* .remove()
* .item() // unimplemented
* .namedItem() // unimplemented
* [plus ".onchange"]
* [plus focus events]
* [plus data properties]
* [plus ".size"]
*
*
* .dataFormatAs // duplicated from above, oh well....
* [plus ".status", ".createTextRange()"]
*
* ****
*
* HTMLInputAreaCommon: common to remaining elements
* .defaultValue
* .readOnly
* .handleEvent() // unimplemented
* .select()
* .onselect
* [plus ".size"]
* [plus ".status", ".createTextRange()"]
* [plus focus events]
* [plus ".onchange"]
*
*