function doPause(millis) {
    var date = new Date();
    var curDate = null;

    do {
        curDate = new Date();
    }
    while (curDate - date < millis);
}

function getDataFromServer(url) {
    var req = createXMLHttpRequest();
    req.open("GET", url, false);

    req.send(null);

    while (req.readyState != 4) {
        doPause(50);
    }

    return req.responseText;
}

function getAsyncDataFromServer(url, callback) {
    var req = createXMLHttpRequest();    
    req.open("GET", url, true);
    req.onreadystatechange = function() {
        if (req.readyState != 4)  { return; }
        if (callback != null) {
            callback(req.responseText);
        }
    };
    req.send(null);
}

function createXMLHttpRequest() {
    try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
    try { return new XMLHttpRequest(); } catch(e) {}
    alert("XMLHttpRequest not supported");
    return null;
}

function setIBabelCookie(name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape(value) +
      "; expires=Fri, 21 Sep 2007 23:59:59 GMT;" + 
      "; path=/" +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
}

function writeFile(s) {
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    varFileObject = fso.OpenTextFile("C:\\LogFile.txt", 8, true, 0); // 8=append, true=create if not exist, 0 = ASCII
    var d = new Date();
    varFileObject.write(d.toLocaleString() + ": ");
    varFileObject.write(s);
    varFileObject.write("\n");
    varFileObject.close();
}

var WaitNoneImageSRC = "/scripts/images/none.gif";
var WaitImageSRC = "/scripts/images/wait.gif";


function Wait() {
    this.splashImage = null;
    this.waitImage = null;
    this.isInProgress = false;
    this.start = function() {
        this.isInProgress = true;
        if (this.splashImage == null) {
            this.splashImage = document.createElement("IMG");
            this.waitImage = document.createElement("IMG");
            this.splashImage.src = WaitNoneImageSRC;
            this.waitImage.src = WaitImageSRC;
            document.body.appendChild(this.splashImage);
            document.body.appendChild(this.waitImage);
            this.splashImage.style.top = 1;
            this.splashImage.style.left = 1;
            this.splashImage.style.position = "absolute";
            this.waitImage.style.position = "absolute";
        }
        this.splashImage.zIndex = 300;
        this.waitImage.zIndex = 301;
        var w = (document.body.scrollWidth > document.body.offsetWidth) ? document.body.scrollWidth : document.body.offsetWidth - 10;
        var h = (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight - 10;
        this.splashImage.width = w - 1;
        this.splashImage.height = h - 1;
        this.splashImage.style.display = "block";
        this.waitImage.style.display = "block";
        var top = Math.round((document.body.offsetHeight - 1 - this.waitImage.offsetHeight) / 2);
        if (top < 0)top = 0;
        var left = Math.round((document.body.scrollWidth - 1 - this.waitImage.offsetWidth) / 2);
        if (left < 0)top = 0;
        this.waitImage.style.top = "50%";
        this.waitImage.style.left = "50%";

        //        this.waitImage.style.top = top;
        //        this.waitImage.style.left = left;
    }
    this.stop = function() {
        this.isInProgress = false;
        if (this.splashImage == null) {
            return;
        }
        this.splashImage.style.display = "none";
        this.waitImage.style.display = "none";
    }
}
