function Protank_chkForm(f,action,target,frmName){ 
	
    var i,currEl,f;
	//alert(f);
	if(f != "[object HTMLFormElement]" && f!="[object]"){
		f = document.forms[f];
	}else{
		f = f;
	}
    for(i = 0; i < f.elements.length; i++){ 
        currEl = f.elements[i];
		//currEAttr = f.elements[i];
        //필수 항목을 체크한다. 
		//alert(currEl.type);
			if (currEl.getAttribute("required") != null) { 
				if(currEl.type == "TEXT" || currEl.type == "text" || 
				   currEl.tagName == "SELECT" || currEl.tagName == "select" || 
				   currEl.tagName == "TEXTAREA" || currEl.tagName == "textarea"){ 
					if(!Protank_chkText(currEl,currEl.getAttribute("reqName"))) return false; 

				} else if(currEl.type == "PASSWORD" || currEl.type == "password"){ 
					if(!Protank_chkText(currEl,currEl.getAttribute("reqName"))) return false; 

				} else if(currEl.type == "CHECKBOX" || currEl.type == "checkbox"){ 
					if(!Protank_chkCheckbox(f,currEl,currEl.getAttribute("reqName"),frmName)) return false; 

				} else if(currEl.type == "RADIO" || currEl.type == "radio"){ 
					if(!Protank_chkRadio(f, currEl,currEl.getAttribute("reqName"))) return false; 
				} else if(currEl.type == "hidden"){ 
					if(!Protank_chkHidden(currEl,currEl.getAttribute("reqName"))) return false; 
				}  			
			}		
			
			// Write Type 체크 부분
			//alert(currEl.getAttribute("writeType"));
			if(currEl.getAttribute("writeType") != null && f.write_type[0].checked){
				//alert('1');
				if(!Protank_chkText(document.getElementById("contentTEXT"),document.getElementById("contentTEXT").getAttribute("reqName"))) return false; 
			}else if(currEl.getAttribute("writeType") != null && f.write_type[1].checked){
				//alert('2');
				if(!Protank_chkText(document.getElementById("contentHTML"),document.getElementById("contentHTML").getAttribute("reqName"))) return false; 
			}else if(currEl.getAttribute("writeType") != null && f.write_type[2].checked){
				//alert('3');
				f.content_remark.value = nvHtmlEdit.innerHTML;
				if(!Protank_chkText(document.getElementById("content_remark"),document.getElementById("content_remark").getAttribute("reqName"))) return false; 
			}
					
			// Editor 입력 처리 부분
			/*
			if(currEl.getAttribute("remark") != null){
				f.content_remark.value = nvHtmlEdit.document.body.innerHTML;
					if(!Protank_chkText(currEl,currEl.reqName)) return false; 
			}
			*/
			// 입력 페턴을 체크한다.
			if(currEl.getAttribute("option") != null && currEl.value.length > 0){ 
				// Protank_chkPatten(field,patten,name){ 
				//alert("field"+currEl);
				//alert("patten"+currEl.option);
				//alert("name"+currEl.getAttribute("reqName"));
				if(!Protank_chkPatten(currEl,currEl.getAttribute("option"),currEl.getAttribute("reqName"))) return false; 
			} 
			
			// confirm 처리 부분
			if(currEl.getAttribute("confirm") != null){
				if(!Protank_confirm(currEl,currEl.getAttribute("reqName"))) return false; 
			}

			// 비밀번호 확인 처리 부분
			if(currEl.getAttribute("join") != null){
				if(document.getElementById('passwd').value != document.getElementById('passwd2').value){
					alert('비밀번호가 일치하지 않습니다.');
					return;
				}
			}	
			
			

			// 멀티업로드 처리 부분
			if(currEl.getAttribute("multiUpload") != null){			
				for(var mulUp=0; mulUp<currEl.options.length; mulUp++) {
					currEl.options[mulUp].selected = true;				
				}
			}

			// 폼이름 
			if(currEl.getAttribute("frmName") != null){
				var frmName = f.elements[i].value
			}
			
			// 클럽 게시판 관리 처리 부분
			if(currEl.getAttribute("clubBoardManager") != null){			
				for(var boardM=0; boardM<currEl.options.length; boardM++) {
					if(boardM==0){
						board_serial = currEl.options[boardM].value;
					}else{
						board_serial = board_serial+"|"+currEl.options[boardM].value;
					}
				}
				f.board_serialization.value = board_serial;	
			}
			
			// 삭제 confirm 처리 부분
			if(currEl.getAttribute("multidel") != null){
				var confVal	= confirm('선택한 게시물을 삭제하시겠습니까?');
				if(!confVal){
					return;
				}
			}

			// InnoAP 처리 부분
			if(currEl.getAttribute("innoap") != null){	
				f.content_remark.value = nvHtmlEdit.document.body.innerHTML;
				InnoAPSubmit(f);
			}

			// InnoAP 처리 부분
			if(currEl.getAttribute("topSearch") != null){
				if(document.getElementById('searchType').value=="gohyang" ){
					action	= "/search/hometown.php";
				}else{
					action	= "/search/school.php";
				}
			}	
		
    }

	try{
		//===============================================================
		// 폼처리 부분
		if(document.forms[frmName].formALERT!=null){
			var conf = confirm(document.forms[frmName].formALERT); 
		}else{
			var conf = false;
		}
		if(conf == true || document.forms[frmName].getAttribute("formPROCESS")=="PROTANK_AJAX"){
			if(document.forms[frmName].formPROCESS!=null){				
				if(document.forms[frmName].formPROCESS=="PROTANK_AJAX"){
					var data = "ajaxID=START";

					for(a=0;a<document.forms[frmName].length;a++){
						if(document.forms[frmName][a].name!=null){
							data += "&"+document.forms[frmName][a].name+"="+document.forms[frmName][a].value;	
						}
					}	
					//sendRequest(url, params, callback, method)
					sendRequest(ajaxSetApply,data,'POST',action,true,true);
					//sendRequest(action,data,ajaxSetApply,'POST');
				}else{
					return true;
				}
			}
		}else{
			f.target=target;
			f.action=action;
			f.submit();
		}
	}catch(e){
		f.target=target;
		f.action=action;
		f.submit();
	}

} 

function Protank_chkForm_self(f,action,target,frmName){ 
    var i,currEl,f;
	//alert(f);
	if(f != "[object HTMLFormElement]" && f!="[object]"){
		f = document.forms[f];
	}else{
		f = f;
	}
    for(i = 0; i < f.elements.length; i++){ 
        currEl = f.elements[i];
		//currEAttr = f.elements[i];
        //필수 항목을 체크한다. 
		//alert(currEl.type);
		if(currEl.name==frmName){				
			if (currEl.getAttribute("required") != null) { 
				if(currEl.type == "TEXT" || currEl.type == "text" || 
				   currEl.tagName == "SELECT" || currEl.tagName == "select" || 
				   currEl.tagName == "TEXTAREA" || currEl.tagName == "textarea"){ 
					if(!Protank_chkText(currEl,currEl.getAttribute("reqName"))) return false; 

				} else if(currEl.type == "PASSWORD" || currEl.type == "password"){ 
					if(!Protank_chkText(currEl,currEl.getAttribute("reqName"))) return false; 

				} else if(currEl.type == "CHECKBOX" || currEl.type == "checkbox"){ 
					if(!Protank_chkCheckbox(f,currEl,currEl.getAttribute("reqName"),frmName)) return false; 

				} else if(currEl.type == "RADIO" || currEl.type == "radio"){ 
					if(!Protank_chkRadio(f, currEl,currEl.getAttribute("reqName"))) return false; 
				} else if(currEl.type == "hidden"){ 
					if(!Protank_chkHidden(currEl,currEl.getAttribute("reqName"))) return false; 
				}  			
			}		
			
			// Write Type 체크 부분
			if(currEl.getAttribute("writeType") != null && f.write_type[0].checked){
				if(!Protank_chkText(document.getElementById("contentTEXT"),document.getElementById("contentTEXT").getAttribute("reqName"))) return false; 
			}else if(currEl.getAttribute("writeType") != null && f.write_type[1].checked){
				if(!Protank_chkText(document.getElementById("contentHTML"),document.getElementById("contentHTML").getAttribute("reqName"))) return false; 
			}else if(currEl.getAttribute("writeType") != null && f.write_type[2].checked){
				f.content_remark.value = nvHtmlEdit.innerHTML;
				if(!Protank_chkText(document.getElementById("content_remark"),document.getElementById("content_remark").getAttribute("reqName"))) return false; 
			}
					
			// Editor 입력 처리 부분
			/*
			if(currEl.getAttribute("remark") != null){
				f.content_remark.value = nvHtmlEdit.document.body.innerHTML;
					if(!Protank_chkText(currEl,currEl.reqName)) return false; 
			}
			*/
			// 입력 페턴을 체크한다.
			if(currEl.getAttribute("option") != null && currEl.value.length > 0){ 
				// Protank_chkPatten(field,patten,name){ 
				//alert("field"+currEl);
				//alert("patten"+currEl.option);
				//alert("name"+currEl.getAttribute("reqName"));
				if(!Protank_chkPatten(currEl,currEl.getAttribute("option"),currEl.getAttribute("reqName"))) return false; 
			} 
			
			// confirm 처리 부분
			if(currEl.getAttribute("confirm") != null){
				if(!Protank_confirm(currEl,currEl.getAttribute("reqName"))) return false; 
			}

			// 비밀번호 확인 처리 부분
			if(currEl.getAttribute("join") != null){
				if(document.getElementById('passwd').value != document.getElementById('passwd2').value){
					alert('비밀번호가 일치하지 않습니다.');
					return;
				}
			}	
			
			
			// 멀티업로드 처리 부분
			if(currEl.getAttribute("multiUpload") != null){			
				for(var mulUp=0; mulUp<currEl.options.length; mulUp++) {
					currEl.options[mulUp].selected = true;				
				}
			}

			// 폼이름 
			if(currEl.getAttribute("frmName") != null){
				var frmName = f.elements[i].value
			}
			
			// 클럽 게시판 관리 처리 부분
			if(currEl.getAttribute("clubBoardManager") != null){			
				for(var boardM=0; boardM<currEl.options.length; boardM++) {
					if(boardM==0){
						board_serial = currEl.options[boardM].value;
					}else{
						board_serial = board_serial+"|"+currEl.options[boardM].value;
					}
				}
				f.board_serialization.value = board_serial;	
			}
			
			// 삭제 confirm 처리 부분
			if(currEl.getAttribute("multidel") != null){
				var confVal	= confirm('선택한 게시물을 삭제하시겠습니까?');
				if(!confVal){
					return;
				}
			}

			// InnoAP 처리 부분
			if(currEl.getAttribute("innoap") != null){	
				f.content_remark.value = nvHtmlEdit.document.body.innerHTML;
				InnoAPSubmit(f);
			}

			// InnoAP 처리 부분
			if(currEl.getAttribute("topSearch") != null){
				if(document.getElementById('searchType').value=="gohyang" ){
					action	= "/search/hometown.php";
				}else{
					action	= "/search/school.php";
				}
			}	
		}
    }

	try{
		//===============================================================
		// 폼처리 부분
		if(document.forms[frmName].formALERT!=null){
			var conf = confirm(document.forms[frmName].formALERT); 
		}else{
			var conf = false;
		}
		if(conf == true || document.forms[frmName].getAttribute("formPROCESS")=="PROTANK_AJAX"){
			if(document.forms[frmName].formPROCESS!=null){				
				if(document.forms[frmName].formPROCESS=="PROTANK_AJAX"){
					var data = "ajaxID=START";

					for(a=0;a<document.forms[frmName].length;a++){
						if(document.forms[frmName][a].name!=null){
							data += "&"+document.forms[frmName][a].name+"="+document.forms[frmName][a].value;	
						}
					}	
					//sendRequest(url, params, callback, method)
					sendRequest(ajaxSetApply,data,'POST',action,true,true);
					//sendRequest(action,data,ajaxSetApply,'POST');
				}else{
					return true;
				}
			}
		}else{
			f.target=target;
			f.action=action;
			f.submit();
		}
	}catch(e){
		f.target=target;
		f.action=action;
		f.submit();
	}

} 




function Protank_chkPatten(field,patten,name){ 
    var regNum =/^[0-9]+$/; 
	var regCount =/^[1-9]{1}[0-9]{0,}/; 
    var regPhone =/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/; 
    var regMail =/^[_a-zA-Z0-9-]+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/; 
    var regDomain =/^[.a-zA-Z0-9-]+.[a-zA-Z]+$/; 
    var regAlpha =/^[a-zA-Z]+$/; 
    var regHost =/^[a-zA-Z-]+$/; 
    var regHangul =/[가-힣]/; 
    var regHangulEngNum =/^[가-힣a-z0-9A-Z]*$/; 
    var regHangulOnly =/^[가-힣]*$/; 
    var regId = /^[a-zA-Z0-9_-]{4,12}$/; 
	var regGohyang = /^[가-힣]{2}[가-힣]{0,}/; 
    var regDate =/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/; 
	var regJumin = "jumin";
	var regXSS =/script|scriptt/; 
	//var regTrim = "trim";
	var regComNum = "comNum";
	var regGoodsName = /[^/|]+$/;
	var regTitle = /^[^\"]*$/;
	var regTrim = /^[^\s]/;
    //===============================================================
	// 주민등록번호 체크 처리 부분
	if(patten=="regJumin"){
		jumin_total = 0;
	    jumin_array = '234567892345'; 
		
		juminVal	= document.getElementById('jumin1').value + document.getElementById('jumin2').value 
	    for ( i = 0; i < 12; i++ ) 
			jumin_total = jumin_total + parseInt(juminVal.substring(i, i+1)) * parseInt(jumin_array.substring(i, i+1)) 
			jumin_total = 11 - (jumin_total % 11) 
		 
	    if ( jumin_total == 10 ) 
			jumin_total = 0; 
	 
	    else if ( jumin_total == 11 ) 
			jumin_total = 1; 
		
	    if ( parseInt(juminVal.substring(12, 13) ) != jumin_total ){
			alert(name + "\n\n항목의 형식이 올바르지 않습니다."); 
			field.focus(); 
			return false;  
		}
	
	}else if(patten=="regComNum"){
		//var strNumb = document.all['comNum1'].value + document.all['comNum2'].value + document.all['comNum3'].value ;
		var strNumb = document.getElementById('comNum').value;
		if (strNumb.length != 10) {
			alert("사업자등록번호가 잘못되었습니다.");
			return false;
		}
		
			sumMod  =   0;
			sumMod  +=  parseInt(strNumb.substring(0,1));
			sumMod  +=  parseInt(strNumb.substring(1,2)) * 3 % 10;
			sumMod  +=  parseInt(strNumb.substring(2,3)) * 7 % 10;
			sumMod  +=  parseInt(strNumb.substring(3,4)) * 1 % 10;
			sumMod  +=  parseInt(strNumb.substring(4,5)) * 3 % 10;
			sumMod  +=  parseInt(strNumb.substring(5,6)) * 7 % 10;
			sumMod  +=  parseInt(strNumb.substring(6,7)) * 1 % 10;
			sumMod  +=  parseInt(strNumb.substring(7,8)) * 3 % 10;
			sumMod  +=  Math.floor(parseInt(strNumb.substring(8,9)) * 5 / 10);
			sumMod  +=  parseInt(strNumb.substring(8,9)) * 5 % 10;
			sumMod  +=  parseInt(strNumb.substring(9,10));
		
		if (sumMod % 10  !=  0) {
			alert("사업자등록번호가 잘못되었습니다.");
			return false;
		}				
	}else{					
		patten = eval(patten); 
		if(!patten.test(field.value)){ 
			alert(name + "\n\n항목의 형식이 올바르지 않습니다."); 
			field.focus(); 
			return false;  
		}
		
	}
    return true; 
} 

function Protank_chkText(field, name){
	//alert(field);
	//alert(name);
	//===============================================================
	// 본문글쓰기 체크 부분
	if(field.name=="content_remark"){
		if(field.value.length < 1){ 
			alert(name); 
			document.nvHtmlEdit.focus(); 
			return false; 
		} 
	}else{
		if(field.value.length < 1){ 
			alert(name); 
			field.focus(); 
			return false; 
		} 
	}
    return true; 
}

function Protank_chkHidden(field, name){
	if(field.value.length < 1){ 
		alert(name); 
		return false; 
	} 
    return true; 
}

function Protank_chkCheckbox(form,field, name,fname){
	fieldname = eval("document.forms['"+fname+"']"+'.'+field.name);
    if (!fieldname.checked){
        alert(name); 
        field.focus(); 
        return false; 
    }
    return true; 
}

function Protank_chkRadio(form, field, name){
    fieldname = eval(form.name+'.'+field.name);	
    try{
		if(fieldname.length){
			for (i=0;i<fieldname.length;i++) {
				if (fieldname[i].checked){			
					return true;
				} 
			}
			alert(name); 
			field.focus(); 
			return false; 
		}else{
			if (fieldname.checked){			
				return true;
			} 
			alert(name); 
			field.focus(); 
			return false; 
		}
	}catch(e){
		if (fieldname.checked){			
			return true;
		} 
		alert(name); 
		field.focus(); 
		return false; 
	}
}

function Protank_confirm(form, name){
    var conf = confirm(name)
	if(!conf){
		return false;
	}else{
		return true;
	}
     
}
