//xmlHttpConnect //xH.conn(URL,Method,Vars,Function done) - assync //xH.syn(URL,Method,Vars) - sync, return result query function xH() { var xmlhttp, bComplete = false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }catch (e) { try { xmlhttp = new XMLHttpRequest(); }catch (e) { xmlhttp = false; } } } if (!xmlhttp) return null; this.syn = function(sURL, sMethod, sVars) { if (!xmlhttp) return false; sMethod = sMethod.toUpperCase(); if (sMethod == "GET") { xmlhttp.open(sMethod,sURL+"?"+sVars,false); xmlhttp.send(null); if (xmlhttp.status == 200) { return xmlhttp.responseText; } return false; } else { xmlhttp.open(sMethod, sURL, false); xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1"); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.send(sVars); if (xmlhttp.status == 200) { return xmlhttp.responseText; } return false; } } this.conn = function(sURL, sMethod, sVars, fnDone) { if (!xmlhttp) return false; bComplete = false; sMethod = sMethod.toUpperCase(); try { if (sMethod == "GET") { xmlhttp.open(sMethod, sURL+"?"+sVars, true); sVars = ""; } else { xmlhttp.open(sMethod, sURL, true); xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1"); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.send(sVars); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && !bComplete) { bComplete = true; fnDone(xmlhttp); } }; xmlhttp.send(sVars); } catch(z) { return false; } return true; }; return this; }