<!--
 * 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>
<link rel="stylesheet" href="weinre-demo.css">
<script src="weinre-demo.js"></script>
<script src="/target/target-script-min.js"></script>

<script type="text/javascript">
    require("weinre/common/Weinre").getClass().showNotImplemented()
</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>.

<p>You are using a 
<span class="size-test size-small">small</span>
<span class="size-test size-medium">medium</span>
<span class="size-test size-large">large</span>
display.

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

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

</html>
