    function asyncConnector(method, callBack) {
        this.method = (method==null)?'downloader':method;
        this.xmlhttp = null;
        this.dataArea= null;
        if ( this.method == 'xmlhttp' ) { // xmlhttp
            if ( document.all) {
                try
                {
                   this.xmlHttp = new XMLHttpRequest(); // XMLHttpRequest Object
                }
                catch (e)
                { // Microsoft.XMLHTTP
                    this.xmlHttp = new ActiveXObject('MSXML2.XMLHTTP.3.0'); // XMLHttpRequest Object
                }
            } else {
                this.xmlHttp = new XMLHttpRequest(); // XMLHttpRequest Object
            }
            this.dataArea = null;
        } else { // downloader
        }
    }

    asyncConnector.prototype.open= function(sUrl , dataA, sMethod, bAsync, body ) {
        if ( this.method == 'xmlhttp' ) { // xmlhttp
        /* xmlHTTP    ÀÌ¿ë½Ã */
            this.httpOpen(sMethod, sUrl , bAsync ,body, dataA);
        } else { // downloader
        /* downloader ÀÌ¿ë½Ã */
            this.startDownload(sUrl, dataA);
        }
    }

    /* xmlHTTP    ÀÌ¿ë½Ã */
    // sMethod, sUrl [, bAsync] [, sUser] [, sPassword]
    asyncConnector.prototype.httpOpen= function(sMethod, sUrl , bAsync ,body, dataA) {
        try
        {
            this.dataArea = dataA;
            this.xmlHttp.open(sMethod, sUrl , bAsync);
            this.xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=EUC-KR");
            //this.xmlHttp.setRequestHeader("Content-type", "text/plain");
            body = body?body:"";
            //this.xmlHttp.setRequestHeader("Content-Length", body.length);
            //alert('test');
            if ( typeof(this.openCallBack) == 'function' ) {
              var thisObj = this;
              this.xmlHttp.onreadystatechange = function() {thisObj.openCallBack();};
              /*
                this.xmlHttp.onreadystatechange = function() {
                  if ( thisObj.method == 'xmlhttp' ) { // xmlhttp
                      if ( document.all) {
                          thisObj.openCallBack();
                      } else {
                              //alert ( thisObj.openCallBack );
                          //if(thisObj.xmlHttp.status == 200) {
                              thisObj.openCallBack();
                          //}
                      }
                  } else { // downloader
                      thisObj.openCallBack();
                  }
                }*/
            }
            this.xmlHttp.send(body);
        }
        catch (e)
        {
            alert(e + "|" + e.name + "|" + e.message + "|" + e.number + "|" + e.description);
        }
    }

    /* downloader ÀÌ¿ë½Ã */
    asyncConnector.prototype.startDownload= function(sUrl, dataA) {
        this.dataArea = dataA;
        if ( typeof(this.openCallBack) == 'function' ) {
            //alert ( 'sUrl : ' + sUrl  + ' / ' + this.dataArea.id + ' / ' + this.openCallBack);
            var thisObj = this;//alert('ÇªÇÒÇÒ.');
            try
            {
                if ( typeof(this.openCallBack) == 'function' ) {
                  this.dataArea.startDownload( sUrl, this.openCallBack);
                  //this.dataArea.startDownload( 'http://192.168.10.16:86/index.php', this.openCallBack );
                }
            }
            catch (e)
            {
                alert(e);
            }
            //thisObj.startDownloadCallBack();
        }
    }

    asyncConnector.prototype.responseText= function() { return this.xmlHttp.responseText; }
    asyncConnector.prototype.readyState  = function() {
        try
        {
            if ( this.method == 'xmlhttp' ) { // xmlhttp
                if ( document.all) {
                    return this.xmlHttp.readyState; // xmlHTTP    ÀÌ¿ë½Ã
                } else {
                    if(this.xmlHttp.status == 200) {
                        return 4;
                    } else {
                        return this.xmlHttp.status;
                    }
                }
            } else { // downloader
                return 4                      ; // downloader ÀÌ¿ë½Ã
            }
        }
        catch (e) {}
    }
