<?xml version="1.0" encoding="utf-8"?>
<!-- CSSMediaRule interface -->

<interface name="CSSMediaRule" inherits="CSSRule" id="CSS-CSSMediaRule"
  since="DOM Level 2">
  <descr>
    <p>
      The <code>CSSMediaRule</code> interface represents a <xspecref href="&css2;/media.html#at-media-rule">@media
	rule</xspecref> in a CSS style sheet. A <code>@media</code> rule can be
      used to delimit style rules for specific media types.
    </p>
  </descr>
  
  <attribute id="CSS-CSSMediaRule-mediaTypes" name="media"
    type="stylesheets::MediaList" readonly="yes">
    <descr>
      <p>
	A list of <xspecref href="&css2;/media.html#media-types">media types</xspecref> for this rule.
      </p>
    </descr>
  </attribute>
  
  <attribute type="CSSRuleList" readonly="yes" name="cssRules" id="CSS-CSSMediaRule-cssRules">
    <descr>
      <p>
	A list of all CSS rules contained within the media block.
      </p>
    </descr>
  </attribute>
  
  <method name="insertRule" id="CSS-CSSMediaRule-insertRule">
    <descr>
      <p>
	Used to insert a new rule into the media block. 
      </p>
    </descr>
    <parameters>
      <param name="rule" type="DOMString" attr="in">
	<descr>
          <p>
	    The parsable text representing the rule. For rule sets
	    this contains both the selector and the style declaration.
	    For at-rules, this specifies both the at-identifier and the
	    rule content.
          </p>
        </descr>
      </param>
      <param name="index" type="unsigned long" attr="in">
	<descr>
          <p>
	    The index within the media block's rule collection of the rule 
	    before which to insert the specified rule. If the 
	    specified index is equal to the length of the media blocks's rule
	    collection, the rule will be added to the end of the media block.
          </p>
        </descr>
      </param>
    </parameters>
    <returns type="unsigned long">
      <descr>
        <p>
          The index within the media block's rule collection of the newly
          inserted rule.
        </p>
      </descr>
    </returns>
    <raises>
      <exception name="DOMException">
	<descr>
	  <p>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted
	    at the specified index, e.g., if an <code>@import</code> rule
	    is inserted after a standard rule set or other at-rule.</p>
	  <p>INDEX_SIZE_ERR: Raised if the specified index is not a valid
	    insertion point.</p>
	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
	  readonly.</p>
	  <p>SYNTAX_ERR: Raised if the specified rule has a syntax error 
	    and is unparsable.</p>
	</descr>
      </exception>
    </raises>
  </method>
  
  <method name="deleteRule" id="CSS-CSSMediaRule-deleteRule">
    <descr>
      <p>
	Used to delete a rule from the media block.
      </p>
    </descr>
    <parameters>
      <param name="index" type="unsigned long" attr="in">
	<descr>
          <p>
	    The index within the media block's rule collection of the rule
	    to remove.
          </p>
        </descr>
      </param>
    </parameters>
    <returns type="void">
      <descr><p></p></descr>
    </returns>
    <raises>
      <!-- No exceptions -->
      <exception name="DOMException">
	<descr>
          <p>INDEX_SIZE_ERR: Raised if the specified index does not correspond
             to a rule in the media rule list.</p>
	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
	    readonly.</p>
	</descr>
      </exception>
    </raises>
  </method>
  
</interface>
