function DesktopAjax() {} /**** Request functions below ****/ function makeActionRequest(actionUrl, finalUrl, finalData, finalHandler) { function makeCookieRequest(url, handler) { var now = new Date(); var cookieName = DynamicContent.pCOOKIE_PARAM + now.getTime(); // 10 minutes now.setTime(now.getTime() + (10*60*1000)); setCookie(cookieName, data, now, null); try { makeGetRequest(setParam(url, DynamicContent.pCOOKIE_PARAM, cookieName), handler); } finally { } } var data = finalData; function actionHandler(newDoc) { makeCookieRequest(finalUrl, finalHandler); } if (actionUrl) { makeCookieRequest(actionUrl, actionHandler); } else { actionHandler(null); } } function removeParam(url, paramName) { var s = url.indexOf(paramName + '='); if (s < 0) return url; var e = url.indexOf('&', s); e++; if (e == 0) { e = url.length; } url = url.substring(0, s) + url.substring(e, url.length); if (url.length > 1) { var lastChar = url.charAt(url.length-1); if (lastChar == '?' || lastChar == '&') { url = url.substring(0, url.length-1); } } return url; } function setParam(url, paramName, paramValue) { url = removeParam(url, paramName); if (url.indexOf('?') > -1){ url = url + "&" + paramName + "=" + paramValue; } else { url = url + "?" + paramName + "=" + paramValue; } return url; } function makeGetRequest(url, handler) { makeRequest(url, handler, null, null); } function makeRequest(url, handler, payloadNames, payloadValues) { function getRequestObject() { var req = null; // branch for native XMLHttpRequest object if(window.XMLHttpRequest) { try { req = new XMLHttpRequest(); } catch(e) { req = false; } // branch for IE/Windows ActiveX version } else if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } } } return req; } function parseHtml(responseHtml) { var uniqueId = 'parserFrame' + new Date().getTime(); var divUniqueId = "div"+uniqueId; var b = document.getElementsByTagName('body')[0]; var divElem = document.createElement('div'); if(!Sfdc.userAgent.isSafari){ divElem.style.display = 'none'; } divElem.id = divUniqueId; b.appendChild(divElem); // Safari ignores iframes with display:none also there is delay // in Safari initializing document object of Iframe if createElement method is used // thus we use innerHTML for iframe writing if(isSafari){ divElem.innerHTML = ''; }else{ divElem.innerHTML = ''; } var newF = document.getElementById(uniqueId); var newDocument = null; try { var responseLowered = responseHtml.toLowerCase(); var start = responseLowered.indexOf('