caller_who = '';

http=createRequestObject();
doDebug = 0;

function createRequestObject(){
    var request_o; //declare the variable to hold the object.
    var browser = navigator.appName; //find the browser name
    if(browser == "Microsoft Internet Explorer"){
        request_o = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        request_o = new XMLHttpRequest();
    }
    return request_o; //return the object
}

function doAction(what, who) {
    debug("Doing action who=" + who + ", what=" + what);
    debug("Doing get of " + what);
    http.open('get', what, true);
    caller_who = who;
    if (document.getElementById(who)) {
    	debug("about to display " + who);
        document.getElementById(who).style.display='block';
    } else {
    	debug("cant find " + who + " to display");
    }
    http.onreadystatechange = handleResult;
    http.send(null);
}

function doPostAction(url, what, who) {
   caller_who = who;
   http.open("POST",url,true);
   http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   http.setRequestHeader("Content-length", what.length);
   http.setRequestHeader("Connection", "close");
   http.onreadystatechange = handleResult;
   http.send(what);

}

function doPostImg(url, what, who) {
	   caller_who = who;
	   http.open("POST",url,true);
	   http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	   http.setRequestHeader("enctype","multipart/form-data");
	   http.setRequestHeader("Content-length", what.length);
	   http.setRequestHeader("Connection", "close");
	   http.onreadystatechange = handleResult;
	   http.send(what);

	}

function handleResult(){
//	debug("handleResult: " + http.readyState);
    if(http.readyState == 4){ //Finished loading the response
        var response = http.responseText;
        who = caller_who;
        if (who == '')  {
            debug("handleResult(): Returning to empty who");
            return response;
        } else {
            if (response.indexOf('reload') == 0) {
            	if ((location.href.indexOf('signup.php') > 0) || (location.href.indexOf('doPwReset.php') >0)) {
            		location.href='index.php';
            	} else { 
            		location.reload(true);
            	}
            } else {
                document.getElementById(who).innerHTML = response;
            }
        }
        if (document.getElementById(caller_who).style.display == 'none') {
        	document.getElementById(caller_who).style.display = 'block';
        }
        caller_who = '';
    }
}

function debug(what) {
	if (!doDebug) { return; }
	document.getElementById('debug').style.display='block';
	document.getElementById("debug").innerHTML = document.getElementById("debug").innerHTML + "<br>" + what;
}

function clearDebug() {
	try {
		document.getElementById('debug').innerHTML = '<input type="button" id="cleardebug" value="Clear Debug" onClick="clearDebug()"><p>"';
	} catch (err) {
	}

}

function buildPostString(postString, what, newVal, minlen) {
	if ((newVal.toString().length >= minlen) || (newVal == 'NULL')) {
		if (postString) { postString += '&'; }
		postString +=  what + "=" + encodeURIComponent(newVal);
	}
	return postString;
}
