var __required_check_useMino=true;
var __required_check_useBase64=false;

function required_chkForm(f)
{ 
	try {
		__required_check_useMino=arguments[1];
	} catch(e){
	
	}
	
	try {
		if(arguments[2]) __required_check_useBase64=arguments[2];
	} catch(e) {
	
	}
	
    var i,_tElement;

    for(i = 0; i < f.elements.length; i++){ 
        _tElement = f.elements[i]; 
        
        if(_tElement.disabled) continue;
        //필수 항목을 체크한다.  
        if (_tElement.getAttribute("required") != null) { 

            if(_tElement.type.toLowerCase() == "text" || 
			   _tElement.type.toLowerCase() == "hidden" ||
               _tElement.tagName.toLowerCase() == "select" || 
               _tElement.tagName.toLowerCase() == "textarea") { 
                if(!requiredCheck_chkText(_tElement,_tElement.getAttribute("requirederrormsg"))) {
                	return false; 
                }

            } else if(_tElement.type.toLowerCase() == "password") { 
                if(!requiredCheck_chkText(_tElement,_tElement.getAttribute("requirederrormsg"))) return false; 
	
            } else if(_tElement.type.toLowerCase() == "checkbox") { 
                if(!requiredCheck_chkCheckbox(f, _tElement,_tElement.getAttribute("requirederrormsg"))) return false; 

            } else if(_tElement.type.toLowerCase() == "radio") { 
                if(!requiredCheck_chkRadio(f, _tElement,_tElement.getAttribute("requirederrormsg"))) return false; 

            }
        }
        // 입력 페턴을 체크한다.
        if(_tElement.getAttribute("option") != null && _tElement.value.length > 0){ 
            if(!requiredCheck_chkPatten(_tElement,_tElement.option,_tElement.getAttribute("requirederrormsg"))) return false; 
        }

	}
/*

	for(i = 0; i < f.elements.length; i++){ 
		var Obj = f.elements[i];
		if(Obj.type) {
			var ObjType = Obj.type.toLowerCase();
		
			if (ObjType == "button" || ObjType == "submit" || ObjType == "reset") {
				Obj.disabled = true; 
			}
		}
	} 
*/


}

function requiredCheck_chkPatten(field,patten,errmsg)
{ 
    var regNum =/^[0-9]+$/; 
    var regPhone =/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/;                     // 형식 : 033-1234-5678
    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 regId = /^[a-zA-Z]{1}[a-zA-Z0-9_-]{4,15}$/; 
    var regDate =/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;                         // 형식 : 2002-08-15

    patten = eval(patten); 
    if(!patten.test(field.value)){
    
    	if(__required_check_useBase64==true) errmsg=Base64.decode(errmsg);
    
    	if(__required_check_useMino==true) {
	    	var al=new mino.alert();
	    	al.message=errmsg;
	    	al.open(); 
    	} else {
    		alert(errmsg);
    	}


		return false;
    } 
    return true; 
} 

function requiredCheck_chkText(field, errmsg)
{

    if(!field.disabled && (field.value.trim()=='' || field.value==null)) { 

    	if(__required_check_useBase64==true) errmsg=Base64.decode(errmsg);

    	if(__required_check_useMino==true) {
	    	var al=new mino.alert();
	    	al.message=errmsg;
	    	al.open(); 
    	} else {
    		alert(errmsg);
    	}
    	 
        field.value = "";
		var fieldType=field.type.toLowerCase();

		if(field.style.display != 'none' && fieldType != "hidden") {
			field.focus();
		}

        return false; 
    } 
    return true;

}

function requiredCheck_chkCheckbox(form, field, errmsg)
{
    fieldname = field;
    if (!fieldname.disabled && !fieldname.checked){
    
    	if(__required_check_useBase64==true) errmsg=Base64.decode(errmsg);    
    
    	if(__required_check_useMino==true) {
	    	var al=new mino.alert();
	    	al.message=errmsg;
	    	al.open(); 
    	} else {
    		alert(errmsg);
    	}


		return false; 
    }
    return true; 
}

function requiredCheck_chkRadio(form, field, errmsg)
{

    fieldname = document.getElementsByName(field.name);
    if(!fieldname.disabled) {
	    for (i=0;i<fieldname.length;i++) {
	        if (fieldname[i].checked)
	            return true; 
	    }
	    
	   	if(__required_check_useBase64==true) errmsg=Base64.decode(errmsg);
	    
	   	if(__required_check_useMino==true) {
	    	var al=new mino.alert();
	    	al.message=errmsg;
	    	al.open(); 
		} else {
			alert(errmsg);
		}
	
	
		return false; 
	}
	
	return true;
} 
