<html> 
<head> 
<script type="text/javascript">
  if (window.testRunner) {
      testRunner.waitUntilDone();
  }
  function test() {
	var testEl = document.getElementById("limittest");
    testEl.focus()
    testEl.blur()
    if (window.testRunner)
       setTimeout("testRunner.notifyDone()", 0);
  }
</script>
<style> 
  * { margin:0; padding:0; }
  form.colly              { width: 100%; }
  form.colly label        { float: left; height: 30px; margin: 5px 0px 0px; }
  form.colly br           { clear: both; }
</style> 
</head> 
<body onload="test()"> 
<form class="colly"> 
  <label for="hidesubpages">Hide subpages</label> 
  <input type="checkbox" name="hidesubpages" value="on"  />
  <br /> 
  <select name="limit" id="limittest"> 
    <option value="10">10000</option> 
    <option value="25" selected="selected">2</option> 
    <option value="50">5</option> 
  </select> 
</form> 
</body> 
</html>

