<!--
 * weinre is available under *either* the terms of the modified BSD license *or* the
 * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
 * 
 * Copyright (c) 2010, 2011 IBM Corporation
-->

<html>
<head>
<meta name="viewport" content="user-scalable=no, width=device-width, height=device-height">
<title>weinre demo</title>

<script src="/modjewel-require.js"></script>
<script type="text/javascript">require("modjewel").warnOnRecursiveRequire(true)</script>
<script src="/scooj.transportd.js"></script>
<script src="/weinre/common/Ex.transportd.js"></script>
<script src="/weinre/common/StackTrace.transportd.js"></script>
<script src="/weinre/common/Weinre.transportd.js"></script>
<script src="/weinre/common/IDLTools.transportd.js"></script>
<script src="/weinre/common/MessageDispatcher.transportd.js"></script>
<script src="/weinre/common/WebSocketXhr.transportd.js"></script>
<script src="/weinre/common/Binding.transportd.js"></script>
<script src="/weinre/common/Callback.transportd.js"></script>
<script src="/weinre/common/EventListeners.transportd.js"></script>
<script src="/weinre/common/Native.transportd.js"></script>
<script src="/weinre/common/IDGenerator.transportd.js"></script>
<script src="/weinre/target/Console.transportd.js"></script>
<script src="/add-css-properties.js"></script>
<script src="/weinre/target/CheckForProblems.transportd.js"></script>
<script src="/weinre/target/WiConsoleImpl.transportd.js"></script>
<script src="/weinre/target/WiCSSImpl.transportd.js"></script>
<script src="/weinre/target/WiDatabaseImpl.transportd.js"></script>
<script src="/weinre/target/WiDOMImpl.transportd.js"></script>
<script src="/weinre/target/WiDOMStorageImpl.transportd.js"></script>
<script src="/weinre/target/WiInspectorImpl.transportd.js"></script>
<script src="/weinre/target/WiRuntimeImpl.transportd.js"></script>
<script src="/weinre/target/WeinreTargetEventsImpl.transportd.js"></script>
<script src="/weinre/target/NodeStore.transportd.js"></script>
<script src="/weinre/target/CSSStore.transportd.js"></script>
<script src="/weinre/target/InjectedScriptHostImpl.transportd.js"></script>
<script src="/weinre/target/Target.transportd.js"></script>
<script src="/weinre/target/ElementHighlighter.transportd.js"></script>
<script src="/weinre/target/InjectedScript.js"></script>
<script src="/weinre/target/Timeline.transportd.js"></script>
<script src="/weinre/target/SqlStepper.transportd.js"></script>
<script src="/weinre/target/WeinreExtraClientCommandsImpl.transportd.js"></script>
<script src="/interfaces/all-json-idls-min.js"></script>

<script type="text/javascript">
    require("weinre/common/Weinre").getClass().showNotImplemented()
    require('weinre/target/Target').getClass().main()
</script>

<link rel="stylesheet" href="weinre-demo.css">
<script src="weinre-demo.js"></script>
</head>

<body onload="onLoad()">
<input id="button-start-stuff" type="button" value="start stuff">

<h1>this is a green h1</h1>
<h1 class="blue">this is a blue h1</h1>
<h1 style="color:red">this is a red h1</h1>
<p>Some text, <i>some italic text</i>, and <b>some bold text</b>.

<div id="metrics">a div</div>

<input id="button-clear-output" type="button" value="clear output">
<div id="output"></div>
</body>

</html>
