/**********************************************************************
 * ÇÁ·Î±×·¥ID   : utils.js
 * ÇÁ·Î±×·¥¸í   : Include utils.js
 * ÀÛ¼ºÀÏÀÚ     : 2009. 12. 01
 * ÀÛ¼ºÀÚ       : ±è°æ¹Ì
 * ¼³¸í         :
 * º¯°æÀÌ·Â
 * --------------------------------------------------------------------
 *    º¯°æNO     º¯°æÀÏÀÚ        º¯°æÀÚ                ¼³   ¸í
 * --------------------------------------------------------------------
 **********************************************************************/

/**
=======================================================================
   »ç¿ë¸ñ·Ï(ÀÌ¸ñ·Ï¿¡ Á¤ÀÇµÈ ÇÔ¼ö¸¸ »ç¿ëÇÏ¼¼¿ä)
-----------------------------------------------------------------------
  1. ¹®ÀÚ¿­ °ü·Ã
      - cfIsNull(str);
      - cfIsNumeric(str, isAllowComma);
      - cfCheckSsn(str);
      - cfCheckCompanyNum(str);
      - cfIsValidDateTerm(strFromDT,strToDT);
      - cfDecimalNumber(str);
  2. À©µµ¿ì ¿ÀÇÂ°ü·Ã
      - cfOpenWindow(url,xpos,ypos,winname,option);
      - cfShowModalDialog(url,xpos,ypos);
      - cfZipCode(frm);
      - cfUser(frm);
      - cfComp(frm);
      - cfCompInfo(frm);
      - cfUpcheDamdangja(frm);
      - cfPyunggaDamdangja(frm);
      - cfCheckAll(obj, lst);
  3. ´Þ·ÂÃ¢ °ü·Ã

  4. ¸Þ½ÃÁöÃ¢ °ü·Ã
      - cfAlertMsgID(msgId,arrParam);
      - cfConfirmMsg(msgId,arrParam);
  5. °Ë»öÁ¶°Ç °ü·Ã(¿ÀºêÁ§Æ®Ã³¸® & message)
      - cfCheckFullLength(obj,title,size);
      - cfRowSel(obj);
      - cfRowHover(obj, isOn);
      - cfSelectWhenFocus(obj);
      - cfFocusDate(obj);
      - cfBlurDate(obj);
      - cfFocusNumber(obj);
      - cfBlurNumber(obj);
      - cfBlurDecimalNumber(obj);
  6. ÄíÅ°°ü·Ã (KEY_UTIL¿¡ Á¤ÀÇµÈ ÀÌ¸§¸¸ Çã¿ëÇÔ)
      - cfReadCookie(name)
      - cfSaveCookie(name, value, expire)
  7. ÀÎ¼â°ü·Ã
      - cfPrint(cmd,param);
  8. ajax È£Ãâ °ü·Ã
      - cfCallService(urlOrActionName, params);
      - cfAlertDebug(obj); arr ÇüÅÂÀÇ object Ã¼Å©¿ë
======================================================================*/


/*---------------------------------------------------------------------
1. ¹®ÀÚ¿­ °ü·Ã
/*--------------------------------------------------------------------*/

/**
 * °ªÀÌ null ÀÌ°Å³ª white space ¹®ÀÚ·Î¸¸ ÀÌ·ç¾îÁø °æ¿ì true¸¦ ¸®ÅÏÇÑ´Ù.
 * param  : String
 * return : boolean(true,false)
 */
function cfIsNull(str) {
    var reg = /\s+/g;
    var obj = str;

    obj = obj.replace(reg,'');

    if (obj == '' || obj == null)
        return true;
    else
        return false;
}

/**
 * ÀÔ·ÂµÈ ¹®ÀÚ°¡ ¼ýÀÚ¸¸À¸·Î ±¸¼ºµÇ¾î ÀÖ´ÂÁö È®ÀÎÇÑ´Ù.
 * param  : String, isAllowComma:ÄÞ¸¶Çã¿ë¿©ºÎ
 * return : boolean(true,false)
 */
function cfIsNumeric(str, isAllowComma) {
	if (isAllowComma) {
		str = str.replace(/,/g,"");
	}
    if (str == str.onlyNumber()) {
        return true;
    } else {
        return false;
    }
}

function checkDecimalSize(digit, size) {

  var indexOfPoint = digit.indexOf(".") + 1;
  var decimalSize = 0;
  if (indexOfPoint != 0) decimalSize = digit.substring(indexOfPoint, digit.length).length;
  if (decimalSize > size) return false;
  return true;
}

/**
 * ÁÖ¹Î¹øÈ£ Á¤ÇÕ¼º °Ë»ç
 * param : ÁÖ¹Î¹øÈ£
 */
function cfCheckSsn(ssn){

	if(ssn.length!=13){
  		return false;
	}
 
	var ssn1 = ssn.substring(0, 6);
	var ssn2 = ssn.substring(6, 13);
	
	if((ssn1.length==6) &&(ssn2.length==7)){
		var ssn=ssn1+ssn2;
		a = new Array(13);
		for (var i=0; i < 13; i++) {
		 a[i] = parseInt(ssn.charAt(i));
		}
		var k = 11 - (((a[0] * 2) + (a[1] * 3) + (a[2] * 4)
		+ (a[3] * 5) + (a[4] * 6) + (a[5] * 7)
		+ (a[6] * 8) + (a[7] * 9) + (a[8] * 2)
		+ (a[9] * 3) + (a[10] * 4) + (a[11] * 5))
		% 11);
		if (k > 9){
		 k -= 10;
		}
		if (k == a[12]){
			return true;
		} else {
			return false;
		} 
	}
}

/**
 * »ç¾÷ÀÚ¹øÈ£ Á¤ÇÕ¼º °Ë»ç
 * param : »ç¾÷ÀÚ¹øÈ£
 */
function cfCheckCompanyNum(ssn){ 
	var calStr1 = "13713713", biVal = 0,tmpCal; 
	var calLast = ssn.substring(9,10); 
	
	for (i=0; i < 8; i++) { 
		biVal = biVal + (parseFloat(ssn.substring(i,i+1)) * parseFloat(calStr1.substring(i,i+1))) % 10; 
	} 

	tmpCal = parseFloat(ssn.substring(8,9)) * 5 + "0"; 
	chkVal = parseFloat(tmpCal.substring(0,1)) + parseFloat(tmpCal.substring(1,2)); 
	chkDigit = (10 - (biVal + chkVal) % 10) % 10; 
	
	if (calLast != chkDigit) { 
		return false; 
	}else{
		return true;
	}
}

/**
 * param  : strFromDT,strToDT
 * return : true,false;
 * Desc   : Á¾·áÀÏÀÚº¸´Ù ½ÃÀÛÀÏÀÚÀÇ °ªÀÌ Å«°æ¿ì ÇØ´ç ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÑ´Ù.
 */
function cfIsValidDateTerm(strFromDT,strToDT,arrTitle) {
    strFromDT =strFromDT.onlyNumber();
    strToDT   =strToDT.onlyNumber();
    var hasParam = false;
    if((null!=arrTitle) && (2==arrTitle.length)) {
        hasParam = true;
    }
    if(strFromDT.length == 0 && strToDT.length == 0) {
        return true;
    }else if(strFromDT.length == 8 && strToDT.length == 8) {
        if(eval(strFromDT) > eval(strToDT)) {
            if (hasParam){
                cfAlertMsgID(CI010,arrTitle);
            } else {
                cfAlertMsgID(CI007);
            }
            return false;
        } else {
            return true;
        }
    } else {
        if (hasParam){
            cfAlertMsgID(CI011,arrTitle);
        } else {
            cfAlertMsgID(CI009);
        }
    }
    return false;
}

/*---------------------------------------------------------------------
2. À©µµ¿ì ¿ÀÇÂ°ü·Ã
/*--------------------------------------------------------------------*/

/**
 * urlÀ» »õÃ¢À¸·Î xpos, ypos ½ÎÀÌÁî·Î È­¸é Áß¾Ó¿¡ ¶ç¿î´Ù.
            (È­¸é¿¡ ¶ç¿ö³õ°í moveÇÏ´Â Çü½Ä)
 * param  : url,xpos,ypos,winname,option
 * return : »õÃ¢À» °¡¸£Å°´Â °ª
 */
function cfOpenWindow(url,xpos,ypos,winname,option) {
    var screenX = 0;
    var screenY = 0;

    try{
      //½ºÅ©¸°ÀÇ Å©±â
      //screenX = top.window.screen.width;
      //screenY = top.window.screen.height;
      screenX=screen.availWidth;
      screenY=screen.availHeight;

    }catch(e){
      screenX = window.screen.width;
      screenY = window.screen.height;
    }
    var mxpos = (screenX-xpos)/2;
    var mypos = (screenY-ypos)/2;

    if (null==winname || ""==winname) {
        winname = "popWin";
    }
    
    var popOption   = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes";
    if (null!=option) {
        popOption = option;
    }
    
    popOption = popOption +',width=' + xpos + ',height=' + ypos + ', left= ' + ((screen.width)/2-xpos/2) + ', top=' + ((screen.height)/2-ypos/2);
    var popWindow = window.open( url, winname, popOption);

    //var popWindow = window.open(url, winname, 'top='+mxpos+',left='+mypos+',width='+xpos+',height='+ypos+',scrollbars=yes,resizable=1');
    //var popWindow = window.showModalDialog("", 'popWin', "dialogLeft:0px; dialogTop:0px; dialogWidth:200px; dialogHeight:200px");
    //popWindow.top.moveTo(mxpos,mypos,xpos,ypos);

	if ( popWindow.focus ) {
	    popWindow.focus();
	}

    return popWindow;
}

/**
 * urlÀ» ¸ð´Þ »õÃ¢À¸·Î xpos, ypos ½ÎÀÌÁî·Î È­¸é Áß¾Ó¿¡ ¶ç¿î´Ù.
 * param  : url,xpos,ypos
 * return : »õÃ¢À» °¡¸£Å°´Â °ª
 */
function cfShowModalDialog(url,xpos,ypos){

    var dialogArgs = null;

    if( arguments.length > 3 ){
      dialogArgs = new Array();
      for(var i = 3; i<arguments.length; i++){
        dialogArgs.add(arguments[i]);
      }
    }

    var screenX = 0;
    var screenY = 0;

    try{
      screenX=screen.availWidth;
      screenY=screen.availHeight;

    }catch(e){
      screenX = window.screen.width;
      screenY = window.screen.height;
    }
    var mxpos = (screenX-xpos)/2;
    var mypos = (screenY-ypos)/2;


    var returnValue = window.showModalDialog(url, dialogArgs, "edge:sunken;dialogLeft:"+mxpos+"px; dialogTop:"+mypos+"px; dialogWidth:"+xpos+"px; dialogHeight:"+ypos+"px");

    if(returnValue) return returnValue;
    else return "";
}

/**
 * ¿ìÆí¹øÈ£ °Ë»öÃ¢À» ¿¬´Ù
 * »óÀ§ÆË¾÷¿¡¼­ È£ÃâÇÏ´Â ¸Þ¼Òµå ¿øÇüÀº function fncZipCodeSelected(zipCode, dongDesc) ÀÌ¸ç °¢ ÆäÀÌÁö¿¡ Á¤ÀÇÇÔ
 * param  : submit ´ë»ó Æû°´Ã¼
 * return : void
 */
function cfZipCode(frm) {
	var xpos = 520;
	var ypos = 470;
	
	var winname = "popWin";
	var popWindow = cfOpenWindow('',xpos,ypos,winname);
	
	frm.cmd.value = "ZipCodeListView";
	frm.action    = "/cm.commonpopup.do";
	frm.method    = "post";
	frm.target    = winname;
	frm.submit();
}

/**
 * »ç¿ëÀÚ °Ë»öÃ¢À» ¿¬´Ù
 * »óÀ§ÆË¾÷¿¡¼­ È£ÃâÇÏ´Â ¸Þ¼Òµå ¿øÇüÀº function fncUserSelected([selIdx,] sabn, name, deptcd, deptnm, h1, h2, dang, toisa) ÀÌ¸ç °¢ ÆäÀÌÁö¿¡ Á¤ÀÇÇÔ
 * param  : submit ´ë»ó Æû°´Ã¼
 * return : void
 */
function cfUser(frm) {
	var xpos = 580;
	var ypos = 470;
	
	var winname = "popWin";
	var popWindow = cfOpenWindow('',xpos,ypos,winname);
	
	var urlOrActionName ="/cm.commonpopup.do";
	var cmd ="UserListView";
	frm.cmd.value = cmd;
	frm.action = urlOrActionName;
	frm.method = "post";
	frm.target = winname;
	frm.submit();
}

/**
 * ±â¾÷¸¶½ºÅÍ °Ë»öÃ¢À» ¿¬´Ù
 * »óÀ§ÆË¾÷¿¡¼­ È£ÃâÇÏ´Â ¸Þ¼Òµå ¿øÇüÀº function fncCompSelected([selIdx,] compno, compnm) ÀÌ¸ç °¢ ÆäÀÌÁö¿¡ Á¤ÀÇÇÔ
 * param  : submit ´ë»ó Æû°´Ã¼
 * return : void
 */
function cfComp(frm) {
	var xpos = 780;
	var ypos = 470;
	
	var winname = "popWin";
	var popWindow = cfOpenWindow('',xpos,ypos,winname);

	frm.action = "/Common/Search_Comp.jsp";
	frm.method = "post";
	frm.target = winname;
	frm.submit();
}

/**
 * ±â¾÷¸¶½ºÅÍ °Ë»öÃ¢À» ¿¬´Ù
 * »óÀ§ÆË¾÷¿¡¼­ È£ÃâÇÏ´Â ¸Þ¼Òµå ¿øÇüÀº function fncCompSelected([selIdx,] compno, compnm) ÀÌ¸ç °¢ ÆäÀÌÁö¿¡ Á¤ÀÇÇÔ
 * param  : submit ´ë»ó Æû°´Ã¼
 * return : void
 */
function cfComp2(frm) {
	var xpos = 780;
	var ypos = 470;
	
	var winname = "popWin";
	var popWindow = cfOpenWindow('',xpos,ypos,winname);

	frm.action = "/Common/Search_Comp_EN.jsp";
	frm.method = "post";
	frm.target = winname;
	frm.submit();
}

/**
 * ¼öÁÖ¹øÈ£¸¦ ÀÌ¿ëÇÏ¿© ±â¾÷Á¤º¸¸¦ Á¶È¸ÇÑ´Ù.
 * param  : submit ´ë»ó Æû°´Ã¼
 * return : void
 */
function cfCompInfo(frm) {
	var xpos = 780;
	var ypos = 290;
	
	var winname = "popWin";
	var popWindow = cfOpenWindow('',xpos,ypos,winname);
	
	var urlOrActionName ="/cm.commonpopup.do";
	var cmd ="CompInfoView";
	frm.cmd.value = cmd;
	frm.action = urlOrActionName;
	frm.method = "post";
	frm.target = winname;
	frm.submit();
}

/**
 * ¾÷Ã¼´ã´çÀÚ °Ë»öÃ¢À» ¿¬´Ù
 * »óÀ§ÆË¾÷¿¡¼­ È£ÃâÇÏ´Â ¸Þ¼Òµå ¿øÇüÀº fncUpcheDamdangjaSelected([selIdx,] sabn, name, compno, compnm) ÀÌ¸ç °¢ ÆäÀÌÁö¿¡ Á¤ÀÇÇÔ
 * param  : submit ´ë»ó Æû°´Ã¼
 * return : void
 */
function cfUpcheDamdangja(frm) {
	var xpos = 580;
	var ypos = 470;
	
	var winname = "popWin";
	var popWindow = cfOpenWindow('',xpos,ypos,winname);
	
	var urlOrActionName ="/cm.commonpopup.do";
	var cmd ="UpcheDamdangjaListView";
	if ("UpcheDamdangjaList"!=frm.cmd.value) {
		frm.cmd.value = cmd;
	}
	frm.action = urlOrActionName;
	frm.method = "post";
	frm.target = winname;
	frm.submit();
}
/**
 * Æò°¡´ã´çÀÚ °Ë»öÃ¢À» ¿¬´Ù
 * »óÀ§ÆË¾÷¿¡¼­ È£ÃâÇÏ´Â ¸Þ¼Òµå ¿øÇüÀº fncPyunggaDamdangjaSelected([selIdx,] sabn, name,deptcd, deptnm, h1, h3) ÀÌ¸ç °¢ ÆäÀÌÁö¿¡ Á¤ÀÇÇÔ
 * param  : submit ´ë»ó Æû°´Ã¼
 * return : void
 */

function cfPyunggaDamdangja(frm) {
	var xpos = 580;
	var ypos = 470;
	
	var winname = "popWin";
	var popWindow = cfOpenWindow('',xpos,ypos,winname);
	
	var urlOrActionName ="/cm.commonpopup.do";
	var cmd ="PyunggaDamdangjaListView";
	if ("PyunggaDamdangjaList"!=frm.cmd.value) {
		frm.cmd.value = cmd;
	}
	frm.action = urlOrActionName;
	frm.method = "post";
	frm.target = winname;
	frm.submit();
}
/**
 * param :  ÀüÃ¼Ã¼Å©¹Ú½º¸í(»ó´ÜÀÇ ÀüÃ¼Ã¼Å©) , Ã¼Å©¹Ú½º
 * Desc   : Ã¼Å©¹Ú½º ¸ðµÎ  Ã¼Å© & ¸ðµÎ ÇØÁ¦
*/
function cfCheckAll(obj, lst) {
    if(lst) {
     if (lst.length) {
         for(i=0; i < lst.length; i++) {
             if(obj.checked == true && lst[i].disabled == false) {
                 lst[i].checked = true;
             } else {
                 lst[i].checked = false;
             }
         }
     } else {
         if(obj.checked == true && lst.disabled == false) {
             lst.checked = true;
         } else {
             lst.checked = false;
         }
     }
    }
}
/*---------------------------------------------------------------------
3. ´Þ·ÂÃ¢ °ü·Ã
/*--------------------------------------------------------------------*/




/*---------------------------------------------------------------------
4. ¸Þ½ÃÁöÃ¢ °ü·Ã
/*--------------------------------------------------------------------*/

/**
 * Æ¯Á¤ ¸Þ½ÃÁö ¾ÆÀÌµð¿Í ÆÄ¶ó¸ÞÅÍ¸¦ ¹Þ¾Æ ¸Þ½ÃÁö¸¦ alert ÇüÅÂ·Î Ãâ·ÂÇÑ´Ù.
 * param  : message.js¿¡ ¼±¾ðµÈ ¸Þ½ÃÁö ¾ÆÀÌµð, ÆÄ¶÷¹è¿­
 * return : void
 */
function cfAlertMsgID(msgId,arrParam) {

   if(cfIsNull(msgId)) {
      alert("Á¸ÀçÇÏÁö ¾Ê´Â ¸Þ½ÃÁöÀÔ´Ï´Ù.("+msgId+")");
      return null;
   }
   var msg = hfDefMsg(msgId,arrParam);
   alert(msg);
   return null;
}

/**
 * ÀÇ»ç È®ÀÎ ¸Þ½ÃÁö¸¦ ¶ç¿î´Ù.
 * param  : message.js¿¡ ¼±¾ðµÈ ¸Þ½ÃÁö ¾ÆÀÌµð, ÆÄ¶÷¹è¿­
 * return : true, false
 */
function cfConfirmMsg(msgId,arrParam) {
    if(cfIsNull(msgId)) {
        alert("Á¸ÀçÇÏÁö ¾Ê´Â ¸Þ½ÃÁöÀÔ´Ï´Ù.");
        return null;
    }
    var msg = hfDefMsg(msgId,arrParam);
    return confirm(msg);
}

/**
 * Æ¯Á¤ ¸Þ½ÃÁö ¾ÆÀÌµð¿Í ÆÄ¶ó¸ÞÅÍ¸¦ ¹Þ¾Æ ¸Þ½ÃÁö¸¦ »ý¼ºÇÑ´Ù.
 * param  : message.js¿¡ ¼±¾ðµÈ ¸Þ½ÃÁö ¾ÆÀÌµð, ÆÄ¶÷¹è¿­
 * return : msg ¸¦ Æ÷ÇÔÇÑ ½ºÆ®¸µ
 */
function hfDefMsg(msgId, arrParam) {

   var index = 0;
   var re = /@/g;
   var count = 0;
   if(arrParam == null) {
      return msgId;
   }
   while((index = msgId.indexOf("@", index)) != - 1) {
      if(arrParam[count] == null) {
         arrParam[count] = "";
      }
      msgId = msgId.substr(0, index) + String(arrParam[count]) + msgId.substring(index + 1);
      index = index + String(arrParam[count++]).length;
   }
   return msgId;
}



/*---------------------------------------------------------------------
5. °Ë»öÁ¶°Ç °ü·Ã(¿ÀºêÁ§Æ®Ã³¸® & message)
/*--------------------------------------------------------------------*/

/**
 * objÀÇ byte±æÀÌ°¡ size ÀÎÁö È®ÀÎÇÑ´Ù.
 * param : obj,title,size
 * return: TRUE,FALSE
 */
function cfCheckFullLength(obj,title,size) {

    if (hfIsUnavailableValue(obj,title,size,0)) {
        obj.select();
        obj.focus();
        return false;
    }
    return true;
}
/**
 * objÀÇ byte±æÀÌ°¡ size ¸¦ ³Ñ´ÂÁö È®ÀÎÇÑ´Ù.
 * param : obj,title,size
 * return: TRUE,FALSE
 */
function cfCheckOverLength(obj,title,size) {

    if (hfIsUnavailableValue(obj,title,size,1)) {
        obj.select();
        obj.focus();
        return true;
    }
    return false;
}

/**
 * param  : obj °´Ã¼, title, size(value length),
 *          sizeMode(0:size¿Í ÀÏÄ¡ÇØ¾ß À¯È¿,1:sizeº¸´Ù °°°Å³ª ÀÛ¾Æ¾ß À¯È¿),2:sizeº¸´Ù °°°Å³ª Ä¿¾ßÀ¯È¿
 * return : true, false
 * Desc   : °ªÀÌ ¹«È¿ÇÏ¸é true, °ªÀÌ À¯È¿ÇÏ¸é false
 * Call   : if (cfIsUnavailableValue(txtbox,10,true,true,0)) return;
 */
function hfIsUnavailableValue(obj,title,size,sizeMode) {
    var res =true;
    var tmp ="";

    tmp = obj.value;
    if (null == tmp || "" == tmp) {
        cfAlertMsgID(CW004,[title]);
        return true;
    }

    var sz = tmp.lengthB();
    if (0 == sizeMode ) {
        if (sz==size) {
          return false;
        }
        else {
          cfAlertMsgID(CW017,[title,size]);
          return true;
        }
    }
    else if (1 == sizeMode) {
        if (sz<=size) {
          return false;
        }
        else {
          cfAlertMsgID(CW013,[title,size]);
          return true;
        }
    }
    else if (2 == sizeMode) {
        if (sz>=size) {
          return false;
        }
        else {
          cfAlertMsgID(CW016,[title,size]);
          return true;
        }
    }
    
    return res;
}
/**
 * tr °´Ã¼ÀÇ ÀÌº¥Æ® ÇÚµé·¯(click)
 *          - ÁÖÀÇÇÒÁ¡ : tableÀÇ id, trÀÇ selgroup,cssbasic¼Ó¼º À» ¹Ýµå½Ã ÁöÁ¤ÇØ Áà¾ßÇÑ´Ù.
 * @param obj Dom row
 * @return void
 */
function cfRowSel(obj) {
	var tbid =obj.parentNode.parentNode.id;//table
	var oTb  = document.getElementById(tbid);
	var arrRow = oTb.getElementsByTagName("tr");
	
	for(i=0;i<arrRow.length;i++){
		if (arrRow[i].selgroup == obj.selgroup) {
			arrRow[i].className=arrRow[i].cssbasic;
		}
	}
	obj.className=obj.cssbasic+" tb_sel_row";
}

/**
 * tr °´Ã¼ÀÇ ÀÌº¥Æ® ÇÚµé·¯(onmouseover,onmouseout)
 *          - ÁÖÀÇÇÒÁ¡ : trÀÇ cssbasic¼Ó¼º À» ¹Ýµå½Ã ÁöÁ¤ÇØ Áà¾ßÇÑ´Ù.
 * @param obj Dom row
 * @param isOn : true or false
 * @return void
 */
function cfRowHover(obj, isOn) {
	if (isOn) {
		obj.className=obj.cssbasic+" "+"tb_hover_row";
	} else {
		obj.className=obj.cssbasic;
	}
}

function cfFocusText(obj) {
	obj.select();
}
/**
 * param  : obj °´Ã¼, ÇØ´ç°ª ÇÊ¼ö¿©ºÎ
 * return : void
 * Desc   : ³¯Â¥ ÀÔ·Â ÅØ½ºÆ® °´Ã¼ÀÇ ÀÌº¥Æ® ÇÚµé·¯
 * Call   : onfocus="cfFocusDate(this)"
 */
function cfFocusDate(obj) {
    var str ="";
    if ((null != obj) && (null != obj.value)) {
        str =obj.value.onlyNumber();
    }
    obj.value =str;
    obj.select();
    obj.focus();
}

/**
 * param  : obj °´Ã¼, isMonthly: ³â´Þ Æ÷¸Ë¿©ºÎ
 * return : void
 * Desc   : ³¯Â¥ ÀÔ·Â ÅØ½ºÆ® °´Ã¼ÀÇ ÀÌº¥Æ® ÇÚµé·¯
 * Call   : onblur="cfBlurDate(this)"
 */
function cfBlurDate(obj, isMonthly) {
    var str ="";
    if ((null != obj) && (null != obj.value)) {
        str =obj.value.onlyNumber();
    }
    if (null == isMonthly ){
    	isMonthly = false;
    }
    if ( (str.length==8) && (hfIsDateFormat(str,"","YYYYMMDD")) ) {
        obj.value =str.substring(0,4) + "." + str.substring(4,6) +"."+str.substring(6,8);
        
    }else if ( isMonthly && (str.length==6) && (hfIsDateFormat(str,"","YYYYMM")) ) {
        obj.value =str.substring(0,4) + "." + str.substring(4,6);
    }else if ( (str.length==0) && (obj.value.length!=0) ){
        alert("³¯Â¥ Çü½ÄÀÌ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.");
        obj.select();
        obj.focus();
    }else if ( str.length!=0 ) {
        alert("³¯Â¥ Çü½ÄÀÌ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.");
        obj.select();
        obj.focus();
    }
}

/**
 * param  : obj °´Ã¼, ÇØ´ç°ª ÇÊ¼ö¿©ºÎ
 * return : void
 * Desc   : ¼ýÀÚ ÀÔ·Â ÅØ½ºÆ® °´Ã¼ÀÇ ÀÌº¥Æ® ÇÚµé·¯
 * Call   : onfocus="cfFocusNumber(this)"
 */
function cfFocusNumber(obj) {
    var str ="";
    if ((null != obj) && (null != obj.value)) {
        str =obj.value.onlyNumber();
    }
    obj.value =str;
    obj.select();
    obj.focus();
}

/**
 * param  : obj °´Ã¼, ÇØ´ç°ª ÇÊ¼ö¿©ºÎ
 * return : void
 * Desc   : ¼ýÀÚ ÀÔ·Â ÅØ½ºÆ® °´Ã¼ÀÇ ÀÌº¥Æ® ÇÚµé·¯
 * Call   : onblur="cfBlurNumber(this)"
 */
function cfBlurNumber(obj) {
    obj.value = hfNum2Won(obj.value);
}

/**
 * param  : obj °´Ã¼
 * return : void
 * Desc   : ¼Ò¼ýÁ¡ ¼ýÀÚ ÀÔ·Â ÅØ½ºÆ® °´Ã¼ÀÇ ÀÌº¥Æ® ÇÚµé·¯
 * Call   : onblur="cfBlurDecimalNumber(this)"
 */
function cfBlurDecimalNumber(obj,maxlen) {
	var sVal = cfDecimalNumber(obj.value);
	if (null == maxlen || ""==maxlen) {
		maxlen = sVal.length;
	}
	if (""==sVal) {
		alert("ÀÔ·Â Çü½ÄÀÌ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.");
		obj.select();
		obj.focus();
	} else if (sVal.length >maxlen) {
		alert("ÀÔ·Â°ªÀº ¼Ò¼ýÁ¡À» Æ÷ÇÔÇÏ¿© ÃÖ´ë "+maxlen+"ÀÚ ÀÌ¾î¾ß ÇÕ´Ï´Ù.");
		obj.select();
		obj.focus();
	} else {
		obj.value=sVal;
	}
}
function cfDecimalNumber(inData) {
	if (""==inData) {
		inData = "0.00";
	} else if (inData != Number(inData)) {
		inData="";
		return inData;
	}
	var splitData = inData.split(".");    // "." À¸·Î ³ª´«´Ù.
	if (splitData.length==1){             // "." ÀÌ ¾øÀ»¶§
		inData = inData+".00";
	} else if (splitData.length ==2){     // "." ÀÌ 1°³ ÀÖÀ»¶§
		var len0 = splitData[0].length;
		var len1 = splitData[1].length;
		if (len0 == 0) {
			inData = "0"+inData;
		}
		if (len1 == 0 ){                  // "." µÚ¿¡ 0ÀÚ¸® ¼öÀÌ¸é
			inData = inData +"00";
		} else if (len1 == 1 ){           // "." µÚ¿¡ 1ÀÚ¸® ¼öÀÌ¸é
			inData = inData +"0";
		} else if (len1 > 2) {            // "." µÚ°¡ 2ÀÚ¸®¼ö ÀÌ»óÀÌ¸é
			inData =(Math.round(inData*100))/100; // "." 3Â°ÀÚ¸®¿¡¼­ ¹Ý¿Ã¸² ¤Ñ
		}
	} else {    // "." ÀÌ ÇÑ°³ ÀÌ»óÀÎ°æ¿ì
		inData="";
	}
	return inData;
}

function hfNum2Won(szNumber){

	 if(szNumber == "" || szNumber == "0")
	  return "";
	  
	 var returnValue = 0;
	 var temp1 = szNumber.replace(/,/g,"");   // ÀÔ·Â µ¥ÀÌÅÍ¸¦ ¼ýÀÚ ÇüÅÂ·Î º¯È¯
	 var temp = temp1.split('.');
	 
	 // Á¤¼öÀÚ¸® ¿ø´ÜÀ§·Î ¸¸µé±â
	 var num1 = "";
	 var comma = 1;
	 for(var i = temp[0].length -1; i >= 0; i--){
	  num1 += temp[0].charAt(i);

	  if(comma % 3 == 0 && comma != 0){
	   num1 += ",";
	  } // end if
	  comma++;
	 } // end for
	 

	 var num2 = "";
	 for(var i = num1.length -1; i >= 0; i--){
	  num2 += num1.charAt(i);
	 } // end for
	 
	 // ¼Ò¼öÁ¡ÀÌ ÀÖ´Ù¸é...
	 if(temp.length > 1){

	  // ¼Ò¼öÁ¡ ÀÚ¸® ¿ø ´ÜÀ§·Î ¸¸µé¾î¼­ ¸®ÅÏ..!!
	  var num3 = "";
	  for(var i=1; i <= temp[1].length; i++){
	   num3 += temp[1].charAt(i-1);
	   
	   if((i%3 == 0) && (i != 0)){
	    num3 += ",";
	   }
	  } // end for
	  
	  var num4 = num2 + "." + num3;
	  returnValue = num4.replace(/(^,)|(,$)/g,"");
	 } // end if
	 else
	  returnValue = num2.replace(/(^,)|(,$)/g,"");; // ¾Õ,µÚ ÄÞ¸¶ Á¦°Å
	  
	 if(returnValue == "" || returnValue == ".")
	  return ""
	 else
	  return returnValue;
	}

/**
 * param  : String
 * return : true, false
 * Desc   : ³¯Â¥ ÀÔ·Â Æ÷¸ËÀÌ ¸Â´ÂÁö È®ÀÎÇÑ´Ù.
 */
function hfIsDateFormat(strYYYYMMDD,point,type){
    var dateElement = new Array(3);
    if ( (null == type) || ("" == type) ) {
        type = "YYYYMMDD";
    }
    if ( (null == strYYYYMMDD) || (0 == strYYYYMMDD.length) )
        return false;
    if( (null != point ) && ("" != point) ){
        dateElement = strYYYYMMDD.split(point);
        if(strYYYYMMDD.length != 10 || dateElement.length != 3){
            return false;
        }
    }else if (strYYYYMMDD.length != type.length ){
        return false;
    }else {
        if ("YYYYMMDD" == type) {
            dateElement[0] = strYYYYMMDD.substring(0,4);
            dateElement[1] = strYYYYMMDD.substring(4,6);
            dateElement[2] = strYYYYMMDD.substring(6,8);
            
        } else if ("YYYYMM" == type) {
            dateElement[0] = strYYYYMMDD.substring(0,4);
            dateElement[1] = strYYYYMMDD.substring(4,6);
        } else {
            return false;
        }
    }
    //³âµµ °Ë»ç
    if( !( 1800 <= dateElement[0] && dateElement[0] <= 9999 ) ) {
        return false;
    }

    //´Þ °Ë»ç
    if( !( 0 < dateElement[1] &&  dateElement[1] < 13  ) ) {
        return false;
    }

    // ÇØ´ç ³âµµ ¿ùÀÇ ¸¶Áö¸· ³¯
    var tempDate = new Date(dateElement[0], dateElement[1], 0);
    var endDay = tempDate.getDate();

    if ("YYYYMMDD" == type) {
            //ÀÏ °Ë»ç
        if( !( 0 < dateElement[2] && dateElement[2] <= endDay ) ) {
            return false;
        }
    }

    return true;
}
/*---------------------------------------------------------------------
6. ÄíÅ°°ü·Ã (ÄíÅ°´Â KEY_UTIL¿¡ Á¤ÀÇµÈ ÀÌ¸§¸¸ Çã¿ëÇÔ)
/*--------------------------------------------------------------------*/
/**
 * param : ÄíÅ°¸í
 * Desc  : ÄíÅ° ÀÐ±â
*/
function cfReadCookie(name) {
    var label = name + "=";
    var labelLen = label.length;
    var cLen = document.cookie.length;
    var i = 0;
    while (i < cLen) {
        var j = i + labelLen;
        if (document.cookie.substring(i, j) == label) {
                var cEnd = document.cookie.indexOf(";", j);
                if (cEnd == -1) cEnd = document.cookie.length;
                return unescape(document.cookie.substring(j, cEnd));
        }
        i++;
    }
    return "";
}

/**
 * param : ÄíÅ°¸í, °ª, À¯È¿±â°£(Ãß°¡ÀÏ)
 * Desc  : ÄíÅ° ÀúÀå
*/
function cfSaveCookie(name, value, expire) {
    if (null == expire) {
        document.cookie = name + "=" + value + "; path=/";
        
    } else {
        var eDate = new Date();
        eDate.setDate(eDate.getDate() + expire);
        document.cookie = name + "=" + value + "; expires=" +  eDate.toGMTString()+ "; path=/";
    }
}

/*---------------------------------------------------------------------
7. ÀÎ¼â°ü·Ã
/*--------------------------------------------------------------------*/
function cfPrint(cmd, param) {
    if (null == cmd) {
        window.print();
        
    } else {
        // À¥ ºê¶ó¿ìÀú ÄÁÆ®·Ñ »ý¼º
        var WebBrowser = "<OBJECT ID='WebBrowser1' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></OBJECT>"; 
          
        // À¥ ÆäÀÌÁö¿¡ °´Ã¼ »ðÀÔ
        document.body.insertAdjacentHTML('beforeEnd', WebBrowser); 
          
        // if paramÀÌ Á¤ÀÇµÇ¾î ÀÖÁö ¾ÊÀ¸¸é µðÆúÆ® °ª ¼³Á¤
        if ( ( ! param ) || ( param < -1 )  || (param > 1 ) ) 
                param = 1; 
          
        // ExexWB ¸Þ½îµå ½ÇÇà
        WebBrowser1.ExecWB( cmd, param ); 
          
        // °´Ã¼ ÇØÁ¦
        WebBrowser1.outerHTML = ""; 
    }
}


/*---------------------------------------------------------------------
8. ajax °ü·Ã
/*--------------------------------------------------------------------*/
var xmlHttpRequest="";
var bXmlReturn=false;
function cfCallService(urlOrActionName, params){
	bXmlReturn=false;
	xmlHttpRequest = $.ajax({
		type    : "POST",
		dataType: "json",
		url     : urlOrActionName,
		data    : params,
		async: false,
		//global: true,
		//target:        '#tbGrpSubList',
		//beforeSubmit:  showRequest, 
		success: function(responseText, statusText){
					if(statusText == "success"){
						bXmlReturn=true;
					}
				 }
		//clearForm: true ,      // clear all form fields after successful submit 
		//resetForm: true        // reset the form after successful submit 
		});
	if (!bXmlReturn) {
		alert("¼­ºñ½º È£Ãâ¿¡ ¹®Á¦°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù. Àá½ÃÈÄ ´Ù½Ã ½ÃµµÇÏ¿© ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.");
		xmlHttpRequest ="[dsTotRowCount:0]";
		xmlHttpRequest+="[pagingIndi:<div id='indiDiv' align='center'> ";
		xmlHttpRequest+="<img src='/images/btn/btn_prev1.gif' border=0 align=absmiddle>  ";
		xmlHttpRequest+="<img src='/images/btn/btn_prev2.gif' border=0 align=absmiddle> &nbsp;1&nbsp; ";
		xmlHttpRequest+="<img src='/images/btn/btn_next2.gif' border=0 align=absmiddle>  ";
		xmlHttpRequest+="<img src='/images/btn/btn_next1.gif' border=0 align=absmiddle> </div>]"
		xmlHttpRequest+="[dsStartRowNum:0]";
		xmlHttpRequest+="[dsRows:]";
	}
	return xmlHttpRequest;
}

function cfAlertDebug(obj) {
	var m="";
	for(var item in obj){
		m=m+"["+item + ":" + obj[item] + "]\n";
	}
	alert(m);
	return m;
}
/*---------------------------------------------------------------------
9. 
/*--------------------------------------------------------------------*/
String.prototype.lengthB = function(){
    var l = 0;
    for (var i = 0; i < this.length; i++) {
        l += (this.charCodeAt(i) > 128) ? 2 : 1;
    }
    return l;
}
String.prototype.onlyNumber = function() {
    return (this.trim().replace(/[^0-9]/g, ""));
}
String.prototype.trim = function(){
    return this.replace(/^\s+|\s+$/g, "");
}


