// 문자열의 byte size를 반환한다!

String.prototype.cut = function(len) {
	var str = this;
	var s = 0;
	for (var i=0; i<str.length; i++) {
		 s += (str.charCodeAt(i) > 128) ? 2 : 1;
		 if (s > len) return str.substring(0,i);
	}
	return str;
}

String.prototype.cut_2 = function(len) {
	var str = this;
	var s = 0;
	for (var i=0; i<str.length; i++) {
		 s += 1;
		 if (s > len) return str.substring(0,i);
	}
	return str;
}

String.prototype.isDigit = function() {
	var str = this;
	var dig_check = /[0-9|-]/;
	return dig_check.test(str);
}

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;
}

function getByteLength_2(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 += c.length/6;
	      else if ( c.indexOf("%") != -1 ) len += c.length/3;
	   }            
	   return len;
	}

function isValidURL(url){ 
	var RegExp = /^(([\w]+:)?\/\/)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 
	if(RegExp.test(url)){ 
		return true; 
	}else{ 
		return false; 
	} 
}

function email_chk(email) {
	var invalidChars = "\"|&;<>!*\'\\"   ;
	for (var i = 0; i < invalidChars.length; i++) {
		if (email.indexOf(invalidChars.charAt ) != -1) {
		  return false;
		}
	}
	if (email.indexOf("@")==-1){
		return false;
	}
	if (email.indexOf(" ") != -1){
		 return false;
	}
	if (window.RegExp) {
		var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
		var reg1 = new RegExp (reg1str);
		var reg2 = new RegExp (reg2str);

		if (reg1.test(email) || !reg2.test(email)) {
			return false;
		}
	}
	return true;
}

function trim(str){ 
      //정규 표현식을 사용하여 화이트스페이스를 빈문자로 전환
      str = str.replace(/^\s*/,'').replace(/\s*$/, ''); 
      return str; //변환한 스트링을 리턴.
}

// 특수 문자 체크
function specialCheck(message) {
   var doc = message;
   if(doc==""){
		return true;
   } else {
	if(doc.indexOf("~") != -1 || doc.indexOf("`") != -1 || doc.indexOf("!") != -1 || 
		doc.indexOf("@") != -1 || doc.indexOf("#") != -1 || doc.indexOf("$") != -1 || 
		doc.indexOf("%") != -1 || doc.indexOf("^") != -1 || doc.indexOf("&") != -1 || 
		doc.indexOf("*") != -1 || doc.indexOf("(") != -1 || doc.indexOf(")") != -1 || 
		doc.indexOf("-") != -1 || doc.indexOf("_") != -1 || doc.indexOf("=") != -1 || 
		doc.indexOf("+") != -1 || doc.indexOf("[") != -1 || doc.indexOf("{") != -1 || 
		doc.indexOf("]") != -1 || doc.indexOf("}") != -1 || doc.indexOf("\\") != -1 || 
		doc.indexOf("|") != -1 || doc.indexOf(";") != -1 || doc.indexOf(":") != -1 || 
		doc.indexOf("'") != -1 || doc.indexOf('"') != -1 || doc.indexOf(",") != -1 || 
		doc.indexOf("<") != -1 || doc.indexOf(".") != -1 || doc.indexOf(">") != -1 || 
		doc.indexOf("/") != -1 || doc.indexOf("?") != -1 ){
		  return false;       
	  } else {
		  return true;
	  }
  }
} 