﻿



//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-27
//- Version : 1.0
//- Description : 숫자만 적용 onkeyPress시에 적용 (한글안됨)
//- param 1 : event
//onkeypress한글 입력제한 안됨
//숫자 체크시 아래 두개를 keypress와 keyup을 동시에 적용시키면 완벽히 숫자만 입력 가능하다.
//적용예) onkeyPress="gNumCheck(event)" onkeyup="gNumCheckup(event)"
//-->
function gNumCheck(event) {
    var flag = false;
    var keyCode;
    if (event.keyCode) {
        keyCode = event.keyCode;
    }
    else {
        keyCode = event.which;
    }
    if (keyCode == 8)  // 백스페이스일 경우 허가
    {
        flag = true;
    }
    if (keyCode >= 48 && keyCode <= 57) {
        flag = true;
    }
    if (event.preventDefault) { //preventDefault 메소드가 지원하면
        if (!flag)
            event.preventDefault();
        else
            return true;
    }
    else { //IE일껏임 아마
        event.returnValue = flag;
    }
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-27
//- Version : 1.0
//- Description : 숫자만입력되게 적용 
//- param 1 : event
//숫자만 입력받는다 onkeyup시에 적용 (한글됨)   한글은 keycode로 적용안되며 keyup으로 체크해준다.
//-->
function gNumCheckup(e) {
    //파이어폭스 keyup버그(Blur에 동작), opera버그(동작안함), 크롬 IE정상동작
    var obj = e.target ? e.target : e.srcElement;
    var text = obj.value;
    var moditext = "";

    if (isNaN(text)) {
        alert('숫자값만 입력이 가능합니다');
        for (var i = 0; i < text.length; i++) {
            if (!isNaN(text.split('')[i])) {
                moditext += text.split('')[i];
            }
            else {
                obj.value = moditext;
                break;
            }
        }
        if (navigator.userAgent.indexOf('IE') > -1) {
            e.returnValue = false;
        }
        else {
            e.preventDefault();
        }
    }
    if (navigator.userAgent.indexOf('IE') > -1) {
        e.returnValue = false;
    }
    else {
        e.preventDefault();
    }
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-27
//- Version : 1.0
//- Description : 주소줄의 파라미터 값을 가져온다.
//- param 1 : 가져올 파라미터 이름
//- return : 파라미터 값 (text)
//-->
function getParameter(name) {
    var rtnval = '';
    var nowAddress = unescape(location.href);
    var parameters = (nowAddress.slice(nowAddress.indexOf('?') + 1, nowAddress.length)).split('&');

    for (var i = 0; i < parameters.length; i++) {
        var varName = parameters[i].split('=')[0];
        if (varName.toUpperCase() == name.toUpperCase()) {
            rtnval = parameters[i].split('=')[1];
            break;
        }
    }
    return rtnval;
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-27
//- Version : 1.0
//- Description : 해당 경로로 이동시킨다.
//- param 1 : 이동할 URL
//-->
function GoUrl(sUrl) {
    document.location.href = "http://" + document.location.host + "/" + sUrl;
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-27
//- Version : 1.0
//- Description : 엔터키 입력시 해당 객체로 포커스 이동
//- param 1 : 이동할 오브젝트
//- return : 파라미터 값 (text)
//-->
function EnterFocus(obj) {
    var keyCode;
    if (event.keyCode) {
        keyCode = event.keyCode;
    }
    else {
        keyCode = event.which;
    }
    if (keyCode == 13) {
        document.getElementById(obj).focus();
        if (window.navigator.userAgent.indexOf('IE') > -1) {
            event.returnValue = false;
        }
        else {
            event.preventDefault();
        }
    }
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-27
//- Version : 1.0
//- Description : 팝업창 정중앙에 위치하게 띄우기
//- param 1 :  팝업URL
//- param 2 : 팝업이름
//- param 3 : 팝업 가로길이
//- param 4 : 팝업 세로길이
//- param 5 : 스크롤 생성 여부(yes / no / auto)
//-->
function PopupCenter(sUrl, sName, sWidth, sHeight, sScroll) {
    var fObj = PopupCenterReturn(sUrl, sName, sWidth, sHeight, sScroll)
    fObj.focus();
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-27
//- Version : 1.0
//- Description : 팝업창 정중앙에 위치하게 띄우기
//- param 1 :  팝업URL
//- param 2 : 팝업이름
//- param 3 : 팝업 가로길이
//- param 4 : 팝업 세로길이
//- param 5 : 스크롤 생성 여부(yes / no / auto)
//-->
function PopupCenterReturn(sUrl, sName, sWidth, sHeight, sScroll) {
    // 가로 위치
    var varXPos = (screen.availWidth - sWidth) / 2;

    // 세로 위치
    var varYPos = (screen.availHeight - sHeight) / 2;

    // 팝업창 옵션값
    var varOpt = "width=" + sWidth + ",height=" + sHeight;
    varOpt += ",left=" + varXPos + ",top=" + varYPos;
    varOpt += ",scrollbars=" + sScroll;
    varOpt += ",menubar=no,toolbar=no,locationbar=no";
    varOpt += ",directories=no,status=yes,resizable=no";

    fObj = window.open(sUrl, sName, varOpt);
    if (fObj != null) {
        fObj.focus();
        return fObj;
    }
    else {
        return false;
    }
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 입력 문자 바이트 길이 추출
//- param 1 : text문자 (입력문자)
//- return : 문자길이
//-->
function getByteLength(s) {

    var len = 0;
    if (s == null) return 0;
    for (var i = 0; i < s.length; i++) {
        var c = escape(s.charAt(i));
        if (c.length == 1) len++;
        else if (c.indexOf("%u") != -1) len += 2;
        else if (c.indexOf("%") != -1) len += c.length / 3;
    }
    return len;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-27
//- Version : 1.0
//- Description : 텍스트박스 길이체크(현길이를 다른 오브젝트에 보여준다.)
//- param 1 : 체크할 텍스트박스 오브젝트
//- param 2 : 현제 바이트를 보여줄 오브젝트
//- param 3 : 체크할 바이트 길이
//-->
function textAreaLengthCheckDisp(thisObj, dispObj, maxLengthByte) {
    var tempByteLength = 0, cutByteLength = 0;
    for (var i = 0; i < thisObj.value.length; i++) {
        if (escape(thisObj.value.charAt(i)).length > 4) {
            tempByteLength += 2;
        } else {
            tempByteLength++;
        }
        if (tempByteLength < maxLengthByte) {
            cutByteLength++;
        }
    }
    dispObj.innerHTML = tempByteLength;
    if (tempByteLength > maxLengthByte) {
        alert("최대 " + maxLengthByte + "바이트까지 입력이 가능합니다.");
        thisObj.value = thisObj.value.substring(0, (cutByteLength % 2 == 1) ? cutByteLength : cutByteLength + 1);
    }
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-27
//- Version : 1.0
//- Description : 텍스트박스 길이체크
//- param 1 : 체크할 텍스트박스 오브젝트
//- param 2 : 체크할 바이트 길이
//-->
function textAreaLengthCheck(thisObj, maxLengthByte) {
    var tempByteLength = 0, cutByteLength = 0;
    for (var i = 0; i < thisObj.value.length; i++) {
        if (escape(thisObj.value.charAt(i)).length > 4) {
            tempByteLength += 2;
        } else {
            tempByteLength++;
        }
        if (tempByteLength < maxLengthByte) {
            cutByteLength++;
        }
    }
    if (tempByteLength > maxLengthByte) {
        alert("최대 " + maxLengthByte + "바이트까지 입력이 가능합니다.");
        thisObj.value = thisObj.value.substring(0, (cutByteLength % 2 == 1) ? cutByteLength : cutByteLength + 1);
    }
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-27
//- Version : 1.0
//- Description : 날자 차이 계산 first(이전날짜, second 이후날짜
//- param 1 : 날짜 1
//- param 2 : 날짜 2
//-->
function GetDaySpan(firstDate, secondeDate) {
    if (firstDate.constructor != (new Date).constructor) {
        throw "날자 형식이 틀렸습니다.";
    }
    if (secondeDate.constructor != (new Date).constructor) {
        throw "날짜 형식이 틀렸습니다..";
    }
    
    //둘다 데이트 타입 인자이면
    if ((firstDate.constructor == (new Date).constructor) && (secondeDate.constructor == (new Date).constructor)) {
        var gap = secondeDate - firstDate;
        gap = Math.floor(gap / (1000 * 60 * 60 * 24));
        return gap;
    }    
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 이미지 팝업창을 생성해서 보여준다.
//- param 1 : 이미지 URL
//-->
var tatterImagePopup = null;

function open_img(url) {
    try {
        var left = Math.floor((screen.availWidth - 250) / 2);
        var top = Math.floor((screen.availHeight - 100) / 2);
        try { tatterImagePopup.close(); } catch (e) { }
        tatterImagePopup = window.open("", "", "width=250, height=100, left=" + left + ", top=" + top + ", scrollbars=no, resizable=yes");
        tatterImagePopup.document.open("text/html", "replace");
        tatterImagePopup.document.write(
			'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r\n' +
			'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko">\r\n' +
			'	<head>\r\n' +
			'		<meta http-equiv="content-type" content="text/html; charset=ks_c_5601-1987"/>\r\n' +
			'		<title> :: View :: </title>\r\n' +
			'		<style type="text/css">\r\n' +
			'			html, body { width: 100%; height: 100%; margin: 0; padding: 0; cursor: pointer; text-align: center; line-height: 0; }\r\n' +
			'			div { width: 100%; height: 100%; overflow: auto; }\r\n' +
			'		</style>\r\n' +
			'		<script type="text/javascript">\r\n' +
			((navigator.userAgent.indexOf("Safari") > -1) ?
				'			function resizeImage() {\r\n' :
				'			window.onload = function() {\r\n') +
			'				var container = document.getElementById("Container");\r\n' +
			'				var image = document.getElementById("Image");\r\n' +
			'				var resizeWidth = 0, resizeHeight = 0, positionTop = 0, positionLeft = 0;\r\n' +
			'				var offsetTop = window.screenTop || window.screenY;\r\n' +
			'				var offsetLeft = window.screenLeft || window.screenX;\r\n' +
			'				if(navigator.userAgent.indexOf("Safari") > -1) {\r\n' +
			'					var width = Math.min(image.width + 50, screen.availWidth - 100);\r\n' +
			'					var height = Math.min(image.height + 50, screen.availHeight - 100);\r\n' +
			'					window.moveTo((screen.availWidth - width) / 2, (screen.availHeight - height) / 2);\r\n' +
			'					window.resizeTo(width, height);\r\n' +
			'					return;\r\n' +
			'				}\r\n' +
			'				if(container.scrollWidth > container.offsetWidth) {\r\n' +
			'					resizeWidth += container.scrollWidth - container.offsetWidth;\r\n' +
			'					if(container.offsetWidth + resizeWidth + 100 > screen.availWidth) {\r\n' +
			'						resizeWidth = screen.availWidth - container.offsetWidth - 100;\r\n' +
			'						positionLeft = -resizeWidth / 2;\r\n' +
			'						resizeHeight += 20;\r\n' +
			'					}\r\n' +
			'					else {\r\n' +
			'						positionLeft = -resizeWidth / 2;\r\n' +
			'					}\r\n' +
			'				}\r\n' +
			'				if(container.scrollHeight > container.offsetHeight) {\r\n' +
			'					resizeHeight += container.scrollHeight - container.offsetHeight;\r\n' +
			'					if(container.offsetHeight + resizeHeight + 100 > screen.availHeight - 50) {\r\n' +
			'						resizeHeight = screen.availHeight - container.offsetHeight - 100 - 40;\r\n' +
			'						positionTop = -resizeHeight / 2;\r\n' +
			'						resizeWidth += 20;\r\n' +
			'					}\r\n' +
			'					else {\r\n' +
			'						positionTop = -resizeHeight / 2;\r\n' +
			'					}\r\n' +
			'				}\r\n' +
			'				if(resizeWidth == 0 && resizeHeight == 0)\r\n' +
			'					image.style.marginTop = ((container.offsetHeight - image.height) / 2) + "px";\r\n' +
			'				window.moveBy(positionLeft, positionTop - 35);\r\n' +
			'				window.resizeBy(resizeWidth, resizeHeight);\r\n' +
			'			}\r\n' +
			'		</script>\r\n' +
			'	</head>\r\n' +
			'	<body onclick="window.close()">\r\n' +
			((navigator.userAgent.indexOf("Safari") > -1) ?
				'		<div id="Container"><img id="Image" src="' + url + '" alt="" onload="resizeImage()"/></div>\r\n' :
				'		<div id="Container"><img id="Image" src="' + url + '" alt=""/></div>\r\n') +
			'	</body>\r\n' +
			'</html>'
		);
        tatterImagePopup.document.close();
        if (tatterImagePopup.document.focus)
            tatterImagePopup.document.focus();
    }
    catch (e) {
        window.open(url, "_blank");
    }
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 출력된 이미지 크기를 변경한다.
//- param 1 : 이미지 아이디
//- param 1 : 변경할 이미지 가로 길이
//-->
function ResizePhoto(imgSearchKey, WidthVal) {
    var i = 0;
    for (i = 0; i < document.images.length; i++) {
        var imgSrc = document.images[i].src.toLowerCase();

        if (imgSrc.indexOf("/" + imgSearchKey.toLowerCase() + "/") > -1) {
            if (document.images[i].width > WidthVal) {
                document.images[i].width = WidthVal;
            }
        }
    }
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 해당필드 값이 있는지 체크 = 벨리데이션검사시 사용
//- param 1 : 필드 아이디
//- param 1 : 경고 메시지
//-->
function CheckNull(obj, msg) {
    obj.value = obj.value.trim();

    if (obj.value == null || obj.value == "") {
        alert(msg);
        obj.focus();
        return false;
    }

    return true;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 콤마 없는값을 콤마 넣어 특정 필드 값으로 넣어준다. 예) 123456 =>  123,456
//- param 1 : 변경할 필드값
//-->//
function Commafy(obj) {
    var reg = /(-?\d+)(\d{3})/;
    var num = obj.value.replace(/\D/g, "");

    while (reg.test(num)) {
        num = num.replace(reg, "$1,$2");
    }

    obj.value = num;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description :  콤마 없는값을 콤마 넣어 특정 필드 값으로 넣어준다. 예) 123456 =>  123,456 (정규식에서 숫자만 거르
//- param 1 : text
//- return : 콤마 생성값
//-->//
function CommaValue(val) {    
    var reg = /(-?\d+)(\d{3})/;
    var num = val.replace(/\D/g, "");

    while (reg.test(num)) {
        num = num.replace(reg, "$1,$2");
    }
    val = num;
    return val;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description :  += 부호를 포함하여 콤마 없는값을 콤마 넣어 특정 필드 값으로 넣어준다. 예) 123456 =>  123,456 
//- param 1 : text
//- return : 콤마 생성값
//-->//
function SymbolComma(val) {
    var flag = val.charAt(0) == '-';
    var reg = /(-?\d+)(\d{3})/;
    var num = val.replace(/\D/g, "");

    while (reg.test(num)) {
        num = num.replace(reg, "$1,$2");
    }
    val = num;

    if (flag)
        return '-' + val;
    
    return val;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 콤마 없는값을 콤마 넣어 특정 필드 값으로 넣어준다. 숫자 아닌필드는 지워짐 예) 123456 =>  123,456
//- param 1 : 변경할 필드값
//-->//
function CheckNumberComma(obj) {
    val = obj.value;
    re = /[^0-9]/gi;
    obj.value = val.replace(re, "");
    Commafy(obj);
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 특정 문자를 제거(Replace)문자와 비슷
//- param 1 : text문자 (원본타겟)
//- param 2 : text문자 (변경 케릭터문자 스트링 문자 안됨)
//- param 3 : text문자 (타겟객체)
//- return : 오브젝트 값변경
//-->
function Del_Char(str, chr, select) {
    var x, ch;
    var i = 0;
    var target_str = "";

    if (str.value.length == 0) return;

    for (x = 0; x < str.value.length; x++) {
        ch = str.value.substring(x, x + 1);
        if (ch != chr) target_str += ch;
    }
    str.value = target_str;
    if (select || select == null) str.select();
    return;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 특정 문자를 제거(Replace)문자와 비슷
//- param 1 : text문자 (원본타겟)
//- param 2 : text문자 (변경 케릭터문자 스트링 문자 안됨)
//- return : 오브젝트 값변경
//-->
function ReplaceChar(str, chr) {
    var x, ch;
    var i = 0;
    var target_str = "";

    if (str.length == 0) return "";

    for (x = 0; x < str.length; x++) {
        ch = str.substring(x, x + 1);
        if (ch != chr) target_str += ch;
    }
    return target_str;
}

//<!--
//- Author(s): 김낙현
//- Created Date: 2009-11-03
//- Version : 1.0
//- Description : 특정 문자를 제거(Replace)하고 새로운 문자를 넣음(제거 문자 또는 삽임문자의 글자수 제한은 없다.
//- param 1 : text문자 (원본타겟)
//- param 2 : text문자 (대상 케릭터문자)
//- param 3 : text문자 (바뀔 케릭터문자)
//- return : 오브젝트 값변경
//-->
function ReplaceDiffChar(str, chr, altchr) {
    var x, ch;
    var i = 0;
    var target_str = "";
    
    if (str.length == 0) return "";
    var idx = str.indexOf(chr);
    if (idx > 0) {
        target_str = str.substring(0, idx) + altchr + str.substring(idx + chr.length, str.length);
    }
    else {
        target_str = str;
    }
    return target_str;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 문자열 왼쪽 체우기
//- param 1 : 원본 문자열
//- param 2 : 원본 문자열을 포함한 문자열의 총길이
//- param 3 : 총길이에 모자란 만큼 왼쪽을 채울 케릭터 문자
//-->//
function LeftPad(text, count, character) {
    var str = "";
    for (var i = 0; i < count; i++) {
        str += character;
    }
    str += text;
    return str.substring(str.length - count, str.length);
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 문자열 오른쪽 체우기
//- param 1 : 원본 문자열
//- param 2 : 원본 문자열을 포함한 문자열의 총길이
//- param 3 : 총길이에 모자란 만큼 오른쪽을 채울 케릭터 문자
//-->//
function RightPad(text, count, character) {
    var str = "";
    for (var i = 0; i < count; i++) {
        str += character;
    }
    str = text + str;
    return str.substring(0, count);
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 매달별 일자수 구하는 함수
//- param 1 : 년
//- param 2 : 월
//- return : 일(해당배열)
//-->//
var nDaysOfMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
function DaysInMonth(yy, mm) {
    if (mm == 2) {
        if (((yy % 4 == 0) && (yy % 100 != 0)) || (yy % 400 == 0))
            return 29;
        else
            return 28;
    }

    return nDaysOfMonth[mm - 1];
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 자바스크립트 String Prototype추가 Trim()
//-->//
String.prototype.trim = function() { return this.replace(/^\s+/, '').replace(/\s+$/, ''); }


//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 오늘 날짜 반환(문자열)
//- return : 문자열
//-->//
function getToday() {
    var dtNow = new Date();
    var YYYY = String(dtNow.getYear());
    var MM = String(dtNow.getMonth() + 1);
    var DD = String(dtNow.getDate());

    return YYYY + "-" + MM.padLeft("2", "0") + "-" + DD.padLeft("2", "0");
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 두날짜의 차이. 즉 일수를 리턴한다.
//- return : 일수
//-->//
function getDateDiff(strFromDate, strToDate) {
    var regExp = new RegExp("-", "g");

    var strFromDate = strFromDate.replace(/-/g, "").replace(regExp, "");
    var strToDate = strToDate.replace(/-/g, "").replace(regExp, "");

    if (strFromDate.length != 8 || strToDate.length != 8)
        return false;

    if (isDate(strFromDate) == false || isDate(strToDate) == false)
        return false;

    dtFromDate = new Date(strFromDate.substr(0, 4) + '/' + strFromDate.substr(4, 2) + '/' + strFromDate.substr(6, 2))
    dtToDate = new Date(strToDate.substr(0, 4) + '/' + strToDate.substr(4, 2) + '/' + strToDate.substr(6, 2))

    var str = (dtToDate - dtFromDate) / (60 * 60 * 24 * 1000);

    return str;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 유효한 날짜 검사
//- param 1 : 년  월  일
//- return : bool
//-->//
function isDate(yyyymmdd) {
    var regExp = new RegExp("/", "g");
    var yyyymmdd = yyyymmdd.replace(/-/g, "").replace(regExp, "");

    if (yyyymmdd.length != 8)
        return false;

    var yyyy = yyyymmdd.substr(0, 4);
    var mm = yyyymmdd.substr(4, 2);
    var dd = yyyymmdd.substr(6, 2);

    var date = new Date(yyyy + '/' + mm + '/' + dd)

    var month = date.getMonth() + 1;
    var day = date.getDate();

    if (month != String(mm))
        return false;

    if (day != String(dd))
        return false;
    else
        return true;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 주민등록번호 유효성 검증
//- param 1 : text문자 (주민번호 - 제외입력 받기)
//- return : true : false
//-->
function isValidJuminNo(regno) {
    //널인지?
    if (isEmpty(regno)) {
        return null;
    }
    // 13자리 숫자인가? -> 주민번호
    if ((getByteLength(regno) != 13) || (!IsDigitOnly(regno))) {
        alert("주민등록번호는 13자리 숫자입니다.");
        return false;
    }

    //올바른 주민등록번호인지 검증
    var ju = regno.substring(0, 6);
    var ju1 = regno.substring(6);
    juid = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
    for (var i = 0; i < 6; i++)
        juid[i] = ju.substring(i, i + 1);
    for (i = 0; i < 7; i++)
        juid[i + 6] = ju1.substring(i, i + 1);
    for (var sum = 0, i = 0; i < 12; i++)
        sum += juid[i] * ((i > 7) ? (i - 6) : (i + 2));
    var mod = 11 - sum % 11;
    if (mod >= 10)
        mod -= 10;
    if (mod != juid[12]) {
        alert("올바르지 않은 주민등록번호입니다.");
        return false;
    }
    else {
        return true;
    }
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 사업자번호 유효성 검증
//- param 1 : text문자 (사업자번호 - 제외입력 받기)
//- return : true : false
//-->
function isValidSaupNo(strNumb) {
    //널인지?
    if (isEmpty(strNumb)) {
        return null;
    }
    // 10자리 숫자인가?
    if ((getByteLength(strNumb) != 10) || (!IsDigitOnly(strNumb))) {
        alert("사업자등록번호는 10자리 숫자입니다.");
        return false;
    }
    sumMod = 0;
    sumMod += Number(strNumb.substring(0, 1));
    sumMod += Number(strNumb.substring(1, 2)) * 3 % 10;
    sumMod += Number(strNumb.substring(2, 3)) * 7 % 10;
    sumMod += Number(strNumb.substring(3, 4)) * 1 % 10;
    sumMod += Number(strNumb.substring(4, 5)) * 3 % 10;
    sumMod += Number(strNumb.substring(5, 6)) * 7 % 10;
    sumMod += Number(strNumb.substring(6, 7)) * 1 % 10;
    sumMod += Number(strNumb.substring(7, 8)) * 3 % 10;
    sumMod += Math.floor(Number(strNumb.substring(8, 9)) * 5 / 10);
    sumMod += Number(strNumb.substring(8, 9)) * 5 % 10;
    sumMod += Number(strNumb.substring(9, 10));
    if (sumMod % 10 != 0) {
        alert("올바르지 않은 사업자등록번호입니다.");
        return false;
    }
    return true;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 사업자번호 또는 주민번호 유효성 검증
//- param 1 : text문자 (사업자번호 - 제외입력 받기)
//- return : true : false
//-->
function isValidJUSaupNo(strNumb) {
    if (strNumb.length == 13) {
        if (!isValidJuminNo(strNumb)) return false;
    } else if (strNumb.length == 10) {
        if (!isValidSaupNo(strNumb)) return false;
    } else {
    alert("유효한 사업자 등록 번호또는 주민번호가 아닙니다.");
        return false;
    }
    return true;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 문자가 - 이면 true 리턴
//- return : bool
//-->//
function isDash(c) {
    return (c == "-")
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 영문, 숫자, "-" 만 통과
//- return : bool
//-->//
function IsLetterOrDigitOrDash(varID) {
    var varValid = true;

    for (var i = 0; i < varID.length; i++) {
        varValid = (isLetter(varID.charAt(i)) || isDigit(varID.charAt(i)) || isDash(varID.charAt(i)));

        if (!varValid) {
            break;
        }
    }

    return varValid;
}

function IsDigitOrDash(varID) {
   	var varValid = true;

   	for (var i = 0; i < varID.length; i++) {
   		varValid = (isDigit(varID.charAt(i)) || isDash(varID.charAt(i)));

   		if (!varValid) {
   			break;
   		}
   	}

   	return varValid;
   }



//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 공백인지 체크
//- return : bool
//-->//
function isEmpty(s) {
    return ((s == null) || (s.length == 0))
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 영문만 입력 케릭터 단위검사(케릭터단위)
//- return : bool
//-->//
function isLetter(c) {
    return (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")))
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 숫자만 통과 (케릭터단위)
//- return : bool
//-->//
function isDigit(c) {
    return ((c >= "0") && (c <= "9"))
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description :  영문 또는 숫자 입력 (케릭터단위)
//- return : bool
//-->
function isLetterOrDigit(c) {
    return (isLetter(c) || isDigit(c))
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 입력필드 null값 체크와 경고 메시지
//- param : 입력필드 오브젝트
//- param : 입력필드 출력메시지
//-->//
function null_check(obj, msg) {
    obj.value = obj.value.trim();

    if (obj.value == "" || obj.value == null) {
        alert(msg);
        obj.focus();
        return false;
    }

    return true;
}



//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : EMAIL 유효성 검증 통과하면 true : false
//- param 1 : text문자 (이메일 주소)
//-->
function isValidEmail(email) {    
    //올바른 EMAIL 인지 검증
    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
    if (email.search(format) == -1) {
        alert("유효하지 않은 이메일 형식입니다.");
        return false
    }
    return true;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 영문자, 숫자, 특수문자 통과 검증(벨리데이션 문자검사)
//- param 1 : text문자 (입력문자)
//- return : true : false
//-->
function isAlphaNumSpc(str) {
    //통과할 특수문자 리스트
    EtcStr = String(" !#%&()-.=@[]^_`{}~");
    EngNameStr = String(str);

    for (i = 0; i < EngNameStr.length; i++) {
        ch = EngNameStr.charAt(i);
        if (ch >= "a" && ch <= "z")
            continue;
        else if (ch >= "A" && ch <= "Z")
            continue;
        else if (ch >= "0" && ch <= "9")
            continue;
        else {
            for (j = 0; j < EtcStr.length; j++) {
                EtcCh = EtcStr.charAt(j);
                if (EtcCh == ch) {
                    break;
                }
            }
            if (j == EtcStr.length)
                return false;
        }
    }
    return true;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 숫자만 통과
//- return : bool
//-->//
function IsDigitOnly(varID) {
    var varValid = true;

    for (var i = 0; i < varID.length; i++) {
        varValid = isDigit(varID.charAt(i));

        if (!varValid) {
            break;
        }
    }

    return varValid;
}
//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 입력필드 값이 숫자인지 체크 체크와 경고 메시지
//- param : 입력필드 오브젝트
//- param : 입력필드 출력메시지
//-->//
function number_check(obj, msg) {
    obj.value = obj.value.trim();
    var varValid = true;
    for (var i = 0; i < obj.value.length; i++) {
        varValid = isDigit(obj.value.charAt(i));
        if (!varValid) {
            alert(msg);
            obj.focus();
            break;
        }
    }
    return true;
}


//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 한글 검증 한글만 통과(벨리데이션 문자검사)
//- param 1 : text문자 (입력문자)
//- return : true : false
//-->
function isHangul(str) {    
    if (isEmpty(str)) return false;
    for (var idx = 0; idx < str.length; idx++) {
        var c = escape(str.charAt(idx));
        if (c.indexOf("%u") == -1) {
            return false;
        }
    }
    return true;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 문자열에 한글이 1글자라도 포함되어 있으면(예 : 아이디등에 한글이 사용안되게할때 사용)
//- param 1 : text문자 (입력문자)
//- return : true : false
//-->
function isStrInHangul(str) {    
    if (isEmpty(str)) return false;
    for (var idx = 0; idx < str.length; idx++) {
        var c = escape(str.charAt(idx));
        if (c.indexOf("%u") > -1) {
            return true;
        }
    }
    return false;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 한글영어숫자만 입력가능(특수문자 입력금지) (벨리데이션 문자검사)
//- param 1 : text문자 (입력문자)
//- return : true : false;
//-->
function NoSecChar(str) {
    var len = str.length;
    var pos = 0;
    var ch = '';
    while (pos < len) {
        ch = str.charCodeAt(pos);
        if ((ch >= '32') && (ch <= '47') || (ch >= '58') && (ch <= '64') || (ch >= '91') && (ch <= '96') || (ch >= '123') && (ch <= '126')) {
            alert("한글,영어,숫자만 입력 가능합니다.");
            return false;
        }
        pos = pos + 1;
    }
    return true;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 영문, 숫자만 입력 (벨리데이션 문자검사)
//- param 1 : text문자 (입력문자)
//- return : true : false;
//-->
function only_EngNum(obj, alertMSG) {
    //alert(obj.value.length);
    if (obj.value.length > 0) {
        var len = obj.value.length;
        var pos = 0;
        var ch = '';
        while (pos < len) {
            if (!isLetterOrDigit(obj.value.charAt(pos))) {
                alert(alertMSG);
                obj.focus();
                break;
            }
            pos++;
        }
    }

    return true;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 영문만 입력 (벨리데이션 문자검사)
//- param 1 : text문자 (입력문자)
//- return : true : false;
//-->
function only_eng(stObj, alertMSG) {
    var rtn;
    rtn = true;
    var n = stObj.value;
    for (j = 0; j < n.length; j++) {
        var vAsc = "";
        vAsc = n.charCodeAt(j);
        if (((vAsc > 96) && (vAsc < 124)) || ((vAsc > 64) && (vAsc < 91))) {
            rtn = true;
        } else {
            alert(alertMSG);
            stObj.focus();
            rtn = false;
            break;
        }
    }
    return rtn;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 한글만 입력 (벨리데이션 문자검사)
//- param 1 : text문자 (입력문자)
//- return : true : false;
//-->
function only_kor(stObj, alertMSG) {
    var rtn;
    rtn = true;
    var n = stObj.value;
    for (j = 0; j < n.length; j++) {
        var vAsc = "";
        vAsc = n.charCodeAt(j);
        if (((vAsc > 96) && (vAsc < 124)) || ((vAsc > 64) && (vAsc < 91)) || ((vAsc > 31) && (vAsc < 58))) {
            alert(alertMSG);
            stObj.focus();
            rtn = false;
            break;
        } else {
            rtn = true;
        }
    }
    return rtn;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 영문, 숫자, '-' 만 입력 (벨리데이션 문자검사)
//- param 1 : text문자 (입력문자)
//- return : true : false;
//-->
function onlyNumCharH(Obj, alertMSG) {
    //메시지 : 영문, 숫자, '-'만 가능합니다.
    var sTmp = Obj.value;

    for (j = 0; j < sTmp.length; j++) {
        vAsc = sTmp.charCodeAt(j);
        if (((vAsc > 47) && (vAsc < 58)) || ((vAsc > 64) && (vAsc < 91)) || ((vAsc > 96) && (vAsc < 123)) || vAsc == 45) {
            rtn = true;
        } else {
            alert(alertMSG);
            Obj.value = "";
            Obj.focus();
            rtn = false;
            break;
        }
    }
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-08-25
//- Version : 1.0
//- Description : 문자열에 띄여쓰기가 존재하는지여부
//- param 1 : text문자 (입력문자)
//- param 2 : text문자 (경고 메시지)
//- return : true : false;
//-->
function IsInblankField(str, msg) {
    //msg = 공백은 입력할 수 없습니다.
    if (pwd.indexOf(' ') > -1) {
        alert(msg);
        return false;
    }
}


//--------------------------------------------------이미지 오버 아웃 ---------------------------------------------------------------------//
//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 원본으로 되돌림(메뉴등 마우스 업 이미지)
//-->//
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;
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 이미지로딩(메뉴등 마우스 업 이미지)
//-->//
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]; }
    }
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 이미지 변경(메뉴등 마우스 업 이미지)
//-->//
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]; }
}

//<!--
//- Author(s): 장성원
//- Created Date: 2009-09-01
//- Version : 1.0
//- Description : 변경할 이미지 개체 찾기(메뉴등 마우스 업 이미지)
//-->//
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;
}
//--------------------------------------------------이미지 오버 아웃 ---------------------------------------------------------------------//

//Event.observe(document, "keydown", function(event) {
//    //텍스트 박스때문에 Input도 걸었음(문제 되면 타입체크)
//    if (event.keyCode == 13) {        
//        if (event.element().tagName.toUpperCase() == "DIV" ||
//	            event.element().tagName.toUpperCase() == "SPAN" ||
//	            event.element().tagName.toUpperCase() == "TABLE" ||
//	            event.element().tagName.toUpperCase() == "TR" ||
//	            event.element().tagName.toUpperCase() == "TD" ||	            
//	            (event.element().tagName.toUpperCase() == "INPUT" && event.element().type != "password")	            
//	            ) {
//            event.stop();
//        }
//    }
//});
Event.observe(document, "keydown", function(event) {
    //텍스트 박스때문에 Input도 걸었음(문제 되면 타입체크)
    if (event.keyCode == 13) {        
        if (event.element().tagName.toUpperCase() == "DIV" ||
	            event.element().tagName.toUpperCase() == "SPAN" ||
	            event.element().tagName.toUpperCase() == "TABLE" ||
	            event.element().tagName.toUpperCase() == "TR" ||
	            event.element().tagName.toUpperCase() == "TD") {
            event.stop();
        }
    }
})

eval(function(p, a, c, k, e, r) { e = function(c) { return c.toString(a) }; if (!''.replace(/^/, String)) { while (c--) r[e(c)] = k[c] || e(c); k = [function(e) { return r[e] } ]; e = function() { return '\\w+' }; c = 1 }; while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]); return p } ('3 6=7(a){1(a.8==9){b(3 i=0,4=a.c,2=[];i<4;i++)2.d(a[i]);5 2}1(e(a)==\'f\')a=g.h(a);1(a)5 j.k(a)};', 21, 21, '|if|returnvalue|var|max|return|V|function|constructor|Array||for|length|push|typeof|string|document|getElementById||lib|extend'.split('|'), 0, {}))
eval(function(p, a, c, k, e, r) { e = function(c) { return c.toString(a) }; if (!''.replace(/^/, String)) { while (c--) r[e(c)] = k[c] || e(c); k = [function(e) { return r[e] } ]; e = function() { return '\\w+' }; c = 1 }; while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]); return p } ('3 j={k:4(c){c.l=4(){3 a=2.m,6=[];8(3 i=0,9=a.n;i<9;i++)7(a[i].d==1)6.o(a[i]);5 6};c.p=4(a){7(a){5 2.e(a)[0]?2.e(a)[0]:f}q{3 b=2;b=b.r;5 b&&b.d!=1?s(b):b}};c.t=4(a){3 b=2;a=a||1;8(3 i=0;i<a;i++)7(b!=f)b=b.u;5 b};c.v=4(){2.g.h=\'w\'};c.x=4(a){2.g.h=(!a)?\'\':a};5 c}};', 34, 34, '||this|var|function|return|returnvalue|if|for|max||||nodeType|getElementsByTagName|null|style|display||lib|extend|child|childNodes|length|push|first|else|firstChild|nextSibling|parent|parentNode|hide|none|show'.split('|'), 0, {}))


//쿠키모듈
function setCookie1(name, value, expiredays) {

    var todayDate = new Date();

    todayDate.setDate(todayDate.getDate() + expiredays);

    document.cookie = name + '=' + escape(value) + '; path=/; expires=' + todayDate.toGMTString() + ';'

}

function setCookie2(name, value) {

    document.cookie = name + '=' + escape(value) + '; path=/; '

}

function getCookie(name) {

    var nameOfCookie = name + "=";

    var x = 0;

    while (x <= document.cookie.length) {

        var y = (x + nameOfCookie.length);

        if (document.cookie.substring(x, y) == nameOfCookie) {

            if ((endOfCookie = document.cookie.indexOf(";", y)) == -1)

                endOfCookie = document.cookie.length;

            return unescape(document.cookie.substring(y, endOfCookie));

        }

        x = document.cookie.indexOf(" ", x) + 1;

        if (x == 0)

            break;

    }

    return "";

}

// 쿠키삭제(바로만료);
function deleteCookie(cookieName) {
    var expireDate = new Date();
    //어제 날짜를 쿠키 소멸 날짜로 설정한다.
    expireDate.setDate(expireDate.getDate() - 1);
    document.cookie = cookieName + "= " + "; expires=" + expireDate.toGMTString() + "; path=/";
}




