//----------------------------------- 문자열(String) 관련 함수  -----------------------------------

function invalidCheck(obj) {
	var str = obj.value;
	var idx = 0;
	var strCheck = new Array(
			"\"",
			"'" 
		  );

	for (var i = 0; i < strCheck.length; i++) {

		idx = str.indexOf(strCheck[i]);
		
		if(idx != -1) {
			alert("\""+strCheck[i]+"\"을 사용 할 수 없습니다.");

			obj.value = str.replace(strCheck[i], "");
			
			obj.focus();
			return;
		}
		
	}
}

/************************************
*  기능 : 숫자만 입력 가능 (onKeyDown 이벤트)
*  수정일 : 2004-06-01
*  parameter : 
*************************************/
function onlyNumberInput() // 숫자만 입력 가능 (onKeyDown 이벤트)
{
	var code = window.event.keyCode;
	if ((code > 32 && code < 48) || (code > 57 && code < 65) || (code > 90 && code < 97) || (code > 34 && code < 41) || (code > 47 && code < 58) || (code > 95 && code < 106) || code == 8 || code == 9 || code == 13 || code == 46){
		window.event.returnValue = true;
		return;
	}
	window.event.returnValue = false;
}

/************************************
*  기능 :  문자열 Valid 검사처리
*  수정일 : 2002-01-25
*  parameter : string, space
*************************************/
function CheckValid(String, space) //문자열 Valid 검사처리
{
	var retvalue = false;

	for (var i=0; i<String.length; i++) { //String이 0("" 이나 null)이면 무조건 false
		if (space == true) {
			if (String.charAt(i) == ' ') { //String이 0이 아닐때 space가 있어야만 true(valid)
				retvalue = true;
				break;
			}
		} else {
			if (String.charAt(i) != ' ') { //string이 0이 아닐때 space가 아닌 글자가 있어야만 true(valid)
				retvalue = true;
				break;
			}
		}
	}

	return retvalue;
}

/******************************
*  기능 :  Empty 및 공백 처리
*  수정일 : 2002-01-25
*  parameter : field, pErrorMsg
*******************************/

function isEmpty(field, pErrorMsg, haveSpace)// Empty 및 공백 처리
{
	if(!haveSpace){
		haveSpace = false;
	}

	// error_msg가 ""이면 alert와 focusing을 하지 않는다
	if(pErrorMsg == "") {
		if(!CheckValid(field.value, haveSpace)) {
			return true;
		} else {
			return false;
		}
	} else {
		if(!CheckValid(field.value, haveSpace)) {
			alert(pErrorMsg);
			field.focus() ;
			return true;
		} else {
			return false;
		}
	}
}

/******************************
*  기능 :  NumberCheck
*  수정일 : 2002-03-29(denial)
*  parameter : field, pErrorMsg
*******************************/
function isNotNumber(field, pErrorMsg)//NumberCheck
{
	var val = field.value;

	if(isNaN(val)) {
		if(pErrorMsg.length > 0) {
			alert(pErrorMsg);
			field.focus();
		}
		return true;
	} else {
		return false;
	}
}

/******************************
*  기능 :  NumberCheck And Empty Check
*  수정일 : 2002-04-02(denial)
*  parameter : field, pErrorMsg
*******************************/
function isNotNumberOrEmpty(field, pErrorMsg)//NumberCheck And Empty Check
{
	var val = field.value;

	if(val.length == 0 || isNaN(val) ) {
		if(pErrorMsg.length > 0) {
			alert(pErrorMsg);
			field.focus();
		}
		return true;
	} else {
		return false;
	}
}

/***************************************
*  기능 : String 알파벳과 숫자만~ Check
*  수정일 : 2002-01-25
*  parameter : Form
****************************************/
function isNotAlphaNumeric(field,pErrorMsg)//String 알파벳과 숫자만~ Check
{
	for (var i=0; i < field.value.length; i++) {
		if ( ( (field.value.charAt(i) < "0") || (field.value.charAt(i) > "9") ) &&
				( ( (field.value.charAt(i) < "A") || (field.value.charAt(i) > "Z") ) &&
				( (field.value.charAt(i) < "a") || (field.value.charAt(i) > "z") ) ) ) {
			alert(pErrorMsg);
			field.focus();
			field.select();
			return true;
		}
	}

	return false;
}


/***************************************
*  기능 : String 숫자만~ Check  *
*  수정일 : 2004-04-09                           *
*  parameter : Form                              *
****************************************/
function isNaN(value)// String 숫자만~ Check
{
	for (var i=0; i < value.length; i++){
		if ((value.charAt(i) < "0") || (value.charAt(i) > "9")){
			return true;
		}
	}

   return false;
}


/******************************
*  기능 : Message And move Focus
*  수정일 : 2004-04-12
*  parameter : field, pErrorMsg
*******************************/
function alertAndFocus(field, pErrorMsg)//Message And move Focus
{
	alert(pErrorMsg);
	field.focus();
	field.select();
}

/***************************************
*  기능 : 필드(String) 길이 관련
*  수정일 : 2004-04-12
*  parameter : field
****************************************/
function strLength(field)//필드(String) 길이 관련
{

	var Length = 0;

	var Nav = navigator.appName;
	var Ver = navigator.appVersion;

	var IsExplorer = false;

	var ch;

	if ( (Nav == 'Microsoft Internet Explorer') && (Ver.charAt(0) >= 4) ) {
		IsExplorer = true;
	}

	if(IsExplorer) {

		for(var i = 0 ; i < field.value.length; i++) {

			ch = field.value.charAt(i);

			if ((ch == "\n") || ((ch >= "ㅏ") && (ch <= "히")) ||
					((ch >="ㄱ") && (ch <="ㅎ"))) { //한글일경우 2byte씩 계산
				Length += 2;
			} else {
				Length += 1;
			}
		}
	} else {
		Length = field.value.length ;
	}

	return Length;
}

/****************************************
*  기능 : 문자열 길이제한
*  수정일 : 2002-01-25
*  parameter : field, min, max, pErrorMsg
*****************************************/
function isOutOfRange(field, min, max, pErrorMsg)//문자열 길이제한
{
	if(strLength(field) < min || strLength(field) > max) {
		alert(pErrorMsg);
		field.focus();
		field.select();
		return true;
	}
	return false;
}

/****************************************
*  기능 : 문자열 길이체크
*  수정일 : 2004-04-12
*  parameter : field, len, pErrorMsg
*****************************************/
function isNotExactLength(field, len, pErrorMsg)//문자열 길이체크
{
	if(strLength(field) != len) {
		alert(pErrorMsg);
		field.focus();
		field.select();
		return true;
	}
	return false;
}

/****************************************
*  기능 : 허용가능 문자 체크
*  수정일 : 2004-04-12
*  parameter : field, pErrorMsg
*****************************************/
function isPermitChar(field,pErrorMsg)//허용가능 문자 체크
{
	var Count;
	var PermitChar = "0123456789-,";  // 허용가능한 문자들을 모두 기록한다.

	if (pErrorMsg == undefined) {
		pErrorMsg = "허용되지 않는 문자입니다.";
	}

	for (var i = 0; i < field.value.length; i++) {
		Count = 0;
		for (var j = 0; j < PermitChar.length; j++) {
			if(field.value.charAt(i) == PermitChar.charAt(j)) {
				Count++;
				break;
			}
		}

		if (Count == 0) {
			alert(pErrorMsg);
			field.focus();
			field.select();
			return true;
			break;
		}
	}
	return false;
}

/****************************************
*  기능 : 비허용 문자 체크
*  수정일 : 2004-04-12
*  parameter : field, pErrorMsg
*****************************************/
function isNotPermitChar(field,pErrorMsg) // 비허용 문자 체크
{
	var NotPermitChar = "\"";  //허용되어서는 안되는 문자들을 모두 기록한다. ex. "<>\"^&|'\\ "

	if(field.value == "") {
		return false;
	}
	for (var i = 0; i < field.value.length; i++) {
		for (var j = 0; j < NotPermitChar.length; j++) {
			if(field.value.charAt(i) == NotPermitChar.charAt(j)) {
				ans = confirm(pErrorMsg);
				if(ans == true) {
					return false;
				} else {
					field.focus();
					field.select();
					return true;
				}
			}
		}
	}
	return false;
}

/****************************************
*  기능 : 숫자 체크(double 형 포함)
*  수정일 : 2004-04-12
*  parameter : field, pErrorMsg
*****************************************/
function checkNumber(objname)//숫자 체크(double 형 포함)
{
	var intErr = 1;
	var strValue = objname.value;
	var retCode = 0;

	for(i = 0; i < strValue.length; i++) {
		var retCode = strValue.charCodeAt(i);
		var retChar = strValue.substr(i, 1).toUpperCase();

		retCode = parseInt(retCode);

		// "3.4"도 숫자이다.
		if(!((retChar >= "0" && retChar <= "9") || retChar == "."))
		{
			intErr = 0; // break;
		}
	}

	var periodCnt = 0;

	while(strValue.indexOf(".") != -1)
	{
		periodCnt++;

		strValue = strValue.substr(strValue.indexOf(".") + 1, strValue.length - (strValue.indexOf(".") + 1));
	}

	// "3..4"는 숫자가 아니다.
	if(periodCnt > 1)
		intErr = 0;

	if (intErr!=1)
	{
		return true;
	}
	else return false;
}

/****************************************
*  기능 : 특정 필드에 대한 수정을 막는 행위
*  수정일 : 2004-04-12
*  parameter : objectName - 수정을 중지시킬 필드객체.(주로 input type)
*****************************************/
function editStop(objectName)//특정 필드에 대한 수정을 막는 행위
{
	objectName.blur();
}

/****************************************
*  기능 : 숫자나 문자열을 통화(Money) 형식으로 만든다.( 쉼표(,) 찍는다는 소리.. )
*  수정일 : 2004-04-12
*  parameter : amount
*****************************************/
function formatCurrency(obj)//숫자나 문자열을 통화(Money) 형식으로 만든다.( 쉼표(,) 찍는다는 소리.. )
{
	var re = /\,/g
	aVal = obj.value.replace(re, "");
	amount = new String(aVal);
	var amountLength = amount.length;
	var modulus = amountLength % 3;
	var currencyString = amount.substr(0,modulus);
	for(i=modulus; i<amountLength; i=i+3) {
		if(currencyString != "")
			currencyString += ",";
		currencyString += amount.substr(i, 3);
	}
	
	obj.value = currencyString;
}

/****************************************
*  기능 : ENTER키 다운 되었을때 넘겨받은 Function실행
*  수정일 : 2004-04-12
*  parameter : func
*****************************************/
function enterKeyDown(func)//ENTER키 다운 되었을때 넘겨받은 Function실행
{
	enter = event.keyCode;
	if(enter == 13) {
		eval(func);
	}

}

/****************************************
*  기능 : TAB키 다운 되었을때 넘겨받은 Function실행
*  수정일 : 2004-04-12
*  parameter : func
*****************************************/
function tabKeyDown(func)//TAB키 다운 되었을때 넘겨받은 Function실행
{
	enter = event.keyCode;
	if(enter == "09") {
		eval(func);
	}
}

/****************************************
*  기능 : 문자열내에 있는 ', "를 \', \" 로변환한다.
*  수정일 : 2004-04-12
*  parameter : str 
*****************************************/
function toValidStr(str)//문자열내에 있는 ', "를 \', \" 로변환한다.
{
	re1 = /\'/gi;
	re2 = /\"/gi;
	str = str.replace(re1, "\\\'");
	str = str.replace(re2, "\\\"");
	return str;
}
/****************************************
*  기능 : 문자열내에 있는 ', ", 공백을 &aposterophe;, &quot; &nbsp;로변환한다.
*  수정일 : 2004-04-12
*  parameter : str 
*****************************************/
function toValidStrGrid(str)
{
	re1 = /\'/gi;
	re2 = /\"/gi;
	re3 = /\r\n/gi;
	str = str.replace(re1, "&#039;");
	str = str.replace(re2, "&quot;");
	str = str.replace(re3, "<br>");
	return str;
}

function toValidStrGrids(str)
{
	re1 = /<br>/gi;
	str = str.replace(re1, "\r\n");
	return str;
}

/****************************************
*  기능 : 주어진 값(val)을 소수점이하 num자리수에서 반올림한값을 리턴한다.
*  수정일 : 2004-04-13
*  parameter : val, num
*****************************************/
function round(val, num)//주어진 값(val)을 소수점이하 num자리수에서 반올림한값을 리턴한다.
{
	val = val * Math.pow(10, num - 1);
	val = Math.round(val);
	val = val / Math.pow(10, num - 1);
	return val;
}

/****************************************
*  기능 : 메일주소의 유효성 검사.
*  수정일 : 2004-04-13
*  parameter : email
*****************************************/
function isVaildMail(field)//메일주소의 유효성 검사.
{
	var checkflag = true;
	var retvalue;

	if(field.value == "") {
		retvalue = true;
	} else {

		if (window.RegExp) {
			var tempstring = "a";
			var exam = new RegExp(tempstring);
			if (tempstring.match(exam)) {
				var ret1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
				var ret2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
				retvalue = (!ret1.test(field.value) && ret2.test(field.value));
			} else {
				checkflag = false;
			}
		} else {
			checkflag = false;
		}

		if (!checkflag) {
			retvalue = ( (field.value != "") && (field.value.indexOf("@")) > 0 && (field.value.index.Of(".") > 0) );
		}

	}
	if(retvalue) {
		return false;
	} else {
		alert("이메일 주소가 정확하지 않습니다. \n다시 입력해 주세요!");
		field.focus();
		field.select();
		return true;
	}
}


/****************************************
*  기능 : 특정 필드값에 대해서 끝자리를 10단위로  전환
*  수정일 : 2004-04-13
*  parameter : field
*****************************************/
function roundValue(field) //특정 필드값에 대해서 끝자리를 10단위로  전환
{
	field.value = Math.round(eval(field.value)/10) * 10
}

/****************************************
*  기능 : 문자열 trim 처리
*  수정일 : 2004-04-13
*  parameter : str
*****************************************/
function trim(str) //문자열 trim 처리
{
	var count = str.length;
	var len = count;
	var st = 0;
	while ((st < len) && (str.charAt(st) <= ' ')) {
		st++;
	}
	while ((st < len) && (str.charAt(len - 1) <= ' ')) {
		len--;
	}
	return ((st > 0) || (len < count)) ? str.substring(st, len) : str ;
}

/****************************************
*  기능 : 문자열에서 특정문자 제외하여 문자열 조합
*  수정일 : 2004-04-13
*  parameter : newValue, ch
*****************************************/
function delChar(newValue, ch) //문자열에서 특정문자 제외하여 문자열 조합
{
	var len = newValue.length;
	var ret = "";

	for (i=0; i<len; ++i) {
		if (newValue.substring(i,i+1) != ch) {
			ret = ret + newValue.substring(i,i+1);
		}
	}

	return ret;
}

/****************************************
*  기능 : 메시지출력
*  수정일 : 2004-04-13
*  parameter : newValue, ch
*****************************************/
function msg(msgtype, msg)//메시지출력
{
	if(msgtype == "ALERT") // alert
		return alert(msg);
	else if(msgtype == "CONFIRM") // confirm
		return confirm(msg);
	else
		return msg;
}


//------------------------------------- SELECT, CHECK BOX 관련 함수 -------------------------------

/****************************************
*  기능 :  Select Box 선택여부 검사
*  수정일 : 2002-01-25
*  parameter : field, pErrorMsg
*****************************************/
function isNotSelected(field, pErrorMsg) //Select Box 선택여부 검사
{
	if(field.selectedIndex == 0) {
		alert(pErrorMsg);
		field.focus() ;
		return true;
	} else {
		return false;
	}
}

/******************************
*  기능 :  Radio Button Check
*  수정일 : 2002-01-25
*  parameter : field, pErrorMsg
*******************************/
function isNotCheckedRadio(field, pErrorMsg) // Radio Button Check
{
	if ( field == null ) {
		alert(pErrorMsg);
		return true;
	}

	if ( field.length == null ) {
		if ( field.checked == true ) {
			return false;
		} else {
			alert(pErrorMsg);
			return true;
		}
	}

	for(i = 0; i < field.length; i++) {
		if(field[i].checked == true) {
			return false;
		}
	}
	alert(pErrorMsg);
	return true;
}

/******************************
*  기능 : Radio Button을 선택해제
*  수정일 : 2004-04-12
*  parameter : field
*******************************/
function uncheckRadio(field) //Radio Button을 선택해제
{
	for(i = 0; i < field.length; i++) {
		field[i].checked = false;
	}
}

/******************************
*  기능 : Radio Button의 선택된 값을 가져온다
*  수정일 : 2004-04-12
*  parameter : field
*******************************/
function getRadioVal(field) //Radio Button의 선택된 값을 가져온다
{
	for(i = 0; i < field.length; i++) {
		if(field[i].checked == true)
			return field[i].value;
	}
	return "";
}

/******************************
*  기능 : 초기값과 현재값을 비교한뒤 같으면 공백처리
*  수정일 : 2004-04-12
*  parameter : field
*******************************/
function setHideValue(field) //초기값과 현재값을 비교한뒤 같으면 공백처리
{
	if(field.value == field.defaultValue) field.value = "";
}

/******************************
*  기능 : 현재값이 공백이면 초기값으로 셋팅
*  수정일 : 2004-04-12
*  parameter : field
*******************************/
function setDefaultValue(field) //현재값이 공백이면 초기값으로 셋팅
{
	if(field.value == "") field.value = field.defaultValue;
}

/******************************
*  기능 : checkbox에서 선택된 것 값을 배열로 리턴
*  수정일 : 2004-04-13
*  parameter : field
*******************************/
function getCheckBoxValue(field)//checkbox에서 선택된 것 값을 배열로 리턴
{
	var arr = new Array()
	var arr_idx = 0;

	if(field == null){
		return arr;
	}

	if(field[0] == null){//checkbox가 하나일때
		if(field.checked == true){
			arr[arr_idx] = field.value;
		}
		return arr;
	}
	else{//checkbox가 하나이상일때
		for(var i=0;i<field.length;i++){
			if(field[i].checked == true){
				arr[arr_idx] = field[i].value;
				arr_idx++;
			}
		}
		return arr;
	}
}

/******************************
*  기능 : select에서 선택된 것 값을 배열로 리턴
*  수정일 : 2004-04-13
*  parameter : field
*******************************/
function getSelectValue(field)// select에서 선택된 것 값을 배열로 리턴
{
	var arr = new Array()
	var arr_idx = 0;

	if(field == null){
		return arr;
	}

	if(field.options == null ) {
		return arr;
	}

	if(field.options[0] == null){//option이 하나일때
		if(field.options.selected == true){
			arr[arr_idx] = field.options.value;
		}
		return arr;
	}
	else{//option이 하나이상일때
		for(var i=0;i<field.options.length;i++){
			if(field.options[i].selected == true){
				arr[arr_idx] = field.options[i].value;
				arr_idx++;
			}
		}
		return arr;
	}
}

/******************************
*  기능 : select에서 선택된 것 label을 배열로 리턴
*  수정일 : 2004-04-13
*  parameter : field
*******************************/
function getSelectText(field)//select에서 선택된 것 label을 배열로 리턴
{
	var arr = new Array()
	var arr_idx = 0;

	if(field == null){
		return arr;
	}

	if(field.options == null ) {
		return arr;
	}

	if(field.options[0] == null){//option이 하나일때
		if(field.options.selected == true){
			arr[arr_idx] = field.options.text;
		}
		return arr;
	}
	else{//option이 하나이상일때
		for(var i=0;i<field.options.length;i++){
			if(field.options[i].selected == true){
				arr[arr_idx] = field.options[i].text;
				arr_idx++;
			}
		}
		return arr;
	}
}

/******************************
*  기능 : radio를 선택되게 만들어준다.
*  수정일 : 2004-04-13
*  parameter : field, hasValue
*******************************/
function radioChecked(field , hasValue )//radio를 선택되게 만들어준다.
{

	if(field == null ) return;

	if(field[0] == null && field.value == hasValue ) {
		field.checked = true;
		return;
	}

	for(var i = 0; i < field.length ; i++){
		if( field[i].value == hasValue ){
			field[i].checked = true;
			return;
		}
	}
}

/******************************
*  기능 : checkbox를 선택되게 만들어준다.
*  수정일 : 2004-04-13
*  parameter : field, hasValue
*******************************/
function checkboxChecked(field , hasValue )//checkbox를 선택되게 만들어준다.
{

	if(field == null ) return;

	if(field[0] == null && field.value == hasValue ) {
		field.checked = true;
		return;
	}

	for(var i = 0; i < field.length ; i++){
		if( field[i].value == hasValue ){
			field[i].checked = true;
		}
	}
	return;
}






//------------------------------------- POPUP 관련 함수 -------------------------------

/******************************
*  기능 : Scroll 이 없는 새 창을 띄운다
*  수정일 : 2004-04-12
*  parameter : 
*		theURL : 새로 띄울 파일 이름이다
*		winName : 새창 이름
*		winTitle : 새창 title
*		width : 새창 가로 크기
*		height : 새창 세로 크기
*		param : 추가적인 화면 argument
*******************************/
function openNoScrollWin(theURL, winName, winTitle, width, height, param)//Scroll 이 없는 새 창을 띄운다
{
	var win = window.open(theURL + "?popupTitle=" + winTitle
			+ "&tableWidth=" + width + param, winName,
			"menubar=no, scrollbars=no, resizable=no, width=" + width + ", height=" + height);
}

function openNoScrollStatusWin(theURL, winName, winTitle, width, height, param)//Scroll 이 없는 새 창을 띄운다
{
	var win = window.open(theURL + "?popupTitle=" + winTitle
			+ "&tableWidth=" + width + param, winName,
			"status=1, menubar=no, scrollbars=no, resizable=no, width=" + width + ", height=" + height);
}

/******************************
*  기능 : Scroll 이 있는 새 창을 띄운다
*  수정일 : 2004-04-12
*  parameter : 
*		theURL : 새로 띄울 파일 이름이다
*		winName : 새창 이름
*		winTitle : 새창 title
*		width : 새창 가로 크기
*		height : 새창 세로 크기
*		param : 추가적인 화면 argument
*******************************/
function openScrollWin(theURL, winName, winTitle, width, height, param)//Scroll 이 있는 새 창을 띄운다
{
	var win = window.open(theURL + "?popupTitle=" + winTitle
			+ "&tableWidth=" + width + param, winName,
			"menubar=no, scrollbars=yes, resizable=no, width="+width+", height="+height) ;
}

/******************************
*  기능 : 제약이 없는 새 창을 띄운다
*  수정일 : 2004-04-12
*  parameter : 
*		theURL : 새로 띄울 파일 이름이다    
*		winName : 새창 이름                
*		winTitle : 새창 title              
*		width : 새창 가로 크기              
*		features : 다양한 모양을 직접 준다  
*		param : 추가적인 화면 argument      
*******************************/
function openFlexWin(theURL,winName,winTitle, width, features, param)//제약이 없는 새 창을 띄운다
{
	var win = window.open(theURL + "?popupTitle=" + winTitle + "&tableWidth=" + width + param,winName,features);
}

/******************************
*  기능 : 새로운 윈도우 창을 띄운다
*  수정일 : 2004-04-12
*  parameter : 
*		theURL : 새로 띄울 파일 이름이다    
*		winName : 새창 이름                
*		width : 새창 가로 크기              
*		height : 새창 세로 크기
*******************************/
function openWin(theURL, winName, width, height, scrollbars)// 새로운 윈도우 창을 띄운다
{
	var win = window.open(theURL, winName, "menubar=no, scrollbars="+scrollbars+", resizable=no, width=" + width + ", height=" + height);
}

/******************************
*  기능 : 새로운 윈도우 창을 띄운다. post 로 데이터를 넘길 경우
*		  팝업을 띄우는 parent의 form에 타겟을 지정한 후 사용
*			(target이 지정되어 있지 않을 경우 target이 자신이 된다.)
*  수정일 : 2004-06-29
*  parameter : 
*		theURL : 새로 띄울 파일 이름이다
*		winName : 새창 이름
*		frm	: form Object
*		width : 새창 가로 크기              
*		height : 새창 세로 크기
*******************************/
function openWinPost(theURL, winName, frmObj, width, height)// 새로운 윈도우 창을 띄운다
{
	var rWin;

	rWin = window.open("", frmObj.target,"menubar=no, scrollbars=no, resizable=no, width=" + width + ", height=" + height);
	frmObj.method = "post";
	frmObj.action = theURL;
	frmObj.submit();

	return rWin;
}


// 패턴제거 
function PattCheck(astrValue, astrGbn)//
{
	var astrData = astrValue;
	var astrSaup = "";

	while(astrData.indexOf(astrGbn) != -1)
	{
		astrSaup = trim(astrSaup + astrData.substring(0, astrData.indexOf(astrGbn)));
		astrData = trim(astrData);
		astrData = astrData.substring(astrData.indexOf(astrGbn) + 1);
	}

	return astrSaup + astrData;
}

/*******************************
*  기능 : 비밀번호 Check
*  수정일 : 2002-01-25
*  parameter : Form
*******************************/
function isNotValidPassword(fPass, fPass2)
{
	if(isEmpty(fPass,"비밀번호를 입력해 주세요!")) return true;
	if(isEmpty(fPass2,"비밀번호를 재입력해 주세요!")) return true;
	if(isNotAlphaNumeric(fPass,"비밀번호는 4~10자 사이의 숫자 및 영문 대소문자로만 기입해 주세요!")) return true;
	if(isNotAlphaNumeric(fPass2,"비밀번호는 4~10자 사이의 숫자 및 영문 대소문자로만 기입해 주세요!")) return true;
	if(isOutOfRange(fPass, 4, 10, "비밀번호는 4~10자 사이의 숫자 및 영문 대소문자로만 기입해 주세요!")) return true;
	if(isOutOfRange(fPass2, 4, 10, "비밀번호는 4~10자 사이의 숫자 및 영문 대소문자로만 기입해 주세요!")) return true;
	if(fPass.value != fPass2.value) {
		alert("비밀번호가 서로 일치하지 않습니다.\n 다시 입력해 주세요!");
		fPass.value="";
		fPass2.value="";
		fPass.focus();
		fPass.select();
		return true;
	}
	return false;
}

/*******************************
*  기능 : 전화번호 Check
*  수정일 : 2002-01-25
*  parameter : Form
*******************************/
function isNotValidTel(ftel, ftel2, gubun, eMsg)
{
	if(!eMsg){
		eMsg = "전화번호";
	}
	if(gubun){//필수
		if(isEmpty(ftel, eMsg+"를 입력해 주세요", false)) return true;
		if(isNotNumber(ftel, eMsg+"는 숫자만 입력 가능 합니다.")) return true;
		if(isOutOfRange(ftel, 3, 4, eMsg+"는 3~4 자리 입니다.")) return true;

		if(isEmpty(ftel2, eMsg+"를 입력해 주세요", false)) return true;
		if(isNotNumber(ftel2, eMsg+"는 숫자만 입력 가능 합니다.")) return true;
		if(isNotExactLength(ftel2, 4, eMsg+"는 4자리 입니다.")) return true;
	}else{
		if(!isEmpty(ftel, "", false)) {
			if(isNotNumber(ftel, eMsg+"는 숫자만 입력 가능 합니다.")) return true;
			if(isOutOfRange(ftel, 3, 4, eMsg+"는 3~4 자리 입니다.")) return true;

			if(isEmpty(ftel2, eMsg+"를 입력해 주세요", false)) return true;
			if(isNotNumber(ftel2, eMsg+"는 숫자만 입력 가능 합니다.")) return true;
			if(isNotExactLength(ftel2, 4, eMsg+"는 4자리 입니다.")) return true;
		}
	}

	return false;
}


/******************************
*  기능 : 주민등록번호 Check
*  수정일 : 2002-01-25
*  parameter : Form
*******************************/
function isNotValidPID(fPid1, fPid2) 
{
	if(isEmpty(fPid1,"주민등록번호를 입력해 주세요!")) return true;
	if(isEmpty(fPid2,"주민등록번호를 입력해 주세요!")) return true;
	if(isNotNumber(fPid1,"주민등록번호 앞자리는 숫자로만 기입해 주세요!")) return true;
	if(isNotNumber(fPid2,"주민등록번호 뒷자리는 숫자로만 기입해 주세요!")) return true;
	if(isNotExactLength(fPid1, 6, "주민등록번호 앞자리는 6자리입니다!")) return true;
	if(isNotExactLength(fPid2, 7, "주민등록번호 뒷자리는 7자리입니다!")) return true;
	strchr = fPid1.value.concat(fPid2.value);
	if (strchr.length == 13	) {
		nlength = strchr.length;

		num1 = strchr.charAt(0);
		num2 = strchr.charAt(1);
		num3 = strchr.charAt(2);
		num4 = strchr.charAt(3);
		num5= strchr.charAt(4);
		num6 = strchr.charAt(5);
		num7 = strchr.charAt(6);
		num8 = strchr.charAt(7);
		num9 = strchr.charAt(8);
		num10 = strchr.charAt(9);
		num11 = strchr.charAt(10);
		num12 = strchr.charAt(11);

		var total = (num1*2)+(num2*3)+(num3*4)+(num4*5)+(num5*6)+(num6*7)+(num7*8)+(num8*9)+(num9*2)+(num10*3)+(num11*4)+(num12*5);
		total = (11-(total%11)) % 10;
	//	if (total == 11) total = 1;
	//	if (total == 10) total = 0;

		if(total != strchr.charAt(12)) {
			alert("주민등록번호가 올바르지 않습니다. \n다시 입력해 주세요!");
			fPid1.value="";
			fPid2.value="";
			fPid1.focus();
			return true;
		}
		return false;
	}	else {
		alert("주민등록번호가 올바르지 않습니다. \n다시 입력해 주세요!");
		fPid1.value="";
		fPid2.value="";
		fPid1.focus();
		return true;
	}
}
/******************************
*  기능 : 법인등록번호 Check
*  수정일 : 2002-01-25
*  parameter : Form
*******************************/

function isNotValidPID2(fPid1, fPid2){

	if(isEmpty(fPid1,"법인등록번호를 입력해 주세요!")) return true;
	if(isEmpty(fPid2,"법인등록번호를 입력해 주세요!")) return true;
	if(isNotNumber(fPid1,"법인등록번호 앞자리는 숫자로만 기입해 주세요!")) return true;
	if(isNotNumber(fPid2,"법인등록번호 뒷자리는 숫자로만 기입해 주세요!")) return true;
	if(isNotExactLength(fPid1, 6, "법인등록번호 앞자리는 6자리입니다!")) return true;
	if(isNotExactLength(fPid2, 7, "법인등록번호 뒷자리는 7자리입니다!")) return true;
	sno = fPid1.value.concat(fPid2.value);

	var ddVal;
	ddVal = 0;
	ddVal = ddVal + (parseFloat(sno.substring(0, 1)) * 1);
	ddVal = ddVal + (parseFloat(sno.substring(1, 2)) * 2);
	ddVal = ddVal + (parseFloat(sno.substring(2, 3)) * 1);
	ddVal = ddVal + (parseFloat(sno.substring(3, 4)) * 2);
	ddVal = ddVal + (parseFloat(sno.substring(4, 5)) * 1);
	ddVal = ddVal + (parseFloat(sno.substring(5, 6)) * 2);
	ddVal = ddVal + (parseFloat(sno.substring(6, 7)) * 1);
	ddVal = ddVal + (parseFloat(sno.substring(7, 8)) * 2);
	ddVal = ddVal + (parseFloat(sno.substring(8, 9)) * 1);
	ddVal = ddVal + (parseFloat(sno.substring(9, 10)) * 2);
	ddVal = ddVal + (parseFloat(sno.substring(10, 11)) * 1);
	ddVal = ddVal + (parseFloat(sno.substring(11, 12)) * 2);
	ddC = parseFloat(sno.substring(12, 13));
	dcVal = '0' + ddVal;
  
	if (dcVal.length==3){
		ddM2 = dcVal.substring(2, 3);
	} else {
		ddM2 = dcVal.substring(3, 4);
	}

	ddM3 = 10 - ddM2;

	if (ddC == ddM3) {
		return false;
	} else {
		alert("법인등록번호가 올바르지 않습니다. \n다시 입력해 주세요!");
		fPid1.value = "";
		fPid2.value = "";
		fPid1.focus();
		return true;
	}
}

/******************************
*  기능 : 사업자등록번호 Check
*  수정일 : 2002-01-25
*  parameter : Form
*******************************/
function isNotValidBID(fBid1, fBid2, fBid3)
{

	if(isEmpty(fBid1,"사업자등록번호를 입력해 주세요!")) return true;
	if(isEmpty(fBid2,"사업자등록번호를 입력해 주세요!")) return true;
	if(isEmpty(fBid3,"사업자등록번호를 입력해 주세요!")) return true;
	if(isNotNumber(fBid1,"사업자등록번호 앞자리는 숫자로만 기입해 주세요!")) return true;
	if(isNotNumber(fBid2,"사업자등록번호 가운데자리는 숫자로만 기입해 주세요!")) return true;
	if(isNotNumber(fBid3,"사업자등록번호 뒷자리는 숫자로만 기입해 주세요!")) return true;
	if(isNotExactLength(fBid1, 3, "사업자등록번호 앞자리는 3자리입니다!")) return true;
	if(isNotExactLength(fBid2, 2, "사업자등록번호 뒷자리는 2자리입니다!")) return true;
	if(isNotExactLength(fBid3, 5, "사업자등록번호 뒷자리는 5자리입니다!")) return true;
	strchr = fBid1.value.concat(fBid2.value.concat(fBid3.value));

	num1 = strchr.charAt(0);
	var num1 = strchr.charAt(0);
	var num2 = strchr.charAt(1);
	var num3 = strchr.charAt(2);
	var num4 = strchr.charAt(3);
	var num5 = strchr.charAt(4);
	var num6 = strchr.charAt(5);
	var num7 = strchr.charAt(6);
	var num8 = strchr.charAt(7);
	var num9 = strchr.charAt(8);
	var num10 = strchr.charAt(9);

	var total = (num1*1)+(num2*3)+(num3*7)+(num4*1)+(num5*3)+(num6*7)+(num7*1)+(num8*3)+(num9*5);	
	total = total + parseInt((num9 * 5) / 10);

	var tmp = total % 10;
	var num_chk = 0;

	if(tmp != 0) var num_chk = 10 - tmp;
	
	if(num_chk != num10) {
		alert("사업자등록번호가 올바르지 않습니다. \n다시 입력해 주세요!");
		fBid1.focus();
		return true;
	}
	return false;
}

/******************************
*  기능 : 우편번호 팝업창 띄우기
*  수정일 : 2004-06-16
*  parameter : 
*		f0 - form 이름
*		z1 - 우편번호 앞자리 컬럼명
*		z2 - 우편번호 뒷자리 컬럼명
*		a1 - 기본주소 컬럼명
*		a2 - 상세주소 컬럼명
*		c1 - 주소구분코드를 가져와야댈 경우 컬럼명
*******************************/
function post(f0, z1, z2, a1, a2, c1)
{
	if(!c1){
		c1 = "";
	}
	openScrollWin("/common/post.jsp", "post", "우편번호", 500, 400, "&f0="+f0+"&z1="+z1+"&z2="+z2+"&a1="+a1+"&a2="+a2+"&c1="+c1);
}


/******************************
*  기능 : 이미지 크기로 팝업창 열기
*  수정일 : 2004-06-16
*  parameter : img - 이미지 경로
*******************************/
function AutoResize(img){
  foto1= new Image();
  foto1.src=img;
  Controlla(img);
}
function Controlla(img){
  if((foto1.width!=0)&&(foto1.height!=0)){
    viewFoto(img);
  }else{
    funzione="Controlla('"+img+"')";
    intervallo=setTimeout(funzione,20);
  }
}
function viewFoto(img){
  largh=foto1.width+20;
  altez=foto1.height+20;
  stringa="width="+largh+",height="+altez;
  alert(img);
  alert(escape(img));
  finestra=window.open(img,"",stringa);
}

/******************************
*  기능 : 자동포커스이동
*  수정일 : 2004-06-16
*  parameter : obj 현재자리
               fcsFld 이동하고자하는위치
			   len 자리수
*******************************/
function OnNextFocus(obj, fcsFld, len){
	if(fcsFld && (39 <= event.keyCode && event.keyCode <= 126)){
		if(obj.value.length >= len)	fcsFld.focus();
	}
	return true;
}


/****************************************
*  기능 : 전송할 파라미터들의 값을 확인 함
*  수정일 : 2005-06-12
*  parameter : FormObject
*****************************************/
function elemList(f) {
	checkWin=window.open("","win","left=50,top=0,width=600,height=500,scrollbars=yes,resizable=yes");
	checkWin.document.write('<html lang=ko><head><meta HTTP-EQUIV="Content-Type"');
	checkWin.document.write(' CONTENT="text/html; charset=EUC-KR"></head>');
	checkWin.document.write('<body><center><h2>Elements 목록</h2></center>');
	for (i=0;i<=f.elements.length-1;i++){
		checkWin.document.write("f.elements[",i,"].value='<font style='font-family:verdana;color:blue;font-size:11px;'>",f.elements[i].value,"</font>'<br>");
		checkWin.document.write("f.elements[<b><font style='font-family:verdana;color:blue;font-size:11px;'>",i,"</font></b>].name=<b><font style='font-family:verdana;color:blue;font-size:11px;'>'",f.elements[i].name,"'</font></b><br><br>");
 	}
 	checkWin.document.write("<form><center><input type='button' value='닫음' ");
 	checkWin.document.write("onClick='self.close()' </center></form></body></html>");
}
/******************************
*  기능 : val에 해당되는 값을 가지고 있으면 selected시킨다.
*  수정일 : 2004-04-13
*  parameter : field, val
*******************************/
function selectBoxSelect(field, val)
{

	if((field.options != null ) && (field.options[0] != null)){//option이 하나 이상일때만
		for(var i=0;i<field.options.length;i++){
			if (field.options[i].value == val){
				field.options[i].selected = true;	
			}
		}
	}
}



//등록 상품 이미지 팝업으로 보이기
function setGoodsViewImage(file_src){
	var img = new Image();//이미지 생성
	var temp = file_src.split(".");//이미지명

	img.src	= file_src;
	width 	= img.width;
	height	= img.height;

	window.open("/bwm/lib/public/img_view.html?img_name="+file_src+"&width="+width+"&height="+height,"opengoods","width="+width+",height="+height+",location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no");
}