var httpObject = null, headers = [], progressBar = null, pbT = null, pbTimeout = 500, ajaxT = null, ajaxTimeout = 10000; function fixProgressBar() { if (progressBar == null) return; setTopLeft(progressBar, document.body.scrollTop, 0); } function setTopLeft(obj, top, left) { if (document.getElementById && !document.all) { obj.style.top = top; obj.style.left = left; } else { obj.style.pixelTop = top; obj.style.pixelLeft = left; } } function changeDisplay(i, next) { var htm = "Loading"; switch (i) { case 1: htm += "...  "; break; case 2: htm += " ... "; break; case 3: htm += "  ..."; } progressBar.innerHTML = htm; if (next) { var nextI = i < 3 ? (i + 1) : 1; pbT = setTimeout("changeDisplay(" + nextI + ", " + next + ");", pbTimeout); } } function getVarObject(name, value) { var obj = new Object(); obj.name = name; obj.value = encodeURIComponent(value); obj.toString = new Function("return printVarObject(this);"); return obj; } function addVarObject(vars, name, value) { var obj = getVarObject(name, value); return addObjToVarObject(vars, obj); } function addObjToVarObject(vars, obj) { vars[vars.length] = obj; return vars; } function printVarObject(obj) { return obj.name + "," + obj.value; } function getHTTPObject() { if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) return new XMLHttpRequest(); else return null; } function setOutput(pg) { if (httpObject.readyState == 4 && httpObject.status == 200) { if (typeof(pg) != "undefined") { curPage = pg; document.getElementById("").getElementsByTagName("h1")[0].innerHTML = headers[curPage - 1]; } document.getElementById("curPageTxt").innerHTML = httpObject.responseText; clearProgressBar(false); httpObject.onreadystatechange = new Function(""); } } function clearProgressBar(timeout) { if (timeout) alert("AJAX has timed out. Please try again."); progressBar.style.display = "none"; clearTimeout(pbT); setTopLeft(progressBar, 0, 0); changeDisplay(1); clearTimeout(ajaxT); } function doAJAXPostBack(href) { httpObject = getHTTPObject(); if (httpObject != null) { href = href.substr(href.lastIndexOf("/") + 1); var pgStr = "?pg="; var pg = 1; if (href.indexOf(pgStr) >= 0) pg = href.substring(href.indexOf(pgStr) + pgStr.length, href.length); else if (href.indexOf("page") >= 0) pg = href.substring(4, href.indexOf(".")); postVars = getPostVars(); clearTimeout(ajaxT); clearTimeout(pbT); progressBar = document.getElementById("progressBar"); fixProgressBar(); window.onscroll = fixProgressBar; progressBar.style.display = "inline-block"; pbT = setTimeout("changeDisplay(2, true);", pbTimeout); httpObject.open("POST", "ajax.php" + (typeof(loggedIn) != "undefined" || pg > 1 ? "?" : "") + (pg > 1 ? "pg=" + pg + (typeof(loggedIn) != "undefined" ? "&" : "") : "") + (typeof(loggedIn) != "undefined" ? "loggedIn=true" : ""), true); httpObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); httpObject.setRequestHeader("Content-length", postVars.length); httpObject.setRequestHeader("Connection", "close"); httpObject.send(postVars.join("&").replace(new RegExp(',', 'g'), "=")); httpObject.onreadystatechange = new Function("setOutput(" + (typeof(loggedIn) != "undefined" ? + pg : "") + ");"); ajaxT = setTimeout("clearProgressBar(true);", ajaxTimeout); return false; } else return true; } function getPostVars() { if (!document.forms[0]) return []; var frm = document.forms[0]; var post = [], j = -1; for (i = 0; i < frm.elements.length; i++) if (frm.elements[i].name != "" && frm.elements[i].type != "submit" && frm.elements[i].type != "radio" && frm.elements[i].name != "htm") { j++; if (frm.elements[i].type == "textarea") post = addVarObject(post, frm.elements[i].name, document.all ? frm.elements[i].innerText : frm.elements[i].value); else if (frm.elements[i].type == "checkbox") post = addVarObject(post, frm.elements[i].name, frm.elements[i].checked ? 'on' : ''); else post = addVarObject(post, frm.elements[i].name, frm.elements[i].value); } return post; }