/*
* Ajax Ö§³ÖÎÄ¼þ
* Added SY: 2005-10-14
*/

var ajax_req = null;

function ajax_loadXmlRequest(url, callbackFunction, method, argument){
    // branch for native XMLHttpRequest object
    
    if (method)
    {
		url += (url.indexOf('?') < 0) ? "?" : "&";
		url += "_ajaxFlag=" + Math.round(Math.random() * 10E8);
		url += "&_ajaxMtd=" + escape(method);
		if (argument != undefined)
		{
			url += "&_ajaxArg=" + escape(argument);
		}
    }
    
    ajax_req = getXMLHttpRequestObject();
    if (ajax_req != null)
    {
		ajax_req.onreadystatechange = callbackFunction;
		ajax_req.open("GET", url, true);
		ajax_req.send(null);
    }
}

function ajax_abortRequest()
{
	if (ajax_req != null && ajax_req.readyState != 4) ajax_req.abort();
}

function getXMLHttpRequestObject()
{
	if (window.XMLHttpRequest)
	{
		return new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		return null;
	}
}

function ajax_getRequestValue()
{
    // only if req shows "complete"
    if (ajax_req != null && ajax_req.readyState == 4)
    {
        // only if "OK"
        if (ajax_req.status == 200) {
            var ajax_xmldoc = ajax_req.responseXML.documentElement;
            var ajax_result = ajax_xmldoc.getElementsByTagName("result")[0];
			return ajax_result.firstChild.data;
        }
    }
    
    return null;
}

function ajax_getRequestArguments()
{
    // only if req shows "complete"
    if (ajax_req != null && ajax_req.readyState == 4)
    {
        // only if "OK"
        if (ajax_req.status == 200) {
            var ajax_xmldoc = ajax_req.responseXML.documentElement;
            var ajax_args = ajax_xmldoc.getElementsByTagName("arguments")[0];
			return ajax_args.firstChild.data;
        }
    }
    
    return null;
}

function ajax_getRequestOutput()
{
    // only if req shows "complete"
    if (ajax_req != null && ajax_req.readyState == 4)
    {
        // only if "OK"
        if (ajax_req.status == 200) {
            var ajax_xmldoc = ajax_req.responseXML.documentElement;
			var ajax_output = ajax_xmldoc.getElementsByTagName("output")[0];
			var obj_output = new Object();
			for (var i = 0; i < ajax_output.childNodes.length; i ++)
			{
				var key = ajax_output.childNodes[i].getAttribute("key");
				var value = ajax_output.childNodes[i].firstChild.data;
				obj_output[key] = value;
			}
			
			return obj_output;
        }
    }
    
    return null;
}

function $(object_id)
{
	if (object_id)
	{
		var obj = document.getElementById(object_id);
		if (obj)
		{
			return obj;
		}
	}
	
	return null;
}
