private void initialize()
	{
		File f = new File("etc/map.html");
		brw.setUrl(f.toURI().toString());
		//
		brw.addProgressListener(new ProgressListener() {
			
			@Override
			public void completed(ProgressEvent arg0) {
				for(Runnable r : enqueuedMarkers)
					execute(r);
				enqueuedMarkers.clear();
				synchronized(jsOk_lock)
				{
					jsOk = true;
				}
			}
			
			@Override
			public void changed(ProgressEvent arg0) {
				// TODO Auto-generated method stub
			}
		});
		//
		mgr.addDeviceListener(new DeviceListener() {
			
			@Override
			public void onNewDevice(final Device d) {
				Runnable r = new Runnable() {
					
					@Override
					public void run() {
						brw.evaluate("updateMarker("+
								d.getLocation().getLat()+","+
								d.getLocation().getLon()+
								",\""+d.getDName()+"\");");
					}
				};
				synchronized (jsOk_lock) {
					if(jsOk)
						execute(r);
					else
						enqueuedMarkers.add(r);
				}
			}

			@Override
			public void onDeviceOut(final Device d) {
				Runnable r = new Runnable() {
					
					@Override
					public void run() {
						String js="removeMarker(\""+
								d.getDName()+"\");";
						brw.evaluate(js);
					}
				};
				synchronized(jsOk_lock)
				{
					if(jsOk)
						execute(r);
					else
						enqueuedMarkers.add(r);
				}
			}
		});
	}