var request;

function MyExpr_Refresh(){

    document.getElementById("my_amount_exp").innerHTML = "...";
    document.getElementById("my_last_added_exp").innerHTML = "...";
    document.getElementById("my_last_added_time").innerHTML = "...";
    document.getElementById("total_exp").innerHTML = "...";
    document.getElementById("last_added_exp").innerHTML = "...";

    url="/php/myexpr_refresh.php";
    httpRequest("POST",url,true);
}

function ScanCount_Refresh(){

    document.getElementById("scancount").innerHTML = "...";

    url="/php/scancount.php";
    httpRequest("POST",url,true);
}

//event handler for XMLHttpRequest
function handleJson(){
    if(request.readyState == 4){
        if(request.status == 200){
            var resp =  request.responseText;
            var func = new Function("return "+resp);
            var objt = func();
            
            if (objt.service == "scancount") {
	            document.getElementById("scancount").innerHTML = objt.scans;
            } else {
	            document.getElementById("my_amount_exp").innerHTML = objt.my_amount_exp;
	            document.getElementById("my_last_added_exp").innerHTML = objt.my_last_added_exp;
	            document.getElementById("my_last_added_time").innerHTML = objt.my_last_added_time;
	            document.getElementById("total_exp").innerHTML = objt.total_exp;
	            document.getElementById("last_added_exp").innerHTML = objt.last_added_exp;
	        }
        } else {
            alert("A problem occurred during communication with the server.");
        }
    }//end outer if
}

/* Initialize a Request object that is already constructed */
function initReq(reqType,url,bool){
    /* Specify the function that will handle the HTTP response */
    request.onreadystatechange=handleJson;
    request.open(reqType,url,bool);
    request.setRequestHeader("Content-Type",
            "application/x-www-form-urlencoded; charset=UTF-8");
    //request.send(queryString);
    request.send(null);
}

/* Wrapper function for constructing a Request object.
 Parameters:
  reqType: The HTTP request type such as GET or POST.
  url: The URL of the server program.
  asynch: Whether to send the request asynchronously or not. */
function httpRequest(reqType,url,asynch){
    //Mozilla-based browsers
    if(window.XMLHttpRequest){
        request = new XMLHttpRequest();
    } else if (window.ActiveXObject){
        request=new ActiveXObject("Msxml2.XMLHTTP");
        if (! request){
            request=new ActiveXObject("Microsoft.XMLHTTP");
        }
     }
    //the request could still be null if neither ActiveXObject
    //initializations succeeded
    if(request){
       initReq(reqType,url,asynch);
    }  else {
        alert("Your browser does not permit the use of all of this application's features!");}
}

