/** 영문자와 숫자로만 이루어졌는지 Check */
String.prototype.isid = function() {
	if(this.search(/[^A-Za-z0-9_-]/) == -1)
		return true;
	else
		return false;
}

/** 전화번호 Check */
String.prototype.istel = function() {
	if(this.search(/[^0-9_-]/) == -1)
		return true;
	else
		return false;
}

/** 영문자만 이루어졌는지 Check */
String.prototype.isalpha = function() {
	if(this.search(/[^A-Za-z]/) == -1)
		return true;
	else
		return false;
}

/** 숫자로만 이루어졌는지 Check */
String.prototype.isnumber = function() {
	if(this.search(/[^0-9]/) == -1)
		return true;
	else
		return false;
}

/** 소수점 이루어졌는지 Check */
String.prototype.isfloat = function() {
	if(this.search(/[^0-9_.]/) == -1)
		return true;
	else
		return false;
}

/** E-Mail Check */
String.prototype.isemail = function() {
	if(this.search(/(.+)@.+\..+/) == -1)
		return false;
	else {
		for(var i=0; i < this.length;i++)
			if(this.charCodeAt(i) > 256)
				return false;
		return true;
	}
}

/** 날짜 Check (YYYY-MM-DD) */
String.prototype.isdate = function() {
	if(this.search(/\d{4}\-\d{2}\-\d{2}/) == -1)
		return false;
	else {
		return true;
	}
}

/** 한글을 2글자로 계산하여 순수한 길이를 계산한다 */
String.prototype.strLen = 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.ltrim = function() {
	var i, j = 0;
	var objstr

	for ( i = 0; i < this.length ; i++){
		if(this.charAt(i) == ' ' ){
			j = j + 1;
		}
		else{
			break;
		}
	}
	return this.substr(j, this.length - j+1)
}

/** 뒤 공백 제거 */
String.prototype.rtrim = function() {
	var i, j = 0;

	for ( i = this.length - 1; i >= 0 ; i--){
		if(this.charAt(i) == ' ' ){
			j = j + 1
		}
		else{
			break;
		}
	}
	return 	this.substr(0, this.length - j);
}

/** 앞/뒤 공백 제거 */
String.prototype.trim = function() {
	return this.replace(/\s/g, "");
}

/**
 * null을 공백 또는 대체 문자로 리턴함.
 * @param s1 체크할 문자열
 * @param s2 대체할 문자열
 * 작성자 : 장원규(jwk2000@ewideplus.com)
 */
nvl = function(s1, s2) {
    if(s1 == null) {
        if(s2 == null) {
            return "";
        } else {
            return s2;
        }
    }
    return s1;
}
/**********************
* 치환값을 변경함
* @param : 원본 값
* @param : 변경대상값
* @param : 치환값
* @return : 치환된 값이 적용된 스트링
* @see
************************/
function replaceAll(srcStr, targetStr, replaceStr)
{

    var newPattern = new RegExp(targetStr, "g");

    return srcStr.replace(newPattern, replaceStr);
}


/**
 * HashMap 객체
 */
HashMap = function() {
    this.aHashmap = new Array();
};

HashMap.prototype = {
    /**
      * 데이터 넣는 함수
      * @param szKey String Name of key
      * @param szValue String (or Object)
      * @return void
      */
    put : function(szKey, szValue) {
        this.aHashmap['"'+ szKey +'"'] = szValue;
    },

    /**
      * 데이터 가져오는 함수
      * @param szKey String Name of key
      * @return String (or Object)
      */
    get : function(szKey) {
        return this.aHashmap['"'+ szKey +'"'];
    },

    /**
      * 데이터 배열을 가져오는 함수
      * @return Array
      */
    getAll : function() {
        return this.aHashmap;
    },

    /**
      * 데이터 비우는 함수
      * @return void
      */
    clear : function() {
        this.aHashmap = new Array();
    },

    /**
      * 키값만 들어있는 배열을 반환하는 함수
      * added 2009.12.18
      * @return Array
      */
    getKeys : function() {
        var aKeys = new Array();
        for(i in this.aHashmap){
            aKeys.push(i);
        }
        return aKeys;
    }
};
//--------------------------------------------------------------------------------------------------
//Form체크를 위한 함수
//--------------------------------------------------------------------------------------------------
String.prototype.IsId = function() {
	if (this.search(/[^A-Za-z0-9_-__-]/) == -1)
		return true;
	else 
		return false;
}

String.prototype.IsPasswd = function() {
	if (this.search(/[^a-z0-9]/)== -1){
		return true;
	}else{
		return false;
	}
}


String.prototype.IsTel = function() {
	if (this.search(/[^0-9_-]/) == -1)
		return true;
	else 
		return false;
}

String.prototype.IsMoney = function() {
	if (this.search(/[^0-9_,]/) == -1)
		return true;
	else 
		return false;
}

String.prototype.IsAlpha = function() {
	if (this.search(/[^A-Za-z]/) == -1)
		return true;
	else
		return false;
}
//psh 2010-01-06 공백도 사용할 수 있는 영문자
String.prototype.EmpAlpha = function() {
if (this.search(/[^A-Z a-z]/) == -1)
		return true;
else
		return false;
}

String.prototype.IsNumber = function() {
	if (this.search(/[^0-9]/) == -1)
		return true;
	else
		return false;
}

String.prototype.IsJumin = function() {
	var jumin= this
	if (jumin.length  != 13) 
		return false;
	tval=jumin.charAt(0)*2 + jumin.charAt(1)*3 + jumin.charAt(2)*4
	+ jumin.charAt(3)*5 + jumin.charAt(4)*6 + jumin.charAt(5)*7
	+ jumin.charAt(6)*8+ jumin.charAt(7)*9 + jumin.charAt(8)*2
	+ jumin.charAt(9)*3 + jumin.charAt(10)*4 + jumin.charAt(11)*5;

	tval2=11- (tval % 11);
	tval2=tval2 % 10;
	
	if (jumin.charAt(12)==tval2 &&  (jumin.charAt(6)=="1" ||jumin.charAt(6)=="2")) {
		return true;
	}
	else{
		return false ;
	}
}

String.prototype.IsEmail = function() {
	if (this.search(/(.+)@.+\..+/) == -1)
		return false;
	else {
		for(var i=0; i < this.length;i++)
			if (this.charCodeAt(i) > 256)
				return false;
		return true;
	}
}

String.prototype.IsDate = function() {
	if (this.search(/\d{4}\.\d{2}\.\d{2}/) == -1)
		return false;
	else {
		return true;
	}
}

String.prototype.StrLen = 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.LTrim = function() {
	var i, j = 0;
	var objstr

	for ( i = 0; i < this.length ; i++){
		if (this.charAt(i) == ' ' ){
			j = j + 1;
		}
		else{
			break;
		}
	}
	return this.substr(j, this.length - j+1)  
}

String.prototype.RTrim = function() {
	var i, j = 0;

	for ( i = this.length - 1; i >= 0 ; i--){
		if (this.charAt(i) == ' ' ){
			j = j + 1
		}
		else{
			break;
		}
	}
	return 	this.substr(0, this.length - j);
}

String.prototype.Trim = function() {
	return this.replace(/\s/g, "");
}



/**
 * 한글 2글자 영문 1글자로 길이 측정하여 최대 길이 이상이면 alert를 띄우고 잘라낸다.
 * @param textObj 길이체크를할 객체
 * @param length_limit 지정한 최대 길이
 */
checkStringLength = function(textObj, length_limit) {
	var comment = textObj;
	var length = calculate_msglen(comment.value);
	var kor_cnt = Math.floor(length_limit/2);
	if (length > length_limit) {
		alert("한글 "+ kor_cnt + "자, 영문 " +length_limit + "자를 초과할 수 없습니다.");
		comment.value = comment.value.replace(/\r\n$/, "");
		comment.value = assert_msglen(comment.value, length_limit);
		comment.focus();
	}
}

/**
 * 문자열의 byte 길이를 리턴한다.
 * @param message 문자열
 * @return 문자열의 byte길이
 */
calculate_msglen = function(message) {
	var nbytes = 0;
	for (var i=0; i<message.length; i++) {
		var ch = message.charAt(i);
		if(escape(ch).length > 4) {
			nbytes += 2;
		} else if (ch == '\n') {
			if (message.charAt(i-1) != '\r') {
				nbytes += 1;
			}
		} else if (ch == '<' || ch == '>') {
			nbytes += 4;
		} else {
			nbytes += 1;
		}
	}
	return nbytes;
}



/**
 * 해당 길이(byte)만큼 문자열을 잘라낸 후 리턴한다.
 * @param message 자를 문자열
 * @param maximum 잘라질 문자열 길이
 * @return 해당 길이 만큼 잘라진 문자열
 */
assert_msglen = function(message, maximum) {
	var inc = 0;
	var nbytes = 0;
	var msg = "";
	var msglen = message.length;
	for (var i=0; i<msglen; i++) {
		var ch = message.charAt(i);
		if (escape(ch).length > 4) {
			inc = 2;
		} else if (ch == '\n') {
			if (message.charAt(i-1) != '\r') {
				inc = 1;
			}
		} else if (ch == '<' || ch == '>') {
			inc = 4;
		} else {
			inc = 1;
		}
		if ((nbytes + inc) > maximum) {
			break;
		}
		nbytes += inc;
		msg += ch;
	}
	return msg;
}

/**********************
* 이메일 체크 함수
*  ex : validateEmail("aaaa@empas.com")
* @param : 이메일 스트링값
* @return : boolean
* @see
************************/
validateEmail = function(varemail,elem) {
    var emailReg = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
    if ( !emailReg.test(varemail) ) {
        return false;
    }
    return true;
}


/**********************
* 이메일 합치기
*  ex : concatEmail('poo97', 'aaa.co.kr')
* @param : id
* @param : address
* @return : String 이메일주소
* @see
************************/
concatEmail = function(id, address) {
    if(id == "" || address == "") {
        return "";
    }
    var email = id+"@"+address;
    return email;
}

/**********************
* 이메일 나누기
*  ex : splitEmail('poo97@aaa.co.kr')
* @param : email address
* @return : Array  (poo97, aaa.co.kr)
* @see
************************/
splitEmail = function(email) {
    var emailArr = new Array(2);
    var atPos, emaillen;
    emaillen = email.length;
    if(email == "" && email.length < 4) {
        return "";
    }
    atPos = email.indexOf("@");
    emailArr[0] = email.substring(0, atPos);
    emailArr[1] = email.substring(atPos + 1, emaillen);
    return emailArr;
}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ >> formValidation 체크 시작 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

//인풋값에 캐릭터체크가 필요할 경우 페이지 onload에서 호출한다.
onloadCharCheck = function() {
  for(var j = 1; j <= 10 ; j++){          
      for (var i = 0; document.getElementById("form" + j) != null && document.getElementById("form" + j) != undefined && document.getElementById("form" + j) != "" && i < document.getElementById("form" + j).length; i++) {
          initSetLetterType(document.getElementById("form" + j).elements[i]);
      }
  }
}

/**********************
*  최대 btye 체크 로직
*  ex : validationMaxByte(form1.inputname.value , 10)
* @param : 체크할 String value
* @param : 최대 byte
* @return : boolean
* @see
************************/
validationMaxByte = function(textObj, length_limit) {
  var length = calculate_msglen(textObj);
  var kor_cnt = Math.floor(length_limit/2);
  if (length > length_limit) {
      return false;
  }
  return true;
}

/**********************
*  최소 btye 체크 로직
*  ex : validationMinByte(form1.inputname.value , 10)
* @param : 체크할 String value
* @param : 최소 byte
* @return : boolean
* @see
************************/
validationMinByte = function(textObj, length_limit) {
  var length = calculate_msglen(textObj);
  var kor_cnt = Math.floor(length_limit/2);
  if (length < length_limit) {
      return false;
  }
  return true;
}


/**
* 필수 항목 태그를 체크한다. (minlenth, maxlength 포함)
* @param target 페이지에 해당 form
*/
validate = function(target,sitecode) {
  var txt1,txt2;
  if(sitecode=="en"){
	  txt1 = "are mandatory.";
	  txt2 = "필수 항목입니다.(영어)";
  }else if(sitecode=="jp"){
	  txt1 = "は必須入力項目です。";
	  txt2 = "필수 항목입니다.(일본)";
  }else if(sitecode=="cn"){
	  txt1 = "항목은 필수입니다.(중국)";
	  txt2 = "필수 항목입니다.(중국)";
  }else{
	  txt1 = "항목은 필수입니다."// "<%=getLocaleLabel(localeCode,"항목필수","")%>";
	  txt2 = "필수 항목입니다.";
  }
	
  for (var i = 0; i < target.length; i++) {
      if (target.elements[i].getAttribute("nullable") != null && target.elements[i].getAttribute("nullable") != "") {
          if (target.elements[i].value.trim() == "") {
              if (target.elements[i].title) {
            	  
                  alert("<" + target.elements[i].title + ">"+txt1);
              } else {
                  alert(txt2);
              }
              target.elements[i].focus();
              return false;
          } else {
              /* 최대 바이트 체크 */
              if ( target.elements[i].getAttribute("maxbyte") != null &&  target.elements[i].getAttribute("maxbyte") != undefined && target.elements[i].getAttribute("maxbyte") != "") {
                  if ( !validationMaxByte(target.elements[i].value , target.elements[i].getAttribute("maxbyte")) ) {
                      /*  입력을 % 자리로 해주십시오. */
                      var errMsg = "입력을 % 자리로 해주십시오."+"(BYTE)";
                      if(target.elements[i].getAttribute("minbyte") != null && target.elements[i].getAttribute("minbyte") != undefined && target.elements[i].getAttribute("minbyte") != "") {
                      /* minbyte까지 설정되어 있으면.. */
                          //min, max 의 값이 동일하면  범위없이 값만 찍어준다
                          if(target.elements[i].getAttribute("minbyte") == target.elements[i].getAttribute("maxbyte")){
                              errMsg = errMsg.replace("%", target.elements[i].getAttribute("maxbyte"));
                          } else {
                              errMsg = errMsg.replace("%",target.elements[i].getAttribute("minbyte")+" ~ "+target.elements[i].getAttribute("maxbyte"));
                          }
                      } else {
                      /* maxbyte만 설정되어 있으면.. */
                          errMsg = errMsg.replace("%"," ~ "+target.elements[i].getAttribute("maxbyte"));
                      }
                      /*  _fU_i18n_FRA00029 : 최대 바이트 체크 */
                      var kor_cnt = Math.floor(target.elements[i].getAttribute("maxbyte")/2);
                      if(target.elements[i].getAttribute("title") != undefined && target.elements[i].getAttribute("title") != "") {
                          /* alert("[" + target.elements[i].getAttribute("title")  + "] " + errMsg);/* alert 메세지 함수 호출 */
                          alert("[" + target.elements[i].getAttribute("title")  + "] " + errMsg);/* alert 메세지 함수 호출 */
                      } else {
                          /* alert(errMsg); */
                          alert(errMsg);
                      }
                      /* target.elements[i].select(); */
                      return false;
                  }
              }

              /* 최소 바이트 체크 */
              if(target.elements[i].getAttribute("minbyte") != undefined && target.elements[i].getAttribute("minbyte") !="") {
                  if(target.elements[i].value.length == 0 || (!validationMinByte(target.elements[i].value, target.elements[i].getAttribute("minbyte"))) ) {
                      var errMsg = "입력을 % 자리로 해주십시오."+"(BYTE)";
                      if(target.elements[i].getAttribute("maxbyte") != undefined && target.elements[i].getAttribute("maxbyte") != "") {
                      /* maxbyte까지 설정되어 있으면.. */
                          //min, max 의 값이 동일하면  범위없이 값만 찍어준다
                          if(target.elements[i].getAttribute("minbyte") == target.elements[i].getAttribute("maxbyte")){
                              errMsg = errMsg.replace("%",target.elements[i].getAttribute("minbyte"));
                          } else {
                              errMsg = errMsg.replace("%",target.elements[i].getAttribute("minbyte")+" ~ "+target.elements[i].getAttribute("maxbyte"));
                          }
                      } else {
                      /* minbyte만 설정되어 있으면.. */
                          errMsg = errMsg.replace("%",target.elements[i].getAttribute("minbyte")+" ~ ");
                      }
                      var kor_cnt = Math.floor(target.elements[i].getAttribute("minbyte")/2);
                      /*  _fU_i18n_FRA00030 : 최소 바이트 체크 */
                      if(target.elements[i].getAttribute("title") != undefined) {
                          alert("[" + target.elements[i].getAttribute("title")  + "] " + errMsg);/* alert 메세지 함수 호출 */
                      } else {
                          alert(errMsg);
                      }
                      /* target.elements[i].select(); */
                      return false;
                  }
              }               
              
              if(target.elements[i].getAttribute("minlength") != null && target.elements[i].getAttribute("minlength") != undefined && target.elements[i].getAttribute("minlength") != "") {
            	  if(target.elements[i].value.length < target.elements[i].getAttribute("minlength")) {
                      var errMsg = "입력을 % 자리로 해주십시오."+"(LENGTH)";
                      if(target.elements[i].getAttribute("maxlength") != null && target.elements[i].getAttribute("maxlength") != undefined && target.elements[i].getAttribute("maxlength") != "" && target.elements[i].getAttribute("maxlength") != "2147483647") {
                      /* maxLength까지 설정되어 있으면.. */
                          //min, max 의 값이 동일하면  범위없이 값만 찍어준다
                          if(target.elements[i].getAttribute("minlength") == target.elements[i].getAttribute("maxlength")){
                              errMsg = errMsg.replace("%",target.elements[i].getAttribute("minlength"));
                          } else {
                              errMsg = errMsg.replace("%",target.elements[i].getAttribute("minlength")+" ~ "+target.elements[i].getAttribute("maxlength"));
                          }
                          target.elements[i].focus();
                      } else {
                      /* minlength만  설정되어 있으면.. */
                          errMsg = errMsg.replace("%",target.elements[i].getAttribute("minlength")+" ~ ");
                      }
                      /*  최소 길이 체크 */
                      if(target.elements[i].getAttribute("title")  != null && target.elements[i].getAttribute("title") != undefined &&
                          target.elements[i].getAttribute("title") != "") {
                          alert("[" + target.elements[i].getAttribute("title")  + "] " + errMsg);/* alert */
                      } else {
                          alert(errMsg);
                      }
                      /* target.elements[i].select(); */
                      target.elements[i].focus();
                      return false;
                  }
              }
          }
      } else if(target.elements[i].value != "") {
          /* 최대 바이트 체크 */
          if ( target.elements[i].getAttribute("maxbyte") != null &&  target.elements[i].getAttribute("maxbyte") != undefined && target.elements[i].getAttribute("maxbyte") != "") {
              if ( !validationMaxByte(target.elements[i].value , target.elements[i].getAttribute("maxbyte")) ) {
                  /*  입력을 % 자리로 해주십시오. */
                  var errMsg = "입력을 % 자리로 해주십시오."+"(BYTE)";
                  if(target.elements[i].getAttribute("minbyte") != null && target.elements[i].getAttribute("minbyte") != undefined && target.elements[i].getAttribute("minbyte") != "") {
                  /* minbyte까지 설정되어 있으면.. */
                      //min, max 의 값이 동일하면  범위없이 값만 찍어준다
                      if(target.elements[i].getAttribute("minbyte") == target.elements[i].getAttribute("maxbyte")){
                          errMsg = errMsg.replace("%", target.elements[i].getAttribute("maxbyte"));
                      } else {
                          errMsg = errMsg.replace("%",target.elements[i].getAttribute("minbyte")+" ~ "+target.elements[i].getAttribute("maxbyte"));
                      }
                  } else {
                  /* maxbyte만 설정되어 있으면.. */
                      errMsg = errMsg.replace("%"," ~ "+target.elements[i].getAttribute("maxbyte"));
                  }
                  /*  _fU_i18n_FRA00029 : 최대 바이트 체크 */
                  var kor_cnt = Math.floor(target.elements[i].getAttribute("maxbyte")/2);
                  if(target.elements[i].getAttribute("title") != undefined && target.elements[i].getAttribute("title") != "") {
                      /* alert("[" + target.elements[i].getAttribute("title")  + "] " + errMsg);/* alert 메세지 함수 호출 */
                      alert("[" + target.elements[i].getAttribute("title")  + "] " + errMsg);/* alert 메세지 함수 호출 */
                  } else {
                      /* alert(errMsg); */
                      alert(errMsg);
                  }
                  /* target.elements[i].select(); */
                  return false;
              }
          }

          /* 최소 바이트 체크 */
          if(target.elements[i].getAttribute("minbyte") != undefined && target.elements[i].getAttribute("minbyte") !="") {
              if(target.elements[i].value.length == 0 || (!validationMinByte(target.elements[i].value, target.elements[i].getAttribute("minbyte"))) ) {
                  var errMsg = "입력을 % 자리로 해주십시오."+"(BYTE)";
                  if(target.elements[i].getAttribute("maxbyte") != undefined && target.elements[i].getAttribute("maxbyte") != "") {
                  /* maxbyte까지 설정되어 있으면.. */
                      //min, max 의 값이 동일하면  범위없이 값만 찍어준다
                      if(target.elements[i].getAttribute("minbyte") == target.elements[i].getAttribute("maxbyte")){
                          errMsg = errMsg.replace("%",target.elements[i].getAttribute("minbyte"));
                      } else {
                          errMsg = errMsg.replace("%",target.elements[i].getAttribute("minbyte")+" ~ "+target.elements[i].getAttribute("maxbyte"));
                      }
                  } else {
                  /* minbyte만 설정되어 있으면.. */
                      errMsg = errMsg.replace("%",target.elements[i].getAttribute("minbyte")+" ~ ");
                  }
                  var kor_cnt = Math.floor(target.elements[i].getAttribute("minbyte")/2);
                  /*  _fU_i18n_FRA00030 : 최소 바이트 체크 */
                  if(target.elements[i].getAttribute("title") != undefined) {
                      alert("[" + target.elements[i].getAttribute("title")  + "] " + errMsg);/* alert 메세지 함수 호출 */
                  } else {
                      alert(errMsg);
                  }
                  /* target.elements[i].select(); */
                  return false;
              }
          }           
          
          if(target.elements[i].getAttribute("minlength") != null && target.elements[i].getAttribute("minlength") != undefined && target.elements[i].getAttribute("minlength") != "") {
              if(target.elements[i].value.length < target.elements[i].getAttribute("minlength")) {
                  var errMsg = "입력을 % 자리로 해주십시오."+"(LENGTH)";
                  if(target.elements[i].getAttribute("maxlength") != null && target.elements[i].getAttribute("maxlength") != undefined && target.elements[i].getAttribute("maxlength") != "" && target.elements[i].getAttribute("maxlength") != "2147483647") {
                  /* maxLength까지 설정되어 있으면.. */
                      //min, max 의 값이 동일하면  범위없이 값만 찍어준다
                      if(target.elements[i].getAttribute("minlength") == target.elements[i].getAttribute("maxlength")){
                          errMsg = errMsg.replace("%",target.elements[i].getAttribute("minlength"));
                      } else {
                          errMsg = errMsg.replace("%",target.elements[i].getAttribute("minlength")+" ~ "+target.elements[i].getAttribute("maxlength"));
                      }
                      target.elements[i].focus();
                  } else {
                  /* minlength만  설정되어 있으면.. */
                      errMsg = errMsg.replace("%",target.elements[i].getAttribute("minlength")+" ~ ");
                  }
                  /*  최소 길이 체크 */
                  if(target.elements[i].getAttribute("title")  != null && target.elements[i].getAttribute("title") != undefined &&
                      target.elements[i].getAttribute("title") != "") {
                      alert("[" + target.elements[i].getAttribute("title")  + "] " + errMsg);/* alert */
                  } else {
                      alert(errMsg);
                  }
                  target.elements[i].focus();
                  /* target.elements[i].select(); */
                  return false;
              }
          }
      }
  }
  return true;
}


/**
* 필수 항목 태그와 minlengh, maxlength, minbyte, maxbyte 체크 메서드를 호출한다.
* @param target 페이지에 해당 form
*/
validateForm = function(target,sitecode) {
  if( !validate( target,sitecode ) ) {
      return false;       
  } else {
      return true;
  }
}

/**********************
* 문자열에서 숫자만 빼오기 체크 로직
* ex : getOnlyNumberFormat(form1.name.value)
* @param : 변환할 String 값
* @return : void
* @see
************************/
getOnlyNumberFormat = function(sv) {
  if(sv == null) return;
  var temp="";
  var ret = "";

  for(var index = 0 ; index < sv.length ; index++) {
      temp = parseInt(sv.charAt(index), 10);
      if( temp >= 0 || temp <= 9) {
          ret +=temp;
      }
  }
  return ret;

}






/**********************
* 페이지 초기화시에 언어 및 숫자형 입력 및 표현 처리.
* @param : 이벤트를 셋팅할 element
* @return : void
* @see
************************/
initSetLetterType = function(elem) {   
  if (elem.getAttribute("chartype") == "kor") {/* 한글만 */
      elem.style.imeMode = "active";
      elem.onblur = setLetterKoreanOnlyBlur;
  } else if (elem.getAttribute("chartype") == "kornum") {/* 한글+숫자 */
      elem.style.imeMode = "active";
      elem.onblur = setLetterKorNumOnlyBlur;
  } else if (elem.getAttribute("chartype") == "koreng") {/* 한글+영문 */
      elem.style.imeMode = "auto";
      elem.onblur = setLetterKorEngOnlyBlur;
  } else if (elem.getAttribute("chartype") == "korengnum") {/* 한글+영문+숫자 */
      elem.style.imeMode = "auto";
      elem.onblur = setLetterKorEngNumOnlyBlur;
  } else if (elem.getAttribute("chartype")  == "eng") {/* 영어만 */
      elem.style.imeMode = "inactive";
      elem.onblur = setLetterEnglishOnlyBlur;
  } else if (elem.getAttribute("chartype")  == "engnum") {/* 영어+숫자 */
      elem.style.imeMode = "disabled";
      elem.onblur = setLetterEngNumOnlyBlur;
  /* 특수문자 입력 안되게 수정해야함. */
  } else if (elem.getAttribute("chartype")  == "float") {/* 실수형 */
      elem.onblur = setLetterFloatOnlyBlur;
  } else if (elem.getAttribute("chartype")  == "int") {/* 정수형 */
      elem.onblur = setLetterIntegerBlur;
  } else if (elem.getAttribute("chartype")  == "onlynum") {/* 오직 숫자만 */
	  elem.onkeypress = setOnlyNumber;
      //elem.onblur     = setKeyInputNumberOnlyBlur;
      elem.onpaste    = setPasteNumberOnly;
  } else if (elem.getAttribute("chartype")  == "money") {/* 정수로만 된 아주 기본적인 금액 표시 */
      elem.style.textAlign="right";
      elem.onblur = setMoneyBlur; /*  setKeydownMoney + setKeypressMoney 처리 */
  } else if (elem.getAttribute("chartype") == "floatmoney") {
      elem.style.textAlign="right";
      elem.onblur = setFloatMoneyBlur; /*  setKeydownFloatMoney + setFloatMoney 처리 */
  }
}

/**
* 이벤트 체크
* Firefox와 IE간 호환을 위함
*/
checkEvent = function(event) {
  if (!event) { /* IE일 경우 */
      event = window.event;
      event.target = event.srcElement;
      event.which = event.keyCode;
  }
  return event;
}


/**
* 숫자만 입력가능
* ex) 입력방법 (단 Comm_Js.js가 Include 되어있어야 한다.
* onkeyPress="javascript:numberKeyPress();" style="ime-mode:disabled;"
*/

numberKeyPress = function() {
  if ((event.keyCode<48) || (event.keyCode>57)){
      event.returnValue=false;
      return;
  }
  event.returnValue=true;
}

/**********************
* 페이지 초기화시 -,숫자 입력받기( - 키코드값 189)
* @param :
* @return : void
* @see
************************/
setKeydownMoney = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  if(event.shiftKey == true) event.returnValue = false;
  if ( event.which<48||(event.which>57&&event.which<96)||event.which>105 )/* 숫자 키코드값 */ {
      /*  enter, tab, backspace 방향키(앞,뒤),delete는 예외처리 */
      if(event.which == 8 || event.which == 9 || event.which == 37 || event.which == 39 || event.which == 189 || event.which == 46) {
          return true;
      }
      event.returnValue = false;
  }
}



/**********************
* 페이지 초기화 시에 금액 형태일 경우 키 입력시 금액 형태로 전환
* @param :
* @return : void
* @see
************************/
setKeypressMoney = function(event) {
  event = checkEvent(event); 
  var ev = event.target;
  var pKey = String.fromCharCode(event.which);
  var tempV = ev.value;
  if(tempV.length > 0){
      var stat = true;
      while(stat) {
          if(tempV.length > 0 && tempV.substring(0,1)==0) {
              tempV = tempV.substr(1);
          } else {
              stat = false;
          }
      }
  }
  var moneyReg = new RegExp('(-?[0-9]+)([0-9]{3})');
  tempV = tempV + pKey;
  tempV = tempV.replace(/\,/g, "");
  while(moneyReg.test(tempV)) {
      tempV = tempV.replace(moneyReg, '$1,$2');
  }
  ev.value = tempV;
  if(event.which == 9){ev.select();}
  event.returnValue=false;
}


/**********************
* 스트링값을 정수형 머니 형태로 변환
*  ex : changeIntMoneyType("1100000") 리턴되는 데이타 : 1,100,000
* @param : 변환할 String 데이타
* @return : 금액 형태로 변환된 스트링
* @see
************************/
changeIntMoneyType = function(data) {
  var tempV = data;
  var moneyReg = new RegExp('(-?[0-9]+)([0-9]{3})');
  tempV = tempV.replace(/\,/g, "");
  while(moneyReg.test(tempV)) {
      tempV = tempV.replace(moneyReg, '$1,$2');
  }
  return tempV;
}




/**********************
* 실수형 금액 입력제어 스크립트. 숫자 , . , - 값만 입력받음. 소수점 두째 자리까지만 입력됨
*  ex : changeIntMoneyType("1100000") 리턴되는 데이타 : 1,100,000
* @param : 변환할 String 데이타
* @return : 금액 형태로 변환된 스트링
* @see
************************/
setKeydownFloatMoney = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  if(event.shiftKey == true) event.returnValue = false;
  var floatindex = event.target.value.indexOf(".");
  if(floatindex != -1) {
      var floatNum = event.target.value.substring(floatindex+1);
      if (event.which == 8 )
          return;
      else if (floatNum.length > 1 )
          event.returnValue = false;
  }
  if ( event.which<48||(event.which>57&&event.which<96)||event.which>105 )/* 숫자 키코드값 */ {
      if( event.which == 8 || event.which == 9 || event.which == 37 || event.which == 39 || event.which == 189) {
          return;
      } else if( event.which == 190 && floatindex == -1 ) {
          return
      }
      event.returnValue = false;
  }
}


/**********************
* 키 입력시 float 타입의 금액 형태로 전환
* @param :
* @return :
* @see
************************/
setFloatMoney = function(event) {
  event = checkEvent(event);  
  var ev = event.target;
  var pKey = String.fromCharCode(event.which);
  var tempV = ev.value;
  var floatnum = "";
  if(tempV.indexOf(".") != -1) {
      floatnum = tempV.substring(tempV.indexOf(".")) + pKey;
      tempV = tempV.substring(0,tempV.indexOf("."));
  } else {
      tempV = tempV + pKey;
  }
  var moneyReg = new RegExp('(-?[0-9]+)([0-9]{3})');
  tempV = tempV.replace(/\,/g, "");
  while(moneyReg.test(tempV)) {
      tempV = tempV.replace(moneyReg, '$1,$2');
  }
  ev.value = tempV+floatnum;
  if(event.which == 9){ev.select();}
  event.returnValue=false;
}



/**********************
* 키 입력시 한글만 입력받기
* @param :
* @return :
* @see
************************/
setLetterKoreanOnly = function(event) {
  event = checkEvent(event); 
  var pKey = String.fromCharCode(event.which);
  if(!((pKey.charCodeAt() > 0x3130 && pKey.charCodeAt() < 0x318F) || (pKey.charCodeAt() >= 0xAC00 && pKey.charCodeAt() <= 0xD7A3))) {
      event.returnValue=false;
      delete eReg;
  }
  if( event.target.getAttribute("userchar") != undefined) {
      var userKey = event.target.getAttribute("userchar");
      for(i=0;i< userKey.length;i++) {
          if(pKey == userKey.charAt(i)) {
              event.returnValue=true;
              break;
          }
      }
  }
}




/**********************
* 키 입력시 한글,숫자 입력받기
* @param :
* @return :
* @see
************************/
setLetterKorNumOnly = function(event) {
  event = checkEvent(event); 
  var pKey = String.fromCharCode(event.which);
  if(!((pKey.charCodeAt() > 0x3130 && pKey.charCodeAt() < 0x318F) || (pKey.charCodeAt() >= 0xAC00 && pKey.charCodeAt() <= 0xD7A3) || !setKeyInputNumberOnly(event))) {
      event.returnValue=false;
      delete eReg;
  }
  if( event.target.getAttribute("userchar") != undefined) {
      var userKey = event.target.getAttribute("userchar");
      for(i=0;i< userKey.length;i++) {
          if(pKey == userKey.charAt(i)) {
              event.returnValue=true;
              break;
          }
      }
  }
}



/**********************
* 키 입력시 한글,영어만 입력받기
* @param :
* @return :
* @see
************************/
setLetterKorEngOnly = function(event) {
  event = checkEvent(event); 
  var pKey = String.fromCharCode(event.which);
  var eReg = /[a-zA-Z]/g;
  if(!((pKey.charCodeAt() > 0x3130 && pKey.charCodeAt() < 0x318F) || (pKey.charCodeAt() >= 0xAC00 && pKey.charCodeAt() <= 0xD7A3) || !(pKey!="\r" && !eReg.test(pKey)))) {
      event.returnValue=false;
      delete eReg;
  }
  setUpperLowerCase();
  if( event.target.getAttribute("userchar") != undefined) {
      var userKey = event.target.getAttribute("userchar");
      for(i=0;i< userKey.length;i++) {
          if(pKey == userKey.charAt(i)) {
              event.returnValue=true;
              break;
          }
      }
  }
}


/**********************
* 키 입력시 한글,영어,숫자만 입력받기
* @param :
* @return :
* @see
************************/
setLetterKorEngNumOnly = function(event) {
  event = checkEvent(event);
  var pKey = String.fromCharCode(event.which);
  var eReg = /[a-zA-Z]/g;
  if(!((pKey.charCodeAt() > 0x3130 && pKey.charCodeAt() < 0x318F) || (pKey.charCodeAt() >= 0xAC00 && pKey.charCodeAt() <= 0xD7A3) || !(pKey!="\r" && !eReg.test(pKey))  || !setKeyInputNumberOnly(event))) {
      event.returnValue=false;
      delete eReg;
  }
  setUpperLowerCase();
  if( event.target.getAttribute("userchar") != undefined) {
      var userKey = event.target.getAttribute("userchar");
      for(i=0;i< userKey.length;i++) {
          if(pKey == userKey.charAt(i)) {
              event.returnValue=true;
              break;
          }
      }
  }
}

/**********************
* 키 입력시 영어만 입력받기
* @param :
* @return :
* @see
************************/
setLetterEnglishOnly = function(event) {
  event = checkEvent(event);
  var pKey = String.fromCharCode(event.which);
  var eReg = /[a-zA-Z]/g;
  if(pKey!="\r" && !eReg.test(pKey))
      event.returnValue=false;
  delete eReg;
  setUpperLowerCase();
  if( event.target.getAttribute("userchar") != undefined) {
      var userKey = event.target.getAttribute("userchar");
      for(i=0;i< userKey.length;i++) {
          if(pKey == userKey.charAt(i)) {
              event.returnValue=true;
              break;
          }
      }
  }
}



/**********************
* 키 입력시 숫자,- 값만 입력받음.
* @param :
* @return :
* @see
************************/
setLetterInteger = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var pKey = String.fromCharCode(event.which);
  var intReg = /[0-9\\-]/g;
  if(pKey!="\r" && !intReg.test(pKey)) /* 엔터키 및 regkey가 아닐경우 리턴 */
      event.returnValue=false;
  delete intReg;
  if( event.target.getAttribute("userchar") != undefined) {
      var userKey = event.target.getAttribute("userchar");
      for(i=0;i< userKey.length;i++) {
          if(pKey == userKey.charAt(i)) {
              event.returnValue=true;
              break;
          }
      }
  }
}

setOnlyNumber = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var pKey = String.fromCharCode(event.which);
  var intReg = /[0-9\\-]/g;
  if(pKey!="\r" && !intReg.test(pKey)) /* 엔터키 및 regkey가 아닐경우 리턴 */
      event.returnValue=false;
  delete intReg;
}

/**********************
* 키 입력시 숫자 , . , - 값만 입력받음.
* @param :
* @return :
* @see
************************/
setLetterFloatOnly = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var pKey = String.fromCharCode(event.which);
  var floatReg = /[0-9\\.\\-]/g;
  if(pKey!="\r" && !floatReg.test(pKey)) /* 엔터키 및 regkey가 아닐경우 리턴 */
      event.returnValue=false;
  delete floatReg;
  if( event.target.getAttribute("userchar") != undefined) {
      var userKey = event.target.getAttribute("userchar");
      for(i=0;i< userKey.length;i++) {
          if(pKey == userKey.charAt(i)) {
              event.returnValue=true;
              break;
          }
      }
  }
}


/* -----------------------------------------------------------------------------------------------------------------
  ----e2e 적용시 event.keycode가 120번으로 동일하게 넘어오는 현상때문에 기존 chartype스크립트를 onBlur시 처리되도록 추가한 함수들 <시작>  -----
/**********************
* 숫자만 입력하는 INPUT창에 붙여넣기를 했을 경우에도 숫자만 입력 되게.
* @param :
* @return : void
* @see
************************/
setPasteNumberOnly = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var clipdata = window.clipboardData.getData("Text");
  clipdata = clipdata.replace(/-/gi,"");
  if(clipdata.match(/^\d+$/ig) == null){
      //alert("형식이 맞지 않습니다.");
      return false;
  }
  var element = document.all.tags('INPUT');
  for(var idx=0; idx < element.length; idx++){
      var obj = element[idx];
      if(obj.onpaste && obj == this){
          obj.value = clipdata.substring(0,clipdata.length);
      }
  }
  event.returnValue = false;
}

setKeyInputNumberOnlyBlur = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var el = event.target;  /* 이벤트가 발생하는 대상 */
  var userChar        = false;
  var userKey         = "";
  var userCharYn      = false;
  var title           = "";
  if(event.target.title != null && event.target.title != undefined && event.target.title != ""){
      title = "<" + event.target.title + "> "; 
  }
  for(i=0;i < event.target.value.length;i++) {
      var pKey = event.target.value.charCodeAt(i);
          if( event.target.getAttribute("userchar") != undefined) {
          userCharYn = true;
          userKey = event.target.getAttribute("userchar");
              for(x=0;x< userKey.length;x++) {
                  if(pKey == userKey.charCodeAt(x)) {
                      userChar = true;
                      break;
                  }
              }
          }
          if( !( (userChar == true && userCharYn) || (pKey > 47 && pKey < 58) || (pKey == 8 || pKey == 9 ) ) ) {
              alert(title + "숫자만 입력 가능합니다.");
              event.target.focus();
              return false;
          }
          userChar = false;
      }
}


/**********************
*  키 입력시 한글,영어,숫자만 입력받기 (onBlur 버전)
* @param :
* @return :
* @see
************************/
setLetterKorEngNumOnlyBlur = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var el = event.target;  /* 이벤트가 발생하는 대상 */
  var userChar        = false;
  var userKey         = "";
  var userCharYn      = false;
  var title           = "";
  if(event.target.title != null && event.target.title != undefined && event.target.title != ""){
      title = "<" + event.target.title + "> "; 
  }    
  for(i=0;i < event.target.value.length;i++) {
      var pKey = event.target.value.charCodeAt(i);
          if( event.target.getAttribute("userchar") != undefined) {
          userCharYn = true;
          userKey = event.target.getAttribute("userchar");
              for(x=0;x< userKey.length;x++) {
                  if(pKey == userKey.charCodeAt(x)) {
                      userChar = true;
                      break;
                  }
              }
          }
          if( !((userChar == true && userCharYn) || (pKey > 0x3130 && pKey < 0x318F) || ((pKey >= 0xAC00 && pKey <= 0xD7A3))) &&
              !((pKey > 96 && pKey < 123) || (pKey > 64 && pKey < 91)) && !(pKey > 47 && pKey < 58) ) {
              alert(title + "한글,영어,숫자만 입력 가능합니다.");
              event.target.focus();
              return false;
          }
          userChar = false;
  }
}

/**********************
*  키 입력시 한글만 입력받기 (onBlur 버젼)
* @param :
* @return :
* @see
************************/
setLetterKoreanOnlyBlur = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var el = event.target;  /* 이벤트가 발생하는 대상 */
  var userChar        = false;
  var userKey         = "";
  var userCharYn      = false;
  var title           = "";
  if(event.target.title != null && event.target.title != undefined && event.target.title != ""){
      title = "<" + event.target.title + "> "; 
  }    
  for(i=0;i < event.target.value.length;i++) {
      var pKey = event.target.value.charCodeAt(i);
          if( event.target.getAttribute("userchar") != undefined) {
          userCharYn = true;
          userKey = event.target.getAttribute("userchar");
              for(x=0;x< userKey.length;x++) {
                  if(pKey == userKey.charCodeAt(x)) {
                      userChar = true;
                      break;
                  }
              }
          }
          if((!((userChar == true && userCharYn) || (pKey > 0x3130 && pKey < 0x318F) || (pKey >= 0xAC00 && pKey <= 0xD7A3))) ) {
              alert(title + "한글만 입력 가능합니다.");
              event.target.focus();
              return false;
          }
          userChar = false;
  }
}



/**********************
*  키 입력시 한글,숫자 입력받기 (onBlur 버젼)
* @param :
* @return :
* @see
************************/
setLetterKorNumOnlyBlur = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var el = event.target;  /* 이벤트가 발생하는 대상 */
  var userChar        = false;
  var userKey         = "";
  var userCharYn      = false;
  var title           = "";
  if(event.target.title != null && event.target.title != undefined && event.target.title != ""){
      title = "<" + event.target.title + "> "; 
  }    
  for(i=0;i < event.target.value.length;i++) {
      var pKey = event.target.value.charCodeAt(i);
          if( event.target.getAttribute("userchar") != undefined) {
          userCharYn = true;
          userKey = event.target.getAttribute("userchar");
              for(x=0;x< userKey.length;x++) {
                  if(pKey == userKey.charCodeAt(x)) {
                      userChar = true;
                      break;
                  }
              }
          }
          if(( !((userChar == true && userCharYn) || (pKey > 0x3130 && pKey < 0x318F) || (pKey >= 0xAC00 && pKey <= 0xD7A3)) && (pKey < 48 || pKey > 57)) ) {
              /*  enter, tab, backspace 방향키(앞,뒤)는 예외처리 */
              if(pKey == 8 || pKey == 9 ){
                  continue;
              } else {
                  alert(title + "한글,숫자만 입력 가능합니다.");
                  event.target.focus();
                  return false;
              }
          }
          userChar = false;
      }
}




/**********************
*  키 입력시 한글,영어만 입력받기 (onBlur 버전)
* @param :
* @return :
* @see
************************/
setLetterKorEngOnlyBlur = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var el = event.target;  /* 이벤트가 발생하는 대상 */
  var userChar        = false;
  var userKey         = "";
  var userCharYn      = false;
  var title           = "";
  if(event.target.title != null && event.target.title != undefined && event.target.title != ""){
      title = "<" + event.target.title + "> "; 
  }    
  for(i=0;i < event.target.value.length;i++) {
      var pKey = event.target.value.charCodeAt(i);
          if( event.target.getAttribute("userchar") != undefined) {
          userCharYn = true;
          userKey = event.target.getAttribute("userchar");
              for(x=0;x< userKey.length;x++) {
                  if(pKey == userKey.charCodeAt(x)) {
                      userChar = true;
                      break;
                  }
              }
          }
          if((!((userChar == true && userCharYn) || (pKey > 0x3130 && pKey < 0x318F) || ((pKey >= 0xAC00 && pKey <= 0xD7A3))) && !((pKey > 96 && pKey < 123) || (pKey > 64 && pKey < 91)))) {
              alert(title + "한글,영어만 입력 가능합니다.");
              event.target.focus();
              return false;
          }
          userChar = false;
  }
}





/**********************
*  키 입력시 영어만 입력받기 (onBlur 버전)
* @param :
* @return :
* @see
************************/
setLetterEnglishOnlyBlur = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var el = event.target;  /* 이벤트가 발생하는 대상 */
  var userChar        = false;
  var userKey         = "";
  var userCharYn      = false;
  var title           = "";
  if(event.target.title != null && event.target.title != undefined && event.target.title != ""){
      title = "<" + event.target.title + "> "; 
  }    
  for(i=0;i < event.target.value.length;i++) {
      var pKey = event.target.value.charCodeAt(i);
          if( event.target.getAttribute("userchar") != undefined) {
          userCharYn = true;
          userKey = event.target.getAttribute("userchar");
              for(x=0;x< userKey.length;x++) {
                  if(pKey == userKey.charCodeAt(x)) {
                      userChar = true;
                      break;
                  }
              }
          }
          if((!((userChar == true && userCharYn) || (pKey > 96 && pKey < 123) || (pKey > 64 && pKey < 91)))) {
              alert(title + "영어만 입력 가능합니다.");
              event.target.focus();
              return false;
          }
          userChar = false;
  }
}


/**********************
*  키 입력시 영어,숫자만 입력받기 (onBlur 버전)
* @param :
* @return :
* @see
************************/
setLetterEngNumOnlyBlur = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var el = event.target;  /* 이벤트가 발생하는 대상 */
  var userChar        = false;
  var userKey         = "";
  var userCharYn      = false;
  var title           = "";
  if(event.target.title != null && event.target.title != undefined && event.target.title != ""){
      title = "<" + event.target.title + "> "; 
  }    
  for(i=0;i < event.target.value.length;i++) {
      var pKey = event.target.value.charCodeAt(i);
          if( event.target.getAttribute("userchar") != undefined) {
          userCharYn = true;
          userKey = event.target.getAttribute("userchar");
              for(x=0;x< userKey.length;x++) {
                  if(pKey == userKey.charCodeAt(x)) {
                      userChar = true;
                      break;
                  }
              }
          }
          if((!((userChar == true && userCharYn) || (pKey > 96 && pKey < 123) || (pKey > 64 && pKey < 91)) && !(pKey > 47 && pKey < 58))) {
              alert(title + "영어,숫자만 입력 가능합니다.");
              event.target.focus();
              return false;
          }
          userChar = false;
      }
}

/**********************
*  키 입력시 숫자,- 값만 입력받음. (onBlur버전)
* @param :
* @return :
* @see
************************/
setLetterIntegerBlur = function(event) {
  event               = checkEvent(event);  //이벤트 값 가져오기
  var el              = event.target;  // 이벤트가 발생하는 대상
  var evtValueLength  = event.target.value.length;
  var title           = "";
  if(event.target.title != null && event.target.title != undefined && event.target.title != ""){
      title = "<" + event.target.title + "> "; 
  }    
  for(i=0;i < evtValueLength;i++) {
      var pKey = event.target.value.charCodeAt(i);
      if(evtValueLength == 1 && pKey == 45) {
          alert(title + "- 만 입력 될수 없습니다.");
          event.target.focus();
          return false;
      }
      if(((evtValueLength-1)-i)%4 == 3 && (evtValueLength-1) != 0 && event.target.value.charAt(i) == ',' ) continue;
      if(i == 0 && event.target.value.charAt(i) == '-' ) continue;
      if(i != 0 && pKey == 45) {      //  입력값중 '-' 가 중간에 존재할경우 경고 메시지

          alert(title + "- 는  입력값 중 맨 앞에만 존재 하여야  합니다.");
          event.target.focus();
          return false;
      }
      if(!(pKey > 47 && pKey < 58) && !(pKey == 45)) {
          alert(title + "숫자만 입력 가능합니다.");
          event.target.focus();
          return false;
      }
  }
}




/**********************
*  키 입력시 숫자 , . , - 값만 입력받음. (onBlur 버전)
* @param :
* @return :
* @see
************************/
setLetterFloatOnlyBlur = function(event) {
  event               = checkEvent(event);  
  var el              = event.target;     
  var floatPoint      = event.target.value.indexOf('.') != -1 ? event.target.value.indexOf('.'):event.target.value.length;
  var evtValueLength  = event.target.value.length;
  var title           = "";
  if(event.target.title != null && event.target.title != undefined && event.target.title != ""){
      title = "<" + event.target.title + "> "; 
  }    
  for(i=0;i < evtValueLength;i++) {
      var pKey = event.target.value.charCodeAt(i);
     
      if(evtValueLength == 1 && pKey == 45) { // - 만 입력됐을 경우 
          alert(title + "- 만 입력 될수 없습니다.");
          event.target.focus();
          return false;
      }
     
      if(i == 0 && pKey == 46 || i == (evtValueLength-1) && pKey == 46) { // 입력값중 '.' 가 맨 앞이나 맨 뒤에  존재할경우 경고 메시지 
          alert(title + "소수점은 맨 앞이나 맨 뒤에  있을수 없습니다.");
          event.target.focus();
          return false;
      }
   
      if(i<floatPoint) {  // 소수점 이상의 수일경우
          if(((floatPoint-1)-i)%4 == 3 && (floatPoint-1) != 0 && event.target.value.charAt(i) == ',' ) continue;
          if(i == 0 && event.target.value.charAt(i) == '-' ) continue;
      }
      if(i> floatPoint && event.target.value.charAt(i) == '.') {
          alert(title + "소수점은 한개 이상 있을수 없습니다.");
          event.target.focus();
          return false;
      }
	
      if(i != 0 && pKey == 45) {	//  입력값중 '-' 가 중간에 존재할경우 경고 메시지
          alert(title + "- 는  입력값 중 맨 앞에만 존재 하여야  합니다.");
          event.target.focus();
          return false;
      }
      if(!(pKey > 47 && pKey < 58) && !(pKey == 45 || pKey == 46)) {
          alert(title + "숫자 , . , - 만 입력 가능합니다.");
          event.target.focus();
          return false;
      }
  }
}




/**********************
*  chartype="money"처리. 숫자만 입력, 3자리마다 "," 처리. setKeydownMoney + setKeypressMoney (onBlur 버전)
*  '-',숫자만 입력
* @param :
* @return :
* @see
************************/
setMoneyBlur = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var el = event.target;  /* 이벤트가 발생하는 대상 */
  var tempV  = event.target.value;
  if(tempV.length > 0){
      var stat = true;
      while(stat) {
          if((tempV.length > 0 && tempV.substring(0,1)==0)) {
              tempV = tempV.substr(1);
          }else if(tempV.length > 1 && tempV.substring(0,1)== '-' && tempV.substring(1,2)== 0) {
              tempV = "-" + tempV.substr(2);
          }else {
              stat = false;
          }
      }
  }
  var moneyReg = new RegExp('(-?[0-9]+)([0-9]{3})');
  tempV = tempV.replace(/\,/g, "");
  while(moneyReg.test(tempV)) {
      tempV = tempV.replace(moneyReg, '$1,$2');
  }
  event.target.value = tempV;
  setLetterIntegerBlur(event);
  /* if(event.which == 9){event.target.select();} */
  event.returnValue=false;
}



/**********************
*  chartype="floatmoney"처리. ".",숫자만 입력, 3자리마다 ","처리. setKeydownFloatMoney + setFloatMoney (onBlur 버전)
* '-','.',숫자만 입력
* @param :
* @return :
* @see
************************/
setFloatMoneyBlur = function(event) {
  event = checkEvent(event);  /* 이벤트 값 가져오기 */
  var el = event.target;  /* 이벤트가 발생하는 대상 */
  var tempV = event.target.value;
  var floatnum = "";
  if(tempV.indexOf(".") != -1) {
      floatnum = tempV.substring(tempV.indexOf("."));
      tempV = tempV.substring(0,tempV.indexOf("."));
  }
  /* 처음 값이 0이고 다음 값이 .이 아닐경우 */
  if(tempV.charAt(0) == "0" && floatnum == "") {
      while(tempV.charAt(0) == "0"){
          tempV = tempV.substring(1);
      }
  }
  /* 처음 값이 - 이고 두번째 값이 0 일때 세번째 값이 .가 아닐경우 */
  if(tempV.charAt(0) == "-" && tempV.charAt(1) == "0" && floatnum == "") {
      while(tempV.charAt(1) == "0"){
          tempV = "-"+tempV.substring(2);
      }
  }
  /* 소수점 앞에 값이 숫자가 아닐경우 */
  if(isNaN(tempV.charAt(tempV.length-1))) {
      while(isNaN(tempV.charAt(tempV.length-1)) && tempV.length > 0) {
          tempV = tempV.substring(0,(tempV.length >=1 ? tempV.length-1:0));
      }
      floatnum = floatnum.substring(1);
  }
  var moneyReg = new RegExp('(-?[0-9]+)([0-9]{3})');
  tempV = tempV.replace(/\,/g, "");
  floatnum = floatnum.replace(/\,/g, "");
  while(moneyReg.test(tempV)) {
      tempV = tempV.replace(moneyReg, '$1,$2');
  }
  event.target.value = tempV+floatnum;
  setLetterFloatOnlyBlur(event);
  /* if(event.which == 9){event.target.select();} */
  event.returnValue=false;
}



/**********************
* maxLength, maxbyte 설정시 keyUp시 이벤트 발생.
* @param : elem
* @return : void
* @see
************************/
function initSetMaxLength(elem) {
    if((elem.maxLength != undefined && elem.maxLength > 0 && elem.maxLength != 2147483647) && elem.chartype != undefined &&
        (elem.chartype == "kor" || elem.chartype == "kornum" || elem.chartype == "koreng" || elem.chartype == "korengnum") ) {
        elem.maxLength = elem.maxLength +1;
    }

    if(elem.onkeyup == undefined){
        elem.onkeyup = setOverSetFocus;
    }
}

/**********************
* maxLength, maxbyte 설정시 최대값보다 더 들어왔을시 자동 포커스 이동.
*  ex : setOverSetFocus()
* @param :
* @return :
* @see
************************/
function setOverSetFocus() {
    /* this 개체가 속한  폼이름 가져오기 */
    var thisFrm = "";

    thisFrm = eval(this.parentNode);

    while("form" != thisFrm.nodeName.toString().toLowerCase())
    {
        thisFrm = eval(thisFrm.parentNode);
    }

    var nextFocus = this;
    /* 다음 포커스 타겟 가져오기. */
    for (var i = 0 ; i < thisFrm.elements.length ; i++)
    {
/*         if (this.elements[i].nodeName.toString().toLowerCase() == "input") */
        if (thisFrm.elements[i].nodeName.toString().toLowerCase() == "input")
        {
            /* 현재 this값이 선택된 elements이면 다음으로 이동될 포커스를 가져오기 위한 로직수행. */
            if(this == thisFrm.elements[i])
            {
            /* alert("kk -> "+thisFrm.elements[i].getAttribute("nextfocus") ); */
            /* alert("kk -> "+document.getElementById(this.id).getAttribute("nextfocus")); */
                if(thisFrm.elements[i].getAttribute("nextfocus") != null && thisFrm.elements[i].getAttribute("nextfocus") != undefined && thisFrm[thisFrm.elements[i].getAttribute("nextfocus")] != undefined) {
                    /* nextfocus 속성이 있을경우 nextfocus값을 다음 포커스로 잡는다. */
                    nextFocus = thisFrm[thisFrm.elements[i].getAttribute("nextfocus")];
                    /* if(nextFocus.length != undefined) nextFocus = nextFocus[0];  nexttarget이 select일경우 option이 된다. */
                    break;
                }
                /* elements가 undefined 될때 까지 수행함. */
                while(thisFrm.elements[++i] != undefined)
                {
                    /* 현재 elements의 부모중의 속성이 display = none이면 다음 포커스 타겟을 가져온다. */
                    var targetCursor = eval(thisFrm.elements[i].parentNode);
                    while("form" != targetCursor.nodeName.toString().toLowerCase())    {
                        if(targetCursor.parentNode.style.display == "none") break;
                        targetCursor = eval(targetCursor.parentNode);

                    }
                    if(targetCursor.parentNode.style.display == "none") continue;

                    /* elements타입이 input (text,radio,checkbox), textarea, select 일경우 다음 포커스 this저장. */
                    if(thisFrm.elements[i].nodeName.toString().toLowerCase() == "input" &&
                        (thisFrm.elements[i].type == "text" || thisFrm.elements[i].type == "password" ||
                            thisFrm.elements[i].type == "radio" || thisFrm.elements[i].type == "checkbox" ||
                                thisFrm.elements[i].nodeName.toString().toLowerCase() == "textarea" ||
                                    thisFrm.elements[i].nodeName.toString().toLowerCase() == "select" ))
                    {
                        nextFocus = thisFrm.elements[i];
                        break;
                    }
                }
            }
        }
    }

    /* 포커스 이동. maxLength 2147483647은 maxLength의 값을 주지 않았을경우 기본적으로 주는 최대값. */
    if(this.maxbyte != undefined && this.maxLength != 2147483647) {
    /* 1. maxbyte와 maxLength를 둘다 선택 하였을때.. */
        if((this.maxLength <= this.value.length) || (this.maxbyte < calculate_msglen(this.value)))
        {
            this.blur();
            if(nextFocus.nodeName.toString().toLowerCase() == "select") {
                nextFocus.focus();
            }else if(nextFocus.nodeName.toString().toLowerCase() == "input" && (nextFocus.type == "checkbox" || nextFocus.type == "radio")) {
                nextFocus.focus();
            }else {
                nextFocus.select();
            }
            this.value = cutStringToByte(this.value, this.maxbyte);

            var thisChartype = this.chartype;
            if(thisChartype != undefined &&
                (thisChartype == "kor" || thisChartype == "kornum" || thisChartype == "koreng" || thisChartype == "korengnum"))
                /* this.maxLength = this.maxLength-1; */
                this.value = this.value.substring(0, this.maxLength-1);
        }
    }else if(this.maxbyte == undefined && this.maxLength != 2147483647) {
    /* 2. maxLength만 설정했을때.. */
        if( (this.maxLength) <= this.value.length)
        {
            this.blur();
            if(nextFocus.nodeName.toString().toLowerCase() == "select") {
                nextFocus.focus();
            }else if(nextFocus.nodeName.toString().toLowerCase() == "input" && (nextFocus.type == "checkbox" || nextFocus.type == "radio")) {
                nextFocus.focus();
            }else {
                this.blur();
                nextFocus.select();
            }
            var thisChartype = this.chartype;
            if(thisChartype != undefined &&
                (thisChartype == "kor" || thisChartype == "kornum" || thisChartype == "koreng" || thisChartype == "korengnum"))
                /* this.maxLength = this.maxLength-1; */
                this.value = this.value.substring(0, this.maxLength-1);
        }
    }else if(this.maxbyte != undefined && this.maxLength == 2147483647) {
    /* 3. maxByte만 설정했을때.. */
        if(this.maxbyte < calculate_msglen(this.value) )
        {
            this.blur();
            if(nextFocus.nodeName.toString().toLowerCase() == "select") {
                nextFocus.focus();
            }else if(nextFocus.nodeName.toString().toLowerCase() == "input" && (nextFocus.type == "checkbox" || nextFocus.type == "radio")) {
                nextFocus.focus();
            }else {
                nextFocus.select();
            }
        this.value = cutStringToByte(this.value, this.maxbyte);
        }
    }
}

// png
function setPng24(obj) {
	obj.width=obj.height=1;
	obj.className=obj.className.replace(/\bpng24\b/i,'');
	obj.style.filter =
	"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ obj.src +"',sizingMethod='image');"
	obj.src='';
	return '';
}  



//사용시 페이지 onload 에 initializeHtmlForm(form) 넣어주면 됨
function initializeHtmlForm(target)
{
    for (var i = 0 ; i < target.elements.length ; i++)
    {
        if (target.elements[i].nodeName.toString().toLowerCase() == "input")
        {
            /* maxlength가 있을경우 */
            if (target.elements[i].getAttribute("maxlength") != null &&  target.elements[i].getAttribute("maxlength") !=  undefined )
            {
                initSetMaxLength(target.elements[i]);
            }

            /* maxByte가 있을경우 */
            if ( target.elements[i].getAttribute("maxbyte") != null &&  target.elements[i].getAttribute("maxbyte")  != undefined)
            {
                initSetMaxLength(target.elements[i]);
            }

        }/* end if */
    }/* end for - elements */
}
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ // formValidation 체크 종료 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

doTotalSearch = function(searchKey){
	//documenmt.location.href=""+searchKey;
}

function insertIMG(irid,fileame){
	var sHTML = "<img src='/upload/editor/" + fileame + "' border='0'>";
	oEditors.getById[irid].exec("PASTE_HTML", [sHTML]);
}


compareToDate = function(date1, date2){
	date1 = document.getElementById(date1);
	date2 = document.getElementById(date2);
	var date1val = date1.value.replace("-","");
	var date2val = date2.value.replace("-","");
	// date2가 date1보다 크다면
	if(date1val > date2val){
		alert("<"+date2.getAttribute("title")+"> 이 <"+date1.getAttribute("title")+"> 보다 과거일 수 없습니다.");
		date2.value = "";
		date2.focus();
		return false;
	}else{
		return true;
	}
}

// 파일명 검사
isFileName = function(name) {
    var ch = "\0";

    for (var i = 0, ch = name.charAt(i);
        i < name.length; ch = name.charAt(++i)) {
        if (ch == '..' || ch == '%20' || ch == ";" || ch == '%') {
            return false;
        }
    }    
    return true;
}

// 퀵메뉴 
quickMove = function(){
	
	var quick_menu = $('.quickArea');			
	var quick_top = 105;			
	var quickHe = $('.conArea').height();
	
	
	
	/* quick menu initialization */
	quick_menu.css('top', $(window).height() );
	$(document).ready(function(){
		
		quick_menu.animate( { "top": $(document).scrollTop() + quick_top +"px" }, 500 );
		
		$(window).scroll(function(){
			
			quick_menu.stop();
			quick_menu.animate( { "top": $(document).scrollTop() + quick_top + "px" }, 1000 );
			
			if($(document).scrollTop()+ $('.quickArea').height() + 100 > quickHe  ){
				quick_menu.stop();
			}
		

		});
	});
};

// 확장자 체크
isFileExt = function(filename, type){
	var type1 = ["jpg","jpeg","gif","bmp","png"];
	var type2 = ["txt","hwp","pdf","xls","ppt","doc","docx","pptx","xlsx","zip"];
	var ext = filename.substring(filename.lastIndexOf(".")+1,filename.length).toLowerCase();
	var result = false;
	switch(type){
		case "img": // 이미지 일 경우 type1
			for(var i=0; i < type1.length; i++){
				if(type1[i] == ext){
					result = true;					
					break;
				}
			}
			break;
		case "file": // 일반 문서일 경우 type2
			for(var i=0; i < type2.length; i++){
				if(type2[i] == ext){
					result = true;					
					break;
				}
			}
			break;
		default :
			for(var i=0; i < type1.length; i++){
				if(type1[i] == ext){
					result = true;					
					break;
				}
			}
			if(!result){
				for(var i=0; i < type2.length; i++){
					if(type2[i] == ext){
						result = true;					
						break;
					}
				}
			}
	}
	if(!result)
		alert("허용되지 않은 확장자 입니다");
	return result;
}

// Tab
menchChange = function(){
	var activeMn = location.href.indexOf('#') != -1 ? location.href.split('#')[1] : 1;
	if(activeMn == "none"){activeMn = 1}
	$('.tabArea tr td a').each(
		function (index){					
			$('.tabCon').eq(index).hide();
		}
	);						
	$('.tabCon').eq(activeMn-1).show();
	$('.tabArea tr td').eq(activeMn-1).addClass("on");
}

SetNum = function(obj){
	val=obj.value;
	re=/[^0-9]/gi; 
	obj.value=val.replace(re,"");
}
