/******************************************************************************************************** /* /* Вспомогательные фуккции для работы AJAX вызовов /* /**/ /******************************************************************************************************** /* Создает и возвращает пригодный к использованию DOM документ /* /* @param XML string необязательный параметр, заполнение для документа, если оно надо /*/ function CreateXmlDoc(xml) { if (window.ActiveXObject) { var xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; if(xml) xmlDoc.loadXML(xml); return xmlDoc; } if (document.implementation && document.implementation.createDocument) { if(xml) { var parser=new DOMParser(); return parser.parseFromString(text,"text/xml"); } return document.implementation.createDocument("","",null); } else { return null; } } /******************************************************************************************************** /* Создает и возвращает пригодный к использованию XmlHttp /* /*/ function CreateXmlHttp() { if (window.XMLHttpRequest) { return new XMLHttpRequest(); } else if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP") } return null; } /******************************************************************************************************** /* Подрезает строку - полезно бывает /* /**/ function Trim(str) { return str.replace(/^\s*/ig,"").replace(/\s*$/ig,""); } /******************************************************************************************************** /* Производит ансинхронный вызов функции, бывает полезно /* /**/ function AsyncCall(func) { setTimeout(func, 10); } /******************************************************************************************************** /* Ээээ - вроде создает чилда в ДОМ документе - вобщем гдето использыется - пусть будет /* /**/ function SetElementText(parent, tag, text) { var velem = parent.ownerDocument.createElement(tag); velem.text = text; parent.appendChild(velem); } /******************************************************************************************************** /* /* УСТАРЕВШИЕ ВЫЗОВЫ - ПОЛЬЗУЕМ ОБЬЕКТ AJAX /* /********************************************************************************************************/ /******************************************************************************************************** /* Производит прямой вызов - устаревшая /* /**/ function SendRequestXML(URL, isPost, postbody, showError) { var xmlhttp = CreateXmlHttp(); xmlhttp.open((isPost)?"POST":"GET", URL, false); xmlhttp.setRequestHeader("RequestTarget","XmlService"); if((isPost) && (postbody)) { xmlhttp.send(postbody); } else { xmlhttp.send(null); } if((showError) && (xmlhttp.status != 200)) { alert("Ошибка выполнения: " +xmlhttp.statusText); return null; } if(xmlhttp.status != 200) { return null; } var xmlDoc = CreateXmlDoc(xmlhttp.responseText); if(xmlDoc.parseError.errorCode != 0) { var myErr = xmlDoc.parseError; // alert("You have error " + myErr.reason); return null; } return xmlDoc; } /******************************************************************************************************** /* Производит прямой вызов - устаревшая /* /**/ function SendRequestText(URL, isPost, postbody, showError) { var xmlhttp = CreateXmlHttp(); xmlhttp.open((isPost)?"POST":"GET", URL, false); xmlhttp.setRequestHeader("RequestTarget","XmlService"); if((isPost) && (postbody)) { xmlhttp.send(postbody); } else { xmlhttp.send(null); } if((showError) && (xmlhttp.status != 200)) { alert("Ошибка выполнения: " +xmlhttp.statusText); return null; } if(xmlhttp.status != 200) { return null; } return xmlhttp.responseText; } function AlertAJAXError(doc) { if (doc.documentElement) { var messge = doc.documentElement.getAttribute("ErrorMessage"); alert(messge); } // else // alert(doc); }