<svg id="svg-root" width="100%" height="100%"
  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
  xmlns:xlink="http://www.w3.org/1999/xlink">
  <!--======================================================================-->
  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
  <!--=  Institute of Technology, European Research Consortium for         =-->
  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  <!--=  All Rights Reserved.                                              =-->
  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  <!--======================================================================-->
  <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
    template-version="1.4" reviewer="DOH" author="AE" status="accepted"
    version="$Revision: 1.3 $" testname="$RCSfile: interact-pevents-07-t.svg,v $">
    <d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/interact.html#PointerEventsProperty">
      <p>Testing pointer-events and rendering order</p>
    </d:testDescription>
    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
      <p>
        Move the mouse over the blue and purple shapes. Click the red circle on the top left. Move the mouse over the blue and purple shapes again.
      </p>
    </d:operatorScript>
    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
      <p>
        For the test to pass the blue rectangles must always turn red on mouseover, and the ovals must turn red on mouseover only if pointer-events are set to "ALL".
        If a shape other than the one currently hovered turns red then the test has failed.
      </p>
    </d:passCriteria>
  </d:SVGTestCase>
  <title id="test-title">$RCSfile: interact-pevents-07-t.svg,v $</title>
  <defs>
    <font-face
      font-family="SVGFreeSansASCII"
      unicode-range="U+0-7F">
      <font-face-src>
        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
      </font-face-src>
    </font-face>
  </defs>
  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
    <script><![CDATA[
      function changeFill(id, fill)
      {
        document.getElementById(id).setAttribute("fill", fill);
      }

      function changePointerEvents(value)
      {
        if ('on' == value)
        {
            document.getElementById('all').setAttribute("visibility", 'visible');
            document.getElementById('none').setAttribute("visibility", 'hidden');
            document.getElementById('on').setAttribute("stroke-width", '3');
            document.getElementById('off').setAttribute("stroke-width", '1');
            document.getElementById('c10').setAttribute("pointer-events", 'all');
            document.getElementById('c11').setAttribute("pointer-events", 'all');
            document.getElementById('c12').setAttribute("pointer-events", 'all');
        }
        else
        {
            document.getElementById('all').setAttribute("visibility", 'hidden');
            document.getElementById('none').setAttribute("visibility", 'visible');
            document.getElementById('on').setAttribute("stroke-width", '1');
            document.getElementById('off').setAttribute("stroke-width", '3');
            document.getElementById('c10').setAttribute("pointer-events", 'none');
            document.getElementById('c11').setAttribute("pointer-events", 'none');
            document.getElementById('c12').setAttribute("pointer-events", 'none');
        }

      }
    ]]></script>
    <rect x="15" y="15" height="280" width="450" fill="none" stroke="black" stroke-width="0.25"/>
    <g text-anchor="middle">
      <text x="240" y="30" fill="black" font-size="15">Testing pointer-events and rendering order</text>
      <text x="240" y="42" fill="#555" font-size="10">Rectangles should turn RED on mouseover </text>
      <text x="240" y="54" fill="#555" font-size="10">Ovals should turn RED if Pointer-Events are set to "ALL"</text>
    </g>
    <g id="buttons">
      <g text-anchor="middle" font-size="8" fill="#555" transform="translate(0,10)">
        <text x="400" y="85">Change "Pointer-Events" of </text>
        <text x="400" y="95">ovals from "ALL" to "NONE"</text>
        <circle id="on" cx="385" cy="65" r="10" fill-opacity="1" fill="#3c5" stroke="black" stroke-width="3" onmousedown="changePointerEvents('on')" />
        <circle id="off" cx="415" cy="65" r="10" fill-opacity="1" fill="#f35" stroke="black" onmousedown="changePointerEvents('off')" />
      </g>
      <g text-anchor="middle" font-size="12" fill="#555">
        <text id="all" x="240" y="285" fill="#555" visibility="visible" >Purple ovals have "Pointer-Events" set to "ALL".</text>
        <text id="none" x="240" y="285" fill="#555" visibility="hidden">Purple ovals have Pointer-Events set to "NONE".</text>
      </g>
    </g>
    <g transform="scale(0.75, 0.5) translate(100, 85)">
      <circle id="c10" cx="160" cy="350" r="100" fill-opacity="1" fill="#53f" stroke="black" pointer-events="all" onmouseover="changeFill('c10', '#F55')" onmouseout="changeFill('c10', '#53F')" />
      <rect id="r10" x="10" y="50" width="300" height="300" fill-opacity="1" fill="#35f" stroke="black" onmouseover="changeFill('r10', '#F55')" onmouseout="changeFill('r10', '#35F')" />
      <circle id="c11" cx="310" cy="350" r="90" fill-opacity="1" fill="#75f" stroke="black" pointer-events="all" onmouseover="changeFill('c11', '#F55')" onmouseout="changeFill('c11', '#75f')" />
      <rect id="r11" x="60" y="100" width="200" height="200" fill-opacity="1" fill="#57f" stroke="black" onmouseover="changeFill('r11', '#F55')" onmouseout="changeFill('r11', '#57f')" />
      <circle id="c12" cx="310" cy="200" r="75" fill-opacity="1" fill="#97f" stroke="black" pointer-events="all" onmouseover="changeFill('c12', '#F55')" onmouseout="changeFill('c12', '#97f')" />
      <rect id="r12" x="110" y="150" width="100" height="100" fill-opacity="1" fill="#79f" stroke="black" onmouseover="changeFill('r12', '#F55')" onmouseout="changeFill('r12', '#79F')" />
      <g id="dasharray-rectangles" stroke-width="0.5" stroke-dasharray="4, 4">
        <rect id="r-dash10" x="10" y="50" width="300" height="300" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
        <rect id="r-dash11" x="60" y="100" width="200" height="200" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
        <rect id="r-dash12" x="110" y="150" width="100" height="100" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
      </g>
    </g>
  </g>
  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
    <text id="revision" x="10" y="340" stroke="none"
      fill="black">$Revision: 1.3 $</text>
  </g>
  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  <!-- comment out this watermark once the test is approved
  <g id="draft-watermark">
    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  </g>-->
</svg>
