<?xml version = "1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">

<head>
	<title>NDN Interest Matches Name</title>
	
	<script type="text/javascript" src="../Helper.js"></script>

	<script type="text/javascript">
	
		function check(){
			var interest = new Interest( new Name(document.getElementById('interest').value));
			interest.scope = 1;
                        
			var nameToCheck = new Name(document.getElementById('nameToCheck').value);
			
			var output = (interest.matches_name(nameToCheck) ? "matches" : "doesn't match");
			document.getElementById('result').innerHTML = output;
		}

	</script>

</head>
<body >
	<form>
		
		Please enter the name of an interest:<br />		
		<input id="interest" type="text" name="INTEREST" value="/ndn/ucla.edu" /> <br/>
		
		Please enter a name to check if the interest matches the name:<br />		
		<input id="nameToCheck" type="text" name="NAME_TO_CHECK" value="/ndn/ucla.edu" /> <br/>
		
	</form>
	<button onclick="check()">Check</button>
	
	<p id="result"></p>

</body>
</html>
