
    var retFunc = null

    var inProc = false;

    Xurl = "LocalServices.aspx"

    
	//Xurl = "initRecipe.aspx"

    function callService(retfuncToCall, funcToCall, qString) {

        
 
		http_request = false;
 
		//service.MyService.callService(SetSubRec,"ScaleRecipe",document.getElementById("huserno").value,servings,retArray[4])
		
		retFunc = retfuncToCall

		if (!inProc) {
		    inProc = true;
		}
		else {
            // set up tempArray
		}
 
		//alert(retfuncToCall)

        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            http_request = new XMLHttpRequest();

            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        
        
        http_request.onreadystatechange = HandleReady;
        http_request.open('POST', Xurl, true);
        // for post
        http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        http_request.send("process=" + funcToCall + qString);



        
    }
    
    
    function HandleReady(){


		if (http_request==null )
				{ return; }
				
				
		if (http_request.readyState==4) // loaded and finished
		{ 
		
			//alert("here")
			if (http_request.status == 200) {
			    rtest = http_request.responseText
				
				retFunc(http_request.responseText)
				//alert(http_request.responseText);
            } else {

                if (window.console) {
                    window.console.log("xmlDom : " + document.getElementById("xIngs").innerHTML.length);
                }
                else {
                    alert('There was a problem with the request.' + http_request.status);
                }

				
			}


			inProc = false;
			
		}
    }
    
    
    
    function alertContents() {

        
        if (undefined != http_request){
        
			
        
			if (http_request.readyState == 4) {
				if (http_request.status == 200) {
					alert(http_request.responseText);
				} else {
					alert('There was a problem with the request.');
				}
			}
		}
    }
    
    
    // these are generic functions that pass out a comma deliminated array
    
    function xExecScalar(){
    
    
    }
    
    function xSPExecuteOnly(retfuncToCall,funcToCall,qString){
  
        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        http_request.onreadystatechange = retfuncToCall;
        http_request.open('POST', Xurl, true);
        // for post
        http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        http_request.send("process=" + funcToCall + qString);
    
    }
    
    function xGetDataSet(){
    
    
    }
    
    
    function geninsert(){
    
		if (http_request.readyState == 4) {
				if (http_request.status == 200) {
					if (http_request.responseText != "0"){
						alert("Soft XmlHttpError : " + http_request.responseText);
					}
					
				} else {
					alert('Hard XmlHttpError : status = ' + http_request.status);
				}
		}
    
		/*
		if(result.error) { 
			var xfaultstring = result.errorDetail.string; 
			alert("insert error : " + xfaultstring); 
		} 
		else { 
			if(result.value!=1){
				alert("insert fail (geninsert): " & result.value)
			} 
		}
		*/

    }



   


    
    
    
    
    
    