 _                   _   _____      
(_)_ __  _ __  _   _| |_| ____|_  __
| | '_ \| '_ \| | | | __|  _| \ \/ /		build fields and forms for web applications
| | | | | |_) | |_| | |_| |___ >  < 		Distributed under the MIT License (see license.txt)
|_|_| |_| .__/ \____|\__|_____/_/\_\
        |_|                         


Release Notes:
==============

master branch: (not release)
--------------

 - Field enhancements:

		* Field: adding the setFieldName method in the API
		* ListField: use setFieldName on subFields for list to work in a browser form
		

 - Fixes
 		* CombineField: focus and blur handlers
		* Groups will no longer validate disabled sub-fields


version 0.6.0 :
---------------

released on August, 2nd 2010

- Field enhancements:

   * SelectField:  - global refactoring, extraction of common "choice" pattern in a mixin module
                     (+ see following changes)
                   
                   - WARNING : this field has a new dependency
                      -- inputex/js/mixins/choice.js
                   
                   - WARNING : important change in the way we define the select's <option> nodes :
                      -- old pattern : { selectValues:["1","2"], selectOptions:["first","second"] }
                      -- new pattern : { choices: [{value: "1", label: "first"}, {value: "2", label: "second"}] }
                      
                     The new pattern is a unified way to define a choice, in selectField's options or through
                     addChoice method (which is used behind the hood to generate selectField's options at init).
                     This pattern is common with RadioField.
                     
                   - added hideChoice/showChoice/disableChoice/enableChoice methods to hide/display/disable/enable
                     choices (= <option>s) dynamically without removing them using removeChoice.
                     
                   - remove 'multiple' option, too complex to handle for a confusing user-interface component !
                     Use several checkboxes instead or MultiSelectField.
                     
   * RadioField:   - global refactoring, like SelectField, with use of "choice" mixin,
                     API is very similar to SelectField (see below)
                     
                   - WARNING : this field has new dependencies
                      -- yui/selector/selector-min.js
                      -- yui/event-delegate/event-delegate-min.js
                      -- inputex/js/mixins/choice.js
                   
                   - WARNING : important change in the way we define the radioField's <input type="radio" /> nodes :
                      -- old pattern : { values: ["1","2"], choices: ["first","second"] }
                      -- new pattern : { choices: [{value: "1", label: "first"}, {value: "2", label: "second"}] }
                   
                   - added hideChoice/showChoice/disableChoice/enableChoice methods to hide/display/disable/enable
                     choices (= <input type="radio" />s) dynamically
                     
                   - add inputEx-selected class on currently selected inputEx-RadioField-choice (see RadioField
                     example n°4 : styling the currently selected choice)
                     
                   - allowAny option now takes an optional 'allowAny.field' configuration object to declare a field
                     of any type as allowAny field. It was previously limited to 'string' field. (see examples)
                   
   * EmailField:   - new validation regexp : doesn't allow IPs after @ anymore, whitelisting of allowed characters
                     instead of weak blacklisting.
   
   * TextArea :    - added readonly (true|false) option, that option doesn't work on IE < 8
   
   * TimeInteralField :
                   - change setValue to be accurate with a larger set of values
                     (ex: [40 days in seconds] = 40*24*60*60 = 3465000 is now displayed as "40"+"days" instead of
                      being rounded at "1"+"months")

   * UrlField:	- fixing the regular expression to accept port numbers

- Added Fields:
   * TinyMCEField

- Mixins:
   * choice:  module with function discribing a common pattern of managing "choices",
              contains several functions like hideChoice, showChoice, disableChoice, enableChoice, etc.
              (mixin used by SelectField and RadioField)
   
- Widgets :
   * dialog : add formAvailable boolean property, formAvailableEvt custom event, and whenFormAvailable method.
              whenFormAvailable method allows you to execute a callback as soon as the form is generated and
              ready to use, or now if form already available.
   * datatable : - fix a bug due to use of dialog when form not ready yet.
                 - Added the possibility to update a whole row with additional updated data on the callback
                   function of modify event

- Various:
   * inputEx.browserAutocomplete property to globally turn off/on browser autocomplete feature on forms
     by default
   * inputEx.indexOf now accepts a function as 3rd parameter. This function is applied on each array element
     and must return true when the searched element is found.


version 0.5.1 :
---------------

released on June, 4th 2010

- Field enhancements:
   * colorField : no hardcoded css, use inputEx-ColorField-square and inputEx-ColorField-Grid classes instead,
                  hovered or selected colored square is emphasized with a 1px-border
   * hiddenField : getValue returns the raw value as passed to setValue, without type casting as 'string',
                   but keep in mind that HTML form submit still casts the value as 'string'.

- Added Fields:
   * StringAvailability field

- Bug fixes:
   * fix addOption bug on SelectField


version 0.5.0 :
---------------

released on March, 2nd 2010

- <!> Warning <!> important API changes:
   * remove "inputParams" syntax when defining fields inside a group or form definition
     this means you no longer have to type { type: 'string', inputParams: { name: 'lastname' } }
     but simply: { type: 'string', name: 'lastname' }
     
     The 'type' property is therefore prohibited as an attribute name for a Field.

   * form buttons extracted into a widget class : inputEx.widget.Button
     (3 types : 'submit', 'submit-link', 'link') 

     The inputEx-button module is REQUIRED for Form usage. (any page requiring js/Form.js should include js/widgets/button.js)

   * Form buttons 'onClick' handlers should now return false to stop the submit event

   * Form buttons 'onSubmit' handlers should now return false to stop the submit event

   * Adding setParentField/getParentField methods to all fields + 
     implementation in meta-fields: Group (+Form,Combine), InPlaceEdit, ListField, TreeField and TypeField

- Added Fields:
   * TimeRange field
   * SerializeField

- Field enhancements:
	* id, className, and disabled options on buttons
	* event facade for form submit : form.submitEvent
	* event facades for buttons : button.clickEvent, button.submitEvent
	* destroy method on group and form fields
	* getFieldsStates method on group to know which fields do not validate (+error messages)
	* trim option on StringField
	* RTEField: Changing the "type" option to "editorType"
	* Group: Adding a span element to group labels
	* Overridable readonly option in DatePickerField
	* InPlaceEdit editor now rely on inputEx.widget.Button
	* RadioField option to display inputs inline or vertically
	* MenuField accepts a menuConfig option, this object will be passed
	  as the config of the generated YUI Menu

- Widgets:
   * new normalized buttons : inputEx.widget.Button

- Bug fixes:
	* fix setValue bug on checkboxes
	* fix typeInvite on emailField
	* Fixing all standard parameters for KeyValueField and KeyOpValueField and changing the API
	* Fixing enable/disable functions for RadioField and DatePickerField
	* Fixed bug in checkbox where a string of "true" is passed and compared to 
	the default of a type boolean, hence always returning false.  Added test 
	to convert type if needed.
	
- Various:
   * cross-browser CSS improvements on Radios and Checkboxes


version 0.4.0 :
---------------

released on January, 4th 2010

	- Various
		* Upgrading to YUI 2.8.0r4
		* Switching to yuidoc for documentation
		* Tickets moved to GitHub

	- Added Fields
		* Lens (beta)
		* TimeInterval field to enter a duration
		* ColorPickerField - wrapper for YUI's ColorPicker widget
		* KeyValueField and KeyOpValueField - fields to build search forms from an inputEx definition
		
	- Field enhancements:
		* CombineField now inherits Group instead of Field
		* added minItems/maxItems options on ListField
		* DDList items now have separate value & labels
		* added returnLabel option to MultiAutocomplete (method to format list label)
		* Adding an "insert" method to Textarea
		* Form can send data using x-www-form-urlencoded
		* Form wrapObject option (ajax only)
		* Password confirmation field defined in json
	 	* DateField and DatePicker support for string formatting
		* InPlaceEdit ok button is now a skinnable link
		* Moved VectorField, MapField, IPv4Field, UpperCaseField from ext/ to fields/ (watch you references !)
		* BirthdateField renamed to DateSelectMonthField
		* FileField out of beta
		* Group/Form setErrors method to display custom messages
		
	- Widget enhancements
		* JsonTreeInspector: expand methods and JSONPath filter
		* Dialog widget out of beta
		* Datatables out of beta
		
	- JSON-Schema
		* implementation of inputEx.JsonSchema.inputExToSchema (beta)

	- RPC	
		* integrate yui-rpc as inputEx.RPC
		* Moved inputEx RPC methods to inputEx.RPC namespace (generateServiceForm and formForMethod)
		* new SMD examples: freebase, tinyurl
		* Added an example using inputEx SMD support and the Flickr API
		* added YQL utility to make YQL queries using JSONP
		
	- Tools
		* Providing a dependency-configurator based on yui-dependency-configurator
		* added yql-trimpath page utility to create pages using YQL queries and trimpath templates
	 	* added a tool to generate yql-trimpath-page built on the YUI Grids builder

	- Bug fixes
		* fixing broken examples (YUI element is not beta anymore)
		* fix on CombineField to contain Group or Form fields
		* fix on Datatable widget (broken since switch to YUI 2.7.0)
		* fix on DSSelectField (broken since switch to YUI 2.7.0)
		* fix on MultiSelectField
		* fix empty test for Integer and Number Fields
		* fix on DatePickerField: we had to click twice to select a date the first time
		
	- Fields removed
		* FrenchDate (use the french locale instead)
		* FrenchPhone (pass the regular expression to StringField instead)
		* PairField (deprecated for a long time)

version 0.2.2:
--------------

released on March, 6th 2009

	- RPC:
		* uses yui-rpc (http://github.com/neyric/yui-rpc/) that implements the Service Mapping Description
		  http://groups.google.com/group/json-schema/web/service-mapping-description-proposal
		
		* inputex-rpc : automatically build forms to call methods defined in a SMD
		
		* SMD-tester example

	- Field enhancements:
		* added "collapsed" option for Group/Form
		* added "className" option for Group/Form
		* added listAddLabel/listRemoveLabel options for List
        * added addOption/removeOption methods on SelectField
      
 	- Widgets:
		* Added JsonTreeInspector widget

	- Various	
	   * moving to github (git repository)
	   * moving tickets to Lighthouse
	   * new page for examples
	   * some fixes on inputex-loader
	   * updates on json-schema
	   * fixing first json-schema example


version 0.2.1:
--------------

released on January, 22nd 2009

	- API changes:
		* setValue takes a second argument (sendUpdatedEvt) to prevent firing the updatedEvt if false
		* setOptions takes the options object as argument so we don't have to make a copy of the object.
			this method should be mandatory in surclassing ?
		* inputEx-required CSS class is permanently set on required fields (allow custom style for required fields, labels...)
		   inputEx-invalid class is added on required fields that are empty to mark them as invalid (no more CSS rules for inputEx-required class)
		   'empty' state still in use
		* ColorField : colors option must be provided in ["#FFCEA5",...] format instead of ["FFCEA5",...] (so palettes are also modified)

	- Added Fields
		* MenuField : new field to perform a selection in a multi-level selector (menu style)
		* VectorField : returns an array of number
		* FileField-beta : for file upload using standard form post upload
		* MapField from David Janes

	- Field enhancements:
		* Datatable: added options and CSS
		* TypeField has been changed. Many bugfixes + cleaner way to defined fields parameters

	- Various: 
		* Switching to GIT repository
		* Better examples (dialog, yuiloader, multiselect)
		* inputExBuilder much better (now with page generation !)
		* stylesheet for IE6 css fix (still not full support)
		* field.destroy was buggy
		* RTEField fixed (doesn't ignore name option anymore, accept initial value and setValue just after init)
		* Form does not send values in ajax when doesn't validate
		* italian localization


version 0.2.0:
--------------

released on November 1st 2008

	- Added fields:
	 	* RadioField
		* DatePickerField (type: datepicker)
		* DateTimeField (type: datetime)
		* IntegerField (type: integer) and removed the "numbersOnly" option from StringField
		* NumberField (type: number)
		* TimeField	(type: time)
		* MultiAutoComplete
		* MultiSelectField
		* CombineField: replace PairField, but for N fields
		* SliderField (type: slider)
		* DSSelectField (type: dsselect) : uses YUI datasources to populate a SelectField

	- Added widgets:	
		* DDList widget: sortable list widget
		* Datatable (beta): combine YUI datatable widget with inputEx forms
		* Dialog (beta): create a panel from a inputEx type definition
		
	- Field enhancements:
		* Field: Added a "destroy" method, focus method to set the focus on inputs
		* StringField: added typeInvitation, maxLength, minLength, readonly attributes
		* Group: flatten option on type JSON, getFieldByName method, collapsible option
	 	* Form mask
		* PasswordField: Strength indicator, CapsLock indicator
 		* PairField inherit from CombineField (deprecated, kept for compatibility)
		* TypeField: implemented setValue, the builder can now "load" a group config
		* UrlField: case sensitive URLs, make favicon optional otherwise it breaks https
	 	* ListField: set the focus to the added element, use links or buttons
		* RTEField: added SimpleEditor support and "opts" option to configure the toolbar (added by Dav Glass)
		* TypeField/FormBuilder update: includes more options for more fields
	
	- Various:
		* module definitions for the YUI loader
		* Markup and CSS refactoring: the "description" and "label" attributes are now in the field JSON, uses "label" and "fieldset" tags
		* small visualization/templating engine (Visus.js)
		* Added an inputEx.importJsonSchema (experimental) method to create a form from a JSON Schema
		* Documentation now uses JsDocToolkit 2 and http://code.google.com/p/neyricjslibs-template/
		* alias namespace from inputEx to YAHOO.inputEx
		* enclosed components in anonymous functions with shortcuts
		* use YAHOO.lang.extend(...,...,{ methods: }) to save some bytes
		* moved build/inputex-all.js to build/inputex.js for YUI loader
		* VERSION added in inputEx object
		* Moved the two functions (Array.prototype compact & indexOf) into the inputEx namespace as static functions
		* use YAHOO.lang.isMethods instead of typeof
		* inputExChart example
	

version 0.1.0
-------------

released on Wed May 07 2008

	- Initial public release
	- Added Fields: Group,Form,AutoComplete,CheckBox,Color,Date,Email
						 Hidden,InPlaceEdit,IPv4,List,Pair,Password,RTE,Select
						 String,Text,Tree,Type,Uneditable,UpperCase,Url
							
	- Application examples:
				* inputExBuilder
				* inputExHTML
				* TaskManager
	
		
