//<![CDATA[
function trim(str){
	var str = str+'';	// cast number to string 
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
function isEmpty(param){
	return (param = "" || param == null || trim(param) == "") ? true : false;
}
function isHangul(param){
	return /([가-힣\x20])/i.test(trim(param)) ? true : false;
}
function isNumber(param){
	//isNaN(v) , /^\s+$/, /\d/ 
	return isNaN(param) ? false : true;
}
function isAlpha(param){
	return /([a-zA-Z])/i.test(trim(param)) ? true : false;
}
function isAlphaNumber(param){
	return /\w/.test(trim(param)) ? true : false;
}
function isText(param){	// 특수문자만 제외
	return /([가-힣\x20\w])/i.test(trim(param)) ? true : false;
}
function isMin(param, len){
	return (getStrByte(trim(param)) >= len) ? true : false;
}
function isMax(param, len){
	return (getStrByte(trim(param)) <= len) ? true : false;
}
function isEmail(param){
	return (/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(trim(param))) ?  true : false;
}
function isUrl(param){
	return /^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(trim(param)) ?  true : false;
}
function isDate(param){
	return (/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/.test(trim(param))) ? true : false;
}
function isPhone(param){
	return (/^01([0|1|6|7|8|9]?)-[0-9]{3,4}-[0-9]{4}$/.test(trim(param))) ? true : false;
}
function isTel(param){
	return (/^0([0-9]{2,3})-[0-9]{3,4}-[0-9]{4}$/.test(trim(param))) ? true : false;
}
function getStrByte(param) { 
	var len = 0;
	var str = trim(param);
	for (var i=0; i < str.length; i++) {
		var n = str.charCodeAt(i);
		if ((n >= 0)  && (n < 256)) {
			len ++;
		}else{
			len += 2;
		}
	}
	return len;
}

//]]>