<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
<!--======================================================================-->
<!--=  Copyright 2000, 2002 World Wide Web Consortium, (Massachusetts    =-->
<!--=  Institute of Technology, Institut National de Recherche en        =-->
<!--=  Informatique et en Automatique, Keio University). All Rights      =-->
<!--=  Reserved. See http://www.w3.org/Consortium/Legal/.                =-->
<!--======================================================================-->
<!-- =====================================================================-->
<!-- interact-bubble-BE-04.svg                                            -->
<!-- renamed for 1.1 suite to interact-order-02-b.svg		              -->
<!-- Author : Jon Ferraiolo 06-Aug-2000                                   -->
<!--          1.1 revision by Thomas DeWeese 5-Feb-2002                   -->
<!--======================================================================-->
<svg version="1.1" baseProfile="basic" 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">
	<SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
		<OperatorScript version="$Revision: 1.3 $" testname="interact-order-02-b.svg">
			<Paragraph>
 Test event bubbling of event attributes, part b.
         </Paragraph>
			<Paragraph>
 The two circles test whether events are handled in the
 proper order. Events listeners and event attributes are processed
 before hyperlink processing, which is processed before text selection.
 The supplemental text next to the circles describes what should occur.
         </Paragraph>
		</OperatorScript>
	</SVGTestCase>
	<title id="test-title">interact-order-02-b</title>
	<desc id="test-desc">Test event bubbling of event attributes.</desc>
	<!--===============================================================-->
	<!--Content of Test Case follows...                  ==============-->
	<!--===============================================================-->
	<g id="test-body-content">
		<defs>
			<script type="text/ecmascript"><![CDATA[
           
           function bubbleYes(evt, color){
             // Get Document
             var target = evt.target;
             target.setAttribute('fill', '' +color);
           }
           function bubbleNo(evt, color){
             // Get Document
             var target = evt.target;
             target.setAttribute('fill', '' +color); 
             evt.stopPropagation();
             evt.preventDefault();
           }
       
         ]]></script>
		</defs>
		<text font-family="Arial" font-size="40"  x="60" y="45">Event bubbling - b</text>
		<g id="background">
			<rect fill="#EEE" stroke="#000" x="10" y="60" width="460" height="120"/>
			<rect fill="#FFF" stroke="#000" x="10" y="180" width="460" height="120"/>
		</g>
		<g fill="#000" font-family="Arial" font-size="40">
			<!-- Test the order of events -->
			<!-- Ensure that events get the event before the hyperlink. -->
			<a xlink:href="resources/interact-order-02-b-targ.svg">
				<circle onclick="bubbleNo(evt, 'red')" onmouseout="bubbleNo(evt, 'inherit')" cx="70" cy="120" r="50"/>
				<circle onclick="bubbleYes(evt, 'blue')" onmouseout="bubbleNo(evt, 'inherit')" cx="70" cy="240" r="50"/>
			</a>
			<text x="135" y="110">
             Click on circle, 
            </text>
			<text x="135" y="150">
             circle turns red 
            </text>
			<text x="135" y="230">
             Click on circle, 
            </text>
			<text x="135" y="270">
             hyperlink 
            </text>
		</g>
	</g>
	<text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.3 $</text>
	<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
</svg>
