function backButtonOverride()
{
	// Work around a Safari bug
	// that sometimes produces a blank page
	setTimeout("backButtonOverrideBody()", 1);

}

function backButtonOverrideBody()
{
	// Works if we backed up to get here
	try {
		history.forward();
	} catch (e) {
		// OK to ignore
	}
	// Every quarter-second, try again. The only
	// guaranteed method for Opera, Firefox,
	// and Safari, which don't always call
	// onLoad but *do* resume any timers when
	// returning to a page
	setTimeout("backButtonOverrideBody()", 1);
}

function val_rdo_chk (FieldList) {

var splitIndex = 0 ;
var splitArray = new Array() ;

var string = FieldList ;
var separator = ',' ;


while ((string.length > 0) && (separator.length > 0)) {

    var i = string.indexOf(separator) ;
    if ((!i) && (separator != string.substring(0,separator.length))) break ;
    if (i == -1) {
        splitArray[splitIndex++] = string ;
        break ;
    }

    splitArray[splitIndex++] = string.substring(0,i) ;

        string = string.substring(i+separator.length,string.length) ;
}


for (var i=0 ; i < splitIndex ; i++) {
        var ok = 0;
var RCstring = splitArray[i]  ;
var RCseparator = '+' ;

var RCi = RCstring.indexOf(RCseparator) ;
var RCnum_elements = RCstring.substring(0,RCi);
var RCfield_name = RCstring.substring(RCi+1,RCstring.length);

                      if (RCnum_elements == 1) {
                if (eval("document.myform." + RCfield_name + ".checked") == true)
                    ok++;
                }
           else                    {
            for (var ii=0;ii<RCnum_elements;ii++) {
                if (eval("document.myform." + RCfield_name + "[ii].checked") == true)
                    ok++;
                }

          }
            if (ok == 0) {
                //alert('You must answer radio/check box question.');
                alert('You missed a (radio/check box) question which you must answer.\n\nPlease check your entries.');
                if (RCnum_elements == 1)                   eval('document.myform.' + RCfield_name  + '.focus()') ;
                else                   eval('if (!(document.myform.' + RCfield_name  + '[0].disabled)) document.myform.' + RCfield_name  + '[0].focus()') ;
                return false;                break;
                }

        }
}



function val_sel_list (FieldList) {

var splitIndex = 0 ;
var splitArray = new Array() ;
var string = FieldList ;
var separator = ',' ;


while ((string.length > 0) && (separator.length > 0)) {

    var i = string.indexOf(separator) ;
    if ((!i) && (separator != string.substring(0,separator.length))) break ;
    if (i == -1) {
        splitArray[splitIndex++] = string ;
        break ;
    }

    splitArray[splitIndex++] = string.substring(0,i) ;

        string = string.substring(i+separator.length,string.length) ;
}


for (var i=0 ; i < splitIndex ; i++) {
        var ok = 0;
var SLstring = splitArray[i]  ;
var SLseparator = '+' ;

var SLi = SLstring.indexOf(SLseparator) ; var SLnum_elements = SLstring.substring(0,SLi);var SLfield_name = SLstring.substring(SLi+1,SLstring.length);
            for (var ii=0;ii<SLnum_elements;ii++) {
                if (eval("document.myform." + SLfield_name + ".options[ii].selected") == true) {
                     if ( eval("document.myform." + SLfield_name + ".options[ii].value") == "" )
                    ok++;
                    }
                }

                           if (ok != 0) {
                //alert('You must answer selection list question.');
                alert('You missed a (selection list) question which you must answer.\n\nPlease check your entries.');
                return false;
                break;
                }

             }
}



function valtext (FieldList) {

var splitIndex = 0 ;
var splitArray = new Array() ;

var string = FieldList ;
var separator = ',' ;


while ((string.length > 0) && (separator.length > 0)) {

    var i = string.indexOf(separator) ;
    if ((!i) && (separator != string.substring(0,separator.length))) break ;
    if (i == -1) {
        splitArray[splitIndex++] = string ;
        break ;
    }

    splitArray[splitIndex++] = string.substring(0,i) ;

        string = string.substring(i+separator.length,string.length) ;
}

for (var i=0 ; i < splitIndex ; i++) {
                if ( eval('document.myform.' + splitArray[i] + '.value') == "")  {

                              alert('You missed a question/field which you must answer.\n\nPlease check your entries.') ;
                eval('document.myform.' + splitArray[i] + '.focus()') ;
                return false;
                break ;
                }
        }
}

function dorequired(ti, ta, p, r, c, s) {

        var result = (valtext (ti) ) ;
        if ( result == false ) return false ;
        result = (valtext (p) ) ;
        if ( result == false ) return false ;
        result = (val_rdo_chk (r) ) ;
        if ( result == false ) return false ;
        result = (val_rdo_chk (c) ) ;
        if ( result == false ) return false ;
        result = (val_sel_list (s) ) ;
        if ( result == false ) return false ;
          return true ;

}
