<html>
<head><title>Address Book Using Jstemplates</title>
  <script src="../util.js" type="text/javascript"></script>
  <script src="../jsevalcontext.js" type="text/javascript"></script>
  <script src="../jstemplate.js" type="text/javascript"></script>
  <script type="text/javascript">
    function jsinit() {
      var mydata = {dataProperty:'Nonny'};
		  var context = new JsEvalContext(mydata);
		  context.setVariable('declaredVar','Ho');
		  var template = document.getElementById('witha');
		  jstProcess(context, template);
    }
    </script>
    <link rel="stylesheet" type="text/css" href="css/maps2.deb.css"/>
</head>
<body onload="jsinit()">

<div id="witha">
<div id="Hey" jscontent="this.parentNode.id + this.id + dataProperty + 
                          $this.dataProperty + declaredVar"></div>
</div>

</body>
</html>
