UNPKG

@kmhgmbh/dialer-vue-components

Version:

VueJS components for telephony and dialer functions

1,195 lines (1,034 loc) 31.7 kB
// $id //$Date = 01/12/2005 //Get userAgent var AGENT_WI_NET = navigator.userAgent.toLowerCase(); var webserviceQueue = new Array(); var webservicePending = 0; var idTimeout = null; var __xmlHttp = null; function Wsjavascript_getXmlHttp() { if (__xmlHttp != null) return __xmlHttp; if (window.XMLHttpRequest) { // If IE7, Mozilla, Safari, etc: Use native object try { __xmlHttp = new XMLHttpRequest(); } catch(e) { } } else { try { __xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { __xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { __xmlHttp = null; } } } return __xmlHttp; } function pickRecentProgID(idList) { // found progID flag var bFound = false; for(var i=0; i < idList.length && !bFound; i++) { try { var oDoc = new ActiveXObject(idList[i]); o2Store = idList[i]; bFound = true; } catch (objException) { // trap; try next progID } } if (!bFound) return ""; idList = null; return o2Store; }; _SARISSA_DOM_PROGID = null; function Wsjavascript_getDomDocument (rootNodeName) { var oDoc = null; try { if (oDoc == null) oDoc = document.implementation.createDocument("", "", null); } catch (ex) {} try { if (oDoc == null) { if (_SARISSA_DOM_PROGID == null) _SARISSA_DOM_PROGID = pickRecentProgID(["Msxml2.DOMDocument.6.0", "Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", "Microsoft.XMLDOM"], [["SELECT_NODES", 2],["TRANSFORM_NODE", 2]]); oDoc = new ActiveXObject(_SARISSA_DOM_PROGID); } } catch (ex) {} // if a root tag name was provided, we need to load it in the DOM if (oDoc && rootNodeName) { oDoc.loadXML("<" + rootNodeName + "/>"); } return oDoc; } function Wsjavascript_GetSoapParameters(paramsList) { var entete = new Array(); for (var i = 0; i < paramsList.length; i++) { var currentParam = paramsList[i]; var objType = typeof(currentParam.value); switch(objType) { case "undefined" : entete.push("<"); entete.push(currentParam.name); entete.push("></"); entete.push(currentParam.name); entete.push(">"); break; case "string" : case "number" : case "boolean" : if (currentParam.doNotEncode == true) { entete.push("<"); entete.push(currentParam.name); entete.push(">"); entete.push(currentParam.value); entete.push("</"); entete.push(currentParam.name); entete.push(">"); } else { entete.push("<"); entete.push(currentParam.name); entete.push(">"); entete.push(XMLEncode(currentParam.value)); entete.push("</"); entete.push(currentParam.name); entete.push(">"); } break; case "object" : if (currentParam.value == null) { entete.push("<"); entete.push(currentParam.name); entete.push("></"); entete.push(currentParam.name); entete.push(">"); } else if (currentParam.value instanceof Date) { entete.push("<"); entete.push(currentParam.name); entete.push(">"); entete.push(escape(currentParam.value.getTime())); entete.push("</"); entete.push(currentParam.name); entete.push(">"); } else if (currentParam.value instanceof Array) { entete.push("<"); entete.push(currentParam.name); entete.push(">"); var className = ""; if (currentParam.value.length > 0) { if (typeof(currentParam.value[0].getClass) == "function") { className = currentParam.value[0].getClass(); } } for (var j = 0; j < currentParam.value.length; j++) { var subParam = currentParam.value[j]; var type = typeof(subParam); if (type == "number") type = "int"; else if (className != "") type = "obj"; switch(type) { case "obj" : var subArray = new Array(); subArray.push(new WSParams(className, subParam, currentParam.doNotEncode)); entete.push(Wsjavascript_GetSoapParameters(subArray)); break; case "string" : case "int" : case "boolean" : if (currentParam.doNotEncode == true) { entete.push("<"); entete.push(type); entete.push(">"); entete.push(subParam); entete.push("</"); entete.push(type); entete.push(">"); } else { entete.push("<"); entete.push(type); entete.push(">"); entete.push(XMLEncode(subParam)); entete.push("</"); entete.push(type); entete.push(">"); } break; default : break; } } entete.push("</"); entete.push(currentParam.name); entete.push(">"); } else // object { entete.push("<"); entete.push(currentParam.name); entete.push(">"); var subArray = new Array(); for (var n in currentParam.value) { if (n == "getClass") continue; var subParam = new WSParams(n, currentParam.value[n], currentParam.doNotEncode); subArray.push(subParam); } entete.push(Wsjavascript_GetSoapParameters(subArray)); entete.push("</"); entete.push(currentParam.name); entete.push(">"); } break; case "function" : break; default : throw new Exception("WsJavascriptException", "invalid object type found for serialization"); } } return entete.join(""); } function Wsjavascript_CreateSoap(url, wsFunction, paramsList, uriName, guid, checkNamespace) { var entete = new Array(); entete.push("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); entete.push("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"); entete.push("<soap:Body>"); entete.push("<"); entete.push(wsFunction); entete.push(" xmlns=\""); if (checkNamespace) entete.push(concatUrl( checkUrl(uriName), "/")); else entete.push(checkUrl(uriName)); entete.push("\">"); if (guid != null) { entete.push("<"); entete.push(guid.name); entete.push(">"); entete.push(guid.value); entete.push("</"); entete.push(guid.name); entete.push(">"); } if (paramsList != null) { entete.push(Wsjavascript_GetSoapParameters(paramsList)); } entete.push("</"); entete.push(wsFunction); entete.push(">"); entete.push("</soap:Body></soap:Envelope>"); return entete.join(""); } /// url : url of webservice to call /// fctHandler : function to call for response (could be null) /// wsFunction : webservice function to call /// paramsList : list of params to call (array of WSParams object) /// user & password : Basic HTTP authentification if called WS need authentification function SendRequest(url, fctHandler, wsFunction, paramsList, uriName, timeout, timeoutHandler, checkNamespace) { if (url == "") { timeoutHandler("-1", "Url for webservice call is empty", null); return; } if (typeof(fctHandler) == "undefined") fctHandler = null; if (typeof(wsFunction) == "undefined") wsFunction = null; if (typeof(paramsList) == "undefined") paramsList = null; if (typeof(uriName) == "undefined") uriName = null; if (typeof(timeout) == "undefined") timeout = 5; //5 secondes if (typeof(timeoutHandler) == "undefined") timeoutHandler = null; if (typeof(checkNamespace) == "undefined") checkNamespace = true; if (typeof(user) == "undefined") user = null; if (typeof(password) == "undefined") password = null; var wsObj = new WsObject(url, fctHandler, wsFunction, paramsList, uriName, timeout, timeoutHandler, 0, null, checkNamespace, user, password); if (webservicePending != 0) { webserviceQueue.unshift(wsObj); } else { var xmlhttp = Wsjavascript_getXmlHttp(); try { xmlhttp.open("POST", url, true, user, password); } catch (e) { timeoutHandler(5000, "", null); } if (navigator.appVersion.indexOf("MSIE 6.0") != -1) { xmlhttp.onreadystatechange = function(e) { if (xmlhttp.readyState == 4) //don't call function when response isn't totally ready { WebserviceResponse(xmlhttp, fctHandler, timeoutHandler, wsFunction); } }; } else { var onWsResponse = function() { if (this.readyState == 4) //don't call function when response isn't totally ready { WebserviceResponse(this, fctHandler, timeoutHandler, wsFunction); fctHandler = null; timeoutHandler = null; wsFunction = null; uriName = null; this.onreadystatechange = null; } }; xmlhttp.onreadystatechange = onWsResponse; onWsResponse = null; } xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); xmlhttp.setRequestHeader("User-Agent", "wsjavascript_" + wsFunction); xmlhttp.setRequestHeader("Content-Encoding", "utf-8"); var entete; if (wsFunction != "none") { xmlhttp.setRequestHeader("SOAPAction" , concatUrl( checkUrl(uriName), wsFunction) ); entete = Wsjavascript_CreateSoap(url, wsFunction, paramsList, uriName, null, checkNamespace); } else { entete = paramsList; } xmlhttp.send(entete); if (timeout != 0) { idTimeout = setTimeout(function() {TestWebserviceTimeout(xmlhttp, null);}, timeout * 1000); } webservicePending++; entete = null; uriName = null; } } ///url : url of webservice to call ///fctHandler : function to call for response (could be null) ///wsFunction : webservice function to call ///paramsList : list of params to call (array of WSParams object) /// user & password : Basic HTTP authentification if called WS need authentification function XmlRequest(url, fctHandler, wsFunction, paramsList, uriName, timeout, timeoutHandler, checkNamespace, user, password) { if (url == "") { timeoutHandler("-1", "Url for webservice call is empty", null); return; } if (typeof(fctHandler) == "undefined") fctHandler = null; if (typeof(wsFunction) == "undefined") wsFunction = null; if (typeof(paramsList) == "undefined") paramsList = null; if (typeof(uriName) == "undefined") uriName = null; if (typeof(timeout) == "undefined") timeout = 5; //5 secondes if (typeof(timeoutHandler) == "undefined") timeoutHandler = null; if (typeof(checkNamespace) == "undefined") checkNamespace = true; if (typeof(user) == "undefined") user = null; if (typeof(password) == "undefined") password = null; if (webservicePending != 0) { var wsObj = new WsObject(url, fctHandler, wsFunction, paramsList, uriName, timeout, timeoutHandler, 2, null, checkNamespace); webserviceQueue.unshift(wsObj); } else { var xmlhttp = Wsjavascript_getXmlHttp(); // xmlhttp.mozBackgroundRequest = true; // To disable authentification popup if password is invalid (by default in IE). DONT WORK : actually allowd only for mozilla plugins, not web site ... try { xmlhttp.open("POST", url, true, user, password); } catch(e) { timeoutHandler(5000, "", null); } if (navigator.appVersion.indexOf("MSIE 6.0") != -1) { xmlhttp.onreadystatechange = function (e) { if (xmlhttp.readyState == 4) //don't call function when response isn't totally ready { WebserviceResponseXml(xmlhttp, fctHandler, timeoutHandler, wsFunction, uriName); } }; } else { var onWsResponse = function () { if (this.readyState == 4) //don't call function when response isn't totally ready { WebserviceResponseXml(this, fctHandler, timeoutHandler, wsFunction, uriName); fctHandler = null; timeoutHandler = null; wsFunction = null; uriName = null; this.onreadystatechange = null; } }; xmlhttp.onreadystatechange = onWsResponse; onWsResponse = null; } xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); xmlhttp.setRequestHeader("User-Agent", "wsjavascript_xml_" + wsFunction); xmlhttp.setRequestHeader("Content-Encoding", "utf-8"); var entete; if (wsFunction != "none") { xmlhttp.setRequestHeader("SOAPAction" , concatUrl( checkUrl(uriName), wsFunction) ); entete = Wsjavascript_CreateSoap(url, wsFunction, paramsList, uriName, null, checkNamespace); } else { entete = paramsList; } //DEBUG //try { xmlhttp.send(entete); //} //catch (e) { //} if (timeout != 0) { var fctTimeout = function() { TestWebserviceTimeout(xmlhttp, null, timeoutHandler); } idTimeout = setTimeout(fctTimeout, timeout * 1000); fctTimeout = null; } webservicePending++; entete = null; uriName = null; } } function SendAsyncRequest(url, fctHandler, wsFunction, paramsList, uriName, timeout, timeoutHandler, stepHandler, guidParams) { if (url == "") { timeoutHandler("-1", "Url for webservice call is empty", null); return; } if (typeof(fctHandler) == "undefined") fctHandler = null; if (typeof(wsFunction) == "undefined") wsFunction = null; if (typeof(paramsList) == "undefined") paramsList = null; if (typeof(uriName) == "undefined") uriName = null; if (typeof(timeout) == "undefined") timeout = 5; //5 secondes if (typeof(timeoutHandler) == "undefined") timeoutHandler = null; if (typeof(stepHandler) == "undefined") stepHandler = null; var checkNamespace = true; if ((typeof(guidParams) == "undefined") || (guidParams == null)) { guidParams = ""; } var wsObj = new WsObject(url, fctHandler, wsFunction, paramsList, uriName, timeout, timeoutHandler, 1, stepHandler, checkNamespace); wsObj.setRequestGuid("askId", guidParams); if (webservicePending != 0) { webserviceQueue.unshift(wsObj); } else { var xmlhttp = Wsjavascript_getXmlHttp(); try { xmlhttp.open("POST", url, true); } catch (e) { timeoutHandler(5000, "", null); } if (navigator.appVersion.indexOf("MSIE 6.0") != -1) { xmlhttp.onreadystatechange = function(e) { if (xmlhttp.readyState == 4) //don't call function when response isn't totally ready { AsyncWebserviceResponse(xmlhttp, wsObj); } }; } else { var onWsResponse = function() { if (this.readyState == 4) //don't call function when response isn't totally ready { AsyncWebserviceResponse(this, wsObj); this.onreadystatechange = null; } }; xmlhttp.onreadystatechange = onWsResponse; onWsResponse = null; } xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); xmlhttp.setRequestHeader("User-Agent", "wsjavascript_async_" + wsFunction); xmlhttp.setRequestHeader("Content-Encoding", "utf-8"); var entete; if (wsFunction != "none") { xmlhttp.setRequestHeader("SOAPAction" , concatUrl( checkUrl(uriName), wsFunction) ); entete = Wsjavascript_CreateSoap(url, wsFunction, paramsList, uriName, wsObj.guidParam, checkNamespace); } else { entete = paramsList; } xmlhttp.send(entete); if (timeout != 0) { idTimeout = setTimeout(function() {TestWebserviceTimeout(xmlhttp, null);}, timeout * 1000); } webservicePending++; entete = null; uriName = null; } } function SendPlainRequest(url, fctHandler, wsFunction, paramsList, timeout) { if (typeof(fctHandler) == "undefined") fctHandler = null; if (typeof(wsFunction) == "undefined") wsFunction = null; if (typeof(paramsList) == "undefined") paramsList = null; var uriName = null; timeout = 30; //30 secondes var timeoutHandler = null; var checkNamespace = true; var wsObj = new WsObject(url, fctHandler, wsFunction, paramsList, uriName, timeout, timeoutHandler, 3, null, checkNamespace); if (webservicePending != 0) { webserviceQueue.unshift(wsObj); } else { var xmlhttp = Wsjavascript_getXmlHttp(); try { xmlhttp.open("POST", url, true); } catch (e) { TestWebserviceTimeout(xmlhttp, null); } xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); xmlhttp.setRequestHeader("Content-Encoding", "utf-8"); xmlhttp.setRequestHeader("User-Agent", "SendPlainRequest_" + wsFunction); xmlhttp.setRequestHeader("SOAPAction", wsFunction); if (navigator.appVersion.indexOf("MSIE 6.0") != -1) { xmlhttp.onreadystatechange = function(e) { if (xmlhttp.readyState == 4) //don't call function when response isn't totally ready { WebservicePlainResponse(xmlhttp, fctHandler); } }; } else { var onWsResponse = function() { if (this.readyState == 4) //don't call function when response isn't totally ready { WebservicePlainResponse(this, fctHandler); fctHandler = null; wsFunction = null; uriName = null; this.onreadystatechange = null; } }; xmlhttp.onreadystatechange = onWsResponse; onWsResponse = null; } try { xmlhttp.send(paramsList); } catch (ex) {} if (timeout != 0) { idTimeout = setTimeout(function() {TestWebserviceTimeout(xmlhttp, fctHandler);}, timeout * 1000); } webservicePending++; entete = null; uriName = null; } } function TestWebserviceTimeout(xmlhttp, fctHandler, timeoutHandler) { if (idTimeout != null) { clearTimeout(idTimeout); idTimeout = null; } if (xmlhttp.readyState == 1) { xmlhttp.abort(); if (fctHandler != null) { fctHandler("500", "Query timeout", "Timeout", null); } } } function WebserviceResponse(xmlhttp, fctHandler, errorHandler, wsFunction) { if (idTimeout != null) { clearTimeout(idTimeout); idTimeout = null; } if (xmlhttp.status != 200) { if (errorHandler != null) { errorHandler(xmlhttp.status, "", xmlhttp.responseXML); fctHandler(null); } else if (fctHandler != null) { fctHandler(null); } WsJavascript_CallNext(); return; } var xmlResponse = ((xmlhttp.responseXML) && (xmlhttp.responseXML.childNodes.length > 0)); //WebService send a response : get obj var response = (xmlResponse) ? xmlhttp.responseXML.getElementsByTagName(wsFunction + "Response") : xmlhttp.responseText; if (fctHandler != null) { if (xmlResponse) { if (response.length == 0) { fctHandler(null); } else { response = response[0]; var array = Parse(response.childNodes, null); fctHandler(array); } } else { fctHandler(response); } } response = null; fctHandler = null; WsJavascript_CallNext(); } function WebserviceResponseXml(xmlhttp, fctHandler, errorHandler, wsFunction, uriName) { if (idTimeout != null) { clearTimeout(idTimeout); idTimeout = null; } if ((xmlhttp.status != 200) || (xmlhttp.responseXML == null)) { if (errorHandler != null) { errorHandler(xmlhttp.status, "", xmlhttp.responseXML); } else if (fctHandler != null) { fctHandler(null); } WsJavascript_CallNext(); return; } var response = xmlhttp.responseXML.getElementsByTagName(wsFunction + "Result"); if (fctHandler != null) { if (response.length == 0) { fctHandler(null); } else { response = response[0]; //DEBUG //try { if (response.childNodes.length>1) fctHandler(response.childNodes, response); else fctHandler(response.firstChild, response); //} catch (e) { //alert(e.message); //} } } response = null; fctHandler = null; WsJavascript_CallNext(); } function AsyncWebserviceResponse(xmlhttp, webservObject) { if (idTimeout != null) { clearTimeout(idTimeout); idTimeout = null; } if (xmlhttp.status != 200) { if (webservObject.errorHandler != null) { webservObject.errorHandler(xmlhttp.status, "", xmlhttp.responseXML); } else if (webservObject.fctHandler != null) { webservObject.fctHandler(null); } WsJavascript_CallNext(); return; } //WebService send a response : get obj var response = xmlhttp.responseXML.getElementsByTagName(webservObject.wsFunction + "Result"); if ((response.length == 0) && (webservObject.fctHandler != null)) { webservObject.fctHandler(null); } else if (response.length != 0) { var array = null; response = response[0]; if (response.childNodes.length>1) array = initParseXml(response.childNodes); else array = initParseXml(response.firstChild); if ((array.state == 2) || (array.state == 3)) { if (webservObject.fctHandler != null) { if (response.childNodes.length > 1) webservObject.fctHandler(response.childNodes); else webservObject.fctHandler(response.firstChild); } } else { if (webservObject.stepHandler != null) webservObject.stepHandler(array.state); setTimeout(function() { SendAsyncRequest(webservObject.url, webservObject.fctHandler, webservObject.wsFunction, webservObject.paramsList, webservObject.uriName,webservObject.timeout, webservObject.timeoutHandler, webservObject.stepHandler, array.UniqueId); }, 2000); } } response = null; fctHandler = null; WsJavascript_CallNext(); } function WebservicePlainResponse(xmlhttp, fctHandler) { if (idTimeout != null) { clearTimeout(idTimeout); idTimeout = null; } try { fctHandler(xmlhttp.status, xmlhttp.responseText, "", xmlhttp.responseXML); fctHandler = null; } catch (e) { } WsJavascript_CallNext(); } function WsJavascript_CallNext() { setTimeout(DoCallNext, 1); } function DoCallNext() { webservicePending--; if (webserviceQueue.length > 0) { var obj = webserviceQueue.pop(); if (obj.method == 0) { SendRequest(obj.url, obj.fctHandler, obj.wsFunction, obj.paramsList, obj.uriName, obj.timeout, obj.errorHandler, obj.stepHandler); } else if (obj.method == 1) { SendAsyncRequest(obj.url, obj.fctHandler, obj.wsFunction, obj.paramsList, obj.uriName, obj.timeout, obj.timeoutHandler, obj.stepHandler, obj.guidParam.value); } else if (obj.method == 2) { XmlRequest(obj.url, obj.fctHandler, obj.wsFunction, obj.paramsList, obj.uriName, obj.timeout, obj.errorHandler, obj.stepHandler, obj.user, obj.password ); } else //Plain { SendPlainRequest(obj.url, obj.fctHandler, obj.wsFunction, obj.paramsList, obj.uriName, obj.timeout, obj.errorHandler, obj.stepHandler); } obj.Dispose(); obj = null; } } function Parse(element, array) { for (var i = 0; i < element.length; i++) { if (element[i].childNodes.length > 1) { if (element[i].textContent) { // FF split les nodes trop gros, il ne faut pas en tenir compte if (array == null) array = new Array(); array.push(element[i].textContent); } else if (array != null) { array.push(Parse(element[i].childNodes, new Array())); } else { array = Parse(element[i].childNodes, new Array()); } } else if (element[i].childNodes.length > 0) { if (array == null) array = new Array(); if ((element[i].childNodes[0].childNodes.length > 0) && (element[i].childNodes[0].nodeValue == null)) { array.push(Parse(element[i].childNodes[0].childNodes, new Array())); } else if (element[i].childNodes[0].nodeValue == null) { array.push(new Array()); } else { try { value = decodeWS(element[i].childNodes[0].nodeValue); } catch(e) { value = element[i].childNodes[0].nodeValue; } array.push(value); array[element[i].nodeName] = value; } } else { if (array != null) array.push(""); } } return array; } function initParseXml(current, type) { if ( !current ) return type=='array'?new Array():null; // Quelque soit ce que nous envoi XMLResult, on recupere le tag XxxxResponse current = current.nodeType?current.parentNode:current[0].parentNode; return parseXml(current, type); } function parseXml(current, type) { var firstChild = current.childNodes[0]; var txt = ""; if ((current.childNodes.length > 1) && (firstChild.nodeType == 3) && (firstChild.textContent)) { // FF split les nodes trop gros, il ne faut pas en tenir compte var str = ""; for (var i = 0; i < current.childNodes.length; i++) { str += current.childNodes[i].nodeValue; } return str; } if ( current.childNodes.length==1 && (firstChild.nodeType==3 || firstChild.nodeType==4) ) { // Nous somme sur un scalaire return firstChild.nodeValue; } else if ( type=='array' || ( current.childNodes.length>1 && firstChild.nodeName==firstChild.nextSibling.nodeName ) ) { // Nous somme donc dans un tableau var obj = new Array(); var child = firstChild; while ( child ) { obj.push( parseXml(child) ); child = child.nextSibling; } return obj; } else if ( type=='object' || current.childNodes.length>1 ) { // Nous somme dans un objet var obj = new Object(); var child = firstChild; while ( child ) { obj[child.nodeName] = parseXml(child); child = child.nextSibling; } return obj; } else if ( current.childNodes.length==1 ) { // Nous somme sur un tableau ou un objet avec un seul element. var obj = new Array(); obj.push( parseXml(firstChild) ); obj[current.nodeName] = obj[0]; return obj; } else { return ""; } } /********** UTILS *************/ function decodeWS(str) { str = decodeURI(str); var reg = new RegExp("_/POURCENT/_", "gi"); str = str.replace(reg, "%"); return str; } function XMLEncode(str) { try { str = str + ""; str = str.replace(/\&/gi, "&amp;"); str = str.replace(/>/gi, "&gt;"); str = str.replace(/</gi, "&lt;"); } catch(e) {} return str; } function WSParams(name, value, doNotEncode) { this.name = name; this.value = value; if ((typeof(doNotEncode) != "undefined") && (doNotEncode != null)) { this.doNotEncode = doNotEncode; } else { this.doNotEncode = false; } } function ParameterObject(name, array) { this.name = name; this.parameters = array; } function XMLExeption(message, errorCode) { this.Message = message; this.code = errorCode; } //Method : 0 : direct, 1 : async function WsObject(url, fctHandler, wsFunction, paramsList, uriName, timeout, errorHandler, method, stepHandler, checkNamespace, user, password) { this.url = url; this.fctHandler = fctHandler; this.wsFunction = wsFunction; this.paramsList = paramsList; this.uriName = uriName; this.timeout = timeout; this.errorHandler = errorHandler; this.method = method; this.stepHandler = stepHandler; this.guidParam = null; this.checkNamespace = checkNamespace; this.user = user; this.password = password; } WsObject.prototype.setRequestGuid = function(param, val) { this.guidParam = new WSParams(param, val); }; WsObject.prototype.Dispose = function() { /*this.url = null; this.fctHandler = null; this.wsFunction = null; for (var i = 0; i < this.paramsList.length; i++) { this.paramsList[i] = null; } this.paramsList = null; this.uriName = null; this.timeout = null; this.errorHandler = null; this.method = null; this.stepHandler = null; this.guidParam = null; this.checkNamespace = null;*/ } function defaultErrorHandler(statusCode, statusText, xmlError) { var faultS = xmlError?xmlError.getElementsByTagName("faultstring")[0]:null; var faultA = xmlError?xmlError.getElementsByTagName("faultactor")[0]:null; if ( faultS!=null && faultA!=null ) alert('** Error **\n'+faultS.firstChild.nodeValue+'\n\n ** At **\n'+faultA.firstChild.nodeValue); else if ( faultS!=null ) alert('** Error **\n'+faultS.firstChild.nodeValue); else alert('** Error **\n'+statusCode+", "+statusText); } function checkUrl(urlName) { if ( urlName.indexOf('http')==0 ) return urlName; else return 'http://'+urlName; } function concatUrl(url1, url2) { if (url1.length==0) return url2; else if (url2.length==0) return url1; else if ( url1.charAt(url1.length-1)=='/' && url2.charAt(0)=='/' ) return url1+url2.substring(1); else if ( url1.charAt(url1.length-1)=='/' || url2.charAt(0)=='/' ) return url1+url2; else { return url1+'/'+url2; } } function GetXmlDocument(strXML) { var xmlDoc = null; var ie10 = navigator.appVersion.indexOf("MSIE 10.0") > 0; if (document.implementation && document.implementation.createDocument && !ie10) { var parser = new DOMParser(); xmlDoc = parser.parseFromString(strXML,"text/xml"); } else if (window.ActiveXObject) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.loadXML(strXML); } return xmlDoc; } if (!document.all) { XMLDocument.prototype.__defineGetter__("xml", function() { return (new XMLSerializer()).serializeToString(this); }); } function TestSameDomainUrl(url) { //alert(location.host); url = url.toLowerCase(); if (url.indexOf("http://") != -1) { url = url.replace("http://", ""); } else if (url.indexOf("https://") != -1) { url = url.replace("https://", ""); } //Get first / or first ? or first # var indexSlash = url.indexOf("/"); var indexInterro = url.indexOf("?"); var indexDiese = url.indexOf("#"); if (indexSlash != -1) { if (((indexSlash < indexInterro) || (indexInterro == -1)) && ((indexSlash < indexDiese) || (indexDiese == -1))) { url = url.substr(0, indexSlash); } } if (indexInterro != -1) { if (((indexInterro < indexSlash) || (indexSlash == -1)) && ((indexInterro < indexDiese) || (indexDiese == -1))) { url = url.substr(0, indexInterro); } } if (indexDiese != -1) { if (((indexDiese < indexInterro) || (indexInterro == -1)) && ((indexDiese < indexSlash) || (indexSlash == -1))) { url = url.substr(0, indexDiese); } } var mySelf = location.host.toLowerCase(); return mySelf == url; }