//±âº»¿ä¼ÒÁ¤º¸ ¹è¿­°ú »ç¿ëÀÚ Á¤ÀÇ ÄÃ·³ Á¤º¸ ¹è¿­À» ÇÕÄ¡´Â ÇÔ¼ö
function rb_addFormMenuArray(theArray1, theArray2) {
	var i, varArrayArg, varNewArray;
	varArrayArg = "";
	for(i = 0 ; i < theArray2.length ; i++) {
		varArrayArg += ",theArray2[" + i + "]";
	}
	eval('varNewArray = rbSplice(theArray1,theArray1.length,0' + varArrayArg + ');');
	return varNewArray;
}
//¿ä¼Ò¹è¿­ Index °´Ã¼ ¸¸µé±â
function rb_objFormTE(theArray) {
	var i;
	for(i = 0 ; i < theArray.length ; i++) {
		eval('this.' + theArray[i][0] + ' = i;');
	}
}

//±âº»¿ä¼Ò ¹è¿­ ¿ä¼Ò º¯°æÇÏ±â
function rb_chFormDE(theArray,theObj,theFName,theName,theBool,theMin,theMax,theType) {
	var arg, varSArray, idx, i, varBool, varArg;
	arg = rb_chFormDE.arguments;
	varBool = false;
	eval('idx = theObj.' + theFName + ';');
	varSArray = theArray[idx];
	for(i = 3 ; i < arg.length ; i++) {
		if(arg[i].split(' ').join('') != "") {
			varArg = (i == 3)?arg[i]:eval(arg[i]);
			varBool = true;
			varSArray = rbSplice(varSArray,i-2,1,varArg);
		}
	}
	//alert(varSArray);
	if(varBool) theArray = rbSplice(theArray,idx,1,varSArray);
	return theArray;
}

//Form Submit Ã¼Å© ÇÔ¼ö
function rb_submitCheck(theForm, theFormName, theFlag, theAction) {
	var varForm, varUID, varFormArray, i, objFElm, formType, formName;
	varForm = document.getElementsByName(theForm)[0];
	
	//½Äº°ÀÚ ÃßÃâ
	varUID = theForm.split('_');
	varUID = (varUID.length > 1)?varUID[varUID.length-1]:'';
	//»ç¿ë¹è¿­ °¡Á®¿À±â
	eval('varFormArray = rb_formTE_' + varUID + ';');
	//ÆûÀÌ °¡Áö´Â ¸ðµç Æû ¿ä¼Ò Ã¼Å©ÇÏ±â
	if(theFormName && eval('varForm.' + theFormName)) {
		eval('formType = varForm.' + theFormName + '.type;');
		eval('formName = varForm.' + theFormName + '.name;');
		if(rb_submitFormCheck(varForm, formType, formName, varFormArray)) return false;
		return true;
	} else {
		for(i = 0 ; i < varForm.elements.length ; i++){
			objFElm = varForm.elements[i];
			formType = objFElm.type;
			formName = objFElm.name;
			if(rb_submitFormCheck(varForm, formType, formName, varFormArray)) return false;
		}
	}
	if(theFlag == 'Modify'){
		if(!confirm('Á¤¸»·Î ¼öÁ¤ÇÏ½Ã°Ô½À´Ï±î?')) return false;
	} else if(theFlag == 'Delete'){
		if(!confirm('Á¤¸»·Î »èÁ¦ÇÏ½Ã°Ô½À´Ï±î?')) return false;
	}
	if(theAction) eval(theAction);
	varForm.submit();
	return false;
}

function rb_submitFormCheck(varForm, formType, formName, varFormArray) {
	var varFormE, j, varBool, varFAArray
	if(formName) {
		eval('varFormE = varForm.' + formName + ';');
		varBool = false;
		for(j = 0 ; j < varFormArray.length ; j++) {
			if(varFormArray[j][0] == formName) {
				varFAArray = varFormArray[j];
				varBool = true;
				break;
			}
		}
		if(varBool) {
			if(rb_formElementCheck(formType,varFormE,varFAArray)) return true;
		}
	}
}

//Form Ã¼Å© ÇÔ¼ö
function rb_formElementCheck(theType,theForm,theArray) {
	var varCkType, varFormOrg, varFormName, varName;
	var varForm1, varForm2, varForm3, varNumArray, varTArray, i, varMABool;
	varCkType = theArray[5];
	varFormOrg = theForm.form;
	varFormName = theForm.name;
	varName = theArray[1];
	if(varCkType == 6) {
		//ÁÖ¹Î¹øÈ£ Ã¼Å©
		varForm1 = theForm;
		eval('varForm2 = varFormOrg.' + varFormName + '_2;');
		if(theArray[2] || varForm1.value.split(' ').join('') != "" || varForm2.value.split(' ').join('') != "") {
			if(rb_formTextCheck(varForm1,[varFormName,varName + ' ¾ÕÀÚ¸®',true,6,6,2])) return true;
			if(rb_formTextCheck(varForm2,[varFormName + '_2',varName + ' µÞÀÚ¸®',true,7,7,2])) return true;
			if(rb_fMNCheck(varForm1,varForm2, varName)) return true;
		}
	} else if(varCkType == 7 || varCkType == 8) {
		//ÀüÈ­,ÈÞ´ëÆù ¹øÈ£ Ã¼Å©
		varForm1 = theForm;
		if(varCkType == 7) {
			varNumArray = ['02','031','032','033','041','042','043','051','052','053','054','055','061','062','063','064','0502','0504','0505','0506'];
			varTArray = [[2,4,varName + ' Ã¹ÀÚ¸®'],[3,4,varName + ' µÎÂ°ÀÚ¸®'],[4,4,varName + ' ¼¼Â°ÀÚ¸®']];
		} else if(varCkType == 8) {
			varNumArray = ['010','011','016','017','018','019'];
			varTArray = [[3,3,varName + ' Ã¹ÀÚ¸®'],[3,4,varName + ' µÎÂ°ÀÚ¸®'],[4,4,varName + ' ¼¼Â°ÀÚ¸®']];
		}
		eval('varForm2 = varFormOrg.' + varFormName + '_2;');
		eval('varForm3 = varFormOrg.' + varFormName + '_3;');
		if(theArray[2] || varForm1.value.split(' ').join('') != "" || varForm2.value.split(' ').join('') != "" || varForm3.value.split(' ').join('') != "") {
			if(rb_formTextCheck(varForm1,[varFormName,varTArray[0][2],true,varTArray[0][0],varTArray[0][1],2])) return true;
			varMABool = false;
			for(i = 0 ; i < varNumArray.length ; i++) {
				if(varForm1.value == varNumArray[i]) {
					varMABool = true;
					break;
				}
			}
			if(!varMABool) {
				alert(varName + ' Ã¹ÀÚ¸®¿¡ À¯È¿ÇÏÁö ¾ÊÀº ¹øÈ£ÀÔ´Ï´Ù.\n\nÈ®ÀÎÈÄ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä');
				varForm1.focus();
				return true;
			}
			if(rb_formTextCheck(varForm2,[varFormName + '_2',varTArray[1][2],true,varTArray[1][0],varTArray[1][1],2])) return true;
			if(rb_formTextCheck(varForm3,[varFormName + '_3',varTArray[2][2],true,varTArray[2][0],varTArray[2][1],2])) return true;
		}
	} else if(varCkType == 10) {
		//ÁÖ¼Ò Ã¼Å©
		varForm1 = theForm;
		eval('varForm2 = varFormOrg.' + varFormName + '_2;');
		eval('varForm3 = varFormOrg.' + varFormName + '_3;');
		eval('varForm4 = varFormOrg.' + varFormName + '_4;');
		if(theArray[2] || varForm1.value.split(' ').join('') != "" || varForm2.value.split(' ').join('') != "" || varForm3.value.split(' ').join('') != "" || varForm4.value.split(' ').join('') != "") {
			if(rb_formTextCheck(varForm1,[varFormName,'¿ìÆí¹øÈ£ ¾ÕÀÚ¸®',true,3,3,2])) return true;
			if(rb_formTextCheck(varForm2,[varFormName + '_2','¿ìÆí¹øÈ£ µÞÀÚ¸®',true,3,3,2])) return true;
			if(rb_formTextCheck(varForm3,[varFormName + '_3','±âº» ÁÖ¼Ò',true,0,0,0])) return true;
			if(rb_formTextCheck(varForm4,[varFormName + '_4',varName,true,0,0,0])) return true;
		}
	} else if(varCkType == 11) {
		//³¯Â¥ Ã¼Å©
		varForm1 = theForm;
		eval('varForm2 = varFormOrg.' + varFormName + '_2;');
		eval('varForm3 = varFormOrg.' + varFormName + '_3;');
		if(theArray[2] || varForm1.value.split(' ').join('') != "" || varForm2.value.split(' ').join('') != "" || varForm3.value.split(' ').join('') != "") {
			if(rb_formTextCheck(varForm1,[varFormName,varName + 'Ç×¸ñÀÇ ³â',true,0,0,9])) return true;
			if(rb_formTextCheck(varForm2,[varFormName + '_2',varName + 'Ç×¸ñÀÇ ¿ù',true,1,12,9])) return true;
			if(rb_formTextCheck(varForm3,[varFormName + '_3',varName + 'Ç×¸ñÀÇ ÀÏ',true,1,31,9])) return true;
		}
	} else {
		//Æû À¯Çüº° Ã¼Å©
		//if(theType == 'text' || theType == 'password' || theType == 'textarea') return rb_formTextCheck(theForm,theArray);
		if(theType == 'text' || theType == 'password' || theType == 'textarea' || theType == 'select-one') return rb_formTextCheck(theForm,theArray);
		//if(theType == 'select-one') return rb_formSelectOneCheck(theForm,theArray);
		if(theType == 'select-multiple') return rb_formSelectMultipleCheck(theForm,theArray);
		if(theType == 'radio') return rb_formRadioCheck(theForm,theArray);
		if(theType == 'checkbox') return rb_formCheckBoxCheck(theForm,theArray);
	}
}

//*******************************************************************************************
//Form type : text,password,textarea Ã¼Å© ÇÔ¼ö
function rb_formTextCheck(theForm,theArray) {
	var varName;
	varName = theArray[1];
	if(theForm.type == 'select-one') {
		if(rb_formSelectOneCheck(theForm,theArray)) return true;
	} else {
		if(theArray[2] && theForm.value.split(' ').join('') == "") {
			alert(varName + 'Ç×¸ñÀ» Ã¤¿ì¼¼¿ä');
			theForm.value = "";
			theForm.focus();
			return true;
		}
		if(theForm.value.split(' ').join('')) {
			if(rb_stringSizeLetterCheck(theForm,theArray)) {
				theForm.focus();
				return true;
			}
			
			var varPwdCInput;
			eval('varPwdCInput = theForm.form.' + theArray[0] + '_C;');
			if(varPwdCInput) {
				if(rb_formTextCheck(varPwdCInput,[theArray[0] + '_C',varName + 'È®ÀÎ',true,theArray[3],theArray[4],theArray[5]])) return true;
				if(theForm.value != varPwdCInput.value) {
					alert(varName + ' Ç×¸ñ°ú ' + varName + ' È®ÀÎ Ç×¸ñÀÌ µ¿ÀÏÇÏ¿©¾ß ÇÕ´Ï´Ù.');
					varPwdCInput.focus();
					return true;
				}
			}
		}
	}
}

//Form type : select-one Ã¼Å© ÇÔ¼ö
function rb_formSelectOneCheck(theForm,theArray) {
	var varName;
	varName = theArray[1];
	if(theArray[2] && theForm.options[theForm.selectedIndex].value.split(' ').join('') == "") {
		alert(varName + 'Ç×¸ñÀ» ¼±ÅÃÇÏ¼¼¿ä');
		theForm.focus();
		return true;
	}
}

//Form type : select-multiple Ã¼Å© ÇÔ¼ö
function rb_formSelectMultipleCheck(theForm,theArray) {
	var i, varName, varMin, varMax, theNum, alertStr1, alertStr;
	varName = theArray[1];
	if(theArray[2] && theForm.selectedIndex == -1) {
		alert(varName + 'Ç×¸ñÀ» ¼±ÅÃÇÏ¼¼¿ä');
		theForm.focus();
		return true;
	}
	varMin = theArray[3];
	varMax = theArray[4];
	if(theForm.selectedIndex != -1 && (varMin || varMax)) {
		theNum = 0;
		for(i = 0 ; i < theForm.options.length ; i++) (theForm.options[i].selected)?theNum++:theNum=theNum;
		if(theNum < varMin || theNum > varMax) {
			alertStr1 = (varName)?varName + " Ç×¸ñÀ» ":"";
			alertStr = "";
			alertStr += (varMin)?varMin + "°³ ÀÌ»ó ":"";
			alertStr += (varMax)?varMax + "°³ ÀÌÇÏ·Î ":"";
			alertStr = (varMin == varMax)?varMax + "°³ ":alertStr;
			alertStr += " ¼±ÅÃÇØ ÁÖ¼¼¿ä";
			alert(alertStr1 + alertStr);
			theForm.focus();
			return true;
		}
	}
}

//Form type : Radio Ã¼Å© ÇÔ¼ö
function rb_formRadioCheck(theForm,theArray) {
	var i, varName, theBool;
	varName = theArray[1];
	theBool = false;
	if(theArray[2]) {
		for(i = 0 ; i < theForm.length ; i++) {
			if(theForm[i].checked) {
				theBool = true;
				break;
			}
		}
		if(!theBool) {
			alert(varName + 'Ç×¸ñÀ» ¼±ÅÃÇÏ¼¼¿ä');
			return true;
		}
	}
}

//Form type : checkbox Ã¼Å© ÇÔ¼ö
function rb_formCheckBoxCheck(theForm,theArray) {
	var i, varName, varMin, varMax, theNum, alertStr1, alertStr, varResult, start, lastI;
	theNum = 0;
	varName = theArray[1];
	varMin = theArray[3];
	varMax = theArray[4];
	
	for(i = 0 ; i < theForm.length ; i++) (theForm[i].checked)?theNum++:theNum=theNum;
	if(theArray[2] && !theNum) {
		alert(varName + 'Ç×¸ñÀ» ¼±ÅÃÇÏ¼¼¿ä');
		return true;
	}
	if(theNum) {
		if(theNum < varMin || (varMax && theNum > varMax)) {
			alertStr1 = (varName)?varName + " Ç×¸ñÀ» ":"";
			alertStr = "";
			alertStr += (varMin)?varMin + "°³ ÀÌ»ó ":"";
			alertStr += (varMax)?varMax + "°³ ÀÌÇÏ·Î ":"";
			alertStr = (varMin == varMax)?varMax + "°³ ":alertStr;
			alertStr += " ¼±ÅÃÇØ ÁÖ¼¼¿ä";
			alert(alertStr1 + alertStr);
			return true;
		}
	}
	if(theForm.length > 1 && document.getElementsByName(theForm[0].name + '_hidden')[0]) {
		varResult = '';
		start = 1;
		for(i = 0 ; i < theForm.length ; i++) {
			if(theForm[i].checked) {
				varResult += (start != 1)?';':'';
				varResult += theForm[i].value;
				start++;
				continue;
			}
		}
		document.getElementsByName(theForm[0].name + '_hidden')[0].value = varResult;
	}
}

//*******************************************************************************************
//±ÛÀÚ¼ö ¹× ¹®ÀÚÁ¾·ù Á¦ÇÑ Ã¼Å© ÇÔ¼ö
function rb_stringSizeLetterCheck(theForm,theArray) {
	var varStr, varPStr, i, len, alertStr1, alertStr, varName, varMin, varMax;
	//±ÛÀÚ¼ö Ã¼Å©
	varStr = theForm.value;
	len = 0;
	varName = theArray[1];
	varMin = theArray[3];
	varMax = theArray[4];
	if(theArray[5] == 9) {
		//¼ýÀÚÀÏ °æ¿ì
		varPStr = parseInt(varStr);
		if(varPStr < varMin || (varMax != 0 && varPStr > varMax)){
			alertStr1 = (varName)?varName + " Ç×¸ñÀ» ":"";
			alertStr = "";
			alertStr += (varMin)?varMin + " ÀÌ»ó ":"";
			alertStr += (varMax)?varMax + " ÀÌÇÏ·Î ":"";
			alertStr = (varMin == varMax)?varMax + "·Î ":alertStr;
			alertStr += " ÀÔ·ÂÇØ ÁÖ¼¼¿ä";
			alert(alertStr1 + alertStr);
			return true;
		}
	} else {
		//¹®ÀÚ¿­ÀÏ °æ¿ì
		if(varMin || varMax) {
			for(i=0;i < varStr.length; i++) (varStr.charCodeAt(i) > 255)? len+=2:len++;
			if(len < varMin || (varMax != 0 && len > varMax)){
				alertStr1 = (varName)?varName + " Ç×¸ñÀ» ":"";
				alertStr = "";
				alertStr += (varMin)?varMin + "ÀÚ ÀÌ»ó ":"";
				alertStr += (varMax)?varMax + "ÀÚ ÀÌÇÏ·Î ":"";
				alertStr = (varMin == varMax)?varMax + "ÀÚ·Î ":alertStr;
				alertStr += " ÀÔ·ÂÇØ ÁÖ¼¼¿ä";
				alert(alertStr1 + alertStr);
				return true;
			}
		}
	}
	//¹®ÀÚ Á¾·ù Ã¼Å©
	var upperCase, lowerCase, Number, varLimitStr, j, limitLetter, varLType;
	upperCase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	lowerCase = 'abcdefghijklmnopqrstuvwxyz';
	Number = '1234567890';
	varLType = theArray[5];
	
	if(varLType) {
		if(varLType == 1) {
			varLimitStr = upperCase + lowerCase;
			limitLetter = "¿µ¾î";
		} else if(varLType == 2) {
			varLimitStr = Number;
			limitLetter = "¼ýÀÚ·ÎµÈ ¹®ÀÚ";
		} else if(varLType == 3) {
			varLimitStr = upperCase + lowerCase + Number;
			limitLetter = "¿µ¾î¿Í ¼ýÀÚ";
		} else if(varLType == 4) {
			varLimitStr = lowerCase + Number;
			limitLetter = "¿µ¾î¼Ò¹®ÀÚ ¿Í ¼ýÀÚ";
		} else if(varLType == 5) {
			if(!rb_checkEmail(theForm)) return true;
		} else if(varLType == 9) {
			varLimitStr = Number;
			limitLetter = "¼ýÀÚ";
		}
		if(varLType != 5) {
			for(j = 0 ; j < varStr.length ; j++) {
				if(varLimitStr.indexOf(varStr.charAt(j)) == -1 || (varLType == 9 && varStr.charAt(0) == '0')) {
					alert((varName)?varName + ' Ç×¸ñÀº ' + limitLetter + '¸¸ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.\n\nÈ®ÀÎ ÈÄ ´Ù½Ã ÀÔ·ÂÇØ ÁÖ¼¼¿ä':limitLetter + '¸¸ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.\n\nÈ®ÀÎ ÈÄ ´Ù½Ã ÀÔ·ÂÇØ ÁÖ¼¼¿ä');
					return true;
				}
			}
		}
	}
}

//ÀÌ¸ÞÀÏ Çü½Ä Ã¼Å©
function rb_checkEmail(obj) {

	if (typeof obj == "undefined") {
		return true;
	}
	
	var emailStr = obj.value;
	
	if (emailStr != "" ){
	
		var emailPat=/^(.+)@(.+)$/
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
		var validChars="\[^\\s" + specialChars + "\]"
		var firstChars=validChars
		var quotedUser="(\"[^\"]*\")"
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		var atom="(" + firstChars + validChars + "*" + ")"
		var word="(" + atom + "|" + quotedUser + ")"
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		var matchArray=emailStr.match(emailPat)
		
		var alertStr = "À¯È¿ÇÏÁö ¾Ê´Â ÀÌ¸ÞÀÏÀÔ´Ï´Ù. Á¤È®È÷ ±â·ÏÇØ ÁÖ¼¼¿ä.";
		
		if (matchArray==null) {
			alert(alertStr);
			obj.focus();
			return false;
		}

		var user=matchArray[1]
		var domain=matchArray[2]

		if (user.match(userPat)==null) {
		    // user is not valid
		     alert(alertStr);
		    obj.focus();
			return false;
		}

		var IPArray=domain.match(ipDomainPat)
		if (IPArray!=null) {
		    // this is an IP address
			  for (var i=1;i<=4;i++) {
			    if (IPArray[i]>255) {
			        alert(alertStr);
					obj.focus();
					return false;
			    }
		    }
		}

		var domainArray=domain.match(domainPat)
		if (domainArray==null) {
			alert(alertStr);
		    obj.focus();
			return false;
		}

		var atomPat=new RegExp(atom,"g")
		var domArr=domain.match(atomPat)
		var len=domArr.length
		if (domArr[domArr.length-1].length<2 || 
		    domArr[domArr.length-1].length>3) {
		   // the address must end in a two letter or three letter word.
		   alert(alertStr);
		   obj.focus();
		   return false;
		}

		if (domArr[domArr.length-1].length==2 && len<3) {
		   var errStr="This address ends in two characters, which is a country"
	   	   errStr+=" code.  Country codes must be preceded by "
  	 	   errStr+="a hostname and category (like com, co, pub, pu, etc.)"
		   alert(errStr);
		   obj.focus();
		   return false;
		}


		if (domArr[domArr.length-1].length==3 && len<2) {
		   var errStr="This address is missing a hostname!" 
		   alert(errStr);
		   obj.focus();
		   return false;
		}
	}
	
	return true;
}

//ÁÖ¹Îµî·Ï¹øÈ£ Ã¼Å©
function rb_fMNCheck(target1,target2, cmt) {

   	var t1 = target1.value;
   	var t2 = target2.value;
   	var sum;
   	sum = 0;

   	sum += t1.charAt(0)*2;
   	sum += t1.charAt(1)*3;
   	sum += t1.charAt(2)*4;
   	sum += t1.charAt(3)*5;
   	sum += t1.charAt(4)*6;
   	sum += t1.charAt(5)*7;
  
   	sum += t2.charAt(0)*8;
   	sum += t2.charAt(1)*9;
   	sum += t2.charAt(2)*2;
   	sum += t2.charAt(3)*3;
   	sum += t2.charAt(4)*4;
   	sum += t2.charAt(5)*5;

   	check = (11 - sum%11)%10;
    
   	var l =  t2.length - 1;
   	if ( t2.charAt(l) != check ){
    	alert(cmt + 'Ç×¸ñÀÌ Á¤È®ÇÏÁö ¾Ê½À´Ï´Ù');
    	target1.focus();
    	return true;
    } else {
    	return false;
	}
}
