function XMLHttpObject()
{
    this.isMSIE = false;

    var XMLHttpObjectVar = null;
    try {
       try {             // if Mozilla Browser
          XMLHttpObjectVar = new XMLHttpRequest();
       }
       catch(e1) {       // IE Browser
          try {
             XMLHttpObjectVar = new ActiveXObject("MSXML3.XmlHttp");
          }
          catch(e2) {
             try {
                XMLHttpObjectVar = new ActiveXObject("MSXML2.XmlHttp");
             }
             catch(e3) {
                XMLHttpObjectVar = new ActiveXObject("Microsoft.XmlHttp");
             }
          }
          this.isMSIE = true;
       }
    }
    catch (ex) {
    	window.alert("Browser not support XmlHttp");
    	return;
    }
	
    this.Object = XMLHttpObjectVar;

    this.open = XMLHttp_open;
    this.send = XMLHttp_send;
    this.responseText = XMLHttp_responseText;
    this.responseXML = XMLHttp_responseXML;
    this.setRequestHeader = XMLHttp_setRequestHeader;
    this.abort = XMLHttp_abort;
}

function XMLHttp_abort()
{
	this.Object.abort();
}

function XMLHttp_open(v1, v2, v3)
{
    return this.Object.open(v1, v2, v3);
}

function XMLHttp_send()
{
	if(arguments.length === 0) {
	    if(!this.isMSIE) {
    	    var datavar = "";
        	return this.Object.send(datavar);
	    }
    	else {
        	return this.Object.send();
	    }
	}
	return this.Object.send(arguments[0]);
}

function XMLHttp_responseText()
{
    return this.Object.responseText;
}

function XMLHttp_responseXML()
{
    return this.Object.responseXML;
}

function XMLHttp_setRequestHeader(var1, var2)
{
	return this.Object.setRequestHeader(var1, var2);
}

var saved_result = "";

function jaxaction()
{
	var AObject = new ArgsObject(arguments);
    var jsonstring = JSON.stringify(AObject);
    var xhr = new XMLHttpObject();
    
	var path = location.pathname;
	if(path.substring(0,1) != "/") {
		path = "/" + path;
	}
	
	var q = path.indexOf("/", 1);
	if(q > 1) {
		path = path.substring(0, q + 1);
	}
	else {
		path = "/";
	}

	//alert(location);
	xhr.open("POST", path + "servlet/ajaxjsonactionservlet?&funid=" + new Date().getTime(), false);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
    xhr.send(jsonstring);

    saved_result = xhr.responseText();
	if(saved_result.substring(0,1) != "[" & saved_result.substring(0,1) != "{") {
		if(saved_result && saved_result.length != 0) alert(saved_result);
	}
	
	try {
	    return eval(saved_result);
	}
	catch(e) {
	    return saved_result;
	}
    //return json_parse(xhr.responseText());
}

function jaxaction1()
{
	var AObject = new ArgsObject(arguments);
    var jsonstring = JSON.stringify(AObject);
    var xhr = new XMLHttpObject();
    xhr.open("POST", "../servlet/ajaxjsonactionservlet?&funid=" + new Date().getTime(), false);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
    xhr.send(jsonstring);

    saved_result = xhr.responseText();
    if(saved_result.substring(0,1) != "[" & saved_result.substring(0,1) != "{") {
		alert(saved_result);
	}
	try {
		var return_result = eval(saved_result);
	    return return_result;
	}
	catch(e) {
	    return saved_result;
	}
    //return json_parse(xhr.responseText());
}

function getJaxSavedResult()
{
	return saved_result;
}

//**********************************************Òì²½AJAX
//
function asynjaxaction()
{
	var AObject = new ArgsObjectx(arguments);
	var jsonstring = JSON.stringify(AObject);
	var xhr = new XMLHttpObject();
	
	var success_call_back = arguments[arguments.length - 2];
	var failure_call_back = arguments[arguments.length - 1];
    
	var path = location.pathname;
	if(path.substring(0,1) != "/") {
		path = "/" + path;
	}
	
	var q = path.indexOf("/", 1);
	if(q > 1) {
		path = path.substring(0, q + 1);
	}
	else {
		path = "/";
	}

	var xho = xhr.Object;
	xho.onreadystatechange = function()
	{
		if (xho.readyState == 4) {
			var status = xho.status, result;

			if(status >= 200 && status < 300) {
				if(success_call_back) success_call_back(xho.responseText);
			}
			else if(status === 0){
				if(failure_call_back) failure_call_back(xho, 'AJAX³¬Ê±');	
			}
			else{
				if(failure_call_back) failure_call_back(xho, xho.status);
			}
		}
		//alert(xho.readyState);
	};

	xhr.open("POST", path + "servlet/ajaxjsonactionservlet?&funid=" + new Date().getTime(), true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
	//xho.onreadystatechange = jax_call_back;
	xhr.send(jsonstring);
	
	return xhr;
}

function ArgsObject(args)
{
    for(var i = 0; i < args.length; i = i + 1) {
        var name = "arg" + i;
        this[name] = args[i];
    }
}

function ArgsObjectx(args)
{
    for(var i = 0; i < args.length - 2; i = i + 1) {
        var name = "arg" + i;
        this[name] = args[i];
    }
}

function ajax_callback()
{
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText.split("|");
			document.getElementById("order").value = response[0];
			document.getElementById("address").innerHTML =
				response[1].replace(/\n/g, "");
		}
		else
			alert("status is " + request.status);
	}
}

function jaxurl(url)
{
	var xhr = new XMLHttpObject();
    
	xhr.open("GET", url, false);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
	xhr.send("");

	saved_result = xhr.responseText();
    return saved_result;
}


