﻿/* 영문입력 체크 */
String.prototype.IsEng = function() 
{
  if (this.search(/^[^A-Za-z]/) == -1)
	 return true;
  else
	 return false;
}
/* 영문,숫자 입력체크 */
String.prototype.IsEngNum = function() 
{
  if (this.search(/[^A-Za-z0-9]/) == -1)
	 return true;
  else
	 return false;
}
/* 공백제거 */
String.prototype.Trim = function() {
  return this.replace(/(^\s*)|(\s*$)|($\s*)/g, "");
}
/* 아이디 유효성 체크 */
String.prototype.IsID = function() {
  if (this.search(/[^A-Za-z0-9_-]/) == -1)
	 return true;
  else 
	 return false;
}
/* 영문 체크 */
String.prototype.IsAlpha = function() 
{
  if (this.search(/[^A-Za-z]/) == -1)
	 return true;
  else
	 return false;
}
/* 숫자체크 */
String.prototype.IsNumber = function() 
{
  if (this.search(/[^0-9]/) == -1)
	 return true;
  else
	 return false;
}
/* E-Mail 체크 */
String.prototype.IsEmail = function() 
{
    var pattern = /^(.+)@(.+)$/; 
    var atom = "\[^\\s\\(\\)<>#@,;:!\\\\\\\"\\.\\[\\]\]+"; 
    var word="(" + atom + "|(\"[^\"]*\"))"; 
    var user_pattern = new RegExp("^" + word + "(\\." + word + ")*$"); 
    var ip_pattern = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/; 
    var domain_pattern = new RegExp("^" + atom + "(\\." + atom +")*$"); 

    var arr = this.match(pattern); 
    if (!arr) return false; 
    if (!arr[1].match(user_pattern)) return false; 

    var ip = arr[2].match(ip_pattern); 
    if (ip) { 
          for (var i=1; i<5; i++) if (ip[i] > 255) return false; 
    } 
    else { 
          if (!arr[2].match(domain_pattern)) return false; 
          var domain = arr[2].match(new RegExp(atom,"g")); 
          if (domain.length<2) false;
          if (domain[domain.length-1].length<2 || domain[domain.length-1].length>3) 
                return  false; 
    }
    return true;

//  var flag, md, pd, i;
//  var str;

//  if ( (md = this.indexOf("@")) < 0 )
//	 return false;
//  else if ( md == 0 )
//	 return false;
//  else if (this.substring(0, md).search(/[^.A-Za-z0-9_-]/) != -1)
//	 return false;
//  else if ( (pd = this.indexOf(".")) < 0 )
//	 return false;
//  else if ( (pd + 1 )== this.length || (pd - 1) == md )
//	 return false;
//  else if (this.substring(md+1, this.length).search(/[^.A-Za-z0-9_-]/) != -1)
//	 return false;
//  else
//	 return true;
}
/* 한글자리 수 */
String.prototype.KorLength = function() 
{
  var temp;
  var set = 0;
  var mycount = 0;
  
  for( k = 0 ; k < this.length ; k++ ){
	 temp = this.charAt(k);
  
	 if( escape(temp).length > 4 ) {
		mycount += 2; 
	 }
	 else mycount++;
  }

  return mycount;
}
/* 주민등록번호 휴요성 체크 */
String.prototype.IsSocialNumber = function() 
{
  
  var first  = new Array(6);
  var second = new Array(7);
  var total = 0;
  var tmp = 0;
  
  if ( this.length != 13 )
	 return false;
  else {
	 for ( i = 1 ; i < 7 ; i++ )
		first[i] = this.substring(i - 1, i);
  
	 for ( i = 1 ; i < 8 ; i++ )
		second[i] = this.substring(6 + i - 1, i + 6);
  
	 for ( i = 1 ; i < 7 ; i++ ) {
		if ( i < 3 )
		   tmp = Number( second[i] ) * ( i + 7 );
		else if ( i >= 3 )
		   tmp = Number( second[i] ) * ( ( i + 9 ) % 10 );
	 
		total = total + Number( first[i] ) * ( i + 1 ) + tmp;
	 }
  
	 if ( Number( second[7] ) != ((11 - ( total % 11 ) ) % 10 ) ) 
		return false;
  }
  return true;
}
/* 바이트 수 반환 */
String.prototype.Bytes = function() 
{
	var str = this;
	var l = 0;
	for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 2 : 1;
	return l;
}
/* Replace */
String.prototype.ReplaceAll = function(oldValue, newValue) 
{
	
	var retValue = this;
	while (retValue.indexOf(oldValue) >= 0)
	{
		retValue = retValue.replace(oldValue, newValue);
	}
	
	return retValue;
}

String.prototype.DivDecimal = function(index)
{
	var value = this;
	var pos = String(value).indexOf('.');

	if (pos > 0 && String(value).length > pos + index)
	{
		value = String(value).substring(0, pos + index);
	}
	
	return value;				
}
