* ADD: getDateOrDefault() method to better handle additional date formats before resulting to Infinity|-Infinity;
* ADD: event trigger: "dateSelected"
* FIX: $element.find('.input-append') was being used as bool: (always true), making it pointless.  Removed if()
* FIX: after removing if() above, this.component is a jQuery object, so make checks on component check against length.
* FIX: inside if(pickTime) and if(pickDate), the if( icon && icon.length ) had no braces and if it failed, lower null exceptions could occur if there was no icon
* Minification Optimization: dateIcon = val; if( !dateIcon ) dateIcon = val2; INSTEAD = dateIcon = val || val2;
* Minification Optimization: remove some redundant vars (e.g. var i;var b; to var i, b;)
* Minification Optimization: Use $element instead of this.$element in init() so it can be minified.
* remove unused vars smartPhone and dateToDate method
* remove viewMode & minViewMode switch case, replace with object lookup || 0