PageSourceSearch

https://www.oberk.com/static/111213/desktop/desktopAjax.js

js oberk.com collected 2026-10-02 05:30:45 UTC 7,043 bytes, 224 lines download raw bytes

1function DesktopAjax() {}
2
3/**** Request functions below ****/
4function makeActionRequest(actionUrl, finalUrl, finalData, finalHandler) {
5  function makeCookieRequest(url, handler) {
6    var now = new Date();
7    var cookieName = DynamicContent.pCOOKIE_PARAM + now.getTime();
8    // 10 minutes
9    now.setTime(now.getTime() + (10*60*1000));
10    setCookie(cookieName, data, now, null);
11    try {
12      makeGetRequest(setParam(url, DynamicContent.pCOOKIE_PARAM, cookieName), handler);
13    } finally {
14    }
15  }
16  var data = finalData;
17  function actionHandler(newDoc) {
18    makeCookieRequest(finalUrl, finalHandler);
19  }
20  if (actionUrl) {
21    makeCookieRequest(actionUrl, actionHandler);
22  } else {
23      actionHandler(null);
24  }
25
26}
27
28function removeParam(url, paramName) {
29  var s = url.indexOf(paramName + '=');
30  if (s < 0) return url;
31  var e = url.indexOf('&', s);
32  e++;
33  if (e == 0) {
34    e = url.length;
35  }
36  url = url.substring(0, s) + url.substring(e, url.length);
37  if (url.length > 1) {
38    var lastChar = url.charAt(url.length-1);
39    if (lastChar == '?' || lastChar == '&') {
40      url = url.substring(0, url.length-1);
41    }
42  }
43  return url;
44}
45
46function setParam(url, paramName, paramValue) {
47
48  url = removeParam(url, paramName);
49  if (url.indexOf('?') > -1){
50        url = url + "&" + paramName + "=" + paramValue;
51    } else {
52        url = url + "?" + paramName + "=" + paramValue;
53    }
54  return url;
55}
56
57function makeGetRequest(url, handler) {
58    makeRequest(url, handler, null, null);
59}
60
61function makeRequest(url, handler, payloadNames, payloadValues) {
62    function getRequestObject() {
63        var req = null;
64        // branch for native XMLHttpRequest object
65        if(window.XMLHttpRequest) {
66            try {
67                req = new XMLHttpRequest();
68            } catch(e) {
69                req = false;
70            }
71        // branch for IE/Windows ActiveX version
72        } else if(window.ActiveXObject) {
73            try {
74                req = new ActiveXObject("Msxml2.XMLHTTP");
75            } catch(e) {
76                try {
77                    req = new ActiveXObject("Microsoft.XMLHTTP");
78                } catch(e) {
79                    req = false;
80                }
81            }
82        }
83        return req;
84    }
85
86    function parseHtml(responseHtml) {
87        var uniqueId = 'parserFrame' + new Date().getTime();
88        var divUniqueId = "div"+uniqueId;
89        var b = document.getElementsByTagName('body')[0];
90        var divElem = document.createElement('div');
91        if(!Sfdc.userAgent.isSafari){
92            divElem.style.display = 'none';
93        }
94        divElem.id = divUniqueId;
95        b.appendChild(divElem);
96        // Safari ignores iframes with display:none also there is delay
97        // in Safari initializing document object of Iframe if createElement method is used
98        // thus we use innerHTML for iframe writing
99        if(isSafari){
100            divElem.innerHTML = '<iframe src="javascript:false" style="height:1px;width:1px" id="' + uniqueId + '" name="' + uniqueId + '"></iframe>';
101        }else{
102            divElem.innerHTML = '<iframe src="javascript:false" style="display:none;" id="' + uniqueId + '" name="' + uniqueId + '"></iframe>';
103        }
104        var newF = document.getElementById(uniqueId);
105        var newDocument = null;
106        try {
107            var responseLowered = responseHtml.toLowerCase();
108            var start = responseLowered.indexOf('<table');
109            var end = responseLowered.length;
110            var newXml = responseHtml.substring(start, end);
111            // handle diffrent ways that browsers acces iframe
112            newDocument = (newF.contentWindow || newF.contentDocument);
113            if (newDocument.document) {
114                newDocument = newDocument.document;
115            }
116
117            // in IE the body DOM element doesn't exist till we create it...
118            newDocument.open();
119            newDocument.write("<html><body></body></html>");
120            newDocument.close();
121            // inserting the content into the iFrame this way (vs document.write) gets around a Mozilla bug
122            newDocument.body.innerHTML = newXml;
123
124
125        } catch (ex) {
126            // do nothing.  Just bail
127        } finally {
128            var clean = 'cleanUp("' + divUniqueId + '")';
129            setTimeout(clean, 5000);
130        }
131        return newDocument;
132    }
133
134    function handleError(doc) {
135      // this can be overriden to allow showing errors in alert pop up
136      if (window.sfdcPage && window.sfdcPage.desktopAjaxDisplayErrorInline && window.sfdcPage.desktopAjaxDisplayErrorInline()){
137          var t = doc.getElementById(DynamicContent.pERROR_TITLE);
138          var d = doc.getElementById(DynamicContent.pERROR_DESC);
139          if (t) {
140            var msg = t.innerHTML;
141            if (d) {
142              msg = msg + '\n\n' + d.innerHTML;
143            }
144            alert(msg);
145          }
146      } else {
147            // remove empty page header param
148            url = removeParam(url, DynamicContent.pCOOKIE_PARAM);
149            // reload the page in the main window
150            window.location = url;
151      }
152    }
153
154    function processRequest() {
155        if (!req || req.readyState != 4) return;
156
157        if (req.status != 200 && req.status != 500) return;
158        var newDoc = parseHtml(req.responseText);
159        if (req.status == 200) {
160            handler(newDoc);
161        } else {
162            handleError(newDoc);
163        }
164    }
165
166    var req = getRequestObject();
167    if(req) {
168      var now = new Date();
169      var modifiedUrl = setParam(url, DynamicContent.pTYME, now.getTime());
170      req.onreadystatechange = processRequest;
171      if (payloadNames == null || payloadNames.length == 0) {
172        req.open("GET", modifiedUrl, true);
173        req.send("");
174      } else {
175        req.open("POST", modifiedUrl, true);
176        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
177        var payload = '';
178        for (var i = 0; i < payloadNames.length; i++) {
179            if (payloadNames[i] == DynamicContent.pTYME) continue;
180            if (i != 0) { payload += '&'; }
181            payload += payloadNames[i] + '=' + payloadValues[i];
182        }
183        req.send(payload);
184      }
185    } else {
186    // do nothing for now...
187    }
188}
189
190function cleanUp(objectId) {
191    var b = document.getElementsByTagName('body')[0];
192    var f = document.getElementById(objectId);
193    if (f) {
194        b.removeChild(f);
195    }
196}
197
198// synchronous implementation of GET
199DesktopAjax.prototype.doGet = function(url){
200
201    var xmlhttp = false;
202
203    if (!xmlhttp){
204        try {
205            xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
206        } catch(e) {
207            try {
208                xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
209            } catch(e) {
210                xmlhttp = new XMLHttpRequest();
211            }
212        }
213    }
214
215    if (xmlhttp){
216
217        xmlhttp.open("GET", url, false);
218        xmlhttp.send(null);
219        var text = xmlhttp.responseText;
220        return text;
221
222    }
223
224}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.