Спасибо! Я понял, косяк где-то в этих строчках в function submitForm:
req.open('POST', par2, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send("var1=" + par3 + "&var2=" + par4 + "&var3=" + par5 + "&var4=" + par6);
Когда у нас в параметре "par5" находится ";" (точка с запятой), то cgi скрипт на том конце трактует её как и "&" - как разделитель переданных значений, а не как значение.
Тогда вопрос: как скрипту передавать ";"?