2005-11-09  Wakaba  <w@suika.fam.cx>

	* Property.js: Support for |list-style|, |z-index|, |page-break-*|,
	|orphans|, |widows|, |background|, |font-style|, |font-variant|,
	|font-weight|, and |border| added.  Prepares a property set
	containing initial values before the computation.
	(_SetInitialValue): New method.
	(_GetCascadedValueSet): Parameter |propSet| added.
	(clone): New method.
	(CSS.Property.Definition_URI): New class.
	
	* SimpleParser.js (_GetNextValue): |_ValueStack| introduced.
	
	* Value.js (createCSSRGBValue, createHSLValue): Removed.
	(createCSSRGBAValue): |isPercentage| parameter added.
	(CSS.Value.RGBValue, CSS.Value.HSLValue): Now they cannot have
	invalid value or non-normalized value.  They can have alpha value.
	Attribute names changed.
	(CSS.Value.RGBAValue, CSS.Value.HSLAValue): Removed.

2005-11-08  Wakaba  <w@suika.fam.cx>

	* Property.js (_SetCascadedValueSet, _ComputeComputedValue,
	property definitions): Reimplemented using new property definition interface.
	(CSS.Property.MultiValueSet.getCSSText): Outputs property names.
	(CSS.Property.MultiValueSet.getSpecifiedPropertyNameList,
	getSpecifiedPropertyValuesByExpandedURI): New methods.
	(CSS.Property.MultiValueSet.getSpecifiedPropertyValuesNS): Returns
	an empty |Array| if no property value is set.
	(CSS.Property.Definition): |validKeyword1| option introduced.
	(CSS.Property.Definition.isValidValue): |partial| parameter added.
	(CSS.Property.Definition_Keyword, CSS.Property.Definition_Length,
	CSS.Property.Definition_Color, CSS.Property.Definition_Length4,
	CSS.Property.Definition_Color4): New classes.
	
	* SimpleParser.js: Use new property definition interface.
	Empty selectors were allowed by mistake.
	
	* Value.js (getNormalizedValue, getRGBValue, getRGBAValue): New
	methods.

2005-11-07  Wakaba  <w@suika.fam.cx>

	* Node.js: Requires |CSS.Property| module.
	Use |CSS.Property.MultiValueSet| class instead of |CSS.Node.StyleDeclaration|
	for performance consideration.
	
	* Property.js (CSS.Property.MultiValueSet): New class.
	(CSS.Property.Definition, getPropertyDefinition): New class and function.

2005-11-07  Wakaba  <w@suika.fam.cx>

	* Property.js: Support for |padding-left|, |padding-top|, |padding-bottom|,
	|padding-right|, |margin-left|, |margin-right|, |margin-top|,
	|margin-bottom|, |border-style-top|, |border-style-bottom|,
	|border-style-right|, |border-style-left|, |border-color-left|,
	|border-color-top|, |border-color-bottom|, |border-color-right|,
	|border-width-top|, |border-width-bottom|, |border-width-left|,
	|border-width-right|, |border-width|, |border-color|, |border-style|,
	|margin|, and |padding| added.  (Most are buggy and not work.)
	(_PropImpl_Color._GetSpecifiedValue): Split from |setSpecifiedValue|.
	Missing |break|s inserted.
	
	* SimpleParser.js (_ParsePriority): Don't error when end
	of token before |;|.
	
	* Value.js (matchTypeURI): Type URI
	<tag:manakai@suika.fam.cx,2005-11:non-negative-length-or-percentage> added.
	(addItem): New method.
	(ValueList.getCSSText): Implemented.

2005-11-06  Wakaba  <w@suika.fam.cx>

	* Property.js: Support for |color| and |opacity| properties added.
	(_PropImpl): Support for |allowedFunction| parameter added.
	
	* Selectors.js (matchElement): Use |previousSiblingElement| attribute
	instead of |previousElement|.
	
	* SimpleParser.js (_GetNextValue): Functions |rgb|, |rgba|,
	|hsl|, and |hsla| supported.
	
	* Value.js: Non-CSS2 constants are removed.  Now |cssValueType|
	and |primitiveType| attributes always takes CSS2 value.
	(CSSCascadingValue): Removed.  Now |inherit| and other values
	are represented by |CSSIdentValue| class.
	(createCSSKeywordValueNS): Always creates a |CSSIdentValue| object.
	(createCSSRGBAValue, createCSSHSLValue, createCSSHSLAValue): New methods.
	(CSSValue.typeURI): New attribute.
	(CSSValue.matchTypeURI): New method.
	(RGBValue.getCSSText): Typo fixed.  Inserts |SPACE| characters after |COMMA|s.
	(CSSRGBAValue, CSSHSLValue, CSSHSLAValue): New classes.

2005-11-05  Wakaba  <w@suika.fam.cx>

	* Node.js (CSSNameSpaceRule): Renamed from |CSSNamespaceRule|
	aligned with Gecko.
	
	* Property.js: Now requires |DOM.Node| module.  It adds two
	internal methods to |Element| object.
	(CSSPropertyValueComputer): Takes user agent and user style
	sheet lists as constructor arguments.
	(userAgentStyleSheetList, userStyleSheetList): New attributes.
	(_UpdateComputedValueForMedia): Gets user agent and user
	style sheets from new attributes.  Attach computed value set
	object to all element nodes in given tree.  Set of supported
	properties extended.
	(_GetCascadedValueSet): Sorting function fixed.  Special
	purpose property namespace
	"http://suika.fam.cx/~wakaba/archive/2005/11/css.props." support added.
	It is used to compute property value from more than one computed
	values.
	(_ComputeComputedValue): Special purpose property namespace
	"http://suika.fam.cx/~wakaba/archive/2005/11/css.props." support added.
	It is used to compute property value from more than one computed
	values.  |CSS_INHERIT| support was missing.
	(_PropImpl): |inherit|, and etc. are now added in initial set
	of allowed values.  |allowedKeywords| is renamed to |allowedKeyword|.
	|_PropImpl_Keywords| is renamed to |_PropImpl_Keyword|.  |_PropImpl_Length|
	subclass added.  Few property definitions added.  |display|
	is now a shorthand property as per CSS3.
	
	* Selectors.js (SSpecificity.toString): Stringify |a|, |b|, |c|,
	and |d| values separeted by |-|.
	
	* SimpleParser.js (parseString): Loads |CSS.Property| module.
	Property value parser is moved to |CSS.Property| module.  Typos fixed.
	
	* Value.js (CSSNumericValue): Now |%| is changed not to having 
	any namespace URI, to distingulish |100%| (a |PERCENTAGE|)
	and |100\%| (a |DIMENSION|).  Typo in constructor fixed.
	(expandedURI): New attribute.  Note that expanded "URI" of 
	percentage unit is defined to |%|.
	(matchPrimitiveType): New method.  Several constant values for
	value types added.

2005-11-04  Wakaba  <w@suika.fam.cx>

	* Property.js: New script.
	
	* Node.js (CSSRuleList): Changed from |Array| superclass to
	has-a |Array| class.
	(getDeclarationNode): New method.
	(addStyleSheet): New method.
	(addCSSRule): New method.
	
	* Selectors.js (matchElement): If |pseudoElements| parameter
	is set to |null|, it ignores any pseudo elements.  (It was
	defined to be same as an empty object but it has been changed.)
	(getPseudoElements): New method.
	(SimpleSelectorSequence constructor): Creates a universal selector
	if no type selector argument is specified.
	(_GetPseudoElementHashKey): New internal method.
	(compareSpecificity): New method.
	
	* SimpleParser.js (_ParsePriority): Ignores the declaration
	if the |!| token is not followed by an |IDENT| token.
	
	* Value.js (CSS_CASCADING_VALUE): New constant.
	(CSSCascadeValue.cssValueType): Exhibits |CSS_CASCADING_VALUE|.
	(CSSIdentValue.getNamespaceURI): Typo fixed.

2005-11-03  Wakaba  <w@suika.fam.cx>

	* Node.js (selectorObject): Attribute name has been changed
	from |selector| to |selectorObject| to avoid confliction
	with |selector| property of |page| object in WinIE's CSS object model,
	whose value is of |String| (similar to |selectorText| attribute
	in our model).
	(createCSSPropertyNS): An optional parameter |priority| added.
	(lookupNamespaceURI, baseURI): Gets value from |parentStyleSheet| if any.
	(appendCSSRule): Sets |parentStyleSheet| attribute.
	(PropertyDeclaration.getCSSText): |!important| declaration supported.
	(PropertyDeclaration.priority): Now this attribute always has value.
	
	* Node.js, Value.js, Selectors.js: Use argument rather than
	|RegExp.$1| in |replace| function (for compatibility with JScript).
	
	* Selectors.js: Loads |ElementClass| module and |DOM.Node| module
	for matching.
	(createSSpecificity): New method.
	(SSelectorsGroup, SSelector): Don't extend |Array| class
	for compatibility with JScript implementation.
	(elementMatch, isEqualSimpleSelector): New methods.
	(SSpecificity.d): New attribute.
	
	* SimpleParser.js: Namespace context parameters are removed; now
	namespace context can be obtained from |this._NSContext| property.
	(parseSelectorsString): New method.
	
	* Value.js (createCSSKeywordValueNS): Extended cascading keyword
	namespace supported.

2005-11-02  Wakaba  <w@suika.fam.cx>

	* Selectors.js (specificity): New attribute.
	(SSpecificity): New interface.

2005-11-02  Wakaba  <w@suika.fam.cx>

	* Selectors.js (createSTypeSelectorNS): Sets |prefix| |null| if |localName|
	is |null|.
	(SimpleSelectorSequence.getCSSText): Bug on implied |*| fixed.
	(TypeSelector.getCSSText, AttributeSelector.getCSSText): Don't escape |*|.
	
	* SimpleParser.js: Don't enter infinite loop after |_SkipAnyEnclosed|.
	Sets correct prefix and namespace URI values for implied |*|.
	Attribute existence selector is now correctly parsed.
	(_PopToken): Code to parse comments is rewritten so that unclosed
	comment is skipped (to the end of the entity).  This fix
	is consistent with the error recovering rule in CSS.  Code
	to parse |CDO| is bug fixed.

2005-11-02  Wakaba  <w@suika.fam.cx>

	* Value.js: New script.
	
	* Node.js (createPropertyNS): Parameters |prefix| and |value| added.
	(cssText): Identifiers are escaped if necessary.  Don't escape 
	|LINE FEED| character in |CRLF| sequences in string literals.
	(baseURI): New attribute.
	(priority): New attribute.
	
	* Selectors.js: Implemented.

2005-11-01  Wakaba  <w@suika.fam.cx>

	* Node.js: |@namespace| rule support added.
	(cssNodeType, type): Implemented.
	(lookupNamespaceURI): New method.
	(CSSImportRule.cssText, CSSCharsetRule.cssText): Use double
	quotation mark to quote string.
	
	* SimpleParser.js (_ParseAtRule): |@namespace| rule support added.
	(_ParseSelectors, _ParseMediaQuery): |nsContext| parameter added.

2005-11-01  Wakaba  <w@suika.fam.cx>

	* SimpleParser.js: Parameters |factory| are removed
	and now |this._Factory| property is used to create nodes.

2005-10-31  Wakaba  <w@suika.fam.cx>

	* Node.js, Selectors.js: New files.

2005-10-31  Wakaba  <w@suika.fam.cx>

	* ChangeLog: New file.

2005-10-30  Wakaba  <w@suika.fam.cx>

	* SimpleParser.js: New script (still work in progress).
