/**
 * return the value of given parameter extracted from URL QueryString.
 */
function getParameter(name) {

	var s, i, j, k;
	s = self.location.search;
	i = s.indexOf(name + '=');
	if(i<0) {
		return '';
	}

	j = i + name.length + 1;
	k = s.indexOf('&', j);

	return (k<0)? s.substr(j) : s.substring(j, k);
}

/**
 * 문자열 좌측, 우측 공백제거.
 *
 * @param str 문자열
 * @return 문자열
 */
function trim(str)
{
    if(str != null && str.length > 0)
    {
        return str.replace(/(^\s*)|(\s*$)/g, "");
    }
    else
    {
        return "";
    }
}

/**
 * 문자열 좌측 공백제거.
 *
 * @param str 문자열
 * @return 문자열
 */
function ltrim(str)
{
    if(str != null && str.length > 0)
    {
        return str.replace(/(^\s*)/, "");
    }
    else
    {
        return "";
    }
}

/**
 * 문자열 우측 공백제거.
 *
 * @param str 문자열
 * @return 문자열
 */
function rtrim(str)
{
    if(str != null && str.length > 0)
    {
        return str.replace(/(\s*$)/, "");
    }
    else
    {
        return "";
    }
}

/**
 * 문자열이 입력된 바이트보다 큰지 체크후
 * 크다면 입력된 바이트만큼 잘라서 리턴.
 * (한글 2byte)
 *
 * @param chkInput 컨트롤
 * @param chk_size 바이트크기
 * @param chk_size 출력문자열
 */
function msgByteCheck(chkInput, chk_size, msg)
{
    var len = getByteLen(chkInput.value);

    if(len > chk_size)
    {
        alert(msg + " 최대 " + chk_size + "byte이므로 초과된 글자 수는 자동으로 삭제됩니다.");
        chkInput.value = chkInput.value.replace(/\r\n$/, "");
        chkInput.value = getByteSubstring(chkInput.value, chk_size);

        return false;
    }
    else
    {
        return true;
    }
}

/**
 * 문자열의 byte 길이 반환.
 * (한글 2byte)
 *
 * @param str 문자열
 * @return int
 */
function getByteLen(str)
{
    var nbyte = 0;

    if(str != null && str.length > 0)
    {
        for(var i=0; i<str.length; i++)
        {
            var ch = str.charAt(i);

            if(escape(ch).length > 4)
            {
                nbyte += 2;
            }
            else
            {
                nbyte += 1;
            }
        }
    }

    return nbyte;
}

/**
 * 문자열을 입력된 바이트크기로 자른다.
 * (한글 2byte)
 *
 * @param message 문자열
 * @param maxLen  길이
 */
function getByteSubstring(message, maxLen)
{
    var inc = 0;
    var nbytes = 0;
    var msg = "";
    var msglen = message.length;

    for(i=0; i<msglen; i++)
    {
        var ch = message.charAt(i);
        if(escape(ch).length > 4)
        {
            inc = 2;
        }
        else
        {
            inc = 1;
        }

        if((nbytes + inc) > maxLen)
        {
            break;
        }

        nbytes += inc;
        msg += ch;
    }

    return msg;
}

/**
 *  숫자 체크
 *
 * @param str 문자열
 * @return boolean
 */
function isNum(str)
{
    for(var i=0; i<str.length; i++)
    {
        var c = str.charCodeAt(i);
	
        if(!(0x30 <= c && c <= 0x39))
        {
            return false ;            
        }
    }

    return true ;
}

/**
 * 한글 체크
 *
 * @param str 문자열
 * @return boolean
 */
function isHan(str)
{
    for(var i=0; i<str.length; i++)
    {
        var c = str.charCodeAt(i);

        // ( 0xAC00 <= c && c <= 0xD7A3 ) 초중종성이 모인 한글자
        // ( 0x3131 <= c && c <= 0x318E ) 자음 모음

        if(!((0xAC00 <= c && c <= 0xD7A3) || (0x3131 <= c && c <= 0x318E )))
        {
            return false ;
        }
    }

    return true;
}

/**
 * 영문인지 체크
 *
 * @param str 문자열
 * @return boolean
 */
function isEng(str)
{
    for(var i=0; i<str.length; i++)
    {
        var c = str.charCodeAt(i);

        if(!((0x61 <= c && c <= 0x7A) || (0x41 <= c && c <= 0x5A)))
        {
            return false ;
        }
    }

    return true;
}

/**
 * 영문과 숫자인지 체크
 * 
 * @param str 문자열
 * @return boolean
 */
function isNumAndEng(str)
{
	for(var i=0; i<str.length; i++)
    {
        var c = str.charCodeAt(i);

        if(!((0x61 <= c && c <= 0x7A) || (0x41 <= c && c <= 0x5A) || (0x30 <= c && c <= 0x39)))
        {
            return false ;
        }
    }

    return true;
}

/**
 * 주민등록번호 체크
 *
 * @param str 문자열
 * @return boolean
 */
function isJumin(str)
{
    if(str != null && (str.length == 13 || str.length == 14))
    {
        var num = '';

        if(str.length == 13)
        {
            num = str;
        }
        else
        {
            num = str.substring(0, 6) + str.substring(7, 14);
        }

        var sum = 0;
        var last = num.charCodeAt(12) - 0x30;
        var bases = "234567892345";

        for(var i=0; i<12; i++)
        {
            if (isNaN(num.substring(i,i+1))) return false;
            sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30);
        }

        var mod = sum % 11;

        return ((11 - mod) % 10 == last) ? true : false;
    }
    else
    {
        return false;
    }
}

/**
 * 이메일주소 체크
 *
 * @param str 문자열
 * @return boolean
 */
function isEmail(str)
{
	var value = str;
	//var pattern = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	var pattern = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z0-9]+$/;

    return (pattern.test(value)) ? true : false;
}

/**
 * 처음시작 1자리는 영문, 4자이상 20자 미만, 영문, 숫자, _만 사용.
 *
 * @param str 문자열
 * @return boolean
 */
function isUserid(str)
{
	var pattern = /^[a-zA-Z]{1}[a-zA-Z0-9_]{3,20}$/;

    return (pattern.test(str)) ? true : false;
}

/**
 * 처음시작 1자리는 영문, 4자이상 10자 미만, 영문, 숫자만 사용.
 *
 * @param str 문자열
 * @return boolean
 */
function isPass(str)
{
	//var pattern = /^[a-zA-Z]{1}[a-zA-Z0-9]{3,10}$/;
    var pattern = /^[a-zA-Z0-9]{4,10}$/;

    return (pattern.test(str)) ? true : false;
}

/**
 * keyCode를 가져온다.
 *
 * @param e event 객체
 * @return 키코드값
 */
function getKeyCode(e)
{
    if(window.event) // IE
    {
        return e.keyCode;
    }
    else if(e.which) // Firefox
    {
        return e.which;
    }
    else
    {
        return 0;
    }
}

/**
 * 엔터키값을 체크한다
 *
 * @param 리턴할 함수명
 * @return 함수호출
 */
function isEnter(rtnFunc)
{
    //alert(getKeyCode(event));
    if(getKeyCode(event) == 13)
    {
        if(rtnFunc)
        {
            rtnFunc();
        }
    }
}

/**
 * 3자리마다 , 를 찍어서 반환
 *
 * @param str 문자열
 * @return 문자열
 */
function commaToMoney(str)
{
    var num = trim(str);

    while((/(-?[0-9]+)([0-9]{3})/).test(num))
    {
        num = num.replace((/(-?[0-9]+)([0-9]{3})/), "$1,$2");
    }

    return num;
}

/**
 * 원본문자열에서 oldStr->newStr로 변경한다.
 *
 * @param orgStr 원본 문자열
 * @param oldStr 변경 문자열
 * @param newStr 새로운 문자열
 */
function replace(orgStr, oldStr, newStr)
{
	var i = 0;
	var str = "";

	if(orgStr != "")
	{
		str = orgStr;

		while((i = str.indexOf(oldStr)) > -1)
		{
			str = str.substring(0, i) + newStr + str.substring(i+1, str.length);
		}
	}

	return str;
}

/**
 * 문자열에서 " -> &#34; ' -> &#39;로 변경
 *
 * @param str 문자열
 * @return 문자열
 */
function replaceQuota(str)
{
    return str.replace(/"/g, "&#34;").replace(/'/g, "&#39;");
}

/**
 * 숫자를 제외한 key 먹지 않도록한다 (OnKeyPress 적용)
 */
function onlyNumberKey()
{
   if((event.keyCode < 48) || (event.keyCode > 57))
   {
       event.returnValue = false;
   }
}

/**
 * id 속성의 값이 element인 태그를 구한다.
 *
 * @param elementId 요소
 */
function getElementById(elementId)
{
    if(elementId != null && elementId != '')
    {
        return document.getElementById(elementId);
    }
    else
    {
        return null;
    }
}

/**
 * element에 속성을 얻는다.
 *
 * @param ctrl 컨트롤
 * @param attributeName 속성명
 * @return 속성값
 */
function getAttribute(ctrl, attributeName)
{
    return ctrl.getAttribute(attributeName);
}

/**
 * element에 속성을 추가한다.
 *
 * @param ctrl 컨트롤
 * @param attributeName 속성명
 * @param attributeValue 속성값
 */
function setAttribute(ctrl, attributeName, attributeValue)
{
    ctrl.setAttribute(attributeName, attributeValue);
}

/**
 * name 태그에 해당하는 모든 element의 목록을 얻는다.
 *
 * @param tagName 태그명
 */
function getElementsTagName(tagName)
{
    if(tagName != null && tagName != '')
    {
        return document.getElementsTagName(tagName);
    }
    else
    {
        return null;
    }
}

/**
 * 팝업창을 띄운다.
 *
 * @param urlWin 경로
 * @param winName 팝업명
 * @param widthWin 팝업의 폭
 * @param heightWin 팝업의 높이
 * @param topWind 팝업의 상단위치
 * @param leftWin 팝업의 좌측위치
 * @param scrollbarsWin 스크롤(yes, no, auto)
 * @param resizableWin 리사이즈(yes, no)
 * @param centerFlag 팝업창 중앙위치(true, false)
 */
function popUpWin(urlWin, winName, widthWin, heightWin, topWind, leftWin, scrollbarsWin, resizableWin, centerFlag)
{
    var x;
    var y;

    var nameWin = (winName != null && winName.length > 0) ? winName : 'winPop1';

    nameWin += getYear() + getMonth() + getDay() + getHour() + getMinute() + getSecond() + getMillisecond();

    if(centerFlag == true)
    {
        x = (screen.availWidth - widthWin) / 2;
        y = (screen.availHeight - heightWin) / 2;
    }
    else
    {
        x = leftWin;
        y = topWind;
    }

    var _popWindObj = window.open(urlWin, nameWin, 'top='+y+',left='+x+',width='+widthWin+",height="+heightWin+',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars='+scrollbarsWin+',resizable='+resizableWin+',copyhistory=no');
    _popWindObj.focus();
    
    return _popWindObj;    
}

/**
 * 팝업창을 띄운다. (폼을 submit 한다)
 *
 * @param urlWin 경로
 * @param winName 팝업명
 * @param widthWin 팝업의 폭
 * @param heightWin 팝업의 높이
 * @param topWind 팝업의 상단위치
 * @param leftWin 팝업의 좌측위치
 * @param scrollbarsWin 스크롤(yes, no, auto)
 * @param resizableWin 리사이즈(yes, no)
 * @param centerFlag 팝업창 중앙위치(true, false)
 * @param formObj 폼 객
 */
function popUpWinSumit(urlWin, winName, widthWin, heightWin, topWind, leftWin, scrollbarsWin, resizableWin, centerFlag, formObj)
{
    var x;
    var y;

    var nameWin = (winName != null && winName.length > 0) ? winName : 'winPop2';

    nameWin += getYear() + getMonth() + getDay() + getHour() + getMinute() + getSecond() + getMillisecond();

    if(centerFlag == true)
    {
        x = (screen.availWidth - widthWin) / 2;
        y = (screen.availHeight - heightWin) / 2;
    }
    else
    {
        x = leftWin;
        y = topWind;
    }

    var _popWindObj = window.open('', nameWin, 'top='+y+',left='+x+',width='+widthWin+",height="+heightWin+',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars='+scrollbarsWin+',resizable='+resizableWin+',copyhistory=no');

    formObj.target = nameWin;
    formObj.action = urlWin;
    formObj.submit();

    _popWindObj.focus();
}

/**
 * 년도 4자리를 얻는다
 */
function getYear()
{
    var today = new Date();

    return today.getFullYear().toString();
}

/**
 * 월 2자리를 얻는다
 */
function getMonth()
{
    var today = new Date();

    if((today.getMonth() + 1) < 10)
    {
        return ('0' + (today.getMonth() + 1));
    }
    else
    {
        return (today.getMonth() + 1).toString();
    }
}

/**
 * 일 2자리를 얻는다.
 */
function getDay()
{
    var today = new Date();
    var d = '';

    if(today.getDate() < 10)
    {
        return ('0' + today.getDate());
    }
    else
    {
        return today.getDate().toString();
    }
}

/**
 * 요일정보를 얻는다.
 */
function getWeek()
{
	var today = new Date();
    var week = "";

	if(parseInt(today.getDay()) == 0)
	{
		week = "일";
	}
	else if(parseInt(today.getDay()) == 1)
	{
		week = "월";
	}
	else if(parseInt(today.getDay()) == 2)
	{
		week = "화";
	}
	else if(parseInt(today.getDay()) == 3)
	{
		week = "수";
	}
	else if(parseInt(today.getDay()) == 4)
	{
		week = "목";
	}
	else if(parseInt(today.getDay()) == 5)
	{
		week = "금";
	}
	else if(parseInt(today.getDay()) == 6)
	{
		week = "토";
	}

	return week;
}

/**
 * 년월일을 구부자로 분리하여 얻는다
 *
 * @param gubun 구분자
 */
function getDate(gubun)
{
    if(gubun != null && gubun != '')
    {
        return (getYear() + gubun + getMonth() + gubun + getDay());
    }
    else
    {
        return (getYear() + "" + getMonth() + "" + getDay());
    }
}

/**
 * 0~23 사이의 시간정보 2자리를 얻는다.
 */
function getHour()
{
    var today = new Date();

    if(today.getHours() < 10)
    {
        return ('0' + today.getHours());
    }
    else
    {
        return today.getHours().toString();
    }
}

/**
 * 0~59 사이의 분정보 2자리를 얻는다.
 */
function getMinute()
{
    var today = new Date();

    if(today.getMinutes() < 10)
    {
        return ('0' + today.getMinutes());
    }
    else
    {
        return today.getMinutes().toString();
    }
}

/**
 * 0~59 사이의 초정보 2자리를 얻는다.
 */
function getSecond()
{
    var today = new Date();

    if(today.getSeconds() < 10)
    {
        return ('0' + today.getSeconds());
    }
    else
    {
        return today.getSeconds().toString();
    }
}

/**
 * 100분의 1초 3자리를 얻는다.
 */
function getMillisecond()
{
    var today = new Date();
    var ms = today.getMilliseconds().toString();

    if(ms.length == 0)
    {
        return '000';
    }
    else if(ms.length == 1)
    {
        return ('00' + ms);
    }
    else if(ms.length == 2)
    {
        return ('0' + ms);
    }
    else
    {
        return ms;
    }
}

/**
 * 타이머로 Opacity값 조정
 *
 * @param opacityValue Opacity값 (parseFloat(1.0))
 * @param interval 타이머호출간격
 * @param callFunc 타이머 호출시 호출되는 함수
 * @param resultFunc 타이머 완료시 호출되는 함수
 * @param str 문자열
 */
function itemDeleteOpacity(opacityValue, interval, callFunc, resultFunc, str)
{
    var opacity = opacityValue - 0.1;

    if(opacity >= 0)
    {
        if(callFunc)
        {
            callFunc(opacity, str);
        }

        setTimeout("itemDeleteOpacity("+opacity+", "+interval+", "+callFunc+", "+resultFunc+", '"+str+"')", interval);
    }
    else
    {
        if(resultFunc)
        {
            resultFunc(str);
        }
    }
}

/**
 * 파일문자열에서 확장자를 얻는다.
 *
 * @param strFile 문자열
 * @param rtnType 'L'->소문자, 'U'->대문자
 * @return 파일확장자
 */
function getFileExt(strFile, rtnType)
{
    if(rtnType != "L" && rtnType != "U")
    {
        rtnType = "L";
    }

    if(rtnType == "L")
    {
        return ((strFile.indexOf(".") < 0) ? "" : strFile.substring(strFile.lastIndexOf(".") + 1, strFile.length).toLowerCase())
    }
    else if(rtnType == "U")
    {
        return ((strFile.indexOf(".") < 0) ? "" : strFile.substring(strFile.lastIndexOf(".") + 1, strFile.length).toUpperCase())
    }
}

/**
* 입력 받은 두 날짜의 차이를 리턴한다.
* 시작 time1 형식 yyyy&MM&dd
* 종료 time2 형식 yyyy&MM&dd
* 분할문자 splitStr 위 &에 해당하는 분할 문자
* return 두 날짜의 차이 일수
*/
function getDayInterval(time1, time2, splitStr)
{
	var i=0;
	var j=0;
    var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

	if(time1.length != 10 || time2.length != 10)
	{
		return 0;
	}

	var sTimeArr = time1.split(splitStr);
	var eTimeArr = time2.split(splitStr);

	if(sTimeArr.length != 3 || eTimeArr.length != 3)
	{
		return 0;
	}

	var sDate = new Date(sTimeArr[0],(eval(sTimeArr[1])-1),sTimeArr[2]);
	var eDate = new Date(eTimeArr[0],(eval(eTimeArr[1])-1),eTimeArr[2]);
	//var sDate = new Date(eval(sTimeArr[0])-1,(eval(sTimeArr[1])-1),eval(sTimeArr[2])-1);
	//var eDate = new Date(eval(eTimeArr[0])-1,(eval(eTimeArr[1])-1),eval(eTimeArr[2])-1);
	var sDate = new Date(eval(sTimeArr[0]),(eval(sTimeArr[1])-1),eval(sTimeArr[2])-1);
	var eDate = new Date(eval(eTimeArr[0]),(eval(eTimeArr[1])-1),eval(eTimeArr[2])-1);
	var day = 1000 * 3600 * 24; //24시간

	return Math.ceil(eval((eDate.getTime() - sDate.getTime()) / day));
}

function getCookieVal(offset)
{
	var endstr = document.cookie.indexOf (";", offset);

   	if (endstr == -1)
   	{
   		endstr = document.cookie.length;
   	}

   	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name)
{
	var arg = name + "=";
   	var alen = arg.length;
   	var clen = document.cookie.length;
   	var i = 0;

   	while (i < clen)
   	{
   		var j = i + alen;

      	if (document.cookie.substring(i, j) == arg)
      	{
      		return getCookieVal (j);
      	}

      	i = document.cookie.indexOf(" ", i) + 1;

      	if (i == 0)
      	{
      		break;
      	}
   	}

   return null;
}

function SetCookie(name, value, expires, path, domain, secure)
{
	var argv = SetCookie.arguments;
   	var argc = SetCookie.arguments.length;
   	/*
   	var expires = (2 < argc) ? argv[2] : null;
   	var path = (3 < argc) ? argv[3] : null;
   	var domain = (4 < argc) ? argv[4] : null;
   	var secure = (5 < argc) ? argv[5] : false;
   	*/
   	document.cookie = name + "=" + escape (value) +
      ((expires == null) ? "" :
         ("; expires=" + expires.toGMTString())) +
      ((path == null) ? "" : ("; path=" + path)) +
      ((domain == null) ? "" : ("; domain=" + domain)) +
      ((secure == true) ? "; secure" : "");
}


/**
 * 날짜로 조회시 오늘날짜 기준으로 선택한 일수에 따른 날자를 뽑는다.
 * 
 * @param dt_val 일수
 * @return 날짜
 * 
 * 사용방법: dsunfold_util_getPrevDate(0)->당일, dsunfold_util_getPrevDate(-7)->7일, dsunfold_util_getPrevDate(-30)->3개월
 */
function dsunfold_util_getPrevDate(dt_val) {
	
	var newdate = new Date();
	var nowdate = new Date();
	var mm;
	var dd;

	var newtimes = newdate.getTime()-(parseInt(dt_val)*24*60*60*1000);	
	newdate.setTime(newtimes);

	if(newdate.getMonth() <9){
		mm = "0" + (newdate.getMonth()+1).toString();
			
	}else{
		mm = (newdate.getMonth()+1).toString();
	}		
	
	if(newdate.getDate() <10 ){
		dd = "0" + newdate.getDate().toString();
	}else{
		dd = newdate.getDate().toString();
	}
	
	return newdate.getYear()+"-"+mm+"-"+dd;
}

//*****************************************************************************
//Description : 특정값 페턴 체크
//Parameter:
//Return:
//Usage:
//*****************************************************************************
function chkPattern(str,type)	//형식 체크
{
	switch(type)
	{
		case "NUM": //숫자만
			pattern = /^[0-9]+$/;
			break;
	
		case "PHONE" :		// 전화번호
			pattern = /^[0-9]{2,4}-[0-9]{3,4}-[0-9]{4}$/;
			break;
	
		case "MOBILE" :		// 휴대전화
			pattern = /^0[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/;
			break;
	
		case "ZIPCODE" :	// 우편번호
			pattern = /^[0-9]{3}-[0-9]{3}$/;
			break;
			
		case "EMAIL": //메일
			pattern = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z]{2,4}$/;
			break;
	
		case "DOMAIN": //영자 숫자와	.	다음도 영자
			pattern = /^[.a-zA-Z0-9-]+.[a-zA-Z]+$/;
			break;
	
		case "ENG": //영자만
			pattern = /^[a-zA-Z]+$/;
			break;
	
		case "ENGNUM": //영자와	숫자
			pattern = /^[a-zA-Z0-9]+$/;
			break;
			
		case "ACCOUNT": //숫자	와 '-'
			pattern = /^[0-9-]+$/;
			break;     
	
		case "HOST": //영자	와 '-'
			pattern = /^[a-zA-Z-]+$/;
			break;
			
		case "ID": //첫글자는 영자 그 뒤엔 영어숫자 4이상 15자리	이하
			pattern = /^[a-zA-Z]{1}[a-zA-Z0-9]{4,15}$/;
			break;
	
		case "ID2": //첫글자는	영자 그뒤엔	영어숫자 4이상 15자리	이하
			pattern = /^[a-zA-Z0-9._-]+$/;
			break;
	
		case "DATE": //	형식 : 2002-08-15
			pattern = /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
			break;
	
		case "JUMIN" :		// 주민등록번호
			pattern = /^[0-9]{13}$/;
			break;
	
		default :
			return false;
	}
	
	return pattern.test(str);
}

/**
 * 체크박스가 선택되어있는지 확인
 * @param : chkEachNm 개별 체크박스 폼 명
 * @return
 */
function chkBoxCheckNum(chkEachNm) {
    var cnt = 0;
    
    $$("input[name=" + chkEachNm + "]").each(function(s){
		if(s.checked){
			cnt = 1;
			throw $break;
		}
	});
    
    if(cnt == 1)
    	return true;
    else
    	return false;
}

/**
 * 체크박스 전체선택 및 전체해제
 * @param : checkFlag checked(true/false)
 * @param : chkEachNm 개별 체크박스 폼 명
 * 사용방법 : onclick="chkBoxCheckAll(this.checked, 'chkBx');"
 */
function chkBoxCheckAll(checkFlag, chkEachNm){
	$$("input[name="+ chkEachNm +"]").each(function(s){
		if(s.disabled != true){
			s.checked = checkFlag;
		}
	});
}

/**
 * 개별 체크박스 선택시 폼 체크
 * @param checkFlag checked(true/false)
 * @param chkEachNm 개별 체크박스 폼 명
 * @param chkAllId 전체 체크박스 폼 아이디
 * @return
 * 사용방법 : onclick="chkBoxCheckEach(this.checked, 'chkBx', 'chkAll');"
 */
function chkBoxCheckEach(checkFlag, chkEachNm, chkAllId){
	if(checkFlag){
		$$("input[name="+ chkEachNm +"]").each(function(s){
			if(!s.checked){		
				checkFlag = false;			
				throw $break;
			}
		});

		$(chkAllId).checked = checkFlag;
	} else {
		$(chkAllId).checked = checkFlag;
	}
}

/**
 * 우편번호 팝업
 * @param zipCodeId1
 * @param zipCodeId2
 * @param addressId
 * @param focusId
 * @return
 */
function goCommonZipcode(zipCodeId1, zipCodeId2, addressId, focusId){
	var urlWin = "/include/zipcode.do?mode=list2&zipCodeId1=" + zipCodeId1 + "&zipCodeId2=" + zipCodeId2 + "&addressId=" + addressId + "&focusId=" + focusId;
	
	popUpWin(urlWin, "popCommonZipcode", "400", "435", "", "", "auto", "no", true);
}

/**
 * 공통팝업
 * @param menu
 * @return
 */
function goPopupCommonHtml(menu){
	switch(menu){
		// 결제방법안내
		case 1:
			popUpWin("/order/order.do?mode=popupCommon&menu=" + menu, "popCommon1", "580", "520", "", "", "yes", "no", true);
			break;
			
		// OK캐쉬백 카드안내
		case 2:
			popUpWin("/order/order.do?mode=popupCommon&menu=" + menu, "popCommon2", "540", "440", "", "", "auto", "no", true);
			break;
			
		// 카드무이자안내
		case 3:
			popUpWin("/order/order.do?mode=popupCommon&menu=" + menu, "popCommon3", "560", "430", "", "", "yes", "no", true);
			break;

		// 안심클릭안내
		case 4:
			popUpWin("/order/order.do?mode=popupCommon&menu=" + menu, "popCommon4", "540", "545", "", "", "auto", "no", true);
			break;

		// 안전결제ISP안내
		case 5:
			popUpWin("/order/order.do?mode=popupCommon&menu=" + menu, "popCommon5", "540", "690", "", "", "auto", "no", true);
			break;

		// 공인인증서안내
		case 6:
			popUpWin("/order/order.do?mode=popupCommon&menu=" + menu, "popCommon6", "540", "402", "", "", "auto", "no", true);
			break;
	}
}