<html>
<head>
<title>behaviour.js test</title>
<script type="text/javascript" src="/static/js-test/lib/JSAN.js" charset="UTF-8"></script>

<script type="text/javascript" src="lib/Test/Builder.js" charset="UTF-8"></script>
<script type="text/javascript" src="lib/Test/More.js" charset="UTF-8"></script>

<script type="text/javascript" src="/static/js/jquery-1.4.1.js" charset="UTF-8"></script>
<script type="text/javascript" src="/static/js/jquery_noconflict.js" charset="UTF-8"></script>
<script type="text/javascript" src="/static/js/behaviour.js" charset="UTF-8"></script>
<script type="text/javascript">
var nonexists_applied = false;

Behaviour.register({
    '#foo': function(element) {
        element.innerHTML = "FOO is HERE";
    },

    '#bar': function(element) {
        element.innerHTML = "BAR is HERE";
    },
    '.nonexists': function(element) {
        nonexists_applied = true;
        document.body.appendChild(
            document.createTextNode("Foo")
        );
    }
});

var add_bar = function() {
    document.body.removeChild( document.getElementById("foo") );
    var d = document.createElement("div");
    d.setAttribute("id", "bar");
    document.body.appendChild(d);
};

</script>
</head>

<body>
    <div id="foo"></div>
    <div id="foo2"></div>
    <pre id="test"></pre>

    <script type="text/javascript"><!--
    JSAN.use('Test.More');
    plan({ tests: 4 });
    async_id = beginAsync();
    
    setTimeout(function() {
        is( document.getElementById("foo").innerHTML, "FOO is HERE", "#foo rule is registered and applied");
        
        add_bar();
        
        Behaviour.apply("#foo2");
        is( document.getElementById("bar").innerHTML, "", "#bar rule is not applied because that's not under #foo2");

        Behaviour.apply();
        is( document.getElementById("bar").innerHTML, "BAR is HERE", "#bar rule is applied manually");

        is (nonexists_applied, false, ".nonexists rule never applied.");
        endAsync(async_id);
    }, 1000);
    //--></script>
</body>
</html>