/* Ajax »ç¿ëÀ» À§ÇÑ ±âº» ÄÞÆ÷³ÍÆ® Start */ 
function createHttp() {
	try {
		return new XMLHttpRequest();
	}
	catch (e) {
	var objectNames = ["MSXML2.XMLHTTP.5.0",
	"MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0",
	"MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
	for (var i = 0; i < objectNames.length; i ++) {
		try {
			return new ActiveXObject(objectNames[i]);
			break;
		}
		catch (e) {
		}
	}
	return null;
	}
}

function updateAjax(elementId, url, parameters){

	var obj = $(elementId);
	var xmlhttp = createHttp();
	xmlhttp.open("post", url, true);

	var varResponseStatusCode = "";
	var varResponseContents = "";

	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState==4) {
			varResponseStatusCode = xmlhttp.status;

			if (xmlhttp.status==200) {
				varResponseContents = xmlhttp.responseText;
				obj.innerHTML = "";
				obj.innerHTML = varResponseContents;
			}
		}
	}

	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	xmlhttp.send(encodeURI(parameters));

	this.responseStatusCode = varResponseStatusCode;
	this.responseContents = varResponseContents;

}

function dataAjax(functionname, url, parameters){

	var xmlhttp = createHttp();
	xmlhttp.open("post", url, true);
//alert(url + "?" + parameters)
	var varResponseStatusCode = "";
	var varResponseContents = "";

	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState==4) {
			varResponseStatusCode = xmlhttp.status;

			if (xmlhttp.status==200) {
				varResponseContents = xmlhttp.responseText;
				//alert(varResponseContents);
				functionname(varResponseContents);
		   }
		}
	}

	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	xmlhttp.send(encodeURI(parameters));

	this.responseStatusCode = varResponseStatusCode;
	this.responseContents = varResponseContents;

}

function AjaxDataControl(){ 
	this.xmlHttp			= null; 

	this.getHttpRequest		= function(URL, object){ 
		var xmlHttp		= this.xmlHttp; 
		var xmlData		= null; 
		// FFÀÏ °æ¿ì window.XMLHttpRequest °´Ã¼°¡ Á¸ÀçÇÑ´Ù. 
		if(!xmlHttp){ 
			if(window.XMLHttpRequest) { 
				xmlHttp	= new XMLHttpRequest(); 
			} else { 
				xmlHttp	= new ActiveXObject("Microsoft.XMLHTTP"); 
			} 
			this.xmlHttp	= xmlHttp; 
		}

		xmlHttp.open('GET', URL, true); 
		xmlHttp.onreadystatechange = function() { 
			// readyState °¡ 4 °í status °¡ 200 ÀÏ °æ¿ì ¿Ã¹Ù¸£°Ô °¡Á®¿È 
			if(xmlHttp.readyState==4 && xmlHttp.status == 200 && xmlHttp.statusText=='OK') { 
				var xmlData		= xmlHttp.responseXML; 
				object.setXmlData(xmlData); 

			} 
		} 

		xmlHttp.send(''); 

	}

	this.getXmlRootNode		= function(nodes, rootName){ 
		var rootNode	= nodes.getElementsByTagName(rootName); 

		return rootNode; 
	} 
} 
/* Ajax »ç¿ëÀ» À§ÇÑ ±âº» ÄÞÆ÷³ÍÆ® End */ 


 /* Ajax¿¡¼­ ¸®ÅÏ¹ÞÀº XML NODE¸¦ JAVASCRIPT OBJECT Çü½ÄÀ¸·Î º¯È¯ Start */ 
function AjaxObject(){ 
    this.ac                = null; 
    this.xmlData        = null; 
    this.rootName        = null; 
    this.functionName    = null; 
    this.arguments        = new Array(); 

    this.inArray            = function(array, value){ 
        var result    = false; 

        for(var i=0; i < array.length; i++){ 
            if(array[i] == value){ 
                result    = true; 
                break; 
            } 
        } 

        return result; 
    } 


    this.getHttpRequest        = function(Url, functionName){ 
        if(this.ac == null){ 
            this.ac            = new AjaxDataControl(); 
        } 
        this.functionName    = functionName; 

        for(var i=2; i <arguments.length; i++){ 
            this.arguments.push(arguments[i]); 
        } 

        this.ac.getHttpRequest(Url, this); 
    } 




    this.setMakeObject        = function(nodeData){ 
        var resultObject    = new Object; 
        resultObject.length    = 0; 

        if(nodeData.hasChildNodes() ){ 
            var nodeChilds        = nodeData.childNodes; 
            var nodeNameList    = new Array(); 
            var isNodeChilds    = false; 

            for(var i = 0; i<nodeChilds.length;i++){ 

                if(nodeChilds[i].nodeType == '1'){ 

                    var returnObj    = this.setMakeObject(nodeChilds[i] ); 

                    if( typeof(returnObj) == "string"){ 
                        resultObject[ nodeChilds[i].nodeName ]    = this.setMakeObject(nodeChilds[i] ); 
                        resultObject.length    += 1; 
                    }else{ 

                        if(resultObject[ nodeChilds[i].nodeName ]){ 
                            resultObject[ nodeChilds[i].nodeName ].push( returnObj ); 
                        }else{ 
                            resultObject[ nodeChilds[i].nodeName ]    = new Array(); 
                            resultObject[ nodeChilds[i].nodeName ].push( returnObj ); 

                            resultObject.length    += 1; 
                        } 
                    } 
                    isNodeChilds    = true; 

                } 
            } 

            if(!isNodeChilds){ 
                resultObject    = nodeChilds[0].nodeValue; 
            }else{ 

            } 
        } 

        return resultObject; 
    } 


    this.setMakeControl        = function(){ 
        if(this.xmlData != null){ 
            var rootNode    = this.ac.getXmlRootNode(this.xmlData, this.rootName); 
            var list        = this.setMakeObject(rootNode[0]); 
            var    args        = ""; 

            for(var i=0; i<this.arguments.length; i++){ 
                args    += ", this.arguments["+i+"]"; 
            } 

            eval( this.functionName+"(list "+args+")" ); 
        } 
    }

    this.setXmlData            = function(data){ 
        this.xmlData        = data; 

		//setTimeout("", 10);
		if (data.documentElement != undefined)
		{
			this.rootName        = data.documentElement.nodeName; 
			this.setMakeControl(); 
		}
    } 

} 

