function getXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; } var XmlRpc = getXmlHttpObject(); var XmlRpcs = new Array(); var XmlSending = false; function send(params) { if (!XmlSending) { try { XmlRpc.onreadystatechange = null; XmlRpc.abort(); }catch(e){}; XmlSending = true; XmlRpc.open("POST", params.url, true); XmlRpc.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); XmlRpc.onreadystatechange = function(){ try { if (XmlRpc.readyState == 4) { if (XmlRpc.status == 200) { try { XmlSending = false; if (params.success) { setTimeout(function(){params.success(XmlRpc.responseText);},0); } if (XmlRpcs.length > 0) { next = XmlRpcs.shift(); if (next) { setTimeout(function(){send(next)},0); } } }catch(e) {/*alert("An Error has occurred. Please send the following output to bugs@yoinkd.com:\n"+e);*/} } else { XmlSending = false; setTimeout(function(){send(params)},5000); } } }catch(e){ XmlSending = false; setTimeout(function(){send(params)},5000); } }; XmlRpc.send(params.query||''); } else { XmlRpcs.push(params); } }