$(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;
});
}
});