/*
 * xmlHttpRequest.js
 * Created on 2006³â 5¿ù 16ÀÏ (È­), ¿ÀÈÄ 8:40
 * 
 * º» ¼Ò½º ¹× ÄÚµåÀÇ ÀúÀÛ±ÇÀº (ÁÖ)ÇÑ¸¶ÀÎµåÁ¤º¸±â¼ú¿¡ ÀÖ½À´Ï´Ù.
 * º» ¼Ò½º ¹× ÄÚµåÀÇ ÀÏºÎ ¶Ç´Â ÀüÃ¼ ³»¿ëÀº ÀúÀÛ±ÇÀÚÀÇ µ¿ÀÇ¾øÀÌ 
 * »ó¾÷Àû, °³ÀÎÀûÀÇ ¾î¶°ÇÑ ÀÌÀ¯·Îµµ À¯Æ÷µÇ°Å³ª Àç»ç¿ë µÉ ¼ö ¾ø½À´Ï´Ù.
 * (c)Copyright all reserved Hanmind Information Technology, Inc.
 */

function __paramEscape(paramValue)
{
    return encodeURIComponent(paramValue);
}

function __formData2QueryString(docForm)
{    
    var submitString = '';
    var formElement = '';
    var lastElementName = '';
    
    for(i = 0 ; i < docForm.elements.length ; i++)
    {
        formElement = docForm.elements[i];
        switch(formElement.type)
        {
            case 'text' :
            case 'select-one' :
            case 'hidden' :
            case 'password' :
            case 'textarea' :
                submitString += formElement.name + '=' + __paramEscape(formElement.value) + '&';
                break;
            case 'radio' :     
                if(formElement.checked)
                {
                    submitString += formElement.name + '=' + __paramEscape(formElement.value) + '&';
                }
                break;
            case 'checkbox' :    
                if(formElement.checked) 
                {
                    if(formElement.name = lastElementName)
                    {
                        if(submitString.lastIndexOf('&') == submitString.length - 1)
                        {
                            submitString = submitString.substring(0, submitString.length - 1);
                        }
                        submitString += ',' + __paramEscape(formElement.value);
                    }
                    else
                    {
                        submitString += formElement.name + '=' + __paramEscape(formElement.value); 
                    }
                    submitString += '&';
                    lastElementName = formElement.name;
                }
                break;  
        }                                                                                                                  
    }
    submitString = submitString.substring(0, submitString.length - 1);
    //document.all("result").value = submitString;
    return submitString;                                               
}

function __xmlHttpInit(actionUrl, resultFunction)
{
    var xmlHttpRequest = false;
    
    //IE
    if(window.ActiveXObject)
    {
        xmlHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
    }
    else
    {
        xmlHttpReq = new XMLHttpRequest();
        xmlHttpReq.overrideMimeType('text/xml');
    }    
            
    xmlHttpRequest.onreadystatechange = function() {
        if(xmlHttpRequest.readyState == 4)
        {
            switch (xmlHttpRequest.status) 
            {
            	
                case 200:
                   eval(resultFunction + '(xmlHttpRequest.responseText);');
                   break;        
                default:
                   //alert('Error[' + xmlHttpRequest.status + ']: ' + xmlHttpRequest.responseText);
                   break;
            }            
        }
    }
	 return xmlHttpRequest;
}

function HM_xmlHttpPost(actionUrl, resultFunction, form)
{
    var xmlHttpRequest = false;
    xmlHttpRequest = __xmlHttpInit(actionUrl, resultFunction);
    
    xmlHttpRequest.open('POST', actionUrl, true);
    xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
    var submitParameter = __formData2QueryString(form);
    xmlHttpRequest.send(submitParameter);                    
}                                    

function HM_xmlHttpGet(actionUrl, resultFunction)
{
    var xmlHttpRequest = false;
    
    xmlHttpRequest = __xmlHttpInit(actionUrl, resultFunction);
    
    xmlHttpRequest.open('GET', actionUrl, true);
    xmlHttpRequest.send(null);                 
}                                    

function HM_xmlHttpRequest(method, actionUrl, resultFunction, form)
{
	if (method.toUpperCase() == "GET") {
    	HM_xmlHttpGet(actionUrl, resultFunction);
    } else {
    	HM_xmlHttpPost(actionUrl, resultFunction, form);
    }
}                                    
