<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000802//EN"
"http://www.w3.org/TR/2000/CR-SVG-20000802/DTD/svg-20000802.dtd">

<!--

   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

-->
<!-- ====================================================================== -->
<!-- Modification of viewbox on outermost svg onLoad                        -->
<!--                                                                        -->
<!-- @author deweese@apache.org                                             -->
<!-- @version $Id$  -->
<!-- ====================================================================== -->

<?xml-stylesheet type="text/css" href="../../resources/style/test.css" ?>  
<svg id="body" width="450" height="500" viewBox="0 0 450 500"
     onload="setViewBoxTo(evt,'50 25 150 166.7')">

    <title>'viewBox' modification in 'onload'</title>

    <script type="text/ecmascript">
    function setViewBoxTo(evt, val){
        var svg = evt.getTarget();
        svg.setAttribute('viewBox', val);
    }
    </script>

    <rect x="0" y="0" width="450" height="500" fill="#F88"/>

    <rect x="50" y="25" width="150" height="166.7" fill="#AAA"/>

    <svg x="75" y="75" width="100" height="100" overflow="visible"
         viewBox="0 0 100 100"
         onload="setViewBoxTo(evt, '-10 -10 120 120')">
        <rect x="-10" y="-10" width="120" height="120" fill="#F88"/>
    </svg>

    <rect x="75" y="75" width="100" height="100" fill="#AAF"/>
    
    <text x="125" y="45" class="title">viewBox modification
        <tspan x="125" dy="1.2em"> in 'onload'</tspan></text>

    <text x="125" y="188" class="legend">No red should show</text>
</svg>
