<?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 Image Loader</title>
    
	<script type="text/javascript" src="../Helper.js"></script>

	<script type="text/javascript">
	var loadedImageString = "";
	var connector = new NDN();
	var pieceNumber = 0;
	var count = 0;
	var end = false;
	var LOG = 0;
	var pieceSize = 1000;

	
	function getPiece(){
		if(!pieceNumber) pieceNumber = 0;
		var contentName = "/image/piece" + pieceNumber;
		var co = connector.get( contentName );

		if(co){
			 loadedImageString += DataUtils.toString(co.content);
			 console.log("Received length: " + co.content.length);
			if(co.content.length == pieceSize){
				pieceNumber += co.content.length;
				getPiece();
			}
			else document.getElementById('image').src += loadedImageString;
		}
	}
	

			
			
	
		</script>
	
</head>
<body >
	<div>
	<button onclick="getPiece()">Get image</button>
	</div>
	<div >
		<applet id="JavaSocketBridge" archive="../JavaSocketBridge.jar" code="JavaSocketBridge.class" width="0" height="0">
		</applet>
	</div>

		<p id="result"></p>
		<div>
			<img id="image" src="data:image/png;base64," alt="Image placeholder" />
		</div>

</body>
</html>