とりあえずコードみて気がついたことを書いていく。

まず214行目、XMLHttpRequestオブジェクトを作成するところ、
これを独立した関数にして、その関数がreturnとしてオブジェクトを返すようにするべき。

function MakeXMLHttpRequest(){
if(window.ActiveXObject){
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
return null;
}
}
}else if(window.XMLHttpRequest) {
return new XMLHttpRequest();
}else {
return null;
}
}

Tabはてきとーにいれてちょ。

あと妙にこじゃれた書き方をすると逆にオブジェクト指向のメリットがなくなります。