<?xml-stylesheet type="text/xsl" href="/xforms-tests/xsltforms/xsltforms.xsl"?>
<html xmlns:my="http://commerce.example.com/payment" xmlns:txs="http://sourceforge.net/projects/txs" xmlns="http://www.w3.org/1999/xhtml" xmlns:req="http://www.agencexml.com/requests" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <head>
        <title>10.3.d insert action using at attribute</title>
        <xforms:model id="mod1">
            <xforms:instance id="first">
                <number_lists xmlns="">
                    <number_list>
                        <number>1</number>
                        <number>2</number>
                        <number>3</number>
                        <number>4</number>
                        <number>5</number>
                    </number_list>
                    <number_list/>
                </number_lists>
            </xforms:instance>
        </xforms:model>
        <link rel="stylesheet" href="../../driverPages/forms/TestSuite11.css" type="text/css"/>
    </head>
    <body>
        <xforms:group>
            <xforms:label class="title">10.3.d insert action using at attribute</xforms:label>
        </xforms:group>
        <xforms:group>
            <xforms:label>
              After activating any of the Test triggers the integer sequence must match the one on 
              the label of the activated trigger. 
            </xforms:label>
        </xforms:group>
        <xforms:group>
            <xforms:trigger>
                <xforms:label>Test A: 1 2 3 4 5 5</xforms:label>
                <xforms:action ev:event="DOMActivate">
                    <xforms:reset model="mod1"/>
                    <!-- without at attribute, should take last position -->
                    <xforms:insert nodeset="number_list[1]/number"/>
                </xforms:action>
            </xforms:trigger>
            <xforms:trigger>
                <xforms:label>Test B: 1 2 5 3 4 5</xforms:label>
                <xforms:action ev:event="DOMActivate">
                    <xforms:reset model="mod1"/>
                    <!-- at attribute is not an integer, round up to index 2 -->
                    <xforms:insert nodeset="number_list/number" at="1.5"/>
                </xforms:action>
            </xforms:trigger>
            <xforms:trigger>
                <xforms:label>Test C: 1 2 3 5 4 5</xforms:label>
                <xforms:action ev:event="DOMActivate">
                    <xforms:reset model="mod1"/>
                    <!-- at attribute between 1 and node-set size -->
                    <xforms:insert nodeset="number_list/number" at="3"/>
                </xforms:action>
            </xforms:trigger>
            <xforms:trigger>
                <xforms:label>Test D: 1 5 2 3 4 5</xforms:label>
                <xforms:action ev:event="DOMActivate">
                    <xforms:reset model="mod1"/>
                    <!-- at attribute less than 1 -->
                    <xforms:insert nodeset="number_list/number" at="-2"/>
                </xforms:action>
            </xforms:trigger>
            <xforms:trigger>
                <xforms:label>Test E: 1 2 3 4 5 5</xforms:label>
                <xforms:action ev:event="DOMActivate">
                    <xforms:reset model="mod1"/>
                     <!-- at attribute greater than node-set size -->
                     <xforms:insert nodeset="number_list/number" at="6"/>
                </xforms:action>
            </xforms:trigger>
            <xforms:trigger>
                <xforms:label>Test F: 1 2 3 4 5 5</xforms:label>
                <xforms:action ev:event="DOMActivate">
                    <xforms:reset model="mod1"/>
                     <!-- at attribute is NaN -->
                     <xforms:insert nodeset="number_list/number" at="'foo'"/>
                </xforms:action>
            </xforms:trigger>
            <xforms:trigger>
                <xforms:label>Test G: List sizes remain 5 and 0, respectively</xforms:label>
                <xforms:action ev:event="DOMActivate">
                    <xforms:reset model="mod1"/>
                     <!-- empty node-set, at is ignored -->
                     <xforms:insert nodeset="number_list[2]/number" at="2"/>
                </xforms:action>
            </xforms:trigger>
        </xforms:group>
        <xforms:group>
            <xforms:label>Integer sequence: </xforms:label>
        </xforms:group>
        <xforms:repeat nodeset="number_list[1]/number">
            <xforms:output value=".">
                <xforms:label/>
            </xforms:output>
        </xforms:repeat>
        <xforms:output value="count(number_list[1]/number)">
            <xforms:label>Size of List X: </xforms:label>
        </xforms:output>
        <xforms:output value="count(number_list[2]/number)">
            <xforms:label>Size of List Y: </xforms:label>
        </xforms:output>
    </body>
</html>
