Трудно читать ваш код, поскольку он не отформатирован, но я думаю, что ваша проблема в том, что вы превращаете xmlhttp в глобальную переменную, а не передаете ее (я думаю ...).
Попробуйте изменить xmlhttp.onreadystatechange на
xmlhttp.onreadystatechange = function() { statechangedLogin(xmlhttp); };
и
xmlhttp.onreadystatechange = function() { statechangedLogin2(xmlhttp); };
, а затем измените свои функции для StateagedLogin и Login2, чтобы принять параметр
function statechangedLogin(xmlhttp) {
// ... code here
}
Проблема может заключаться в том, что вы случайно перезаписываете текущий запрос в переменной xmlhttp до его завершения, что может привести к тому, что эти события не сработают. Сделав xmlhttp локальной переменной для каждой функции, вы можете вызывать эти функции несколько раз, и они не будут перезаписывать или останавливать друг друга.