private boolean _execCommand(String command, boolean reset) {

	logPanel.add("Sent command <strong>" + command + "</strong>", LogPanel.OK, true);

	String xmlString = null;

	try {

	    URL url = new URL(HTTP_CAMERA_SERVER + HTTP_PATH_EXEC + "?" + command);

	    xmlString = _readText(url.openStream()).trim();

	    Document xmlDoc = _documentBuilder.parse(new InputSource(new StringReader(xmlString)));

	    _replyPanel.showReply(xmlDoc, "Response to command = " + command, reset, EXPERT_MODE);
	    if(!isResponseOK(xmlDoc))
		throw new Exception("XML response from camera server " + HTTP_CAMERA_SERVER + " was not OK");

	    logPanel.add("Executed command <strong>" + command + "</strong>", LogPanel.OK, true);

	    return true;

	}
	catch(SocketException e) {
	    if(DEBUG) e.printStackTrace();
	    JOptionPane.showMessageDialog(this, "Check that the server = " + HTTP_CAMERA_SERVER + " is active", "SocketException", JOptionPane.WARNING_MESSAGE);
	}
	catch(SAXParseException e) {
	    if(DEBUG) e.printStackTrace();
	    System.out.println("XML start\n" + xmlString + "\nXML end");
	    JOptionPane.showMessageDialog(this, e + "\nTry again.", e.getClass().getName(), JOptionPane.WARNING_MESSAGE);
	}
	catch(Exception e) {
	    if(DEBUG) e.printStackTrace();
	    JOptionPane.showMessageDialog(this, e + "\nTry again.", e.getClass().getName(), JOptionPane.WARNING_MESSAGE);
	}
	logPanel.add("Failed to execute command <strong>" + command + "</strong>", LogPanel.ERROR, false);
	return false;
    }