/**
 * 이메일 형식 검사
 */
function isEmail(value, msg)
{
	var reg = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	if(!reg.test(value))
	{
		if(msg) alert(msg);
		var retVal = false;
	}
	else
	{
		var retVal = true;
	}

	return retVal;
}

/**
 * 아이디 형식 인지 검사
 */
function isUserid(value, msg)
{
	var reg = /^[a-zA-Z]{1}[a-zA-Z0-9_]{4,11}$/;
	if(!reg.test(value))
	{
		if(msg) alert(msg);
		var retVal = false;
	}
	else
	{
		var retVal = true;
	}

	return retVal;
}

/**
 * 한글인지 검사
 */
function hasHangul(value, msg)
{
	var reg = /[가-힝]/;
	if(!reg.test(value))
	{
		if(msg) alert(msg);
		var retVal = false;
	}
	else
	{
		var retVal = true;
	}

	return retVal;
}

/**
 * 영문인지 검사
 */
function alphaOnly(value, msg)
{
	var reg = /^[a-zA-Z]+$/;
	if(!reg.test(value))
	{
		if(msg) alert(msg);
		var retVal = false;
	}
	else
	{
		var retVal = true;
	}

	return retVal;
}

/**
 * 숫자인지 검사
 */
function isNumeric(value, msg)
{
	var reg = /^[0-9]+$/;

	if(!reg.test(value))
	{
		if(msg) alert(msg);
		var retVal = false;
	}
	else
	{
		var retVal = true;
	}

	return retVal;
}


/**
 * 주민등록번호 검사
 */
function isJumin(value)
{
	var reg = /^([0-9]{6})-?([0-9]{7})$/; 
	var num = value;

	if (!reg.test(num)) return false; 
	num = RegExp.$1 + RegExp.$2;

	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;
}


/**
 * 사업자번호 검사
 */
function isBizNo(value, msg)
{ 
	var reg = /([0-9]{3})-?([0-9]{2})-?([0-9]{5})/; 
	var num = value;

	if (!reg.test(num)) return false; 
	num = RegExp.$1 + RegExp.$2 + RegExp.$3;

	// 사업자 번호 예외처리
	if(num == '1148652780' || num == '2118792080' || num == '6188119430' || num == '1058189390' || num == '2140896950' || num == '1361074270')
	{
		return true;
	}

	var cVal = 0; 

	for (var i=0; i<8; i++)
	{ 
		var cKeyNum = parseInt(((_tmp = i % 3) == 0) ? 1 : ( _tmp  == 1 ) ? 3 : 7); 
		cVal += (parseFloat(num.substring(i,i+1)) * cKeyNum) % 10; 
	} 
	var li_temp = parseFloat(num.substring(i,i+1)) * 5 + '0'; 
	cVal += parseFloat(li_temp.substring(0,1)) + parseFloat(li_temp.substring(1,2)); 

	if((parseInt(num.substring(9,10)) == 10-(cVal % 10)%10))
	{
		var retVal = true;
	}
	else
	{
		if(msg) alert(msg);
		var retVal = false;
	}

	return retVal; 
}


/**
 * 전화번호 형식 검사
 */
function isPhone(num)
{
	var pattern = /^(0[2-7][0-5]?|01[01346-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{3})|((080-[0-9]{3,4}|15(44|66|77|88))-[0-9]{3})$/;

	return (pattern.exec(num)) ? true : false;
}


/**
 * 이동전화번호 형식 검사
 */
function isMobile(num)
{
	var hp_number     = num.toString().replace(/-/g, '');
	var hp_check_num  = new Array('010', '011', '016', '017', '018', '019');
	var hp_number_len = hp_number.length;

	// 길이가 크면거나 작으면
	if(hp_number_len > 12 || hp_number_len < 10) return false;

	// 통신사 번호 체크
	var hp_number_f = hp_number.substring(0, 3);
	var res         = false;

	for(var i = 0;i < hp_check_num.length;i++)
	{
		if(hp_number_f == hp_check_num[i]) res = true;
	}

	if(res == true)
	{
		// 나머지 번호가 숫자인지 체크
		var hp_number_b = hp_number.substring(3, hp_number_len);

		for(var i = 0;i < hp_number_b.length;i++)
		{
			var piece_num = hp_number_b.substring(i, i + 1);
			if(piece_num < '0' || piece_num > '9') res = false;
		}
	}

	return res;
}

/**
 * 국제 전화번호 형식 검사
 */
function isPhoneInternational(value)
{
	var reg = /^([0]{1}[0-9]{1,2})-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
	var num = value;

	return true;
}


/**
 * 도메인 형식 검사
 */
function isDomain(domain_name)
{
	var domain = domain_name.trim();

	//일반도메인
	var reg = ' ~!@#$%^&*()_=+|\\{}[];:"\'<>,?\/';
	//한글인터넷 주소
	var reg_han = ' ~!@#$%^*_=+|\\{}[];:"\'<>,?\/';

	var c_len = domain.length;
	var s_len = reg.length;
	var pnt_pos = domain.indexOf('.');

	if(domain == '')
	{
		alert("입력된 도메인명이 없습니다.\n도메인명을 입력해 주시기 바랍니다.");
		return false;
	}

	if (domain.charAt(0) == '-')
	{
		alert("["+domain+"] 도메인명은 '-'로 시작할 수 없습니다.");
		return false;
	}

	if (domain.charAt(domain.length-1) == '-')
	{
		alert("["+domain+"] 도메인명은 '-'로 끝날 수 없습니다.");
		return false;
	}

	if(pnt_pos < 0)
	{
		reg = reg_han;
		s_len = reg.length;
	}

	for (j = 0; j < c_len; j++)
	{
		for (s = 0; s < s_len; s++)
		{
			if (domain.charAt(j) == reg.charAt(s))
			{
				alert('['+domain+'] 에 허용할 수 없는 문자 ['+reg.charAt(s)+'] 가 입력되었습니다');
				return false;
			}
		}
	}

	return true;
}

/**
 * 필드의 입력값 체크
 */
function isInputField(fieldName, msg)
{
	var val = fieldName.value;

	if(!val || val.trim() == '')
	{
		if(msg) alert(msg);
		fieldName.focus();

		return false;
	}

	return true;
}



/** 세금계산서 값 체크 **/
/**
 * 도메인 형식 검사
 */
function isDomain2(domain_name, service_name)
{
	var domain = domain_name.trim();

	//일반도메인
	var reg = ' ~!@#$%^&*()_=+|\\{}[];:"\'<>,?\/';
	//한글인터넷 주소
	var reg_han = ' ~!@#$%^*_=+|\\{}[];:"\'<>,?\/';

	var c_len = domain.length;
	var s_len = reg.length;
	var pnt_pos = domain.indexOf('.');

	if(domain == '')
	{
		alert("입력된 도메인명이 없습니다.\n도메인명을 입력해 주시기 바랍니다.");
		return false;
	}

	if (domain.charAt(0) == '-')
	{
		alert("["+domain+"] 도메인명은 '-'로 시작할 수 없습니다.");
		return false;
	}

	if (domain.charAt(domain.length-1) == '-')
	{
		alert("["+domain+"] 도메인명은 '-'로 끝날 수 없습니다.");
		return false;
	}

	if(pnt_pos < 0)
	{
		reg = reg_han;
		s_len = reg.length;
	}
	if(service_name != '디자인몰'){
		for (j = 0; j < c_len; j++)
		{
			for (s = 0; s < s_len; s++)
			{
				if (domain.charAt(j) == reg.charAt(s))
				{
					alert('['+domain+'] 에 허용할 수 없는 문자 ['+reg.charAt(s)+'] 가 입력되었습니다');
					return false;
				}
			}
		}
	}

	return true;
}
