isDOM = document.getElementById ? 1:0;

// Validator function for RADIO and CHECKBOX elements
function chkForChecked (f,fld,msg) {
    var frm = f;
    var e;
    var j = 0;

    if(isDOM) {
        e = document.getElementsByTagName('INPUT'); // returns a Node List
        for (var i=0; i<=e.length-1; ++i){
            if(e[i].name == fld) {
                if(j==0)j=i;
                if ( e[i].checked ) return true;  // one is checked after all!
            }
        }
    }else{
        e = f.elements[fld] ; // returns an array of elements
        for( var i=0; i < e.length; ++i ) {
            if ( e[i].checked ) {
                return true;  // one is checked after all!
                break;
            }
        }
    }

//    alert( msg );
    e[j].focus() ;
    return false;
}

// Validator function for TEXT and TEXTAREA elements
function chkForNonblank (f,fld,msg) {
    var frm = f ;
    var e = f.elements[fld]
    
    if ( ! empty(trim(e.value))  ) return true; 
    //e.focus() ;
    return false;
}

// Validator function for SELECT elements
function chkForIsSelected (f,fld,msg) {
    var frm = f ;
    var e = f.elements[fld]

	if ( (e.options[e.selectedIndex].value != '0') && (e.options[e.selectedIndex].value != '') ) return true; 
//    if ( ! e.selectedIndex == 0 ) return true; 
    //alert( msg );
    //e.focus() ;
    return false;
}


// Validator function to check for numeric values.
function chkNumeric (f,fld,msg) {
    var frm = f ;
    var e = f.elements[fld]

	var x = new String (e.value);
	x = unformat_number ( x );
//	e.value = x;
    
    if ( is_numeric(x) ) return true; 
    return false;
}

// Validator function to check for numeric values.
function chkGTZ (f,fld,msg) {
    var frm = f ;
    var e = f.elements[fld]
    
	var x = new String (e.value);
	x = x.replace(/,/g,"");
   	if (x > 0) return true;
    return false;
}

// Validator function to check for valid email address.
function chkForValidEmail (f,fld,msg) {
    var frm = f ;
    var e = f.elements[fld]

    if ( isValidEmail(trim(e.value))  ) return true;
//    alert( msg );
    e.focus() ;
    return false;
}

// Validator function to check for valid date.
function chkForValidDate (f,fld,msg) {
    var frm = f ;
    var e = f.elements[fld]

    if ( validateDate(trim(e.value))  ) return true;
//    alert( msg );
    e.focus() ;
    return false;
}

// Validator function to check for confirmed values.
function chkForTheSame (f,fld,msg) {
    var frm = f ;
    var e1 = f.elements[fld[0]];
    var e2 = f.elements[fld[1]];

    if ( e1.value == e2.value)  return true;
//    alert( msg );
    e2.focus() ;
    return false;
}

function validateForm(f, fields) {
	var b_errors = false;
	if (fields instanceof Array) {
		fieldsToCheck = fields;
	}
	for( var i=0; i < fieldsToCheck.length; ++i ) {
		if (fieldsToCheck[i][0] instanceof Array) {
			if (document.getElementById(fieldsToCheck[i][0][0] + "_err_box").className != "") {
				document.getElementById(fieldsToCheck[i][0][0] + "_err_box").className = "";
				document.getElementById(fieldsToCheck[i][0][0] + "_err_text").innerHTML = "";
			}
			if (document.getElementById(fieldsToCheck[i][0][1] + "_err_box").className != "") {
				document.getElementById(fieldsToCheck[i][0][1] + "_err_box").className = "";
				document.getElementById(fieldsToCheck[i][0][1] + "_err_text").innerHTML = "";
			}
		} else {
			if (document.getElementById(fieldsToCheck[i][0] + "_err_box").className != "") {
				document.getElementById(fieldsToCheck[i][0] + "_err_box").className = "";
				document.getElementById(fieldsToCheck[i][0] + "_err_text").innerHTML = "";
			}
		}
	}
	for( var i=0; i < fieldsToCheck.length; ++i ) {
		if (! fieldsToCheck[i][1] (f,fieldsToCheck[i][0],fieldsToCheck[i][2]) ) {
			//if (b_errors == false) { f.elements[fieldsToCheck[i][0]].focus(); }
			b_errors = true;
			if (fieldsToCheck[i][0] instanceof Array) {
				document.getElementById(fieldsToCheck[i][0][0] + "_err_box").className = "err";
				document.getElementById(fieldsToCheck[i][0][0] + "_err_text").innerHTML += "&nbsp;<b>&dagger;</b>&nbsp;" + fieldsToCheck[i][2] + "&nbsp;";
				document.getElementById(fieldsToCheck[i][0][1] + "_err_box").className = "err";
				document.getElementById(fieldsToCheck[i][0][1] + "_err_text").innerHTML += "&nbsp;<b>&dagger;</b>&nbsp;" + fieldsToCheck[i][2] + "&nbsp;";
			} else {
				document.getElementById(fieldsToCheck[i][0] + "_err_box").className = "err";
				document.getElementById(fieldsToCheck[i][0] + "_err_text").innerHTML += "&nbsp;<b>&dagger;</b>&nbsp;" + fieldsToCheck[i][2] + "&nbsp;";
			}
		}
	}
	if (b_errors) {
//		initPage();
		return false;
	}
	return true ;
}
function validateList(f, fields) {
	if (fields instanceof Array) {
		fieldsToCheck = fields;
	}
    for( var i=0; i < fieldsToCheck.length; ++i )
    {
        if (! fieldsToCheck[i][1] (f,fieldsToCheck[i][0],fieldsToCheck[i][2]) ) {
		    alert( fieldsToCheck[i][2] );
            return false ;
        }
    }
    return true ;
}
