    
    var xmlHttp
    var serverDomain = location.hostname; //cga-4.hmdc.harvard.edu
    var serverSubDomain = location.hostname.substring(0,location.hostname.indexOf("."));
    
    function initHGLEnvelope(str) {
	xmlHttp = GetXmlHttpObject();
	  
	if (xmlHttp==null) {
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	
    var url="http://"+serverDomain+":8080/HGL/SeedMapVars?"+str;

	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);

    }

    function getLayers(str) { 
	xmlHttp = GetXmlHttpObject();
	  
	if (xmlHttp==null) {
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	  
        var url="http://"+serverDomain+":8080/HGL/CSQDataBrowser?"+str;

	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
    }

    function stateChanged() { 
	if (xmlHttp.readyState==4) { 
		document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
 	}
    }

    function GetXmlHttpObject() {
        var xmlHttp=null;
        try {
          // Firefox, Opera 8.0+, Safari
          xmlHttp=new XMLHttpRequest();
          } catch (e) {
          // Internet Explorer
          try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
          }
        return xmlHttp;
    }

    function setSaveStatus(str) { 
	xmlHttp = GetXmlHttpObject();
	  
	if (xmlHttp==null) {
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	  
        var url="http://"+serverDomain+":8080/HGL/HGLController?action=SaveUnsaveAction&LayerID="+str;
        //var url="http://dixon.hul.harvard.edu:8080/HGL/CSQDataBrowse?"+str;
        alert("Sending command: " + url);

	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);

    }

    var request;

    function runAnAjaxServlet(servletName, servletArguments){
        var servlet = servletName;                //the name (URI) of your servlet
        var arg = servletArguments                //any attributes you want to send
        var req = servlet + "?" + arg;            //compiling the request

        addrequest(req);                          //calls the addrequest function
        request.onreadystatechange = function(){  //this is used to listen for changes in the request's status
            //do something with the response
        }
    }

    function addrequest(req) {
        try {                                     //create a request for netscape, mozilla, opera, etc.
            request = new XMLHttpRequest();
        }catch (e) {

            try {                                 //create a request for internet explorer
                request = new ActiveXObject("Microsoft.XMLHTTP");
            }catch (e) {                           //do some error-handling
                alert("XMLHttpRequest error: " + e);
            }
        }

        request.open("GET", req, true);       //prepare the request
        request.send(null);                       //send it
        return request;                           //return the request
    }
