var ajax_back_value;

function load_AJAX_XMLHttp() 
{
	var xmlhttp;

    try{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		//xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
    }catch (e){
		try{
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}catch (E){
			xmlhttp = false;
		}
    }
    
	if(!xmlhttp && typeof XMLHttpRequest != 'undefined') 
	{
		try{
			xmlhttp = new XMLHttpRequest();
		}catch (e){
			xmlhttp = false;
		}
	}

	return xmlhttp;
}


function AJAX_Request(method,url,params,async,rpfunc,xmlhttp)
{
	xmlhttp.open(method, url+"?"+params, async);
    xmlhttp.onreadystatechange = eval(rpfunc);    
    xmlhttp.send("");
}


//*********************************************************************//
function AJAX_INIT(url,params,arg1,async)
{
	if( async == null ) async = false;

	try{
		ajax_back_value = arg1;
	
		xmlhttp = load_AJAX_XMLHttp();
		
		AJAX_Request("Post",url,params,async,"AJAX_ResponseXML",xmlhttp);
		
	}catch(exception)
	{
		alert("error: not init");
	}
}

function AJAX_ResponseXML()
{
	var rpdata;

	if (xmlhttp.readyState == 4) 
	{
        // only if "OK"
        if (xmlhttp.status == 200) 
		{
			var _ctype = xmlhttp.getResponseHeader("Content-type");

			if(_ctype.indexOf("text/xml") >= 0)
			{
				/*-- ms xml --*/
				var jsXmlDom = new REXML(xmlhttp.responseTEXT);
				AJAX_parseXML(jsXmlDom);
			}
		}else{
			alert("Error Msg:" + xmlhttp.status + "");
		}
	}
}

//ajax xml ??
/* xml ????
<?xml version="1.0" encoding="KSC5601"?>
<RESPONSE>
<HEAD>
	<error>true</error> 
	<message>????? ????.</message> 
	<time>2005/09/14 (?) 08:00:00</time> 
</HEAD>
<RESULT>
	<RECORD>	  
		<code>???</code> 
		<name>??? ??</name>
	</RECORD>
</RESULT>
</RESPONSE>
*/
function AJAX_parseXML(xmlDoc) 
{
	var _response = xmlDoc.rootElement;
	
	/*-- HEAD data S--*/
	var _head_items = _response.childElement("HEAD");
	//index.. --> var _head_items = _response.childElements[0];	
	
	var rphead = new Array();
	rphead[0] = new Array();
	for (var i=0; i<_head_items.childElements.length; i++) 
	{
		var _node = _head_items.childElements[i];  
		
		rphead[0][_node.name] = _node.getText();
	}
	/*-- HEAD data E--*/
	
	/*-- RESULT data S--*/
	var _result_items = _response.childElement("RESULT");		
	//index.. --> var _result_items = _response.childElements[1];	
	 
	var rpdata = new Array(_result_items.childElements.length);	
	for(var i=0; i<_result_items.childElements.length; i++)
	{
		var _nodeList =_result_items.childElements[i];
		
		rpdata[i] = new Array();
		
		for(var j=0;j<_nodeList.childElements.length;j++)
		{
			var _node = _nodeList.childElements[j];
			
			rpdata[i][_node.name] = _node.getText();

			rpdata[i][j] = new Array();
			for(var k=0;k<_node.childElements.length;k++)
			{
				var _node2 = _node.childElements[k];
				
				rpdata[i][j][_node2.name] = _node2.getText();
			}

		}
	} 
	/*-- RESULT data E--*/
	
	AJAX_SET_HTML(ajax_back_value, rphead, rpdata);
}

//*********************************************************************//
function AJAX_MAP_INIT(url,params,arg1,async)
{
	if( async == null ) async = false;

	try{
		ajax_back_value = arg1;
	
		xmlhttp = load_AJAX_XMLHttp();

		AJAX_Request("Post",url,params,async,"AJAX_MAP_ResponseXML",xmlhttp);
		
	}catch(exception)
	{
		alert("error: not init");
	}
}

function AJAX_MAP_ResponseXML()
{
	var rpdata;

	if (xmlhttp.readyState == 4) 
	{
        // only if "OK"
        if (xmlhttp.status == 200) 
		{
			var _ctype = xmlhttp.getResponseHeader("Content-type");

			if(_ctype.indexOf("text/html") >= 0)
			{
				/*-- ms xml --asd*/
				var _result = xmlhttp.responseText;
				AJAX_MAP_parseXML(_result);
			}
		}else{
			alert("Error Msg:" + xmlhttp.status + "");
		}
	}
}


function AJAX_MAP_parseXML( args ) {

	var orgData = args.split("{____SPLIT___}");

	try{		
		var infoDiv = orgData[0];	
		var tempDiv = document.getElementById('mapData');
		tempDiv.innerHTML = infoDiv;

		var _obj = mapInfo.mapObj;
		_obj.infoLayer.appendChild( tempDiv );

	}catch(e){alert(e);}

	try{		
		var script = orgData[1];
		if( script != "")
			eval(script);

	}catch(e){}

	//AJAX_SET_HTML(ajax_back_value, rphead, rpdata);
}
