var ValidatorArray = new Array ();	//	holds validation statements to be evaluated in OnSubmit
var ValidatorArrayProperties = new Array();
ValidatorArrayProperties.ValidatorSuppress = false;		//	if true, skip onSubmit validation

function checkQuestionAnswered (group,empty,valuelow,valuehigh,valuetype) {
    if ( group == null || empty == null || valuelow == null || valuehigh == null || valuetype == null )
    	return true;
    var emptyCheck = empty != " ";
    var rangeCheck = valuelow != "" || valuehigh != "" ;
    var numericCheck = valuetype == "2";
	    	
    var bgroup = false;
    if ( group.type == "select-one") {
        if ( ! emptyCheck || group.value != "" )
            return true;
        }
    else if ( group.type == "textarea") {
        if ( ! emptyCheck || group.value != "" )
            return true;
        }
    else if ( group.type == "text") {
        if ( ! emptyCheck ) {
           if ( group.value == "" ) {
              return true;
           }               
           return checkQuestionAnswerInRange ( group, valuelow, valuehigh, valuetype );           
        }
           
        if ( group.value != "" ) {
             return checkQuestionAnswerInRange ( group, valuelow, valuehigh, valuetype );
        }     
    
    }
    else if ( group.type == "oldtext") {
        if ( ! emptyCheck || group.value != "" )
            return true;
        }
    else if ( group.type == null ) {	//	radio and checkbox groups
    	if ( ! emptyCheck )
    		return true;
        bgroup = true;
        for ( var k = 0 ; k < group.length; k ++ )
            if ( group[k].checked )
                return true;
        }
    else
        return true;
	alert ("Please answer the question. If not sure of what question this refers to, press the space bar.");
	window.focus();
	if ( bgroup )
	    group[0].focus();
	else
	    group.focus();
	return false;
    }

function checkQuestionAnswerInRange ( valuelement, valuelow, valuehigh, valuetype ) {
    if ( valuelow == "" && valuehigh == "" )
        return true;
	var valued = valuelement.value;
	var intcompare = valuetype == "2";
	var intvaluelow = 0;
	var intvaluehigh = 0;
	var intvalued = 0;
	var msg = "Enter a value between " + valuelow + " and " + valuehigh ;
	if ( valuelow == "" )
		msg = "Enter a value no greater than "+ valuehigh ;
	if ( valuehigh == "" )
		msg = "Enter a value no less than "+ valuelow ;
	if ( intcompare ) {
		intvalued = parseInt ( valued, 10);
		if ( isNaN (intvalued) ) {
			alert ( msg ); valuelement.focus(); 
			if ( window != null && window.event != null )
				window.event.returnValue = false; 
			return false;
			}
		intvaluelow = parseInt ( valuelow, 10 );
		intvaluehigh = parseInt ( valuehigh, 10 );
        }
    var bOk = true;
        if ( valuelow != null && valuehigh != null ) {
	    if ( ! intcompare ) {
       	        if ( valuelow != "" && valued < valuelow )
	            bOk = false;
	        if ( valuehigh != "" && valued > valuehigh )
	            bOk = false;
	        }
              else {
	        if ( valuelow != "" && intvalued < intvaluelow )
	            bOk = false;
	        if ( valuehigh != "" && intvalued > intvaluehigh )
	            bOk = false;
            }
	    }
	 if ( bOk )
	    return true;
	 alert ( msg );
	 valuelement.focus();
	 if ( window != null && window.event != null )
	         window.event.returnValue = false;
	 return false;
	}

function onSubmit (frm) {
	if ( ValidatorArrayProperties == null 
		|| ValidatorArrayProperties.ValidatorSuppress == true 
		|| ValidatorArray == null )	//	if broken, don't crash
		return true;
	for ( var k = 0 ; k < ValidatorArray.length ; k ++ ) {
		var validatorstring = ValidatorArray [k];
		var chk;
		if (frm == null || frm.getAttribute("name") == null) {
        		chk = eval ( validatorstring );
			if ( chk == false )
				return false;			
		} else {
	            	if ( validatorstring.indexOf("document.forms['" + frm.getAttribute("name") + "']") >= 0) {
	        		chk = eval ( validatorstring );
				if ( chk == false )
					return false;
                	}
                }
	}
	return true;
}
