// 사업자 등록번호 체크
function chk_work_num(strNumb) {
	if (strNumb.length != 10) {
		return false;
	}
	sumMod  = 0;
	sumMod += parseInt(strNumb.substring(0,1));
	sumMod += parseInt(strNumb.substring(1,2)) * 3 % 10;
	sumMod += parseInt(strNumb.substring(2,3)) * 7 % 10;
	sumMod += parseInt(strNumb.substring(3,4)) * 1 % 10;
	sumMod += parseInt(strNumb.substring(4,5)) * 3 % 10;
	sumMod += parseInt(strNumb.substring(5,6)) * 7 % 10;
	sumMod += parseInt(strNumb.substring(6,7)) * 1 % 10;
	sumMod += parseInt(strNumb.substring(7,8)) * 3 % 10;
	sumMod += Math.floor(parseInt(strNumb.substring(8,9)) * 5 / 10);
	sumMod += parseInt(strNumb.substring(8,9)) * 5 % 10;
	sumMod += parseInt(strNumb.substring(9,10));

	if (sumMod % 10 != 0) {
		return false;
	}
	return true;
}

// 숫자영문조합 체크
function chk_num_char(val) {
	for (var i=0; i < val.length; i++) {
		var ch = val.charAt(i);
		if (!((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))) return false; // 숫자영문조합이 아님
	}
	return true; // 숫자와 영문자의 조합입니다.
}

// 첫글자 영문 체크
function chk_first_english(val) {
	var ch = val.charAt(0);
	if (!(ch >= 'a' && ch <= 'z')) return false;
	else return true;
}

// 숫자 검색
function chk_num(str) {
	var anum=/(^\d+$)|(^\d+\.\d+$)/;
	if (anum.test(str)) {
		return true; // 숫자로만 이루어져 있음
	} else {
		return false; // 숫자로만 이루어져 있지 않음
	}
}

// 이메일 체크
function chk_email(str) {
	var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check=/@[\w\-]+\./;
	var checkend=/\.[a-zA-Z]{2,3}$/;
	if(((str.search(exclude) != -1) || (str.search(check)) == -1) || (str.search(checkend) == -1)) return false;
	else return true;
}

// 주민번호 체크
function chk_jumin(jumin1, jumin2) {

	if (jumin1.value.length != 6) {
		return 1; // 주민번호 앞의 길이가 6자리가 아니다.
	} else if (jumin2.value.length != 7) {
		return 2; // 주민번호 뒤의 길이가 7자리가 아니다.
	}
	var digit = 0;
	for (var i=0; i < jumin1.value.length; i++) {
		var str_dig = jumin1.value.substring(i, i+1);
		if (str_dig < '0' || str_dig > '9') digit=digit+1;
	}
	if (jumin1.value == '') {
		return 3; // 주민번호의 앞자리가 비어 있다.
	}
	if ( digit != 0 ) {
		return 4; // 주민번호 앞자리가 숫자가 아니다.
	}
	var digit1 = 0;
	for (var i=0; i < jumin2.value.length; i++) {
		var str_dig1 = jumin2.value.substring(i, i+1);
		if (str_dig1 < '0' || str_dig1 > '9') digit1 = digit1+1;
	}
	if (jumin2.value == '') {
		return 5; // 주민번호 뒷자리가 비어 있다.
	}
	if ( digit1 != 0 ) {
		return 6; // 주민번호 뒷자리가 숫자가 아니다.
	}
	if (jumin1.value.substring(2, 3) > 1) {
		return 7; // 주민번호 앞자리의 형식이 틀렸다.
	}
	if (jumin1.value.substring(4, 5) > 3) {
		return 8; // 주민번호 앞자리의 형식이 틀렸다.
	}
	if (jumin2.value.substring(0, 1) > 4 || jumin2.value.substring(0, 1) == 0) {
		return 9; // 주민번호 뒷자리의 형식이 틀렸다.
	}
	var a1 = jumin1.value.substring(0, 1);
	var a2 = jumin1.value.substring(1, 2);
	var a3 = jumin1.value.substring(2, 3);
	var a4 = jumin1.value.substring(3, 4);
	var a5 = jumin1.value.substring(4, 5);
	var a6 = jumin1.value.substring(5, 6);
	var check_digit = a1*2+a2*3+a3*4+a4*5+a5*6+a6*7;
	var b1 = jumin2.value.substring(0, 1);
	var b2 = jumin2.value.substring(1, 2);
	var b3 = jumin2.value.substring(2, 3);
	var b4 = jumin2.value.substring(3, 4);
	var b5 = jumin2.value.substring(4, 5);
	var b6 = jumin2.value.substring(5, 6);
	var b7 = jumin2.value.substring(6, 7);
	var check_digit = check_digit+b1*8+b2*9+b3*2+b4*3+b5*4+b6*5;
	check_digit = check_digit%11;
	check_digit = 11 - check_digit;
	check_digit = check_digit%10;
	if (check_digit != b7) {
		return 10; // 올바른 주민번호가 아니다.
	} else {
		return 0; // 올바른 주민번호
	}
}

// 한글체크
function chk_han(chStr) {
	if (chStr.substring(0, 2) == '%u') {
		if (chStr.substring(2,4) == '00') return false;
		else return true; //한글
	} else if (chStr.substring(0,1) == '%') {
		if (parseInt(chStr.substring(1,3), 16) > 127) return true; //한글
		else return false;
	} else {
		return false;
	}
}

//	허용된 글자수 체크
function chk_max_length(str, numOfBytes) {
	var strLen = 0;
	for (var i=0; i <str.length; i++) {
		var ch = escape(str.charAt(i));
		if (_strCharByte(ch)) strLen += 2;
		else strLen++;
	}
	if (strLen > numOfBytes) return false;
	else return true;
}

function chk_min_length(str, numOfBytes) {
	var strLen = 0;
	for (var i=0; i <str.length; i++) {
		var ch = escape(str.charAt(i));
		if (_strCharByte(ch)) strLen += 2;
		else strLen++;
	}
	if (strLen < numOfBytes) return false;
	else return true;
}

// 바이트 체크
function chk_byte_length(obj, formName, len) {
	if (!chk_max_length(obj.value, len)) {
		alert(formName + " 길이가 초과되었습니다. 최대길이는 " + len + " byte입니다.");
		obj.focus();
		return false;
	}
	return true;
}

// 빈값 체크
function chk_blank(val) {
	var sLength = val.length;
	var flag = false;
	if (sLength == 0) flag = false;
	for (var i=0; i<sLength; i++) {
		if (val.substring(i, i+1) != " ") {
			flag = true;
			break;
		}
	}
	return flag;
}

// select, checkbox, radio 의 선택값 주기
function default_value(obj, val, gubun) {
	if (gubun == "S") {
		if (val == "") {
			obj.options[0].selected = true;
		} else {
			for (var i=0; i < obj.length; i++) {
				if (obj.options[i].value == val) obj.options[i].selected = true;
			}
		}
	} else if (gubun == "C") {

		if (val == obj.value) obj.checked = true;

	} else if (gubun == "R") {

		for (var i=0; i < obj.length; i++) if (obj[i].value == val) obj[i].checked = true;

	}
}

// 자동으로 다음 폼에 포커스
function autoTab(input, leng) {
	if (input.value.length == leng) input.form[(getIndex(input)+1) % input.form.length].focus();
}

function getIndex(input) {
	var index = -1, i = 0, found = false;
	while (i < input.form.length && index == -1) {
		if (input.form[i] == input) index = i;
		else i++;
	}
	return index;
}

// 같은 이름으로 되어있는 모든 체크박스에 체크를 하거나 해제한다.
function all_checkbox(mValue, sValue) {
	var allObj	= document.getElementById(mValue);
	var obj		= document.getElementsByName(sValue);

	if (obj.length == 0) return;

	if (obj.length == 1) {
		obj		= document.getElementById(sValue);
	}

	if (!allObj || !obj) return false;

	if ( allObj.checked ) {
		if (obj) {
			if (obj.length >= 2) {
				for (var i=0; i<obj.length; i++) {
					obj[i].checked = true;
				}
			} else {
				obj.checked = true;
			}
		}
	} else {
		if (obj) {
			if (obj.length >= 2) {
				for (var i=0; i<obj.length; i++) {
					obj[i].checked = false;
				}
			} else {
				obj.checked = false;
			}
		}
	}
}

// checkbox 의 체크된 값을 ,로 연결하여 데이타를 만든다
function get_all_checkbox(sValue) {
	var obj		= document.getElementsByName(sValue);	
	var rsdata = "";

	
	
	if (obj.length == 1) {
		obj		= document.getElementById(sValue);
		 rsdata = obj.value;
	}

	//alert(rsdata);
	
	
	if (obj) {
		
		if (obj.length >= 2) {
			for (var i=0; i<obj.length; i++) {
				if (obj[i].checked) rsdata += "," + obj[i].value;
			}
		} else {
			if (obj.checked) rsdata += "," + obj.value;
		}
		rsdata = rsdata.substring(1);
	}

	return rsdata;
}

// 집전화의 지역번호 체크
function chk_tel_area(pval) {
	switch (pval) {
		case "02"	: return true;
			break;
		case "031"	: return true;
			break;
		case "032"	: return true;
			break;
		case "033"	: return true;
			break;
		case "041"	: return true;
			break;
		case "042"	: return true;
			break;
		case "043"	: return true;
			break;
		case "0502" : return true;
			break;
		case "0505" : return true;
			break;
		case "051"	: return true;
			break;
		case "052"	: return true;
			break;
		case "053"	: return true;
			break;
		case "054"	: return true;
			break;
		case "055"	: return true;
			break;
		case "061"	: return true;
			break;
		case "062"	: return true;
			break;
		case "063"	: return true;
			break;
		case "064"	: return true;
			break;
		case "070"	: return true;
			break;
		default : return false;
	}
}

// 핸드폰 번호의 국번 체크
function chk_hand_area(pval) {
	switch (pval) {
		case "010"	: return true;
			break;
		case "011"	: return true;
			break;
		case "016"	: return true;
			break;
		case "017"	: return true;
			break;
		case "018"	: return true;
			break;
		case "019"	: return true;
			break;
		default : return false;
	}
}

function chk_tel_all_area(pval) {
	switch (pval) {
		case "010"	: return true;
			break;
		case "011"	: return true;
			break;
		case "016"	: return true;
			break;
		case "017"	: return true;
			break;
		case "018"	: return true;
			break;
		case "019"	: return true;
			break;
		case "02"	: return true;
			break;
		case "0303"	: return true;
			break;
		case "031"	: return true;
			break;
		case "032"	: return true;
			break;
		case "033"	: return true;
			break;
		case "041"	: return true;
			break;
		case "042"	: return true;
			break;
		case "043"	: return true;
			break;
		case "0502" : return true;
			break;
		case "0505" : return true;
			break;
		case "051"	: return true;
			break;
		case "052"	: return true;
			break;
		case "053"	: return true;
			break;
		case "054"	: return true;
			break;
		case "055"	: return true;
			break;
		case "061"	: return true;
			break;
		case "062"	: return true;
			break;
		case "063"	: return true;
			break;
		case "064"	: return true;
			break;
		case "070"	: return true;
			break;
		default : return false;
	}
}

function chk_form(formname, msg, types) {
	var typetext = "선택해";
	if (types == "text") typetext = "적어";

	if (!chk_blank(formname.value)) {
		alert(msg + "을(를) " + typetext + "주세요.");
		if (types != "file" && types != "hidden") formname.focus();
		return false;
	}

	return true;
}

function number_format(fn) {
	var str = fn;
	var Re = /[^0-9]/g;
	var ReN = /(-?[0-9]+)([0-9]{3})/;
	str = str.replace(Re,'');
	while(ReN.test(str)) {
		str = str.replace(ReN, "$1,$2");
	}
	return str;
}

function set_date_value(val, term) {

	var dateinfo = val.split("-");
	var src = new Date(dateinfo[0], dateinfo[1]-1, dateinfo[2]);

	src.setDate(src.getDate() + parseInt(term) - 1);
	var year = src.getYear();
	var month = src.getMonth() + 1;
	var date = src.getDate();

	if(month < 10) month = "0" + month;
	if(date < 10) date = "0" + date;

	var result = year + "-" + month + "-" + date;

	return result;
}

function get_date_term(val, term) {

	var dateinfo = val.split("-");
	var src = new Date(dateinfo[0], dateinfo[1]-1, dateinfo[2]);

	src.setDate(src.getDate() + parseInt(term));
	var year = src.getYear();
	var month = src.getMonth() + 1;
	var date = src.getDate();

	if(month < 10) month = "0" + month;
	if(date < 10) date = "0" + date;

	var result = year + "-" + month + "-" + date;

	return result;
}

function minus_date_value(sval, eval) {

	var sdateinfo = sval.split("-");
	var edateinfo = eval.split("-");
	var ssrc = new Date(sdateinfo[0], sdateinfo[1]-1, sdateinfo[2]);
	var esrc = new Date(edateinfo[0], edateinfo[1]-1, edateinfo[2]);

	var result = (esrc.getTime() - ssrc.getTime()) / 1000 / 60 / 60 / 24 + 1;

	return result;
}

//	아이프레임의 사이즈를 내용에 맞게 변경합니다.
function iframeReSize(objname) {
	document.getElementById(objname).height = document.getElementById(objname).contentWindow.document.body.scrollHeight;
}

// 이미지 크기를 가로 사이즈를 조정하여 변경합니다.
function imgResize(obj, wid) {
	var nObj = new Image();
	nObj.src = obj.src;
	if (nObj.width > wid) {
		obj.width = wid;
	}
}

//	쿠키저장 메소드입니다.
function setCookie( name, value, expiredays ) {
	var todayDate = new Date();
	todayDate.setDate( todayDate.getDate() + expiredays );
	document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}

// 쿠키를 읽어 오는 메소드 입니다.
function getCookie(name) {
	var Found = false
	var start, end
	var i = 0

	while(i <= document.cookie.length) {
	start = i
	end = start + name.length

		if(document.cookie.substring(start, end) == name) {
			Found = true
			break
		}
	i++
	}

	if(Found == true) {
		start = end + 1
		end = document.cookie.indexOf(";", start)
		if(end < start) end = document.cookie.length
		return document.cookie.substring(start, end)
	}
	return ""
}
