void MainWindow::analysisUserDataLoadedHandler(Analysis *analysis)
{
	QString results = tq(analysis->userData().toStyledString());

	results = escapeJavascriptString(results);
	results = "window.loadUserData(" + QString::number(analysis->id()) + ", JSON.parse('" + results + "'));";
}
void ResultsJsInterface::analysisChanged(Analysis *analysis)
{
	Json::Value analysisJson = analysis->asJSON();
	analysisJson["userdata"] = analysis->userData();
	QString results = tq(analysisJson.toStyledString());

	results = escapeJavascriptString(results);
	results = "window.analysisChanged(JSON.parse('" + results + "'));";
	runJavaScript(results);
}
void ResultsJsInterface::analysisImageEditedHandler(Analysis *analysis)
{
	Json::Value imgJson = analysis->getImgResults();
	QString	results = tq(imgJson.toStyledString());
	results = escapeJavascriptString(results);
	results = "window.modifySelectedImage(" + QString::number(analysis->id()) + ", JSON.parse('" + results + "'));";
	runJavaScript(results);

    return;
}
void MainWindow::analysisResultsChangedHandler(Analysis *analysis)
{
	static bool showInstructions = true;

	if (showInstructions)
	{
		if (_settings.value("instructionsShown", false).toBool() == false)
		{
			_settings.setValue("instructionsShown", true);
			ui->webViewResults->page()->mainFrame()->evaluateJavaScript("window.showInstructions()");
		}

		showInstructions = false;
	}

	if (analysis->status() == Analysis::Running || (analysis->status() == Analysis::Inited && analysis->isAutorun()))
	{
		_runButton->setEnabled(true);
		_runButton->setText("Stop");
	}
	else
	{
		_runButton->setText("Run");
		if (analysis->status() == Analysis::InitedAndWaiting)
			_runButton->setEnabled(true);
		else
			_runButton->setEnabled(false);
	}

	Json::Value analysisJson = analysis->asJSON();
	analysisJson["userdata"] = analysis->userData();
	QString results = tq(analysisJson.toStyledString());

	results = escapeJavascriptString(results);
	results = "window.analysisChanged(JSON.parse('" + results + "'));";

	ui->webViewResults->page()->mainFrame()->evaluateJavaScript(results);

	if (_package->isLoaded())
		_package->setModified(true);
}
void ResultsJsInterface::setResultsMeta(QString str)
{
	QString results = escapeJavascriptString(str);
	results = "window.setResultsMeta(JSON.parse('" + results + "'));";
	runJavaScript(results);
}