<?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-03-t.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.2 $" testname="interact-order-03-b.svg">
			<Paragraph>
 Test event bubbling of event attributes, part c.
         </Paragraph>
			<Paragraph>
 The three strings tests event handling behavior on text.
 Text selection only is available after event listeners and event
 attributes have been processed, and after hyperlink processing
 has occurred.
 The supplemental text below the text strings describes what should occur.
         </Paragraph>
		</OperatorScript>
	</SVGTestCase>
	<title id="test-title">interact-order-03-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="40">Event bubbling - c</text>
		<g id="background">
			<rect fill="#EEE" stroke="#000" x="10" y="55" width="460" height="230"/>
		</g>
		<g fill="#000" font-family="Arial" font-size="40">
			<!-- Ensure that events get the event before the hyperlink which
              happens before text selection -->
			<a xlink:href="resources/interact-order-03-b-targ.svg" font-size="40">
				<text x="20" y="90" onclick="bubbleNo(evt, 'red')" onmouseout="bubbleNo(evt, 'inherit')">
             String turns red on click
           </text>
				<g onclick="bubbleYes(evt, 'blue')" onmouseout="bubbleYes(evt, 'inherit')">
					<text x="60" y="160">
             		String hyperlinks to
             </text>
					<text x="20" y="200" font-size="33">
             	 	interact-order-03b-targ.svg
             </text>
				</g>
				<text x="30" y="270" onclick="bubbleNo(evt, 'inherit')">
             All strings are selectable.
           </text>
			</a>
		</g>
	</g>
	<text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.2 $</text>
	<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
</svg>
