/*******************************************************************************

 FILE          : common.js
 DESCRIPTIONS  : ÀÚ¹Ù½ºÅ©¸³Æ® °øÅë ¸ðµâ
 REMARKS       : °øÅëÀûÀ¸·Î ¾²ÀÌ´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö
 DATE          : 2007.12.15

 *******************************************************************************/


//=============================================================================
// ÇÔ¼ö¸í: fn_~~
// ¼³  ¸í: °øÅëÀûÀ¸·Î ¾²´Â ÆË¾÷
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================

// ex
function fn_OpenPop_TC(TC_CD)
{
    PopUp(0, 800,630, TC_CD, '../TC/TC010400.ASPX?TC_CD='+TC_CD);
}


			

//=============================================================================
// ÇÔ¼ö¸í: MM_preloadImages
// ¼³  ¸í: Mouse Over¿¡ ÀÇÇÑ ÀÌ¹ÌÁö ÀüÈ¯
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


//=============================================================================
// ÇÔ¼ö¸í: MM_swapImgRestore
// ¼³  ¸í: Mouse Over¿¡ ÀÇÇÑ ÀÌ¹ÌÁö ÀüÈ¯
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}


//=============================================================================
// ÇÔ¼ö¸í: MM_findObj
// ¼³  ¸í: Mouse Over¿¡ ÀÇÇÑ ÀÌ¹ÌÁö ÀüÈ¯
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}


//=============================================================================
// ÇÔ¼ö¸í: MM_swapImage
// ¼³  ¸í: Mouse Over¿¡ ÀÇÇÑ ÀÌ¹ÌÁö ÀüÈ¯
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//=============================================================================
// ÇÔ¼ö¸í: MM_showHideLayers
// ¼³  ¸í: Mouse Over¿¡ ÀÇÇÑ Layer ÀüÈ¯
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}


//=============================================================================
// ÇÔ¼ö¸í: ValidateData                                                        
// ¼³  ¸í: validateForm¿¡ ÀÇÇØ »ç¿ëµÈ´Ù
// ÀÛ¾÷ÀÏ:                                                                     
// ÀÛ¾÷ÀÚ:                                                                     
//=============================================================================
function validateData(objValue, strValidateStr, strError) 
{
    var epos = strValidateStr.search("="); 
    var command  = ""; 
    var cmdvalue = ""; 
    
    if(epos >= 0) 
    { 
		command  = strValidateStr.substring(0,epos); 
		cmdvalue = strValidateStr.substr(epos+1);
    } 
    else 
    { 
		command = strValidateStr;
    }
    
    switch(command) 
    { 
		case "req": 
        case "required": 
		{
		   var tp = objValue.value.replace(/\s/g,'');
           if(eval(tp.length) == 0) 
           { 
              alert(strError);
              return false; 
           } 
           break;             
        }
        case "maxlen": 
        case "maxlength": 
        { 
             if(eval(objValue.value.length) >  eval(cmdvalue)) 
             { 
				alert(strError);
				return false; 
             }
             break; 
        }
        case "minlen":
        { 
             if(eval(objValue.value.length) <  eval(cmdvalue) && eval(objValue.value.length) != eval(0)) 
             { 
				alert(strError);
				return false;                 
             }
             break; 
        }
        case "minlength": 
        { 
             if(eval(objValue.value.length) <  eval(cmdvalue)) 
             { 
				alert(strError);
				return false;                 
             }
             break; 
        }       
        case "eng":
        case "english": 
        { 
              var charpos = objValue.value.search("[^A-Za-z]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
				alert(strError);
				return false; 
              } 
              break; 
        }
        case "engnum": 
        case "engnumeric": 
        { 
              var charpos = objValue.value.search("[^A-Za-z0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                alert(strError);
                return false; 
              }
              break; 
        }
        case "engnumhyphen":
		{
              var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                alert(strError);
                return false; 
              }
              break;
		} 
        case "num": 
        case "numeric": 
        { 
              var charpos = objValue.value.search("[^0-9\]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
				alert(strError);
				return false; 
              } 
              break;               
        }
        case "float": 
        { 
			if(objValue != undefined)
			{				
              var charpos = objValue.value.search("[^0-9\-.]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
				alert(strError);
				return false; 
              } 
            }  
            break;           
                
        }
        case "numhyphen": 
        { 
              var charpos = objValue.value.search("[^0-9\-_]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
				alert(strError);
				return false; 
              } 
              break;               
        }
        
        case "han" :
		case "hangul":
		{
              var charpos = objValue.value.search("[^°¡-ÆR]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                alert(strError);
                return false; 
              }
              break;
		}
		case "hannum" :
		case "hangulnumeric":
		{
              var charpos = objValue.value.search("[^¤¡-¤¾°¡-ÆR0-9]");
              alert(charpos);
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                alert(strError);
                objValue.select();
				objValue.focus();
                return false; 
              } 			
				break;
		}
		case "hanalpha" :
		case "hangulalphabetic":
		{
              var charpos = objValue.value.search("[^¤¡-¤¾°¡-ÆRA-Za-z]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                alert(strError);
                return false;
              } 			
				break;
		}
		case "hanengnum" :
		case "hangulenglishnumeric":
		{
              var charpos = objValue.value.search("[^¤¡-¤¾°¡-ÆRA-Za-z0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                alert(strError);
                return false; 
              } 			
				break;
		}
        case "email": 
        { 
               if(!CheckEmail(objValue.value)) 
               { 
                 alert(strError);
                 return false; 
               } 
           break; 
        }
        case "phone": 
        { 
               
               if(!CheckPhone(objValue.value)) 
               { 
                 alert(strError);
                 return false; 
               } 
           break; 
        }
        case "bizno": 
        { 
               if(!CheckBizNo(objValue.value)) 
               { 
                 alert(strError);
                 return false; 
               } 
           break; 
        }                 
        case "lt": 
        case "lessthan": 
        { 
            if(isNaN(objValue.value)) 
            { 
              return false; 
            }
            if(eval(objValue.value) >=  eval(cmdvalue)) 
            { 
              alert(strError);
              return false;                 
             }             
            break; 
        } 
        case "gt": 
        case "greaterthan": 
        { 
            if(isNaN(objValue.value)) 
            { 
              return false; 
            }
            if(eval(objValue.value) <=  eval(cmdvalue)) 
            { 
               alert(strError); 
               return false;                 
            }             
            break; 
        }        
        case "regexp": 
        { 
		 	if(objValue.value.length > 0)
			{
	            if(!objValue.value.match(cmdvalue)) 
	            { 
	              alert(strError);
	              return false;                   
	            } 
			}
           break; 
        } 
        case "dontselect": 
        { 
            if(objValue.selectedIndex == null) 
            { 
              return false;
            } 
            if(objValue.selectedIndex == eval(cmdvalue)) 
            { 
              alert(strError);
              return false;                                   
            } 
            break; 
        }
        case "dategreaterthan":
        {
			var startSplit = objValue.value.split("-");
			var endSplit;
			var startDate = new Date(startSplit[0], parseInt(startSplit[1])-1, startSplit[2]);
			var tempDate = new Date();
			var endDate;
			
			if(cmdvalue != "")
			{
				endSplit = document.all[cmdvalue].value.split("-");
				endDate = new Date(endSplit[0], parseInt(endSplit[1])-1, endSplit[2]);
			}
			else
			{
				endDate = new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate());
			}
			
			if(startDate <= endDate)
			{
				alert(strError);
				return false;
			}
			break;
        }
    }

    return true; 
}

//=============================================================================
// ÇÔ¼ö¸í: CheckEmail
// ¼³  ¸í: ÀÌ¸ÞÀÏ ÁÖ¼Ò °Ë»ç
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function CheckEmail(strValue) 
{ 
    if(strValue.length <= 0)
	{
	  return true;
	}
    var splitted = strValue.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null)
		return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }
      return true;
    }
	return false;
}

//=============================================================================
// ÇÔ¼ö¸í: CheckPhone
// ¼³  ¸í: ÀüÈ­¹øÈ£ °Ë»ç
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//============================================================================= 
function CheckPhone(strValue) 
{ 
    if(strValue.length <= 0)
	{
	  return true;
	}

    var splitted = strValue.match("^(.+)-(.+)-(.+)$");
    if(splitted == null) return false;

    if(splitted[1].length > 3) return false;
    
    if(splitted[2].length > 4) return false;

	var phoneEx1 = /^(\d+)(\-{1})(\d+)(\-{1})(\d{4,4})$/; 

	if (strValue.match(phoneEx1) == null) 	
		return false;
	else
		return true;
}
 

//=============================================================================
// ÇÔ¼ö¸í: isDate
// ¼³  ¸í: ³¯Â¥ À¯È¿¼º
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function isDate(yyyy,mm,dd)
{
   if (yyyy.length != 4)
      return false;
   else {   
      yyyy=parseInt(yyyy,10);
      mm=parseInt(mm,10);
      dd=parseInt(dd,10);
      d = new Date(yyyy,mm-1,dd);
      if (d=="NaN") return false;
      if (yyyy == d.getFullYear() &&
         mm == d.getMonth()+1 &&
         dd == d.getDate() ) return true;
      return false;
   }   
}


//=============================================================================
// ÇÔ¼ö¸í: isDate_yyyy_m_d
// ¼³  ¸í: yyyy-mm-dd ÇüÅÂ À¯È¿¼º
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function isDate_yyyy_m_d(s)// yyyy-mm-dd ÇüÅÂ
{
   s=s.replace(/\s/g,""); // °ø¹éÁ¦°Å
   if (s.match(/\d+\-\d+\-\d+/g)!=s) 
      return false; // 1111-11-11 Æ÷¸ËÀÌ ¾Æ´Ô
   var d = s.split(/\-/g);
   return isDate(d[0],d[1],d[2]);
}


//=============================================================================
// ÇÔ¼ö¸í: checkDate
// ¼³  ¸í: yyyy-mm-dd ÇüÅÂ ³¯Â¥ À¯È¿¼º
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function checkDate(s)
{
   var isD

   isD=isDate_yyyy_m_d(s);

   if (isD) 
      return true;
   else
      return false;
}


//=============================================================================
// ÇÔ¼ö¸í: correctDate
// ¼³  ¸í: yyyy-mm-dd ÇüÅÂ ³¯Â¥
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function correctDate(s)// yyyy-mm-dd ÇüÅÂ
{
   s=s.replace(/\s/g,""); // °ø¹éÁ¦°Å
   var d = s.split(/\-/g);
   if (d[1].length == 1)
      d[1] = "0" + d[1];
   if (d[2].length == 1)
      d[2] = "0" + d[2];  
   return d[0] + "-"  + d[1] + "-" + d[2];
}
 

//=============================================================================
// ÇÔ¼ö¸í: validateForm
// ¼³  ¸í: ÄÁÆ®·ÑÀÇ À¯È¿¼ºÀ» °Ë»ç validateData()¸¦ È£ÃâÇÏ¿© °Ë»çÇÑ´Ù.
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function validateForm(arrObjDesc) 
{ 

	for(var i=0; i < arrObjDesc.length; i++) 
	{
		for(var j=0; j < arrObjDesc[i].length ;j++) 
		{
			var objForm = document.all[arrObjDesc[i][j][0]];
			
			if(validateData(objForm, arrObjDesc[i][j][1], arrObjDesc[i][j][2]) == false) 
			{
				objForm.focus();
				event.returnValue = false;
				return false;				 
			}
		} 
	}
	return true;
}

//=============================================================================
// ÇÔ¼ö¸í: Trim
// ¼³  ¸í: ³Ñ¾î¿Â ¹®ÀÚ¿­µéÁß¿¡ Æ÷ÇÔµÈ °ø¹éÀ» ¸ðµÎ ¾ø¾Ø ¹®ÀÚ¿­À» ¸®ÅÏ
// ÀÛ¾÷ÀÏ: 2004-12-16
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function Trim(strings)
{
    var retString = "";
    var c;
    var i;
    for(i=0;i<strings.length;i++) {
        c = strings.charAt(i);
        if(c != ' '){
           retString += c;
        }
    }
    return(retString);
}

//=============================================================================
// ÇÔ¼ö¸í: ReplaceStr
// ¼³  ¸í: ¹®ÀÚ¿­ Ä¡È¯ Popup
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================

function ReplaceStr(strOriginal, strFind, strChange)
{
  return strOriginal.split(strFind).join(strChange);
}

//=============================================================================
// ÇÔ¼ö¸í: EnterProcOnKeyDown
// ¼³  ¸í: Enter Key Event¸¦ Tab Key Event·Î ÀüÈ¯
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function EnterProcOnKeyDown() { 
   if (event.keyCode == 13) {
      event.keyCode = 9;
   } 
}


//=============================================================================
// ÇÔ¼ö¸í: ModifyTxt
// ¼³  ¸í: strVal °ªÀÇ empty ¿©ºÎ¿¡ µû¶ó µî·Ï ¶Ç´Â ¼öÁ¤ ¹®±¸ ¸®ÅÏ
// ÀÛ¾÷ÀÏ: 2004-12-16
// ÀÛ¾÷ÀÚ: 
//=============================================================================
function ModifyTxt(strVal)
{
	if (strVal == "")
		retString = garrMsg[1002];	
	else
		retString = garrMsg[1012];

    return(retString);
}


//=============================================================================
// ÇÔ¼ö¸í: Popup 
// ¼³  ¸í: PopUp Ã¢ È£Ãâ
// ÀÛ¾÷ÀÏ: 
// ÀÛ¾÷ÀÚ: 
// Param : intStyle 0=open, 1=showModelessDialog, 2=showModalDialog, 3=open
//=============================================================================

function PopUp(intStyle, intWidth, intHeight, strWinNm, strUrl) {
   var intLeft = 0, intTop = 0;
   var winstyle;
   var oWin;            

   //Áß¾ÓÁ¤·Ä (½ºÅ©·Ñ¹Ù ¹«, »óÅÂÇ¥½ÃÁÙ ¹«)
   if (intStyle == 0) {      
      intLeft = screen.width/2-intWidth/2;
      intTop = screen.height/2-intHeight/2;
      
      oWin	= window.open(strUrl, strWinNm, 'menubar =0,resizable=0,scrollbars=0,status=no,titlebar=0,toolbar=no,width='+intWidth+',height='+intHeight+',left='+intLeft+',top='+intTop);      
   }    
   //showModelessDialog
   else if (intStyle == 1) {
      winstyle = "dialogWidth=" + intWidth + "px; dialogHeight=" + intHeight + "px; center:yes; status=no; help:no; ";      
      oWin	= window.showModelessDialog(strUrl, window, winstyle); 
   }
   //showModalDialog
   else if (intStyle == 2) {
      winstyle = "dialogWidth=" + intWidth + "px; dialogHeight=" + intHeight + "px; center:yes; status=no; help:no; ";      
      oWin	= window.showModalDialog(strUrl, window, winstyle); 
   }
   //excel
   else if (intStyle == 3) {      
      intLeft = screen.width/2-intWidth/2;
      intTop = screen.height/2-intHeight/2;
      
      oWin	= window.open(strUrl, strWinNm, 'menubar =1,resizable=1,scrollbars=0,status=no,titlebar=0,toolbar=no,width='+intWidth+',height='+intHeight+',left='+intLeft+',top='+intTop);      
   }
   //Áß¾ÓÁ¤·Ä (½ºÅ©·Ñ¹Ù À¯, »óÅÂÇ¥½ÃÁÙ ¹«)
   else if (intStyle == 4) {      
      intLeft = screen.width/2-intWidth/2;
      intTop = screen.height/2-intHeight/2;
      
      oWin	= window.open(strUrl, strWinNm, 'menubar =0,resizable=0,scrollbars=1,status=no,titlebar=0,toolbar=no,width='+intWidth+',height='+intHeight+',left='+intLeft+',top='+intTop);      
   }
   //ÁÂÃø»ó´ÜÁ¤·Ä (½ºÅ©·Ñ¹Ù ¹«, »óÅÂÇ¥½ÃÁÙ ¹«)
   else if (intStyle == 5) {      
      
      oWin	= window.open(strUrl, '12', 'menubar =0,resizable=0,scrollbars=0,status=no,titlebar=0,toolbar=no,width='+intWidth+',height='+intHeight+',left='+intLeft+',top='+intTop);      
   }   
   //Áß¾ÓÁ¤·Ä (½ºÅ©·Ñ¹Ù ¹«, »óÅÂÇ¥½ÃÁÙ ¹«)
   else if (intStyle == 6) {      
      intLeft = screen.width/2-intWidth/2;
      intTop = screen.height/2-intHeight/2;      
      
      oWin	= window.open(strUrl, strWinNm, 'menubar =0,resizable=0,scrollbars=0,status=no,titlebar=0,toolbar=no,width='+intWidth+',height='+intHeight+',left='+intLeft+',top='+intTop);      
   }      
   //Å×½ºÆ®¿ë (½ºÅ©·Ñ¹Ù À¯, »óÅÂÇ¥½ÃÁÙ À¯)   
   else if (intStyle == 99) {      
      intLeft = screen.width/2-intWidth/2;
      intTop = screen.height/2-intHeight/2;
      
      oWin	= window.open(strUrl, strWinNm, 'menubar =0,resizable=0,scrollbars=1,status=yes,titlebar=0,toolbar=no,width='+intWidth+',height='+intHeight+',left='+intLeft+',top='+intTop);      
   }
   else if (intStyle == 7) {      
      intLeft = screen.width/2-intWidth/2;
      intTop = screen.height/2-intHeight/2;
      
      oWin	= window.open(strUrl, strWinNm, 'menubar =0,resizable=1,scrollbars=0,status=no,titlebar=0,toolbar=no,width='+intWidth+',height='+intHeight+',left='+intLeft+',top='+intTop);      
   }
   return oWin;
}

/**************************************************************
 Split: Returns a zero-based, one-dimensional array containing 
        a specified number of substrings

 Parameters:
      Expression = String expression containing substrings and 
                   delimiters. If expression is a zero-length 
                   string(""), Split returns an empty array, 
                   that is, an array with no elements and no 
                   data.
      Delimiter  = String character used to identify substring 
                   limits. If delimiter is a zero-length 
                   string (""), a single-element array 
                   containing the entire expression string 
                   is returned.

 Returns: String
***************************************************************/
function fn_Split(Expression, Delimiter)
{
	var temp = Expression;
	var a, b = 0;
	var array = new Array();

	if (Delimiter.length == 0)
	{
		array[0] = Expression;
		return (array);
	}

	if (Expression.length == '')
	{
		array[0] = Expression;
		return (array);
	}

	Delimiter = Delimiter.charAt(0);

	for (var i = 0; i < Expression.length; i++) 
	{
		a = temp.indexOf(Delimiter);
		if (a == -1)
		{
			array[i] = temp;
			break;
		}
		else
		{
			b = (b + a) + 1;
			var temp2 = temp.substring(0, a);
			array[i] = temp2;
			temp = Expression.substr(b, Expression.length - temp2.length);
		}
	}

	return (array);
}


/*  Function Equivalent to java.net.URLEncoder.encode(String, "UTF-8")

    Copyright (C) 2002, Cresc Corp.

    Version: 1.0

*/
function encodeURL(str){

    var s0, i, s, u;

    s0 = "";                // encoded str

    for (i = 0; i < str.length; i++){   // scan the source

        s = str.charAt(i);

        u = str.charCodeAt(i);          // get unicode of the char

        if (s == " "){s0 += "+";}       // SP should be converted to "+"

        else {

            if ( u == 0x2a || u == 0x2d || u == 0x2e || u == 0x5f || ((u >= 0x30) && (u <= 0x39)) || ((u >= 0x41) && (u <= 0x5a)) || ((u >= 0x61) && (u <= 0x7a))){       // check for escape

                s0 = s0 + s;            // don't escape

            }

            else {                  // escape

                if ((u >= 0x0) && (u <= 0x7f)){     // single byte format

                    s = "0"+u.toString(16);

                    s0 += "%"+ s.substr(s.length-2);

                }

                else if (u > 0x1fffff){     // quaternary byte format (extended)

                    s0 += "%" + (oxf0 + ((u & 0x1c0000) >> 18)).toString(16);

                    s0 += "%" + (0x80 + ((u & 0x3f000) >> 12)).toString(16);

                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);

                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);

                }

                else if (u > 0x7ff){        // triple byte format

                    s0 += "%" + (0xe0 + ((u & 0xf000) >> 12)).toString(16);

                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);

                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);

                }

                else {                      // double byte format

                    s0 += "%" + (0xc0 + ((u & 0x7c0) >> 6)).toString(16);

                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);

                }

            }

        }

    }

    return s0;

}

 

/*  Function Equivalent to java.net.URLDecoder.decode(String, "UTF-8")

    Copyright (C) 2002, Cresc Corp.

    Version: 1.0

*/

function decodeURL(str){

    var s0, i, j, s, ss, u, n, f;

    s0 = "";                // decoded str

    for (i = 0; i < str.length; i++){   // scan the source str

        s = str.charAt(i);

        if (s == "+"){s0 += " ";}       // "+" should be changed to SP

        else {

            if (s != "%"){s0 += s;}     // add an unescaped char

            else{               // escape sequence decoding

                u = 0;          // unicode of the character

                f = 1;          // escape flag, zero means end of this sequence

                while (true) {

                    ss = "";        // local str to parse as int

                        for (j = 0; j < 2; j++ ) {  // get two maximum hex characters for parse

                            sss = str.charAt(++i);

                            if (((sss >= "0") && (sss <= "9")) || ((sss >= "a") && (sss <= "f"))  || ((sss >= "A") && (sss <= "F"))) {

                                ss += sss;      // if hex, add the hex character

                            } else {--i; break;}    // not a hex char., exit the loop

                        }

                    n = parseInt(ss, 16);           // parse the hex str as byte

                    if (n <= 0x7f){u = n; f = 1;}   // single byte format

                    if ((n >= 0xc0) && (n <= 0xdf)){u = n & 0x1f; f = 2;}   // double byte format

                    if ((n >= 0xe0) && (n <= 0xef)){u = n & 0x0f; f = 3;}   // triple byte format

                    if ((n >= 0xf0) && (n <= 0xf7)){u = n & 0x07; f = 4;}   // quaternary byte format (extended)

                    if ((n >= 0x80) && (n <= 0xbf)){u = (u << 6) + (n & 0x3f); --f;}         // not a first, shift and add 6 lower bits

                    if (f <= 1){break;}         // end of the utf byte sequence

                    if (str.charAt(i + 1) == "%"){ i++ ;}                   // test for the next shift byte

                    else {break;}                   // abnormal, format error

                }

            s0 += String.fromCharCode(u);           // add the escaped character

            }

        }

    }

    return s0;

}


//--------------------------------------------------------------------------------------//
// Description  : a function for MS IE ActiveX Rollup Patch                             //
// Parameter    : id                                                                    //
// Example  :                                                                           //
// Etc      :                                                                           //
//--------------------------------------------------------------------------------------//
function __WS__(id)
{
 document.write(id.text); id.id="";
}



function GNT_GetSelectControlId(gn, rowIndex, col)
		{		
				var table = document.all[gn];
				var sub = eval(table.skiptop);
				return gn + ':_ctl' + (rowIndex + 1) + ':_ctl' + col;
		}




//--------------------------------------------------------------------------------------//
// Description  : ÁÂÃø ¸Þ´º open/close                             						//
// Parameter    : id                                                                    //
// Example  :                                                                           //
// Etc      :                                                                           //
//--------------------------------------------------------------------------------------//
function MenuWindow_Control ( ctl ) {

	if ( ctl == "close" ) {
	    
		parent.parent.fSet1.cols = "18, *";
		parent.left.document.form.img_close.value = "1";
		parent.left.document.form.img_open.src = '../../IMAGE/hide_leftbutt_o.gif';
	} else {
		parent.parent.fSet1.cols = "250, *";
		parent.left.document.form.img_close.value = "0";
		parent.left.document.form.img_open.src = '../../IMAGE/bg_menu_left.gif';
	}
}


//--------------------------------------------------------------------------------------//
// Description	: ±âÁØÀÏ°ú 'Y'(³âµµ), 'M'(¿ù), 'D'(ÀÏ) Áß ÇÏ³ª¿Í °£°ÝÀ» ÁÖ¸é 			//
//                °è»êµÈ ÀÏÀÚ¸¦ return       											//
// Parameter 	:  					                                            		//
// Example		:  	                                                                	//
// Etc			: 																   	    //
//--------------------------------------------------------------------------------------//
function getDateAdd(pDate, pGb, pTerm) {
    var intYear = parseInt(pDate.substring(0,4), 10);
    var intMon = parseInt(pDate.substring(4,6), 10) - 1;
	var intDay = parseInt(pDate.substring(6,8), 10);

	if (pGb == "Y")
		intYear += pTerm;

	if (pGb == "M")
		intMon += pTerm;

	if (pGb == "D")
		intDay += pTerm;

	var Today = new Date(intYear, intMon, intDay);
 	var month, date
 	month = Today.getMonth()+1;
 	date = Today.getDate();
 	month = month<10 ? '0'+month : month;
 	date = date < 10 ? '0'+date : date;

 	return String(Today.getYear()) + String(month) + String(date);
}

//--------------------------------------------------------------------------------------//
// Description	: pToData - pFromDate µÎ ³¯Â¥°£ÀÇ ÀÏÀÚTermÀ» return						//
// Parameter 	:  					                                            		//
// Example		:  	                                                                	//
// Etc			: 																   	    //
//--------------------------------------------------------------------------------------//
function getDateDiff(pFromDate, pToDate)
{
    var intFromYear = parseInt(pFromDate.substring(0,4), 10);
    var intFromMon = parseInt(pFromDate.substring(4,6), 10) - 1;
	var intFromDay = parseInt(pFromDate.substring(6,8), 10);

    var intToYear = parseInt(pToDate.substring(0,4), 10);
    var intToMon = parseInt(pToDate.substring(4,6), 10) - 1;
	var intToDay = parseInt(pToDate.substring(6,8), 10);

	var FromDate = new Date(intFromYear, intFromMon, intFromDay);
	var ToDate = new Date(intToYear, intToMon, intToDay);
	var term = ((ToDate.getTime()-FromDate.getTime())/(24*60*60*1000)+1);
	return Math.ceil(term)
}

//--------------------------------------------------------------------------------------//
// Description	: ±âÁØÀÏ°ú 'Y'(³âµµ), 'M'(¿ù), 'D'(ÀÏ) Áß ÇÏ³ª¸¦ ÁÖ¸é ³âÃÊ, ¿ùÃÊ,		//
//                ±âÁØÀÏÀ» ¹®ÀÚ¿­8ÀÚ¸®·Î return      									//
// Parameter 	:  					                                            		//
// Example		:  	                                                                	//
// Etc			: 																   	    //
//--------------------------------------------------------------------------------------//
function getDateStr(pDate, pGb)
{
 	var strYear, strMonth, strDay;
 	var strDate;

	strYear = pDate.getYear();

	if (pGb == "Y")
	{
		strMonth = 1;
 		strDay = 1;
	}

	if (pGb == "M")
	{
		strMonth = pDate.getMonth() + 1;
 		strDay = 1;
	}

	if (pGb == "D")
	{
		strMonth = pDate.getMonth() + 1;
 		strDay = pDate.getDate();
	}

 	strMonth = strMonth <10 ? '0' + strMonth : strMonth;
 	strDay = strDay < 10 ? '0' + strDay : strDay;

 	return String(strYear) + String(strMonth) + String(strDay);
}


//--------------------------------------------------------------------------------------//
// Description	: yyyy-mm-ddÇüÅÂ·Î ÀÏÀÚ¸¦ ¸®ÅÏ 											//
// Parameter 	:  					                                            		//
// Example		:  	                                                                	//
// Etc			: 																   	    //
//--------------------------------------------------------------------------------------//
function getDateFormat8To10(pstrDate) 
{
 	return pstrDate.substring(0,4) + '-' + pstrDate.substring(4,6) + '-' + pstrDate.substring(6,8);
}    

function getDateFormat6To7(pstrDate) 
{
 	return pstrDate.substring(0,4) + '-' + pstrDate.substring(4,6);
}     
        
        
//--------------------------------------------------------------------------------------//
// Description	: ¹Ý°¢->Àü°¢,Àü°¢->¹Ý°¢ 							    				//
// Parameter 	:  					                                            		//
// Example		:  	                                                                	//
// Etc			: 																   	    //
//--------------------------------------------------------------------------------------//


//¹Ý°¢ -> Àü°¢
function hankana(motoText) {
    //¹Ý°¢
    han_name = "????????????????????????????????????????????????????abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789£­";
    //Àü°¢
    zen_name = "«¢«¤«¦«¨«ª«««­«¯«±«³«µ«·«¹«»«½«¿«Á«Ä«Æ«È«Ê«Ë«Ì«Í«Î";
    zen_name+= "«Ï«Ò«Õ«Ø«Û«Þ«ß«à«á«â«ä«æ«è«é«ê«ë«ì«í«ï«ò«ó«¡«£«¥«§«©?£á£â£ã£ä£å£æ£ç£è£é£ê£ë£ì£í£î£ï£ð£ñ£ò£ó£ô£õ£ö£÷£ø£ù£ú";
    zen_name+= "£Á£Â£Ã£Ä£Å£Æ£Ç£È£É£Ê£Ë£Ì£Í£Î£Ï£Ð£Ñ£Ò£Ó£Ô£Õ£Ö£×£Ø£Ù£Ú£°£±£²£³£´£µ£¶£·£¸£¹-";
    zenKana ="«¢«¤«¦«¨«ª«««­«¯«±«³«µ«·«¹«»«½«¿«Á«Ä«Æ«È«Ê«Ë«Ì«Í«Î«Ï«Ò«Õ«Ø«Û«Þ«ß«à«á«â«ä«æ«è«é«ê«ë«ì«í«ï«ò«ó«¡«£«¥«§«©£°£±£²£³£´£µ£¶£·£¸£¹?";
    hanKana ="???????????????????????????????????????????????????0123456789-";

	str = "";
	for(i=0;i<motoText.length;i++) {
		c=motoText.charAt(i);
		n=han_name.indexOf(c,0);
		if(n>=0) c=zen_name.charAt(n);
		str+=c;
	}
	return str;
}

//Àü°¢ -> ¹Ý°¢
function katakana(motoText) {
    //¹Ý°¢
    han_name = "????????????????????????????????????????????????????abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789£­";
    //Àü°¢
    zen_name = "«¢«¤«¦«¨«ª«««­«¯«±«³«µ«·«¹«»«½«¿«Á«Ä«Æ«È«Ê«Ë«Ì«Í«Î";
    zen_name+= "«Ï«Ò«Õ«Ø«Û«Þ«ß«à«á«â«ä«æ«è«é«ê«ë«ì«í«ï«ò«ó«¡«£«¥«§«©?£á£â£ã£ä£å£æ£ç£è£é£ê£ë£ì£í£î£ï£ð£ñ£ò£ó£ô£õ£ö£÷£ø£ù£ú";
    zen_name+= "£Á£Â£Ã£Ä£Å£Æ£Ç£È£É£Ê£Ë£Ì£Í£Î£Ï£Ð£Ñ£Ò£Ó£Ô£Õ£Ö£×£Ø£Ù£Ú£°£±£²£³£´£µ£¶£·£¸£¹-";
    zenKana ="«¢«¤«¦«¨«ª«««­«¯«±«³«µ«·«¹«»«½«¿«Á«Ä«Æ«È«Ê«Ë«Ì«Í«Î«Ï«Ò«Õ«Ø«Û«Þ«ß«à«á«â«ä«æ«è«é«ê«ë«ì«í«ï«ò«ó«¡«£«¥«§«©£°£±£²£³£´£µ£¶£·£¸£¹?";
    hanKana ="???????????????????????????????????????????????????0123456789-";

	str = "";
	for(i=0;i<motoText.length;i++) {
		c=motoText.charAt(i);
		n=zenKana.indexOf(c,0);
		if(n>=0) c=hanKana.charAt(n);
		str+=c;
	}
	return str;
}


function convert(sValue, sDataType) 
{
    switch(sDataType) 
    {
        case "int":
            return parseInt(sValue);
        case "float":
            return parseFloat(sValue);
        case "date":
            return new Date(Date.parse(sValue));
        default:
            return sValue.toString();
    
    }
}

function generateCompareTRs(iCol, sDataType) 
{
    return  function compareTRs(oTR1, oTR2) 
    {
        var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
        var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);

        if (vValue1 < vValue2) {
            return -1;
        } else if (vValue1 > vValue2) {
            return 1;
        } else {
            return 0;
        }
    };
}

function fn_sortTable(sTableID, iCol, sDataType) 
{
    var oTable = document.getElementById(sTableID);
    var oTBody = oTable.tBodies[0];
    var colDataRows = oTBody.rows;
    var aTRs = new Array;

    for (var i=0; i < colDataRows.length; i++) {
        aTRs[i] = colDataRows[i];
    }

    if (oTable.sortCol == iCol) {
        aTRs.reverse();
    } else {
        aTRs.sort(generateCompareTRs(iCol, sDataType));
    }

    var oFragment = document.createDocumentFragment();
    for (var i=0; i < aTRs.length; i++) {
        oFragment.appendChild(aTRs[i]);
    }

    oTBody.appendChild(oFragment);
    oTable.sortCol = iCol;
}
