var AJAX = {
     XmlHttp: null,
     create: function () {
           try {
                if (window.XMLHttpRequest) {
                     AJAX.XmlHttp = new XMLHttpRequest();
                     // ÀÏºÎÀÇ ¸ðÁú¶ó ¹öÀüÀ»Àº readyState property, onreadystate event
                     // ¸¦ Áö¿øÇÏÁö ¾ÊÀ¸¹Ç·Î. - from xmlextrs
                     if (this.XmlHttp.readyState == null) {
                           this.XmlHttp.readyState = 1;
                           this.XmlHttp.addEventListener("load", function () {
                                this.XmlHttp.readyState = 4;
                                if (typeof this.XmlHttp.onreadystatechange == "function")
                                     tmpXmlHtp.onreadystatechange();
                           }, false);
                     }
                } else {
                     AJAX.XmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //MSXML2.XMLHTTP.4.0 // 
                }
           }
           catch (e) {
                candy_alert("ºê¶ó¿ìÀú°¡ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù."); //Your browser does not support XmlHttp objects
                //throw new Error("Your browser does not support XmlHttp objects");
           }
     }
}

AJAX.openXML = function (method, url, async, uname, pswd) {
     if (AJAX.XmlHttp != null) {
           if (uname == undefined) {
                AJAX.XmlHttp.open(method, url, async);
           } else {
                AJAX.XmlHttp.open(method, url, async, uname, pswd);
           }
           AJAX.XmlHttp.onreadystatechange = function () {
                if (AJAX.XmlHttp.readyState == 4) {
                     if (AJAX.XmlHttp.status == 200) { // 200 Àº HTTP¿¡¼­ ¼º°ø i.e) 404 : not found
                           AJAX.statusSuccessHandler(AJAX.XmlHttp.responseXML);
                     } else {
                           AJAX.statusErrorHandler();
                           candy_alert('·Îµù¿¡ ½ÇÆÐÇß½À´Ï´Ù. Àá½ÃÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ ÁÖ¼¼¿ä'); //Error while loading!
                     }
                }
           }
     } else {
           candy_alert("¼ÒÄÏ»ý¼º¿¡ ½ÇÆÐÇß½À´Ï´Ù."); //need to create xmlhttp object
     }
}

AJAX.openText = function (method, url, async, uname, pswd) {
     if (AJAX.XmlHttp != null) {
           if (uname == undefined) {
                AJAX.XmlHttp.open(method, url, async);
           } else {
                AJAX.XmlHttp.open(method, url, async, uname, pswd);
           }
           AJAX.XmlHttp.onreadystatechange = function () {
                if (AJAX.XmlHttp.readyState == 4) {
                     if (AJAX.XmlHttp.status == 200) { // 200 Àº HTTP¿¡¼­ ¼º°ø i.e) 404 : not found
                           AJAX.statusSuccessHandler(AJAX.XmlHttp.responseText);
                     } else {
                           AJAX.statusErrorHandler();
                           candy_alert('µ¥ÀÌÅ¸ ¼ö½ÅÁß ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù.');
                     }
                }
           }
     } else {
           candy_alert ("¼ÒÄÏ»ý¼º¿¡ ½ÇÆÐÇß½À´Ï´Ù."); //need to create xmlhttp object
     }
}

AJAX.send = function (content) {
           if (content == undefined)
                AJAX.XmlHttp.send(null);
           else
                AJAX.XmlHttp.send(content);
}

AJAX.setOnReadyStateChange = function (funcname) {
           if (AJAX.XmlHttp) {
                AJAX.XmlHttp.onreadystatechange = funcname;
           } else {
                candy_alert ("¼ÒÄÏ»ý¼º¿¡ ½ÇÆÐÇß½À´Ï´Ù."); //need to create xmlhttp object
           }
}

// status 200 ÀÏ ¶§ Ã³¸® ÇÔ¼ö
AJAX.statusSuccessHandler = function (data) {
           return data;
}

AJAX.setStatusSuccessHandler = function (funcname) {
           AJAX.statusSuccessHandler = funcname;
}

     // status 200 ÀÏ ¶§ ±âº» Ã³¸® ÇÔ¼ö
     // setStatusSuccessHandler() ·Î ´ëÃ¼ °¡´É
AJAX.statusErrorHandler = function (status) {
           AJAX.rtnText = AJAX.XmlHttp.responseText;
}


AJAX.setStatusErrorHandler = function (funcname) {
           AJAX.statusErrorHandler = funcname
}

AJAX.setRequestHeader = function (label, value)
{
     AJAX.XmlHttp.setRequestHeader(label, value);
}

// »ç¿ë¹ý
//     AJAX.create();
//     AJAX.openText('GET','jsontest.php', true);
//     AJAX.setStatusSuccessHandler(proc);
//     AJAX.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
//     AJAX.send("test=Å×½ºÆ®");
//
//     function proc(abc)
//     {
//           document.getElementById('test').innerHTML = abc;
//     } 

