/***************************************************************************
 * filename : FFString.js<br>
 * String관련 클래스<br>
 *
 * @version	: 1.0
 * @author	: Copyright (c) 2003 by free270. All Rights Reserved.
****************************************************************************/
if(FFSTRING_CLASS!=null) {
	alert("[FFString.js]는 이미 include 되어있습니다!!");
}
var FFSTRING_CLASS = true;

function FFStringClass(){
	this.TEXT_ALPHA		= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	this.TEXT_EMAIL		= this.TEXT_ALPHA + "@._-~";
	this.TEXT_NUMBER	= "1234567890";
	this.TEXT_TELNUMBER	= "-1234567890";

	this.checkFormat	= FFString_checkFormat;		/* 입력값이 유효한지 체크한다 */
	this.checkNull		= FFString_checkNull;		/* 입력내용이 없음을 체크한다 */
	this.checkBlank		= FFString_checkBlank;		/* 입력값에 스페이스만 있는지 체크한다 */
	this.checkNumber	= FFString_checkNumber;		/* 숫자인지 체크한다 */
	this.checkNum		= FFString_checkNum;		/* checkNumber에 notnull 옵션이 붙은거 */
	this.checkEmail		= FFString_checkEmail;		/* 이메일주소의 유효성을 체크한다 */
	this.checkJumin		= FFString_checkJumin;		/* 주민등록번호를 체크한다 */

	this.isNull			= FFString_isNull;			/* 입력내용이 없음을 비교한다 */
	this.isBlank		= FFString_isBlank;			/* 입력내용에 스페이스만 있는지 비교한다 */
	this.isNumber		= FFString_isNumber;		/* 입력내용이 숫자인지 비교한다 */
	this.isValidFormat	= FFString_isValidFormat;	/* 입력내용이 유효한 값인지 비교한다 */
	this.isValidEmail	= FFString_isValidEmail;	/* 이메일주소가 유효한지 비교한다 */
	this.isValidJumin	= FFString_isValidJumin;	/* 주민등록 번호가 유효한지 비교한다 */
	this.replace		= FFString_replace;			/* replace 함수이다 */
	this.addComma		= FFString_addComma;		/* 1000자리 점을 찍어 주는 함수이다 */
	this.trimLeft		= FFSting_trimLeft;			/* 왼쪽 스페이스를 지워주는 함수이다 */
	this.trimRight		= FFString_trimRight;		/* 오른쪽 스페이스를 지워주는 함수이다 */
	this.trim			= FFString_trim;			/* 양쪽 스페이스를 지워즈는 함수이다 */
	this.fillString		= FFString_fillString;		/* 특정문자를 원하는 만큼 채워준다 */
	this.fillRight		= FFString_fillRight;		/* 특정문자를 오른쪽에 채워준다 */
	this.fillLeft		= FFString_fillLeft;		/* 특정문자를 왼쪽에 채워준다 */
	this.getByteLength	= FFString_getByteLength;	/* Byte수를 수한다 */
	this.cutByteString	= FFString_cutByteString;	/* Byte수만큼 자른다 */
	this.cutByteStringToArray = FFString_cutByteStringToArray; /* Byte수만큼 잘라서 배열을 리턴한다 */
	this.findSpace = FFString_findSpace;

	this.checkTel		= FFString_checkTel;
	this.isValidTel		= FFString_isValidTel;
	this.checkHP		= FFString_checkHP;
	this.isValidHP		= FFString_isValidHP;
	this.checkBusinessNumber = FFString_checkBusinessNumber;
	this.isValidBusinessNumber = FFString_isValidBusinessNumber;

	this.toScriptValue  = FFString_toScriptValue;
	this.toInput		= FFString_toInput;
	this.parseInt		= FFString_parseInt;

	this.setTelToObj	= FFString_setTelToObj;
	this.setZipToObj	= FFString_setZipToObj;

}
var FFString = new FFStringClass();










/*###########[아래 함수들은 클래스의 정의를       ]######################*/
/*###########[위해서만 사용됩니다.                ]######################*/
/*###########[직접 사용하시지 마시고 위에 정의된  ]######################*/
/*###########[클래스를 이용해 호출해 주세요       ]######################*/

/**
 * check the valid of input field
 * @param obj     : input Object
 * @param objname : name of feild (ex) tilte
 * @param astr    : make a limit to input(use this FFSTRING_DEF_ALPHA,FFSTRING_DEF_NUMBER,FFSTRING_DEF_TELDIGIT)
  * @param lmin    : minimal length to input  (number of byte)
 * @param lmax    : maximal length to input (number of byte)
 * @param showmsg : alert if value is true or none 
 *								return true/false if value is false, just check
 * 길이 제한을 주고 싶지 않을때는 lmin,lmax를 -1로 넘긴다
 */

function FFString_checkFormat( obj ,  astr, lmin, lmax , showmsg ){
	var result = this.isValidFormat(obj.value, astr, lmin, lmax);
	var msg = "";

	switch(result){
	case 1: return true;
	case -1: msg = (obj.objname!=null?obj.objname + "는(은) ":"") + lmin + " 자 이상 입력하세요";	break;
	case -2: msg = (obj.objname!=null?obj.objname + "는(은) ":"") + lmin + " ~ " + lmax + " 자로 입력하세요";	break;
	case -3: msg = (obj.objname!=null?obj.objname + "에 ":"") + "허용할 수 없는 문자가 입력되었습니다";	break;	
	}
	
	if(showmsg!=null && showmsg) {	
		alert(msg);
		obj.select();
		obj.focus();
	}

	return false;
}

function FFString_isValidFormat( t , astr, lmin, lmax ){
	var i
	var length = this.getByteLength(t);

	if(lmin>=0 && lmax >=0){
		if (length < lmin || length > lmax) {
			if (lmin == lmax)	return -1;	//alert(objname + '는(은) ' + lmin + ' 자 이어야 합니다');
			else				return -2;	//alert(objname + '는(은) ' + lmin + ' ~ ' + lmax + ' 자로 입력하셔야 합니다');
		}
	}
	if (astr.length > 1) {
		for (i=0; i < length; i++){
			if(astr.indexOf(t.substring(i,i+1))<0) {
				return -3;					//alert(objname + '에 허용할 수 없는 문자가 입력되었습니다');
			}
		}
	}

	return 1;
}


function FFString_checkNull( obj , showmsg){
	if(this.isNull(obj.value)){
		if(showmsg == null || showmsg) {
			alert((obj.objname!=null?obj.objname + "에 ":"") + "내용을 입력하세요.");
			obj.focus();
		}
		return false;
	}else{
		return true;
	}
}


/**
 * check inputing only spaces
 * @param obj     : input Object
 * @param objname : name of field (ex) title
 * @param showmsg : alert if value is true or none 
 *								return true/false if value is false, just check
 */
function FFString_checkBlank( obj ,  showmsg){
	if(this.isBlank(obj.value)){
		if(showmsg == null || showmsg) {
			alert( (obj.objname!=null?obj.objname + "에 ":"") + "공백만 입력할 수 없습니다.");
			obj.focus();
		}
		return false;
	}else{
		return true;
	}
}

function FFString_checkNum( obj , notnull, showmsg){
	if(notnull){
		if(obj.value==null || obj.value==""){
			if(showmsg == null || showmsg) {
				obj.value = "0";
				//alert((obj.objname!=null?obj.objname + "에 ":"") + "공백만 입력할 수 없습니다.");
				//obj.focus();
			}
			return false;
		}
	}
	if(!this.isNumber(obj.value)){
		if(showmsg == null || showmsg) {
			alert((obj.objname!=null?obj.objname + "에 ":"") + "숫자만 입력하세요!");
			obj.focus();
		}
		return false;
	}else{
		return true;
	}
}


function FFString_checkNumber( obj , showmsg){
	if(!this.isNumber(obj.value)){
		if(showmsg == null || showmsg) {
			alert((obj.objname!=null?obj.objname + "에 ":"") + "숫자만 입력하세요!");
			obj.focus();
		}
		return false;
	}else{
		return true;
	}
}

function FFString_isNull( value ){
	if(value == ""){
		return true;
	}else{
		return false;
	}
}
function FFString_isBlank( value ){
     /*if(value.search(/\s/) != -1){
     	return true;
     }else {
         return false;
     }
	*/
	if(value.replace(/ /ig,"")==""){
		return true;
	}else{
		return false;
	}
}
function  FFString_findSpace( str ){
     if(str.search(/\s/) != -1){
     	return true;
     }else {
        return false;
     }
}
function FFString_isNumber( value ){
	var nLen = value.length; 
	for( i = 0 ; i < nLen ; i++){
		temp = value.substring(i,i+1);
		if( (temp < '0' || temp > '9') && (temp != '-') ){
			return false;
		}     
		if(temp == '-' && i>0) return false;
	}
	return true;
}

function FFString_checkEmail(obj, notnull, showmsg){

	if(!notnull && (obj.value!=null || obj.value=="")){
		return true;
	}else{
		if(!FFString_isValidEmail(obj.value)){
			if(showmsg == null || showmsg) {
				alert((obj.objname!=null?obj.objname + "이(가) ":"이메일이 ") + "유효하지 않습니다");
				obj.focus();
			}

			return false;
		}else{
			return true;
		}	
	}
}

/**
 * check the valid E-mail address
 * @param value   : value
 * @return value excluded spaces , if value is null or "" return ""
 */
function FFString_isValidEmail(mail){

	var t = mail;
	var ValidFlag = false;
	var atCount = 0;
	var SpecialFlag;
	var atLoop;
	var atChr;
	var BadFlag = false;
	var tAry1;
	var UserName;
	var DomainName;

	if ( t.length > 0 && t.indexOf("@") > 0 && t.indexOf(".") > 0 ) {
		atCount = 0
		SpecialFlag = false
		for( atLoop=1; atLoop<=t.length; atLoop++ ) {
			atChr = t.substring( atLoop, atLoop+1 )
			if ( atChr == "@" ) atCount = atCount + 1

			if ( (atChr >= 32) && (atChr <= 44) ) SpecialFlag = true 
			if ( (atChr == 47) || (atChr == 96) || (atChr >= 123) ) SpecialFlag = true 
			if ( (atChr >= 58) && (atChr <= 63) ) SpecialFlag = true 
			if ( (atChr >= 91) && (atChr <= 94) ) SpecialFlag = true 
			if ( atChr == "," ) SpecialFlag = true
		}

		if ( ( atCount == 1 ) && (SpecialFlag == false ) ) {
			BadFlag = false
			tAry1 = t.split("@")
			UserName = tAry1[0]
			DomainName = tAry1[1]
			if ( (UserName.length <= 0 ) || (DomainName.length <= 0 ) ) BadFlag = true
			if ( DomainName.substring( 1, 2 ) == "." ) BadFlag = true
			if ( DomainName.substring( DomainName.length-1, DomainName.length) == "." ) BadFlag = true
			ValidFlag = true
		}
	}else{
		BadFlag = true;
	}
	if ( BadFlag == true ) ValidFlag = false
	return ValidFlag
}

/*
	
	if (message1[1] == "hanmail.net") {
		alert ("다음의 '온라인 우표제' 실시에 따라 다음 메일계정(예:abc@hanmail.net 또는abc@daum.net)은 등록되지 않습니다. 다른 메일 계정을 등록해주세요.");
		document.MFform.email.focus();
		return false;
	}
	
	if (message1[1] == "daum.net") {
		alert ("다음의 '온라인 우표제' 실시에 따라 다음 메일계정(예:abc@hanmail.net 또는 abc@daum.net)은 등록되지 않습니다. 다른 메일 계정을 등록해주세요.");
		document.MFform.email.focus();
		return false;
	}

	var arrMatch = mail.match(/^ (\".*\"|[A-Za-z0-9_-]([A-Za-z0-9_-]|[\+\.])*) @ (\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z0-9][A-Za-z0-9_-]*(\.[A-Za-z0-9][A-Za-z0-9_-]*)+) $/);
	if (arrMatch == null) {
        return false;
    }else{
		return true;
	}	
}

*/



function FFString_replace(originalString,searchText,replaceText) { 
	var strLength = originalString.length; 
	var txtLength = searchText.length; 
	if ((strLength == 0) || (txtLength == 0)) { 
		return originalString; 
	} 
	
	var i = originalString.indexOf(searchText); 
	if ((!i) && (searchText != originalString.substring(0,txtLength))){ 
		return originalString; 
	} 
	if (i == -1) { 
		return originalString; 
	} 

	var newstr = originalString.substring(0,i) + replaceText; 
	if (i+txtLength < strLength){ 
		newstr += FFString_replace(originalString.substring(i+txtLength,strLength),searchText,replaceText); 
	} 
	
	return newstr;
} 


/**
 * insert ',' 
 * @param value   : type of number
 * @return string with ',' ex) 123456 ===> 123,456
 */
function FFString_addComma( value ){
	var tmpValue  = "";
	var realValue = "";
	value = value + "";
	var length = value.length; 

	var count = 0;
	for(var i=length;i>=0;i--){
		tmpValue += value.substring(i,i+1);
		if((count-1)%3==2 && i>0) tmpValue +=",";
		count++;
	}
	length = tmpValue.length;

	for(var i=length;i>=0;i--){
		realValue += tmpValue.substring(i,i+1);
	}
	return realValue;
}

/**
 * cut the space left side String
 * @param value   : value
 * @return value cut left space, if value is null or " " return  " "
 */
function FFSting_trimLeft( value ){
	if(value==null || value=="") return "";

	var length = value.length;

	var i;
	for(i=0;i<length;i++){
		if(value.charAt(i) != " ") break;			
	}
	return value.substring(i);	
}


/**
 * cut the space right side of String
 * @param value   : value
 * @return value cut right space , if value is null or " " return " "
 */

function FFString_trimRight( value ){
	if(value==null || value=="") return "";

	var length = value.length;

	var i;
	for(i=length-1;i>=0;i--){
		if(value.charAt(i) != " ") break;			
	}
	return value.substring(0,i+1);	
}


/**
 * cut the spaces of right and left
 * @param value   : value
 * @return value cut the spaces ,if value is null or " " return " "
 */

function FFString_trim( value ){
	return FFString_trimRight(FFSting_trimLeft(value));	
}


/**
 * repeat and attatch string in nCount times 
 * @param  srValue : value to repeat
 * @param  nCount : times to repeat
 * @return srValue attatched 
 */

function FFString_fillString(srValue,nCount){
	var temp = "";
	
	for(var i=0;i<nCount;i++){
		temp += srValue;
	}

	return temp;		
}


/**
 * fill fillchar to right side of string nCount times
 * @param  srValue  : value to repeat
 * @param  nLength  : length to repeat
 * @return srValue attatched
 */

function FFString_fillRight(srValue, nCount, fillchar){	
	if(srValue==null) return "";		
	
	var temp = "";
	temp += srValue;
	temp += FFString_fillString(fillchar,nCount - srValue.length);
	
	return temp;
}


/**
 * fill fillchar to left side of string nCount times
 * @param  srValue  : value to repeat
 * @param  nCount   : number to repeat
 * @return srValue attatched
 */

function FFString_fillLeft(srValue, nCount, fillchar){	
	if(srValue==null) return "";		

	var len = srValue.length;

	temp = FFString_fillString(fillchar,nCount-len) + srValue;
	
	return temp;
}


/**
 * count the number of byte of String(length is 1 in Korean but byte is 2)
 * @param obj   : textfield ,textarea objec
 * @return number of byte
 */
function FFString_getByteLength( msg ){
	var str = new String(msg);
	var len = str.length;
	var count = 0;

	for (k=0 ; k<len ; k++){
		temp = str.charAt(k);

		if (escape(temp).length > 4) {
			count += 2;
		}
		else if (temp == '\r' && str.charAt(k+1) == '\n') { // in case \r\n
			count += 2;
		}
		else if (temp != '\n') {
			count++;
		}
	}
	return count;	
}


/**
 * cut string upto number of btye, alse cut propery in Korean(if Korean is broken, take the floor )
 * set as the result after cut the value of obj upto maxlength
 * @param obj       : textfield ,textarea objec
 * @param mexlength : maxlength
 */

function FFString_cutByteString( msg, maxlength) {
	var str,msg;
	var len=0;
	var temp;
	var count;
	count = 0;
	 
	str = new String(msg);
	len = str.length;

	for(k=0 ; k<len ; k++) {
		temp = str.charAt(k);
		
		if(escape(temp).length > 4) {
			count += 2;
		}
		else if (temp == '\r' && str.charAt(k+1) == '\n') { // in case \r\n
			count += 2;
		}		
		else if(temp != '\n') {
			count++;
		}
		if(count > maxlength) {
			str = str.substring(0,k);
			break;
		}
	}

	return str;
}


/**
 * set to string Arrary(arTemp) after cut the string upto number of byte
 * @param arTemp    : Object Array contain the result
 * @param msg       : value to process
 * @param maxlength : maxlength to cut
 * @return arTemp size of array
 */

function FFString_cutByteStringToArray(msg, maxlength) {
	var str;
	var len=0;
	var temp;
	var count;
	var srTemp = new String(msg);
	var arTemp = Array();

	len = srTemp.length;

	for(var i=0;srTemp.length>0;i++){
		count = 0;
		for(k=0 ; k<len ; k++) {
			str = srTemp;
			temp = srTemp.charAt(k);
			
			if(escape(temp).length > 4) {
				count += 2;
			}
			else if (temp == '\r' && srTemp.charAt(k+1) == '\n') { //in case \r\n
				count += 2;
			}		
			else if(temp != '\n') {
				count++;
			}
			if(count > maxlength) {
				str = srTemp.substring(0,k);
				break;
			}
		}
		arTemp[i] = new Array();
		arTemp[i] = str;
		srTemp = srTemp.substring(k);
	}
	return arTemp;
}

function FFString_checkJumin( obj, obj2, showmsg){
	if(!this.isValidJumin(obj.value,obj2.value)){
		if(showmsg == null || showmsg) {
			alert((obj.objname!=null?obj.objname + "가(이) ":"주민등록번호가 ") + "유효하지 않습니다.");
			obj.focus();
		}
		return false;
	}else{
		return true;
	}
}

function FFString_isValidJumin(c1, c2) {
	var yy = c1.substring(0,2);
	var mm = c1.substring(2,4);
	var dd = c1.substring(4,6);
	var gender = c2.substring(0,1);
	var ck=0;

	// 처음 7자 검사
	if (c1.length != 6 || c2.length != 7 || yy < 20 || mm < 1 || mm > 12 || dd < 0 || dd > 31 || gender > 2 || gender < 1) {
		return false;
	}

	//끝자리 검증번호 유효성 검사
	var total = c1 + c2;
	for (i=0; i < 12; i++) {
		ck  += (i%8+2)*total.substring(i, i+1);
	}
	ck = (11-(ck%11))%10;	
	if (parseInt(ck) != parseInt(total.substring(12, 13))) {
		return false;
	}

	return true;
} 




function FFString_checkTel(obj1, obj2, obj3, notnull, showmsg){
	if(!notnull){
		if(obj1.value == "" && obj2.value == "" && obj3.value == ""){
			return true;
		}else{
			return FFString_isValidTel(obj1, obj2, obj3, showmsg);		
		}
	}else{
		return FFString_isValidTel(obj1, obj2, obj3, showmsg);
	}
	
}

function FFString_isValidTel(obj1, obj2, obj3, showmsg){
	if(obj1==null || obj2==null || obj3==null){
		alert("함수 파라메트 오류입니다.( in FFString_isValidTel() )");			
		return false;
	}

	if(!FFString_isNumber(obj1.value)){
		if(showmsg == null || showmsg) {
			alert((obj1.objname!=null?obj1.objname + "가(이) ":"전화번호가 ") + "유효하지 않습니다.\n\n숫자만 입력하세요");
			obj1.focus();
		}

		return false;
	}
	if(!FFString_isNumber(obj2.value)){
		if(showmsg == null || showmsg) {
			alert((obj2.objname!=null?obj2.objname + "가(이) ":"전화번호가 ") + "유효하지 않습니다.\n\n숫자만 입력하세요");
			obj2.focus();
		}
		return false;	
	}
	if( !FFString_isNumber(obj3.value)){
		if(showmsg == null || showmsg) {
			alert((obj3.objname!=null?obj3.objname + "가(이) ":"전화번호가 ") + "유효하지 않습니다.\n\n숫자만 입력하세요");
			obj3.focus();
		}
		return false;
	}

	if(obj1.value.length<2 || obj1.value.length>3){
		if(showmsg == null || showmsg) {
			alert((obj1.objname!=null?obj1.objname + "가(이) ":"전화번호가 ") + "유효하지 않습니다.\n\n2~3 글자로 입력하세요");
			obj1.focus();
		}
		return false;
	}
	if(obj2.value.length<3 || obj2.value.length>4){
		if(showmsg == null || showmsg) {
			alert((obj2.objname!=null?obj2.objname + "가(이) ":"전화번호가 ") + "유효하지 않습니다.\n\n3~4 글자로 입력하세요");
			obj2.focus();
		}
		return false;
	}
	if(obj3.value.length != 4){
		if(showmsg == null || showmsg) {
			alert((obj3.objname!=null?obj3.objname + "가(이) ":"전화번호가 ") + "유효하지 않습니다.\n\n4 글자로 입력하세요");
			obj3.focus();
		}
		return false;
	}

	return true;
}


function FFString_checkHP(obj1, obj2, obj3, notnull, showmsg){
	if(!notnull){
		if(obj1.value == "" && obj2.value == "" && obj3.value == ""){
			return true;
		}else{
			return FFString_isValidHP(obj1, obj2, obj3, showmsg);		
		}
	}else{
		return FFString_isValidHP(obj1, obj2, obj3, showmsg);
	}
	
}

function FFString_isValidHP(obj1, obj2, obj3, showmsg){
	if(obj1==null || obj2==null || obj3==null){
		alert("함수 파라메트 오류입니다.( in FFString_isValidTel() )");			
		return false;
	}
	if(!FFString_isNumber(obj1.value)){
		if(showmsg == null || showmsg) {
			alert((obj1.objname!=null?obj1.objname + "가(이) ":"휴대폰번호가 ") + "유효하지 않습니다.\n\n숫자만 입력하세요");
			obj1.focus();
		}

		return false;
	}
	if(!FFString_isNumber(obj2.value)){
		if(showmsg == null || showmsg) {
			alert((obj2.objname!=null?obj2.objname + "가(이) ":"휴대폰번호가 ") + "유효하지 않습니다.\n\n숫자만 입력하세요");
			obj2.focus();
		}
		return false;	
	}
	if( !FFString_isNumber(obj3.value)){
		if(showmsg == null || showmsg) {
			alert((obj3.objname!=null?obj3.objname + "가(이) ":"휴대폰번호가 ") + "유효하지 않습니다.\n\n숫자만 입력하세요");
			obj3.focus();
		}
		return false;
	}

	if(obj1.value.length != 3){
		if(showmsg == null || showmsg) {
			alert((obj1.objname!=null?obj1.objname + "가(이) ":"휴대폰번호가 ") + "유효하지 않습니다.");
			obj1.focus();
		}
		return false;
	}
	if(obj2.value.length<3 || obj2.value.length>4){
		if(showmsg == null || showmsg) {
			alert((obj2.objname!=null?obj2.objname + "가(이) ":"휴대폰번호가 ") + "유효하지 않습니다.\n\n3~4 글자로 입력하세요");
			obj2.focus();
		}
		return false;
	}
	if(obj3.value.length != 4){
		if(showmsg == null || showmsg) {
			alert((obj3.objname!=null?obj3.objname + "가(이) ":"휴대폰번호가 ") + "유효하지 않습니다.\n\n4 글자로 입력하세요");
			obj3.focus();
		}
		return false;
	}

	return true;
}


function FFString_checkBusinessNumber(obj1, obj2, obj3, notnull, showmsg){
	if(!notnull){
		if(obj1.value == "" && obj2.value == "" && obj3.value == ""){
			return true;
		}else{
			return FFString_isValidBusinessNumber(obj1, obj2, obj3, showmsg);		
		}
	}else{
		return FFString_isValidBusinessNumber(obj1, obj2, obj3, showmsg);
	}
}
function FFString_isValidBusinessNumber(obj1, obj2, obj3, showmsg){
	if(obj1==null || obj2==null || obj3==null){
		alert("함수 파라메트 오류입니다.( in FFString_isValidBusinessNumber() )");			
		return false;
	}

	if(!FFString_isNumber(obj1.value)){
		if(showmsg == null || showmsg) {
			alert((obj1.objname!=null?obj1.objname + "가(이) ":"사업자번호가 ") + "유효하지 않습니다.\n\n숫자만 입력하세요");
			obj1.focus();
		}

		return false;
	}
	if(!FFString_isNumber(obj2.value)){
		if(showmsg == null || showmsg) {
			alert((obj2.objname!=null?obj2.objname + "가(이) ":"사업자번호가 ") + "유효하지 않습니다.\n\n숫자만 입력하세요");
			obj2.focus();
		}
		return false;	
	}
	if( !FFString_isNumber(obj3.value)){
		if(showmsg == null || showmsg) {
			alert((obj3.objname!=null?obj3.objname + "가(이) ":"사업자번호가 ") + "유효하지 않습니다.\n\n숫자만 입력하세요");
			obj3.focus();
		}
		return false;
	}

	if(obj1.value.length != 3){
		if(showmsg == null || showmsg) {
			alert((obj1.objname!=null?obj1.objname + "가(이) ":"사업자번호가 ") + "유효하지 않습니다.\n\n3 글자로 입력하세요");
			obj1.focus();
		}
		return false;
	}
	if(obj2.value.length!=2){
		if(showmsg == null || showmsg) {
			alert((obj2.objname!=null?obj2.objname + "가(이) ":"사업자번호가 ") + "유효하지 않습니다.\n\n2 글자로 입력하세요");
			obj2.focus();
		}
		return false;
	}
	if(obj3.value.length != 5){
		if(showmsg == null || showmsg) {
			alert((obj3.objname!=null?obj3.objname + "가(이) ":"사업자번호가 ") + "유효하지 않습니다.\n\n5 글자로 입력하세요");
			obj3.focus();
		}
		return false;
	}


	var objstring = obj1.value +"-"+ obj2.value +"-"+ obj3.value;
	var li_temp, li_lastid;
	var biz_value = [];

	if ( objstring.length == 12 ){
		biz_value[0] = ( parseFloat(objstring.substring(0 ,1)) * 1 ) % 10;
		biz_value[1] = ( parseFloat(objstring.substring(1 ,2)) * 3 ) % 10;
		biz_value[2] = ( parseFloat(objstring.substring(2 ,3)) * 7 ) % 10;
		biz_value[3] = ( parseFloat(objstring.substring(4 ,5)) * 1 ) % 10;
		biz_value[4] = ( parseFloat(objstring.substring(5 ,6)) * 3 ) % 10;
		biz_value[5] = ( parseFloat(objstring.substring(7 ,8)) * 7 ) % 10;
		biz_value[6] = ( parseFloat(objstring.substring(8 ,9)) * 1 ) % 10;
		biz_value[7] = ( parseFloat(objstring.substring(9,10)) * 3 ) % 10;
		li_temp = parseFloat(objstring.substring(10,11)) * 5 + "0";
		biz_value[8] = parseFloat(li_temp.substring(0,1)) + parseFloat(li_temp.substring(1,2));
		biz_value[9] = parseFloat(objstring.substring(11,12));
		li_lastid = (10 - ( ( biz_value[0] + biz_value[1] + biz_value[2] + biz_value[3] + biz_value[4] + biz_value[5] + biz_value[6] + biz_value[7] + biz_value[8] ) % 10 ) ) % 10;
		if (biz_value[9] != li_lastid){
			if(showmsg == null || showmsg) {
				alert((obj1.objname!=null?obj1.objname + "가(이) ":"사업자번호가 ") + "유효하지 않습니다.");
				obj1.focus();
				obj1.select();
			}
			return false;
		}else
			return true;
	}else {
		if(showmsg == null || showmsg) {
			alert((obj1.objname!=null?obj1.objname + "가(이) ":"사업자번호가 ") + "유효하지 않습니다.");
			obj1.focus();
			obj1.select();
		}
		return false;
	}

	return true;
}

function FFString_toScriptValue(str){
	if(str==null){
		return "";
	}

	var tmpString = "";
	tmpString  = str;
	//tmpString  = this.replace(tmpString,"\","\\");
	tmpString  = this.replace(tmpString, "'", "\'")
	tmpString  = this.replace(tmpString, "\"", "\\\"")
	//tmpString  = this.replace(tmpString, chr(13) & chr(10),"\r\n")				
	return tmpString;

}

function FFString_toInput(str){
	if(str==null){
		return "";
	}
	
	var tmpString = str
	tmpString  = this.replace(tmpString, "&",		"&amp;")				
	tmpString  = this.replace(tmpString, "<",		"&lt;")				
	tmpString  = this.replace(tmpString, ">",		"&gt;")				
	tmpString  = this.replace(tmpString, "\"",		"&#34;")
	tmpString  = this.replace(tmpString, "\r",		"&#13;")
	tmpString  = this.replace(tmpString, "\n",	"&#10;")
	return tmpString;
}

function FFString_parseInt(str){
	if(str==null || str==""){
		return 0;
	}
	var tmp = parseInt(str);

	if(tmp=="NaN"){
		return 0;
	}

	return tmp;
}

function FFString_setTelToObj(tel, obj1, obj2, obj3){
	if(tel== null || tel==""){
		obj1.value = "";
		obj2.value = "";
		obj3.value = "";
		return;
	}

	var arrTel = tel.split("-");

	if(arrTel.length != 3){
		obj1.value = "";
		obj2.value = "";
		obj3.value = "";
		return;
	}

	obj1.value = arrTel[0];
	obj2.value = arrTel[1];
	obj3.value = arrTel[2];

}
function FFString_setZipToObj(zip, obj1, obj2){
	if(zip== null || zip==""){
		obj1.value = "";
		obj2.value = "";
		return;
	}
	if(zip.length != 6){
		obj1.value = "";
		obj2.value = "";
		return;
	}

	obj1.value = zip.substring(0,3);
	obj2.value = zip.substring(3,6);
}

