// 텍스트 길이 확인 (일반) ##################################################
function checkTextLen(obj, mLen) {
	if (obj.value.length > mLen){
		obj.value = obj.value.substring(0, mLen);
		return false;
	}
	return true;
}

// 텍스트 길이 확인 (Byte) ##################################################
function checkTextLenByte(obj, mLen) {
	var i, len, byteLen = 0;
	var value = obj.value;
	for (i=0, len=value.length; i<len; i++) {
		++byteLen;
		if ((value.charCodeAt(i) < 0) || (value.charCodeAt(i) > 127)) ++byteLen;
		if (byteLen > mLen) {
			obj.value = value.substring(0, i);
			return false;
		}
	}
	return true;
}

// 텍스트 Byte 길이 가져오기 ##################################################
function getTextByte(value) {
	var i, len, byteLen = 0;
	for (i=0, len=value.length; i<len; i++) {
		if (escape(value.charAt(i)).length >= 4) {
			byteLen += 2;
		}
		else if (escape(value.charAt(i)) != "%0D") {
			++byteLen;
		}
	}
	return byteLen;
}

// 영문/숫자 문자열 확인 ##################################################
function isEngNum(value) {
	var regExp = /^[a-zA-Z0-9_]{1,}$/;
	return regExp.test(value);
}

// 영문/숫자 혼용 확인 ##################################################
function isEngNumMixed(str) {
	var regExpE = /[a-zA-Z]/;
	var regExpN = /[0-9]/;
	return (regExpE.test(str) && regExpN.test(str)) ? true : false;
}

// 특수문자 확인 ##################################################
function checkSpecialChar(value) {
	var specialChar = "`~!@#$%^&*_+=|\\[]{}:;,<.>/?'\"";
	for (var i=0, len=specialChar.length; i<len; i++) {
		if (value.indexOf(specialChar.substr(i, 1)) != -1) return true;
	}
	return false;
}

// 아이디/비번 확인 ##################################################
function checkIdPw(value, min, max) {
	var result = isEngNum(value);
	if (typeof(min) != "undefined" && value.length < min) result = false;
	if (typeof(max) != "undefined" && value.length > max) result = false;
	return result;
}

// 파일명 확인 ##################################################
function checkFilename(obj) {
	if (obj.value.stripspace() != "") {
		var filename = obj.value.substr((obj.value.lastIndexOf('\\')+1), obj.value.length);

		for (var i=0; i<filename.length; i++) {
			// 한글 확인
			if (filename.charCodeAt(i) < 0 || filename.charCodeAt(i) > 127) return false;
			// 공백 확인
			if (filename.charAt(i) == ' ') return false;
		}
	}
	return true;
}

// URL 확인 ##################################################
function checkUrl(value) {
	var regExp = /^(http|https):\/\/((?:[a-z가-힣\d\-]{2,}\.)+[a-z]{2,})(:\d{1,5})?(\/[^\?]*)?(\?.+)?$/i;
	return regExp.test(value.toLowerCase());
}

// 이메일 확인 ##################################################
function checkEmail(email) {
	return (email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1);
}

// 파일 확장자 ##################################################
function getFileExt(value) {
	if (value) {
		var filename = value.substr((value.lastIndexOf('\\')+1), value.length);
		var eidx = filename.lastIndexOf('.')+1;
		return filename.substr(eidx, filename.length);
	}
}

// 파일확장자 확인 ##################################################
function checkFileExt(obj, exts) {
	var arrExt = exts.toLowerCase().split(',');
	var result = false;

	if (obj.value.stripspace() != "") {
		var ext = getFileExt(obj.value).toLowerCase();

		for (var i=0; i<arrExt.length; i++) {
			if (arrExt[i].trim() == ext) result = true;
		}
	}
	return result;
}

