$(document).ready(function()
{
	if(mw.config.get("wgNamespaceNumber") != 0 && (mw.config.get("wgAction") == "edit" || mw.config.get("wgAction") == "submit") && $("#editform").length > 0)
	{
		regex = new RegExp(/(\{\\}|\)/g);
		$("#editform").on("submit", function(event) 
		{
			var previousErrors = .map(match => match.index);
			var addedErrors = .map(match => match.index);
			var prevCount = previousErrors.length;
			var addedCount = addedErrors.length;
			var indexA = 0;
			var indexP = 0;
			while(indexP >= 0 && indexA < addedCount && indexP < prevCount)
			{
				if(previousErrors == addedErrors)
				{
					indexA++;
					indexP++;
				}
				else if( previousErrors < addedErrors) 
				{
					indexP++;
				}
				else
				{
					indexP = -1;
				}
			}
			if(indexP == -1 || (indexP == prevCount && indexA < addedCount))
			{
				$("#wpTextbox1").focus().prop({'selectionStart': addedErrors, 'selectionEnd': addedErrors+2})
				return(confirm("Mismatched curly and square braces detected! Are you sure you want to save this edit?"));
			}
			else return true;
		});
	}
});