/*
 * Filename      : xmlhttp.js
 * Class         : 
 * Comment       : ActiveXObject('Microsoft.XMLHTTP')¸¦ ÀÌ¿ëÇÑ ´Ü¾îÀÚµ¿°Ë»ö Å×½ºÆ®
 * History       : 2006/05/03, È« ½Ä(indigo), Created
                 : 2006/05/10, È« ½Ä(indigo), Updated(°øÅëÇÔ¼öÈ­)
                 : 2006/05/22, È« ½Ä(indigo), ·¹ÀÌÀú Áßº¹°ãÄ§ ¹æÁö Ãß°¡. 
 * @version      : 1.0
 * @author       : Copyright (c) 2006 by m2mGlobal Corp. All Rights Reserved.
*/

///°øÅë ÇÔ¼ö·Î ¸¸µé±âÀ§ÇØ formName°ú Å°¿öµåÀÌ¸§,·¹ÀÌ¾î ÀÌ¸§À» Àü¿ªº¯¼ö·Î ¼ÂÆÃ..Â¥Àå³ª///
var objMyClass = null; //Å¬·¡½ºÀÇ ÀÎ½ºÅÏ½º.... Àü¿ªº¯¼ö....

function MyClass() //Å¬·¡½º ¸öÃ¼..
{

  this.Arguments1 = arguments[0];
  this.Arguments2 = arguments[1];
  this.Arguments3 = arguments[2];
  //this.getValue    = function(){ return this.MemberV1 +","+ this.MemberV2+","+ this.MemberV3};
  this.getValue_form    = function(){ return this.Arguments1};
  this.getValue_key    = function(){ return this.Arguments2};
  this.getValue_layer    = function(){ return this.Arguments3};

}

function initClass(formName,keyName,layerName)
{  
  var formName,keyName,layerName;
  objMyClass = new MyClass(formName,keyName,layerName); //ÀÎ½ºÅÏ½º »ý¼º
}

//////////////////////Å¬·¡½ºÀÇ±¸¼º ³¡ //////////////////


function paramEscape(paramValue)
{
    return encodeURIComponent(paramValue);
}

function formData2QueryString(docForm,formName,keyName,layerName)
{    
    var submitString = '';
    var formElement = '';
    var lastElementName = '';
    var formName,keyName,layerName;
     /*
    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 += formElement.name + '=' + paramEscape(formElement.value) + '&';                                                                                                                
    }*/ 

    

   //submitString = submitString.substring(0, submitString.length - 1);

    var request_text = eval("document."+formName+"."+keyName+".value");

    submitString = "request_key="+request_text;//°øÅëÇÔ¼ö·Î »ç¿ëÇÏ±âÀ§ÇØ keynameÀ» request_key·Î ÅëÀÏ..
    
    return submitString;                                               
}

function xmlHttpPost(actionUrl, submitParameter, resultFunction)
{
    var xmlHttpRequest = false;
    
    //1.xmlHttpRequest°´Ã¼»ý¼º IEÀÎ°æ¿ì
    if(window.ActiveXObject)
    {
        xmlHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
    }
    //1.xmlHttpRequest°´Ã¼»ý¼º IE°¡ ¾Æ´Ñ °æ¿ìnew XMLHttpRequest();·Î Ç¥Çö.
    else
    {
        xmlHttpReq = new XMLHttpRequest();
        xmlHttpReq.overrideMimeType('text/xml');
    }    
    
    //2.xmlHttpRequest.open-->open¸Þ¼Òµå¿¡´Â 3°³ÀÇ ÆÄ¶ó¸ÞÅÍÁ¸Àç
    //¸Þ¼ÒµåÁ¾·ù: µ¥ÀÌÅÍÀü¼Û¹æ½Ä,Ã³¸®ÇÒ ¼­¹öÀÇURL,µ¿±â/ºñµ¿±âÀ¯¹«(trueÀÏ¶§´Â ºñµ¿±â¸¦ ÀÇ¹Ì)
    //ºñµ¿±âÃ³¸®´Â request¸¦ Àü¼ÛÇÑ ´ÙÀ½ ¼­¹öÀÇ ÀÀ´äÀÌ ÀÖµç ¾øµç ´Ù¸¥ ÇÁ·Î¼¼½ºÃ³¸® °¡´É
    //µ¿±â´Â request¸¦ Àü¼ÛÇÑ ´ÙÀ½ ¼­¹öÀÀ´äÀü±îÁö´Â ´Ù¸¥ ÇÁ·Î¼¼½º¸¦ Ã³¸®ÇÒ¼ö¾ø´Ù.
    //ÀÌ¹Ì ¸¸µé¾îÁø Data¿¡´ëÇÑ Ã³¸®´Â ºñµ¿±â½ÄÀ» ¼±È£ÇÏ³ª µî·Ï,¼öÁ¤,»èÁ¦µÇ´Â µ¿ÀûÀÎ Data¿¡´Â
    //µ¿±â¹æ½ÄÀ¸·Î Ã³¸®ÇÏ´Â°Ô ÀÏ¹ÝÀûÀÓ        
    xmlHttpRequest.open('POST', actionUrl, true);
    //3.requestÀÇ contentType°áÁ¤(Àü¼Û¹æ½ÄÀÌ get¹æ½ÄÀÏ¶§´Â ºÒÇÊ¿äÇÏ³ª Post¹æ½Ä¿¡´Â ÁöÁ¤ÇØ¾ßÇÔ
    xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    //4.¼­¹ö·ÎºÎÅÍ Ã³¸®°á°ú Àü¼ÛÈÄ ¼öÇàÇØ¾ßÇÏ´Â ±â´É¿¡ ´ëÇÑ Á¤ÀÇ
    //xmlHttpRequest ÀÇ onreadystatechange ¼Ó¼ºÀº ¼­¹ö·ÎºÎÅÍÀÇ Ã³¸®°á°ú¿¡ ´ëÇÑ »óÅÂÄÚµå°¡ º¯°æ
    //µÇ¾úÀ»¶§ ¼öÇàÇØ¾ß ÇÏ´Â ½ºÅ©¸³Æ® FunctionÀ» ÁöÁ¤ÇÑ´Ù.
    
    //¿©±â¼­´Â anonymous Function À» »ç¿ëÇÏ¿© Á÷Á¢ Á¤ÀÇÇÏ¿´½Ó..
    xmlHttpRequest.onreadystatechange = function() {
        if(xmlHttpRequest.readyState == 4)
        {
        //¼­¹ö·Î ºÎÅÍ ¹ÞÀº »óÅÂÄÚµå ¹× µ¥ÀÌÅÍ¸¦ ÀÌ¿ëÇÏ¿© Ã³¸®·ÎÁ÷ ±¸Çö..
        //¼­¹ö·Î ºÎÅÍ ¹ÞÀº °á°ú´ÂxmlHttpRequestÀÇ responseText¼Ó¼º¿¡ ÀúÀåµÇ¾î ÀÖÀ¸¸ç
        //ÀÌ°ÍÀº HttpServletResponse¿¡ ÀÇÇØ Àü¼ÛµÈ ¹®ÀÚ¿­ÀÏ¼öµµ ÀÖ°í
        //À¥ ¼­ºñ½º·Î Request¸¦ Àü¼ÛÇÑ °æ¿ì¶ó¸é SOAPÇÁ·ÎÅäÄÝ·Î Àü¼ÛµÈ XMLÇü½ÄÀÇ µ¥ÀÌÅÍÀÏ°ÍÀÓ
        //¹®ÀÚ¿­ÀÎ °æ¿ì ¿©±â¼­ÀÇ Å×½ºÆ® Ã³·³ Ã³¸®µÉ¼öÀÖÁö¸¸
        //SOAPÇÁ·ÎÅäÄÝ·Î Àü¼ÛµÈ XMLµ¥ÀÌÅÍÀÎ°æ¿ì´Â °¢°¢ÀÇ ºê¶ó¿ìÀú¿¡¼­ Á¦°øÇÏ´Â
        //XML¶Ç´Â SOAPÀ» Áö¿øÇÑ °´Ã¼¸¦ ÀÌ¿ëÇØ¼­ ÇÚµé¸µÇÒ¼öÀÖ´Ù.  
            switch (xmlHttpRequest.status) 
            {
                case 404:
                    alert('¿À·ù: ' + actionUrl + 'ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½');
                    break;
               case 500:
                   alert('¿À·ù: ' + xmlHttpRequest.responseText);
                   break;
               default:
                   eval(resultFunction + '(xmlHttpRequest.responseText);');
                   break;        
            }            
        }
    }
    //5.À§ 4¹ø±îÁöÀÇ ÀÛ¾÷À¸·Î request°¡ Àü¼ÛµÇÁö´Â ¾Ê´Â´Ù.
    //Àü¼ÛÀ» À§ÇÑ ÁØºñÀÛ¾÷°ú Ã³¸®°á°ú ¼ö½Å½Ã Ã³¸®¹æ¹ý¿¡ ´ëÇÑ Á¤ÀÇ¸¸ ´Ã¿©³ùÀ»»ÓÀÌ´Ù.
    //½ÇÁ¦ request¸¦ Àü¼ÛÇÏ±âÀ§ÇØ¼­´Â send()¸¦ È£ÃâÇÏ¿© Àü¼ÛÀ» ÇØ¾ßÇÑ´Ù.
    //Send()ÀÇ ÆÄ¶ó¸ÞÅÍ´Â Àü¼ÛµÇ´Â RequestÀÇ ÆÄ¶ó¸ÞÅÍ°ªÀÌ´Ù.¹°·Ð ¿©±â¼­µµ ÀÏ¹ÝÀûÀÎ request¿Í °°ÀÌ'&','='À¸·Î ±¸¼ºµÈ
    //¹®ÀÚ¿­À» ¸¸µé¾î¼­(¿¹:keyword=test&page=2) Àü¼ÛÇÏÁö¸¸ XMLÇüÅÂ·Î ¸¸µé¾î¼­ Àü¼ÛÇÏ´Â°Íµµ °¡´ÉÇÏ´Ù..

    xmlHttpRequest.send(submitParameter);  
}

/////////////////////////////////////////////////
//VMS¹Ý¿µ (°øÅëÇÔ¼öÀû¿ë  ÆûÀÌ¸§/Å°ÀÌ¸§/·¹ÀÌ¾îÀÌ¸§À» ¹Þ´Â´Ù.)
//////////////////////////////////////////////////
function keywordKeyDown(formName,keyName,layerName)
{
    var formName,keyName,layerName;//ÇØ´çÀÔ·Â¹Ú½º Æ÷Ä¿½Ì Á¤º¸
    
    LayerCtr(layerName); //Àü¿ªÅ¬·¡½º ¿Í ÇöÀçÀÇ ·¹ÀÌ¾îÀÌ¸§À» ºñ±³ÇØ¼­..ÇÏ³ªÀÇ Form¾È¿¡ ¸ÖÆ¼ ÀÚµ¿°Ë»öÀ» ÇÏ±âÀ§ÇØ¼­..
    
    initClass(formName,keyName,layerName);//Àü¿ªº¯¼ö·Î ´ã±âÀ§ÇØ¼­...
    
    var keyCode = window.event.keyCode;

    //ÀÔ·Â¹Ú½º³» Å°º¸µå ÀÌº¥Æ® Á¦¾î...
    if(keyCode ==  9)   return;     //Tab Å°
    if(keyCode == 13)   return;     //Enter Å°
    if(keyCode == 16)   return;     //Shift Å°
    if(keyCode == 16)   return;     //Ctrl Å°
    if(keyCode == 18)   return;     //Alt Å°
    if(keyCode == 45)   return;     //Ins Å°
    if(keyCode == 46)   return;     //Del Å°
    if(keyCode == 33)   return;     //PgUp Å°
    if(keyCode == 34)   return;     //PgDn Å°
    if(keyCode == 35)   return;     //End Å°
    if(keyCode == 36)   return;     //Home Å°
    
    if(keyCode >= 37 && keyCode <= 40)   return;     //¹æÇâÅ°
    
    //if(eval("document."+formName+"."+keyName+"").value == ""){
    //hiddenSearchKeywordResult();
    //return;
    //}
    //Keydown ÀÌº¥Æ® ¹ß»ý ½ÃÁ¡¿¡´Â ¾ÆÁ÷ TextField¿¡ »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ Å° °ªÀÌ ¼³Á¤µÇÁö ¾Ê¾Ò±â ¶§¹®¿¡
    //ºê¶ó¿ìÀú°¡ ÀÌº¥Æ®¿¡ ¹ÝÀÀÇÏ¿© °ªÀ» ¼³Á¤ÇÒ¶§ ±îÁö Àá½Ã ±â´Ù¸°´Ù.
    //setTimeout('submitSearchKeyword()', 250);
    eval("setTimeout(\"submitSearchKeyword('"+formName+"','"+keyName+"','"+layerName+"')\", 250)");    
}

function submitSearchKeyword(formName,keyName,layerName)
{
    var url = 'jsp/Ajax_SearchKeyword.jsp';
    
    //var queryString = formData2QueryString(document.formMain);
    var queryString = eval("formData2QueryString(document."+formName+",'"+formName+"','"+keyName+"','"+layerName+"')");
    var resultProcessMethod = 'viewSearchKeywordResult'; 
    //request Àü¼Û
    xmlHttpPost(url, queryString, resultProcessMethod);
 
} 


//return result°ª °¡°ø                 
function viewSearchKeywordResult(result)
{

  if( objMyClass != null ){   
    var formName = objMyClass.getValue_form();  
    var keyName = objMyClass.getValue_key();  
    var layerName = objMyClass.getValue_layer();  
  }
  
    //var searchKeywordDiv = document.all("searchKeyword");
    var searchKeywordDiv = document.all(layerName);
    if(result == ""){
        searchKeywordDiv.innerHTML = "";
        searchKeywordDiv.style.visibility = "hidden";
    }else{
        var resultList = result.split('|');
        var viewResult = '';
        for(i = 0 ; i < resultList.length; i++)
        {
            if(i == 0){  
            viewResult += '<A href="javascript:hiddenSearchKeywordResult();">[´Ý±â]</A>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#FFFFFF><B>' + resultList[i] + '</B></font><BR>'
            }else{   
            viewResult += '<A href="javascript:setKeyword(\'' + resultList[i] + '\');">' + resultList[i] + '</A><BR>'
            }
        }        
        searchKeywordDiv.innerHTML = viewResult;
        searchKeywordDiv.style.visibility = "visible";    
           
    }

}
   
function hiddenSearchKeywordResult()
{
  if( objMyClass != null ){   
    var formName = objMyClass.getValue_form();  
    var keyName = objMyClass.getValue_key();  
    var layerName = objMyClass.getValue_layer();  
  }

    //var searchKeywordDiv = document.all("searchKeyword");
    var searchKeywordDiv = document.all(layerName);
    searchKeywordDiv.innerHTML = "";
    searchKeywordDiv.style.visibility = "hidden";
}
   
function setKeyword(selectedKeyword)
{
	if( objMyClass != null ){ 
    	var formName = objMyClass.getValue_form();  
    	var keyName = objMyClass.getValue_key();  
    	var layerName = objMyClass.getValue_layer();  
  	}
  
    var Str_key = selectedKeyword.substring(0,1);

	if(Str_key != ">"){ //¹®ÀÚ¿­ °Ë»ö½Ã¿¡¸¸ Àû¿ë..
		// document.formMain.keyword.value = selectedKeyword; 
		eval("document."+formName+"."+keyName+"").value = selectedKeyword;
	}else{
		eval("document."+formName+"."+keyName+"").value = "";
	}
   //·¹ÀÌ¾î ´ÝÀÚ.
	hiddenSearchKeywordResult();

} 
//·¹ÀÌ¾î Áßº¹½Ã ÃÖÁ¾ ·¹ÀÌ¾î¸¸ Ç¥½Ã.
function LayerCtr(layerName_Ctr){
var layerName_Ctr;
  if( objMyClass != null ){ 
    var layerName = objMyClass.getValue_layer(); 
   
    	if(layerName_Ctr != layerName){
	    	hiddenSearchKeywordResult();
	    } 

  }

}





