//start text area character counter
function textCounter(field, countfield, maxlimit) {
    var lineBreakCount = 0;

    var charsToAdd = 3;
    if (type == "IE") {
        charsToAdd = 2;}

        if (field.value.length > maxlimit + 300) {
            field.value = field.value.substring(0, maxlimit + 300);
        }
    //html carriage returns get translated from \n (\r\n in IE) to <br> when loaded to SQL so the counter is off if we simply count characters.  First we check
    //for the existence of a carriage return.  The value of \r and \n are 1 in HTML so we have to add on 2 or 3 characters to the count because <br> is 4 characters.
        if (field.value.indexOf("\r") > 0 || field.value.indexOf("\n") > 0)
    {
        lineBreakCount = field.value.match(/[^\n]*\n[^\n]*/gi).length;  //We found one so we need to calculate the total number in the text area.
        }
    else{
        lineBreakCount = 0; //None were found so we default the counter to 0.
    }
    var totalLength = field.value.length + (charsToAdd * lineBreakCount);
        
        if (totalLength > maxlimit) // if too long...trim it!
        {
            
            //trimming is a little tricky.  We've added characters that don't exist in field.value if there are line breaks so we have to account for them 
            //when in the trim.
            var cutoff = maxlimit - (charsToAdd * lineBreakCount);   //This is our recalculated cutoff value.
            
            var checkCutoffLocation = cutoff - 1;           //this variable is used to determine if our cutoff is in the middle of a line break.  IE are we going to truncate between the "\" and the "r"

            
            if (field.value.substring(cutoff, field.value.length).match(/[^\n]*\n[^\n]*/gi) != null) {
                var lineBreaksInCutoff = field.value.substring(cutoff, field.value.length).match(/[^\n]*\n[^\n]*/gi).length;
                cutoff = cutoff + (charsToAdd * lineBreaksInCutoff);  //If we reached here then there are line breaks in the characters that we're going to cut off.  So we add the extra characters that were calculated for those breaks back in.
                lineBreakCount = lineBreakCount - lineBreaksInCutoff; //We recalculate the total line break count so that, in the end, the counter is correct.

                var testThis = field.value.substring(cutoff - 3, cutoff + 1).indexOf("\n")
                //Now we need to check if the recalculation set the cutoff past one of the line breaks we originally calculated as being cut out.  So we look for the existance of a line break in the last 4 
                //characters of what is now left as text.  If a line break exists, remove it by setting the cutoff back.  The cutoff reset value is different depending on the browser.
                switch (testThis) {
                    case 0:
                        if (type != "IE") {                        
                            cutoff = cutoff - 3;
                        }
                        break;
                    case 1:
                        
                        if (type == "IE") {
                            cutoff = cutoff - 3;  
                        }
                        else {
                            cutoff = cutoff - 2;
                        }
                        break;
                    case 2:
                        
                        if (type == "IE") {
                            cutoff = cutoff - 2;  
                        }
                        else {
                            cutoff = cutoff - 1;
                        }
                        break;
                    case 3:
                        
                        if (type == "IE") {
                            cutoff = cutoff - 1;  
                        }
                        else {
                            cutoff = cutoff - 0;
                        }
                        break;
                }

            }
            
            
            //Set the field.value to the truncated substring to keep us under the record count.
            field.value = field.value.substring(0, cutoff);
            alert("You've exceeded the maximum character count of " + maxlimit + " characters for this field.  Your entry has been truncated.  Please review your entry and make the appropriate edits to load the data that you need within the character limitations for this field.");
            //Reset the field count.            
            countfield.value = maxlimit - (field.value.length + (charsToAdd * lineBreakCount));
            
        }
        // otherwise, update 'characters left' counter
        else {
            countfield.value = maxlimit - (field.value.length + (charsToAdd * lineBreakCount));
            
        }
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

// ##############################
function checkAll(field) 
{
if (field.length > 1) {
    for (i = 0; i < field.length; i++)
    	field[i].checked = true ;
} else {
    field.checked = true;
}
}

// ##############################
function uncheckAll(field) 
{
if (field.length > 1) {
    for (i = 0; i < field.length; i++)
    	field[i].checked = false ;
} else {
    field.checked = false;
}
}

// ##############################
function checkAllPM1(field) 
{
document.form1.showMeasureCategory.checked=true;
document.form1.showServiceCategory.checked=true;
document.form1.showInfoNatPerfMeas.checked=true;
document.form1.showNeed.checked=true;
document.form1.showServiceActivity.checked=true;
document.form1.showActivityStartDate.checked=true;
document.form1.showActivityEndDate.checked=true;
document.form1.showNumberACMembers.checked=true;
document.form1.showAverageDays.checked=true;
document.form1.showAverageHours.checked=true;
}

// ##############################
function uncheckAllPM1(field) 
{
document.form1.showMeasureCategory.checked=false;
document.form1.showServiceCategory.checked=false;
document.form1.showInfoNatPerfMeas.checked=false;
document.form1.showNeed.checked=false;
document.form1.showServiceActivity.checked=false;
document.form1.showActivityStartDate.checked=false;
document.form1.showActivityEndDate.checked=false;
document.form1.showNumberACMembers.checked=false;
document.form1.showAverageDays.checked=false;
document.form1.showAverageHours.checked=false;
}

// ##############################
function checkAllPM2(field) 
{
document.form1.showReportingPeriod.checked=true;
document.form1.showPMStatus.checked=true;
document.form1.showComments.checked=true;
}

// ##############################
function uncheckAllPM2(field) 
{
document.form1.showReportingPeriod.checked=false;
document.form1.showPMStatus.checked=false;
document.form1.showComments.checked=false;
}

// ##############################
function checkAllPM3(field) 
{
document.form1.showSect3ResultStatementOut.checked=true;
document.form1.showSect3ResultStatementInt.checked=true;
document.form1.showSect3ResultStatementEnd.checked=true;
document.form1.showSect3ResultStatusOut.checked=true;
document.form1.showSect3ResultStatusInt.checked=true;
document.form1.showSect3ResultStatusEnd.checked=true;
document.form1.showSect3TargetDescOut.checked=true;
document.form1.showSect3TargetDescInt.checked=true;
document.form1.showSect3TargetDescEnd.checked=true;
document.form1.showSect3TargetNumOut.checked=true;
document.form1.showSect3TargetNumInt.checked=true;
document.form1.showSect3TargetNumEnd.checked=true;
document.form1.showSect3ResultsOut.checked=true;
document.form1.showSect3ResultsInt.checked=true;
document.form1.showSect3ResultsEnd.checked=true;
document.form1.showSect3PctOut.checked=true;
document.form1.showSect3PctInt.checked=true;
document.form1.showSect3PctEnd.checked=true;
document.form1.showSect3ResultNarrOut.checked=true;
document.form1.showSect3ResultNarrInt.checked=true;
document.form1.showSect3ResultNarrEnd.checked=true;
document.form1.showSect3DataCollectionOutOut.checked=true;
document.form1.showSect3DataCollectionOutInt.checked=true;
document.form1.showSect3DataCollectionOutEnd.checked=true;
document.form1.showSect3CompletedInstOut.checked=true;
document.form1.showSect3CompletedInstInt.checked=true;
document.form1.showSect3CompletedInstEnd.checked=true;
document.form1.showSect3PossibleInstOut.checked=true;
document.form1.showSect3PossibleInstInt.checked=true;
document.form1.showSect3PossibleInstEnd.checked=true;
document.form1.showSect3InstPctOut.checked=true;
document.form1.showSect3InstPctInt.checked=true;
document.form1.showSect3InstPctEnd.checked=true;
document.form1.showSect3InstNarrOut.checked=true;
document.form1.showSect3InstNarrInt.checked=true;
document.form1.showSect3InstNarrEnd.checked=true;
document.form1.showSect3DataPriorOut.checked=true;
document.form1.showSect3DataPriorInt.checked=true;
document.form1.showSect3DataPriorEnd.checked=true;
}

// ##############################
function uncheckAllPM3(field) 
{
document.form1.showSect3ResultStatementOut.checked=false;
document.form1.showSect3ResultStatementInt.checked=false;
document.form1.showSect3ResultStatementEnd.checked=false;
document.form1.showSect3ResultStatusOut.checked=false;
document.form1.showSect3ResultStatusInt.checked=false;
document.form1.showSect3ResultStatusEnd.checked=false;
document.form1.showSect3TargetDescOut.checked=false;
document.form1.showSect3TargetDescInt.checked=false;
document.form1.showSect3TargetDescEnd.checked=false;
document.form1.showSect3TargetNumOut.checked=false;
document.form1.showSect3TargetNumInt.checked=false;
document.form1.showSect3TargetNumEnd.checked=false;
document.form1.showSect3ResultsOut.checked=false;
document.form1.showSect3ResultsInt.checked=false;
document.form1.showSect3ResultsEnd.checked=false;
document.form1.showSect3PctOut.checked=false;
document.form1.showSect3PctInt.checked=false;
document.form1.showSect3PctEnd.checked=false;
document.form1.showSect3ResultNarrOut.checked=false;
document.form1.showSect3ResultNarrInt.checked=false;
document.form1.showSect3ResultNarrEnd.checked=false;
document.form1.showSect3DataCollectionOutOut.checked=false;
document.form1.showSect3DataCollectionOutInt.checked=false;
document.form1.showSect3DataCollectionOutEnd.checked=false;
document.form1.showSect3CompletedInstOut.checked=false;
document.form1.showSect3CompletedInstInt.checked=false;
document.form1.showSect3CompletedInstEnd.checked=false;
document.form1.showSect3PossibleInstOut.checked=false;
document.form1.showSect3PossibleInstInt.checked=false;
document.form1.showSect3PossibleInstEnd.checked=false;
document.form1.showSect3InstPctOut.checked=false;
document.form1.showSect3InstPctInt.checked=false;
document.form1.showSect3InstPctEnd.checked=false;
document.form1.showSect3InstNarrOut.checked=false;
document.form1.showSect3InstNarrInt.checked=false;
document.form1.showSect3InstNarrEnd.checked=false;
document.form1.showSect3DataPriorOut.checked=false;
document.form1.showSect3DataPriorInt.checked=false;
document.form1.showSect3DataPriorEnd.checked=false;
}

// ##############################
function checkAllPM4(field) 
{
document.form1.showSect4ResultStatementOut.checked=true;
document.form1.showSect4ResultStatementInt.checked=true;
document.form1.showSect4ResultStatementEnd.checked=true;
document.form1.showSect4ResultStatusOut.checked=true;
document.form1.showSect4ResultStatusInt.checked=true;
document.form1.showSect4ResultStatusEnd.checked=true;
document.form1.showSect4TargetDescOut.checked=true;
document.form1.showSect4TargetDescInt.checked=true;
document.form1.showSect4TargetDescEnd.checked=true;
document.form1.showSect4TargetNumOut.checked=true;
document.form1.showSect4TargetNumInt.checked=true;
document.form1.showSect4TargetNumEnd.checked=true;
document.form1.showSect4ResultsOut.checked=true;
document.form1.showSect4ResultsInt.checked=true;
document.form1.showSect4ResultsEnd.checked=true;
document.form1.showSect4PctOut.checked=true;
document.form1.showSect4PctInt.checked=true;
document.form1.showSect4PctEnd.checked=true;
document.form1.showSect4NarrOut.checked=true;
document.form1.showSect4NarrInt.checked=true;
document.form1.showSect4NarrEnd.checked=true;
document.form1.showSect4DataCollectionMeasOut.checked=true;
document.form1.showSect4DataCollectionMeasInt.checked=true;
document.form1.showSect4DataCollectionMeasEnd.checked=true;
document.form1.showSect4CompletedInstOut.checked=true;
document.form1.showSect4CompletedInstInt.checked=true;
document.form1.showSect4CompletedInstEnd.checked=true;
document.form1.showSect4PossibleInstOut.checked=true;
document.form1.showSect4PossibleInstInt.checked=true;
document.form1.showSect4PossibleInstEnd.checked=true;
document.form1.showSect4InstPctOut.checked=true;
document.form1.showSect4InstPctInt.checked=true;
document.form1.showSect4InstPctEnd.checked=true;
document.form1.showSect4InstNarrOut.checked=true;
document.form1.showSect4InstNarrInt.checked=true;
document.form1.showSect4InstNarrEnd.checked=true;
document.form1.showSect4PerfMeasStatementOut.checked=true;
document.form1.showSect4PerfMeasStatementInt.checked=true;
document.form1.showSect4PerfMeasStatementEnd.checked=true;
document.form1.showSect4DataPriorOut.checked=true;
document.form1.showSect4DataPriorInt.checked=true;
document.form1.showSect4DataPriorEnd.checked=true;
document.form1.showSect4OutputMeasureCommentsOut.checked=true;
document.form1.showSect4OutputMeasureCommentsInt.checked=true;
document.form1.showSect4OutputMeasureCommentsEnd.checked=true;
}

// ##############################
function uncheckAllPM4(field) 
{
document.form1.showSect4ResultStatementOut.checked=false;
document.form1.showSect4ResultStatementInt.checked=false;
document.form1.showSect4ResultStatementEnd.checked=false;
document.form1.showSect4ResultStatusOut.checked=false;
document.form1.showSect4ResultStatusInt.checked=false;
document.form1.showSect4ResultStatusEnd.checked=false;
document.form1.showSect4TargetDescOut.checked=false;
document.form1.showSect4TargetDescInt.checked=false;
document.form1.showSect4TargetDescEnd.checked=false;
document.form1.showSect4TargetNumOut.checked=false;
document.form1.showSect4TargetNumInt.checked=false;
document.form1.showSect4TargetNumEnd.checked=false;
document.form1.showSect4ResultsOut.checked=false;
document.form1.showSect4ResultsInt.checked=false;
document.form1.showSect4ResultsEnd.checked=false;
document.form1.showSect4PctOut.checked=false;
document.form1.showSect4PctInt.checked=false;
document.form1.showSect4PctEnd.checked=false;
document.form1.showSect4NarrOut.checked=false;
document.form1.showSect4NarrInt.checked=false;
document.form1.showSect4NarrEnd.checked=false;
document.form1.showSect4DataCollectionMeasOut.checked=false;
document.form1.showSect4DataCollectionMeasInt.checked=false;
document.form1.showSect4DataCollectionMeasEnd.checked=false;
document.form1.showSect4CompletedInstOut.checked=false;
document.form1.showSect4CompletedInstInt.checked=false;
document.form1.showSect4CompletedInstEnd.checked=false;
document.form1.showSect4PossibleInstOut.checked=false;
document.form1.showSect4PossibleInstInt.checked=false;
document.form1.showSect4PossibleInstEnd.checked=false;
document.form1.showSect4InstPctOut.checked=false;
document.form1.showSect4InstPctInt.checked=false;
document.form1.showSect4InstPctEnd.checked=false;
document.form1.showSect4InstNarrOut.checked=false;
document.form1.showSect4InstNarrInt.checked=false;
document.form1.showSect4InstNarrEnd.checked=false;
document.form1.showSect4PerfMeasStatementOut.checked=false;
document.form1.showSect4PerfMeasStatementInt.checked=false;
document.form1.showSect4PerfMeasStatementEnd.checked=false;
document.form1.showSect4DataPriorOut.checked=false;
document.form1.showSect4DataPriorInt.checked=false;
document.form1.showSect4DataPriorEnd.checked=false;
document.form1.showSect4OutputMeasureCommentsOut.checked=false;
document.form1.showSect4OutputMeasureCommentsInt.checked=false;
document.form1.showSect4OutputMeasureCommentsEnd.checked=false;
}

// ##############################
function checkAllPM5(field) 
{
document.form1.showSect5InstChangedOut.checked=true;
document.form1.showSect5InstChangedOutInd.checked=true;
document.form1.showSect5InstChangedInt.checked=true;
document.form1.showSect5InstChangedIntInd.checked=true;
document.form1.showSect5InstChangedEnd.checked=true;
document.form1.showSect5InstChangedEndInd.checked=true;
document.form1.showSect5DataCollectedOut.checked=true;
document.form1.showSect5DataCollectedOutInd.checked=true;
document.form1.showSect5DataCollectedInt.checked=true;
document.form1.showSect5DataCollectedIntInd.checked=true;
document.form1.showSect5DataCollectedEnd.checked=true;
document.form1.showSect5DataCollectedEndInd.checked=true;
document.form1.showSect5CollectionTimeOut.checked=true;
document.form1.showSect5CollectionTimeOutInd.checked=true;
document.form1.showSect5CollectionTimeInt.checked=true;
document.form1.showSect5CollectionTimeIntInd.checked=true;
document.form1.showSect5CollectionTimeEnd.checked=true;
document.form1.showSect5CollectionTimeEndInd.checked=true;
document.form1.showSect5WhoCollectOut.checked=true;
document.form1.showSect5WhoCollectOutInd.checked=true;
document.form1.showSect5WhoCollectInt.checked=true;
document.form1.showSect5WhoCollectIntInd.checked=true;
document.form1.showSect5WhoCollectEnd.checked=true;
document.form1.showSect5WhoCollectEndInd.checked=true;
document.form1.showSect5WhoCollectChangeOut.checked=true;
document.form1.showSect5WhoCollectChangeOutInd.checked=true;
document.form1.showSect5WhoCollectChangeInt.checked=true;
document.form1.showSect5WhoCollectChangeIntInd.checked=true;
document.form1.showSect5WhoCollectChangeEnd.checked=true;
document.form1.showSect5WhoCollectChangeEndInd.checked=true;
document.form1.showSect5CommentsOut.checked=true;
document.form1.showSect5CommentsOutInd.checked=true;
document.form1.showSect5CommentsInt.checked=true;
document.form1.showSect5CommentsIntInd.checked=true;
document.form1.showSect5CommentsEnd.checked=true;
document.form1.showSect5CommentsEndInt.checked=true;


}

// ##############################
function uncheckAllPM5(field) 
{
document.form1.showSect5InstChangedOut.checked=false;
document.form1.showSect5InstChangedOutInd.checked=false;
document.form1.showSect5InstChangedInt.checked=false;
document.form1.showSect5InstChangedIntInd.checked=false;
document.form1.showSect5InstChangedEnd.checked=false;
document.form1.showSect5InstChangedEndInd.checked=false;
document.form1.showSect5DataCollectedOut.checked=false;
document.form1.showSect5DataCollectedOutInd.checked=false;
document.form1.showSect5DataCollectedInt.checked=false;
document.form1.showSect5DataCollectedIntInd.checked=false;
document.form1.showSect5DataCollectedEnd.checked=false;
document.form1.showSect5DataCollectedEndInd.checked=false;
document.form1.showSect5CollectionTimeOut.checked=false;
document.form1.showSect5CollectionTimeOutInd.checked=false;
document.form1.showSect5CollectionTimeInt.checked=false;
document.form1.showSect5CollectionTimeIntInd.checked=false;
document.form1.showSect5CollectionTimeEnd.checked=false;
document.form1.showSect5CollectionTimeEndInd.checked=false;
document.form1.showSect5WhoCollectOut.checked=false;
document.form1.showSect5WhoCollectOutInd.checked=false;
document.form1.showSect5WhoCollectInt.checked=false;
document.form1.showSect5WhoCollectIntInd.checked=false;
document.form1.showSect5WhoCollectEnd.checked=false;
document.form1.showSect5WhoCollectEndInd.checked=false;
document.form1.showSect5WhoCollectChangeOut.checked=false;
document.form1.showSect5WhoCollectChangeOutInd.checked=false;
document.form1.showSect5WhoCollectChangeInt.checked=false;
document.form1.showSect5WhoCollectChangeIntInd.checked=false;
document.form1.showSect5WhoCollectChangeEnd.checked=false;
document.form1.showSect5WhoCollectChangeEndInd.checked=false;
document.form1.showSect5CommentsOut.checked=false;
document.form1.showSect5CommentsOutInd.checked=false;
document.form1.showSect5CommentsInt.checked=false;
document.form1.showSect5CommentsIntInd.checked=false;
document.form1.showSect5CommentsEnd.checked=false;
document.form1.showSect5CommentsEndInt.checked=false;
}

// ##############################
function checkAllPM6(field) 
{
document.form1.showSect6GreatStories.checked=true;
document.form1.showSect6SuccessChallenges.checked=true;
document.form1.showSect6VolMobilization.checked=true;
document.form1.showSect6BestPractices.checked=true;
document.form1.showSect6DirectService.checked=true;
}

// ##############################
function uncheckAllPM6(field) 
{
document.form1.showSect6GreatStories.checked=false;
document.form1.showSect6SuccessChallenges.checked=false;
document.form1.showSect6VolMobilization.checked=false;
document.form1.showSect6BestPractices.checked=false;
document.form1.showSect6DirectService.checked=false;
}


// ##############################
function showHide(foo,bar) {
    if (foo.checked) {
		bar.value = "";
		bar.disabled = false;
	} else {
		bar.value = "";
		bar.disabled = true;
	}
}


// ##############################
function checkrequiredStandard(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
	}
}

  
if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredMRCBenchmark1(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "MN_MRCSessionGrade" && tempobj.value == '0|0') {
                fieldlist = "Please choose a session and grade";
                pass = false;
                break;
            }
        }
    }


    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist);
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        // ray2.ajax();
        return true;
    }
}

// ##############################
function checkrequiredProgramIncome(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "periodStartDate" && tempobj.value == '') {
                fieldlist = "Period Start Date";
                pass = false;
                break;
            }
            if (tempobj.name == "periodEndDate" && tempobj.value == '') {
                fieldlist = "Period End Date";
                pass = false;
                break;
            }

        }
    }


    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        ray2.ajax();
        return true;
    }
}


// ##############################
function checkrequiredPWReport(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "programID" && tempobj.value == '0') {
                fieldlist = "City";
                pass = false;
                break;
            }
        }
    }


    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        return true;
    }
}

// ##############################
function checkrequiredMathCorpsTutorLogs(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
    var totalTime = document.form1.totalTime.value;
 
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="MN_MathTutorLogWeekID" && tempobj.value=='0') {
			fieldlist = "Week";
			pass=false;
			break;
		}
		if (tempobj.name=="totalTime" && tempobj.value=='') {
			fieldlist = "Total Minutes";
			pass=false;
			break;
		}

	}
}

if (totalTime!='' && validateTutorLog(totalTime)==false) {
    alert("Invalid entry!  Values of 0 or greater than 4 are allowed");
    return false;
}
 
if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    return true;
}
}


// ##############################
function checkrequiredMRCTutorLogs(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
    var totalTime = document.form1.totalTime.value;
 
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="MN_MRCTutorLogWeekID" && tempobj.value=='0') {
			fieldlist = "Week";
			pass=false;
			break;
		}
		if (tempobj.name=="totalTime" && tempobj.value=='') {
			fieldlist = "Total Minutes";
			pass=false;
			break;
		}

	}
}

if (totalTime!='' && validateTutorLog(totalTime)==false) {
    alert("Invalid entry!  Values of 0 or greater than 4 are allowed");
    return false;
}
 
if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    return true;
}
}


// ##############################
function checkrequiredProgramIncomeSource(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
    var incomeType = document.form1.incomeType.value;
    var inkindDescription = document.form1.inkindDescription.value;
 
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="incomeSourceName" && tempobj.value=='') {
			fieldlist = "Income Source Name";
			pass=false;
			break;
		}
		if (tempobj.name=="amount" && tempobj.value=='') {
			fieldlist = "Amount";
			pass=false;
			break;
		}
		if (tempobj.name=="sourceType" && tempobj.value=='') {
			fieldlist = "Source Type";
			pass=false;
			break;
		}
		if (tempobj.name=="incomeType" && tempobj.value=='') {
			fieldlist = "Income Type";
			pass=false;
			break;
		}
	}
}

if (incomeType=='Cash' && inkindDescription!='') {
    alert("Inkind Description must be None if Income Type is Cash");
    return false;
}
if (incomeType=='Inkind' && inkindDescription=='') {
    alert("Inkind Description is required if Income Type is Inkind");
    return false;
}
  

  
if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    return true;
}
}

// ##############################
function checkrequiredMailform4(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="name" && tempobj.value=='') {
			fieldlist = "Name";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
	}
}

  
if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredImportMembers(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="Filename" && tempobj.value=='') {
			fieldlist = "Filename";
			pass=false;
			break;
		}
	}
}

  
if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredChangePassword(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
    var pwd1 = document.form1.password.value;  
    var pwd2 = document.form1.verifyPassword.value;  

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifyPassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
	}
}

if (pwd1!=pwd2) {
    alert("Passwords do not match - please try again.")
    return false;
}
  
if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredFileUpload(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="programID" && tempobj.value=='0') {
			fieldlist = "Please select a program";
			pass=false;
			break;
		}
		if (tempobj.name=="eventImage" && tempobj.value=='') {
			fieldlist = "You must select a file";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist);
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredUpload(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="file1" && tempobj.value=='') {
			fieldlist = "You must select a file";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist);
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredProgramYear(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="programYearID" && tempobj.value=='X') {
			fieldlist = "Please select a program year";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist);
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    return true;
}
}

// ##############################
function checkrequiredEvents(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="eventName" && tempobj.value=='') {
			fieldlist = "Event Name";
			pass=false;
			break;
		}
		if (tempobj.name=="eventDate" && tempobj.value=='') {
			fieldlist = "Event Date";
			pass=false;
			break;
		}
		if (tempobj.name=="eventHeadline" && tempobj.value=='') {
			fieldlist = "Event Headline";
			pass=false;
			break;
		}
		if (tempobj.name=="siteID" && tempobj.value=='X') {
			fieldlist = "Site";
			pass=false;
			break;
		}
		if (tempobj.name=="resourceSectionID" && tempobj.value=='') {
			fieldlist = "Resource Section";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredHFHIProjectRecord(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "projectTag" && tempobj.value == '') {
                fieldlist = "Project Tag";
                pass = false;
                break;
            }
            if (tempobj.name == "habitat_familyStatusID" && tempobj.value == '0') {
                fieldlist = "Primary Family Status";
                pass = false;
                break;
            }
            if (tempobj.name == "familyStatusDate" && tempobj.value == '') {
                fieldlist = "Family Status Date";
                pass = false;
                break;
            } 
        }
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        ray2.ajax();
        return true;
    }
}
// ##############################
function checkrequiredBestPractices(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "bestPracticeName" && tempobj.value == '') {
                fieldlist = "Name";
                pass = false;
                break;
            }
            if (tempobj.name == "bestPracticeDate" && tempobj.value == '') {
                fieldlist = "Date";
                pass = false;
                break;
            }
        }
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        ray2.ajax();
        return true;
    }
}

// ##############################
function checkrequiredDirectorySearch(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="searchName" && tempobj.value=='') {
			fieldlist = "Name";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredTransferMRCStudent(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="toMemberID" && tempobj.value=='0') {
			fieldlist = "Please select a Member";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist);
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredTransferMRCStudent2(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="fromMemberID" && tempobj.value=='0') {
			fieldlist = "Please select a Member";
			pass=false;
			break;
		}
		if (tempobj.name=="toMemberID" && tempobj.value=='0') {
			fieldlist = "Please select a Member";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist);
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredOtherInKind(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="supervisorID" && tempobj.value=='X') {
			fieldlist = "Supervisor";
			pass=false;
			break;
		}
		if (tempobj.name=="otherInKindName" && tempobj.value=='') {
			fieldlist = "Donor Name";
			pass=false;
			break;
		}
		if (tempobj.name=="otherInKindDate" && tempobj.value=='') {
			fieldlist = "Date";
			pass=false;
			break;
		}
		if (tempobj.name=="estimatedValue" && tempobj.value=='') {
			fieldlist = "Estimated Value";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkRequiredReviewTimesheets(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
  var certify = document.form1.certify.checked;
    
    if (certify==false) {
        alert("You must agree to the disclaimer");
        return false;
    } else {
        ray2.ajax();
        return true;
    }     

}

// ##############################
function checkrequiredSerf(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
  var certify = document.form1.certify.checked;
    
    if (certify==false) {
        alert("You must agree to the disclaimer");
        return false;
    } else {
        ray2.ajax();
        return true;
    }     

}

// ##############################
function checkJCTimesheet(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
  
   var certify = document.form1.certify.checked;
   
   if (document.form1.supervisorID.type == "checkbox") {
        var super1 = document.form1.supervisorID.checked;
        var super2 = document.form1.supervisor2ID.checked;
        var super3 = document.form1.supervisor3ID.checked;
        var super4 = document.form1.supervisor4ID.checked;
    }
    else {
        var super1 = document.form1.supervisorID.value
        var super2 = document.form1.supervisor2ID.value;
        var super3 = document.form1.supervisor3ID.value;
        var super4 = document.form1.supervisor4ID.value;
    }
    

    if (super1==0 && super2==0 && super3==0 && super4==0) {
       alert("You must choose at least one Supervisor");
       pass=false; 
      }

    if (certify==false) {
        alert("You must certify the disclaimer");
    pass=false;  
    }

if (!pass) {
	return false;
}
else {
    return true;
}
}


// ##############################
function checkrequiredFilterTimesheet(which) {

    var searchWeekID = document.form99.searchWeekID.value;
    var searchStartDate = document.form99.searchStartDate.value;
    var searchEndDate = document.form99.searchEndDate.value;
    var searchUserTypeID = document.form99.searchUserTypeID.value;
    var searchName = document.form99.searchName.value;
    var searchSH_timesheetStatusID = document.form99.searchSH_timesheetStatusID.value;

    if (searchWeekID == '0' && searchStartDate == '' && searchEndDate == '' && searchUserTypeID == '0' && searchName == '' && searchSH_timesheetStatusID == '0') {
        alert("You must enter or select at least one search parameter");
        return false;
    }
}


// ##############################
function checkrequiredFilterTimesheetStaff(which) {

    var searchProgramID = document.form99.searchProgramID.value;
    var searchStartDate = document.form99.searchStartDate.value;
    var searchEndDate = document.form99.searchEndDate.value;
    var searchUserTypeID = document.form99.searchUserTypeID.value;
    var searchName = document.form99.searchName.value;
    var searchSH_timesheetStatusID = document.form99.searchSH_timesheetStatusID.value;

    if (searchProgramID == '0' && searchStartDate == '' && searchEndDate == '' && searchUserTypeID == '0' && searchName == '' && searchSH_timesheetStatusID == '0') {
        alert("You must enter or select at least one search parameter");
        return false;
    }
}

// ##############################
function checkrequiredSupervisorTs(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var certify = document.form1.certify.checked;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="wage" && tempobj.value=='') {
			fieldlist = "Wage";
			pass=false;
			break;
		}
	}
}

if (certify==false) {
    alert("You must agree to the disclaimer");
    return false;
}     

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredProgress(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="periodID" && tempobj.value=='0') {
			fieldlist = "Period";
			pass=false;
			break;
		}
		if (tempobj.name=="progressCategoryID" && tempobj.value=='0') {
			fieldlist = "Progress Category";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredGAvolReport(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="stateID" && tempobj.value=='') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="programID" && tempobj.value=='') {
			fieldlist = "Program";
			pass=false;
			break;
		}
		if (tempobj.name=="directorName" && tempobj.value=='') {
			fieldlist = "Name";
			pass=false;
			break;
		}
		if (tempobj.name=="agencyName" && tempobj.value=='') {
			fieldlist = "Agency/Program Name";
			pass=false;
			break;
        }

        if (tempobj.name == "calendarQuarterID" && tempobj.value == '0') {
            fieldlist = "Calendar Quarter";
            pass = false;
            break;
        }

        if (tempobj.name == "reportYear" && tempobj.value == '0') {
            fieldlist = "Report Year";
            pass = false;
            break;
        }
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredFFR(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="federalAgencyName" && tempobj.value=='') {
			fieldlist = "Federal Agency Name";
			pass=false;
			break;
		}
		if (tempobj.name=="federalGrantNumber" && tempobj.value=='') {
			fieldlist = "Federal Grant Number";
			pass=false;
			break;
		}
		if (tempobj.name=="recipientOrgName" && tempobj.value=='') {
			fieldlist = "Recipient Organization Name";
			pass=false;
			break;
		}
		if (tempobj.name=="recipientOrgAddr" && tempobj.value=='') {
			fieldlist = "Recipient Organization Address";
			pass=false;
			break;
		}
		if (tempobj.name=="recipientOrgCity" && tempobj.value=='') {
			fieldlist = "Recipient Organization City";
			pass=false;
			break;
		}
		if (tempobj.name=="recipientStateID" && tempobj.value=='0') {
			fieldlist = "Recipient Organization State";
			pass=false;
			break;
		}
		if (tempobj.name=="recipientOrgZip" && tempobj.value=='') {
			fieldlist = "Recipient Organization Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="dunsNumber" && tempobj.value=='') {
			fieldlist = "DUNS Number";
			pass=false;
			break;
		}
		if (tempobj.name=="einNumber" && tempobj.value=='') {
			fieldlist = "EIN Number";
			pass=false;
			break;
		}
		if (tempobj.name=="acctNumber" && tempobj.value=='') {
			fieldlist = "Recipient Account Number";
			pass=false;
			break;
		}
		if (tempobj.name=="reportType" && tempobj.value=='') {
			fieldlist = "Report Type";
			pass=false;
			break;
		}
		if (tempobj.name=="acctBasis" && tempobj.value=='') {
			fieldlist = "Basis of Accounting";
			pass=false;
			break;
		}
		if (tempobj.name=="grantStartDate" && tempobj.value=='') {
			fieldlist = "Project/Grant Period From";
			pass=false;
			break;
		}
		if (tempobj.name=="grantEndDate" && tempobj.value=='') {
			fieldlist = "Project/Grant Period To";
			pass=false;
			break;
		}
		if (tempobj.name=="periodDate" && tempobj.value=='') {
			fieldlist = "Reporting Period End Date";
			pass=false;
			break;
		}
		if (tempobj.name=="transA" && tempobj.value=='') {
			fieldlist = "Cash Receipts";
			pass=false;
			break;
		}
		if (tempobj.name=="transB" && tempobj.value=='') {
			fieldlist = "Cash Disbursements";
			pass=false;
			break;
		}
		if (tempobj.name=="transC" && tempobj.value=='') {
			fieldlist = "Cash on Hand";
			pass=false;
			break;
		}
		if (tempobj.name=="transD" && tempobj.value=='') {
			fieldlist = "Total Federal funds authorized";
			pass=false;
			break;
		}
		if (tempobj.name=="transE" && tempobj.value=='') {
			fieldlist = "Federal share of expenditures";
			pass=false;
			break;
		}
		if (tempobj.name=="transF" && tempobj.value=='') {
			fieldlist = "Federal share of unliquidated obligations";
			pass=false;
			break;
		}
		if (tempobj.name=="transG" && tempobj.value=='') {
			fieldlist = "Total Federal share";
			pass=false;
			break;
		}
		if (tempobj.name=="transH" && tempobj.value=='') {
			fieldlist = "Unobligated balance of Federal funds";
			pass=false;
			break;
		}
		if (tempobj.name=="transI" && tempobj.value=='') {
			fieldlist = "Total recipient share required";
			pass=false;
			break;
		}
		if (tempobj.name=="transJ" && tempobj.value=='') {
			fieldlist = "Recipient share of expenditures";
			pass=false;
			break;
		}
		if (tempobj.name=="transK" && tempobj.value=='') {
			fieldlist = "Remaining recipient share to be provided";
			pass=false;
			break;
		}
		if (tempobj.name=="transL" && tempobj.value=='') {
			fieldlist = "Total Federal program income earned";
			pass=false;
			break;
		}
		if (tempobj.name=="transM" && tempobj.value=='') {
			fieldlist = "Program income expended in accordance with the deduction alternative";
			pass=false;
			break;
		}
		if (tempobj.name=="transN" && tempobj.value=='') {
			fieldlist = "Program income expended in accordance with the addition alternative";
			pass=false;
			break;
		}
		if (tempobj.name=="transO" && tempobj.value=='') {
			fieldlist = "Unexpended program income";
			pass=false;
			break;
		}
		if (tempobj.name=="officialName" && tempobj.value=='') {
			fieldlist = "Typed or Printed Name and Title of Authorized Certifying Official";
			pass=false;
			break;
		}
		if (tempobj.name=="officialSignature" && tempobj.value=='') {
			fieldlist = "Signature of Authorized Certifying Official";
			pass=false;
			break;
		}
		if (tempobj.name=="officialPhone" && tempobj.value=='') {
			fieldlist = "Telephone";
			pass=false;
			break;
		}
		if (tempobj.name=="officialEmail" && tempobj.value=='') {
			fieldlist = "Email address";
			pass=false;
			break;
		}
		if (tempobj.name=="reportDate" && tempobj.value=='') {
			fieldlist = "Date Report Submitted";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    calcTotalFFR();
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredProgramProgressReport(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="programID" && tempobj.value=='0') {
			fieldlist = "Program";
			pass=false;
			break;
		}
		if (tempobj.name=="progressCategoryID" && tempobj.value=='0') {
			fieldlist = "Progress Category";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredPerformanceMeasures(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="performanceMeasureName" && tempobj.value=='') {
			fieldlist = "Performance Measure Name";
			pass=false;
			break;
		}
		if (tempobj.name=="programYearID" && tempobj.value=='0') {
			fieldlist = "Program Year";
			pass=false;
			break;
		}
		if (tempobj.name=="periodID" && tempobj.value=='0') {
			fieldlist = "Period";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredProgramBudgetPeriod(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="programID" && tempobj.value=='0') {
			fieldlist = "Program";
			pass=false;
			break;
		}
		if (tempobj.name=="budgetPeriodID" && tempobj.value=='0') {
			fieldlist = "Budget Period";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredProgram(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="programName" && tempobj.value=='') {
			fieldlist = "Program Name";
			pass=false;
			break;
		}
		if (tempobj.name=="legalApplicant" && tempobj.value=='') {
			fieldlist = "Legal Applicant";
			pass=false;
			break;
		}
		if (tempobj.name=="programShortName" && tempobj.value=='') {
			fieldlist = "Program Short Name";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="timezoneID" && tempobj.value=='0') {
			fieldlist = "Time Zone";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
		if (tempobj.name=="matchPct" && tempobj.value=='') {
			fieldlist = "Match Percent";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    //ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredProgramS4K(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="programName" && tempobj.value=='') {
			fieldlist = "City Name";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredClientProgramS4K(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="enrollDate" && tempobj.value=='') {
			fieldlist = "Enroll Date";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredClient(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredClient2(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
	}
}


if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredMI_MCSCForm(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="aoc" && tempobj.value=='') {
			fieldlist = "AOC";
			pass=false;
			break;
		}
		if (tempobj.name=="periodFrom" && tempobj.value=='') {
			fieldlist = "Period From";
			pass=false;
			break;
		}
		if (tempobj.name=="periodThru" && tempobj.value=='') {
			fieldlist = "Period Thru";
			pass=false;
			break;
		}
		if (tempobj.name=="requestNumber" && tempobj.value=='') {
			fieldlist = "Request Number";
			pass=false;
			break;
		}
		if (tempobj.name=="pca" && tempobj.value=='') {
			fieldlist = "PCA";
			pass=false;
			break;
		}
		if (tempobj.name=="fedIDNumber" && tempobj.value=='') {
			fieldlist = "Federal Identification Number";
			pass=false;
			break;
		}
		if (tempobj.name=="cashReceived" && tempobj.value=='') {
			fieldlist = "Cash Received";
			pass=false;
			break;
		}
		if (tempobj.name=="actualDisbursements" && tempobj.value=='') {
			fieldlist = "Actual Disbursements";
			pass=false;
			break;
		}
		if (tempobj.name=="cashOnHand" && tempobj.value=='') {
			fieldlist = "Cash On Hand";
			pass=false;
			break;
		}
		if (tempobj.name=="cashRequests" && tempobj.value=='') {
			fieldlist = "Cash Requests";
			pass=false;
			break;
		}
		if (tempobj.name=="requestAmount" && tempobj.value=='') {
			fieldlist = "Requested Amount";
			pass=false;
			break;
		}
		if (tempobj.name=="phoneNumber" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
		if (tempobj.name=="formDate" && tempobj.value=='') {
			fieldlist = "Form Date";
			pass=false;
			break;
		}
	}
}


if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequireds4k733(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="s4k_assessmentID" && tempobj.value=='0') {
			fieldlist = "Type";
			pass=false;
			break;
		}
		if (tempobj.name=="assessmentName" && tempobj.value=='') {
			fieldlist = "My Assessment Name";
			pass=false;
			break;
		}
		if (tempobj.name=="assessmentDate" && tempobj.value=='') {
			fieldlist = "Assessment Date";
			pass=false;
			break;
		}
	}
}


if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredMember(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="supervisorID" && tempobj.value=='0') {
			fieldlist = "Supervisor";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
		if (tempobj.name=="birthDate" && tempobj.value=='') {
			fieldlist = "Birth Date";
			pass=false;
			break;
		}
		if (tempobj.name=="serviceStartDate" && tempobj.value=='') {
			fieldlist = "Service Start Date";
			pass=false;
			break;
		}
		if (tempobj.name=="serviceEndDate" && tempobj.value=='') {
			fieldlist = "Service End Date";
			pass=false;
			break;
		}
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredMemberME(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

	var acPortal1 = document.form1.americorpsPortal[0].checked;
	var acPortal2 = document.form1.americorpsPortal[1].checked;

	var applicationForm1 = document.form1.applicationForm[0].checked;
	var applicationForm2 = document.form1.applicationForm[1].checked;

	var enrollmentForm1 = document.form1.enrollmentForm[0].checked;
	var enrollmentForm2 = document.form1.enrollmentForm[1].checked;

	var eligibilityForm1 = document.form1.eligibilityForm[0].checked;
	var eligibilityForm2 = document.form1.eligibilityForm[1].checked;

	var backgroundForm1 = document.form1.backgroundForm[0].checked;
	var backgroundForm2 = document.form1.backgroundForm[1].checked;
	var backgroundForm3 = document.form1.backgroundForm[2].checked;

	var contractForm1 = document.form1.contractForm[0].checked;
	var contractForm2 = document.form1.contractForm[1].checked;

	var healthCareForm1 = document.form1.healthCareForm[0].checked;
	var healthCareForm2 = document.form1.healthCareForm[1].checked;
	var healthCareForm3 = document.form1.healthCareForm[2].checked;

	var childCareForm1 = document.form1.childCareForm[0].checked;
	var childCareForm2 = document.form1.childCareForm[1].checked;
	var childCareForm3 = document.form1.childCareForm[2].checked;

	var publicityForm1 = document.form1.publicityForm[0].checked;
	var publicityForm2 = document.form1.publicityForm[1].checked;

	var parentalForm1 = document.form1.parentalForm[0].checked;
	var parentalForm2 = document.form1.parentalForm[1].checked;
	var parentalForm3 = document.form1.parentalForm[2].checked;

	var exitForm1 = document.form1.exitForm[0].checked;
	var exitForm2 = document.form1.exitForm[1].checked;

	var w4TaxForm1 = document.form1.w4TaxForm[0].checked;
	var w4TaxForm2 = document.form1.w4TaxForm[1].checked;
	var w4TaxForm3 = document.form1.w4TaxForm[2].checked;

	var midYearEvalForm1 = document.form1.midYearEvalForm[0].checked;
	var midYearEvalForm2 = document.form1.midYearEvalForm[1].checked;
	var midYearEvalForm3 = document.form1.midYearEvalForm[2].checked;

	var endYearEvalForm1 = document.form1.endYearEvalForm[0].checked;
	var endYearEvalForm2 = document.form1.endYearEvalForm[1].checked;

	var roleDescriptionForm1 = document.form1.roleDescriptionForm[0].checked;
	var roleDescriptionForm2 = document.form1.roleDescriptionForm[1].checked;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="supervisorID" && tempobj.value=='0') {
			fieldlist = "Supervisor";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
		if (tempobj.name=="birthDate" && tempobj.value=='') {
			fieldlist = "Birth Date";
			pass=false;
			break;
		}
		if (tempobj.name=="serviceStartDate" && tempobj.value=='') {
			fieldlist = "Service Start Date";
			pass=false;
			break;
		}
		if (tempobj.name=="serviceEndDate" && tempobj.value=='') {
			fieldlist = "Service End Date";
			pass=false;
			break;
		}
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
		if (tempobj.name=="memberTypeID" && tempobj.value=='0') {
			fieldlist = "Slot Type";
			pass=false;
			break;
		}
	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (acPortal1==false && acPortal2==false) {
	alert("Has this member been enrolled in the AmeriCorps Portal is required.");
	return false;
}

if (applicationForm1==false && applicationForm2==false) {
	alert("Application is required.");
	return false;
}

if (enrollmentForm1==false && enrollmentForm2==false) {
	alert("Enrollment is required.");
	return false;
}

if (eligibilityForm1==false && eligibilityForm2==false) {
	alert("Eligibility Doc is required.");
	return false;
}

if (backgroundForm1==false && backgroundForm2==false && backgroundForm3==false) {
	alert("Background Check is required.");
	return false;
}

if (contractForm1==false && contractForm2==false) {
	alert("Member Contract is required.");
	return false;
}

if (healthCareForm1==false && healthCareForm2==false && healthCareForm3==false) {
	alert("Health Care Section Completed is required.");
	return false;
}

if (childCareForm1==false && childCareForm2==false && childCareForm3==false) {
	alert("Child Care Section Completed is required.");
	return false;
}

if (publicityForm1==false && publicityForm2==false) {
	alert("Publicity Release Section Completed is required.");
	return false;
}

if (parentalForm1==false && parentalForm2==false && parentalForm3==false) {
	alert("Parental Consent Form is required.");
	return false;
}

if (exitForm1==false && exitForm2==false) {
	alert("Exit Form is required.");
	return false;
}

if (w4TaxForm1==false && w4TaxForm2==false && w4TaxForm3==false) {
	alert("W-4 Tax Form is required.");
	return false;
}

if (midYearEvalForm1==false && midYearEvalForm2==false && midYearEvalForm3==false) {
	alert("Mid Year Evaluation is required.");
	return false;
}

if (endYearEvalForm1==false && endYearEvalForm2==false) {
	alert("End of Year Evaluation is required.");
	return false;
}

if (roleDescriptionForm1==false && roleDescriptionForm2==false) {
	alert("Member Role Description is required.");
	return false;
}



if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredMemberMD(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="supervisorID" && tempobj.value=='0') {
			fieldlist = "Supervisor";
			pass=false;
			break;
		}
//		if (tempobj.name=="email" && tempobj.value=='') {
//			fieldlist = "Email";
//			pass=false;
//			break;
//		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
		if (tempobj.name=="birthDate" && tempobj.value=='') {
			fieldlist = "Birth Date";
			pass=false;
			break;
		}
		if (tempobj.name=="serviceStartDate" && tempobj.value=='') {
			fieldlist = "Service Start Date";
			pass=false;
			break;
		}
		if (tempobj.name=="serviceEndDate" && tempobj.value=='') {
			fieldlist = "Service End Date";
			pass=false;
			break;
		}
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function showHidePY(which) {
	var hasTimesheets1 = document.form1.hasTimesheets[0].checked;
	var hasTimesheets2 = document.form1.hasTimesheets[1].checked;
    if (hasTimesheets1==true) {                // show info
        document.form1.memberStatusID.disabled = false;
        document.form1.exitDate.disabled = false;
        document.form1.memberTypeID.disabled = false;
        document.form1.serviceStartDate.disabled = false;
        document.form1.serviceEndDate.disabled = false;
        document.form1.serviceMidDate.disabled = false;
    } else {
        if (hasTimesheets2==true) {                // hide info
        document.form1.memberStatusID.disabled = true;
        document.form1.exitDate.disabled = true;
        document.form1.memberTypeID.disabled = true;
        document.form1.serviceStartDate.disabled = true;
        document.form1.serviceEndDate.disabled = true;
        document.form1.serviceMidDate.disabled = true;
        }  
    }  
}

// ##############################
function checkrequiredMbrPY(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

var hasTimesheets1 = document.form1.hasTimesheets[0].checked;
var hasTimesheets2 = document.form1.hasTimesheets[1].checked;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="supervisorID" && tempobj.value=='0') {
			//fieldlist = "Supervisor";
			fieldlist = "School";
			pass=false;
			break;
		}
//		if (tempobj.name=="email" && tempobj.value=='') {
//			fieldlist = "Email";
//			pass=false;
//			break;
//		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
		if (tempobj.name=="birthDate" && tempobj.value=='') {
			fieldlist = "Birth Date";
			pass=false;
			break;
		}
//		if (hasTimesheets1==true && tempobj.name=="serviceStartDate" && tempobj.value=='') {
//			fieldlist = "Service Start Date";
//			pass=false;
//			break;
//		}
//		if (hasTimesheets1==true && tempobj.name=="serviceEndDate" && tempobj.value=='') {
//			fieldlist = "Service End Date";
//			pass=false;
//			break;
//		}
        if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
        if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
        if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredMemberWI(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

	var gender1 = document.form1.gender[0].checked;
	var gender2 = document.form1.gender[1].checked;

	var degree1 = document.form1.degree[0].checked;
	var degree2 = document.form1.degree[1].checked;

	var secondYear1 = document.form1.secondYear[0].checked;
	var secondYear2 = document.form1.secondYear[1].checked;

	var americorpsPortal1 = document.form1.americorpsPortal[0].checked;
	var americorpsPortal2 = document.form1.americorpsPortal[1].checked;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="countyID" && tempobj.value=='0') {
			fieldlist = "County";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
		if (tempobj.name=="birthDate" && trim(tempobj.value)=='') {
			fieldlist = "Birth Date";
			pass=false;
			break;
		}
		if (tempobj.name=="raceID" && tempobj.value=='0') {
			fieldlist = "Race";
			pass=false;
			break;
		}
		if (tempobj.name=="ethnicityID" && tempobj.value=='0') {
			fieldlist = "Ethnicity";
			pass=false;
			break;
		}
		if (tempobj.name=="educLevelID" && tempobj.value=='0') {
			fieldlist = "Education Level";
			pass=false;
			break;
		}
		if (tempobj.name=="memberStatusID" && tempobj.value=='0') {
			fieldlist = "Status";
			pass=false;
			break;
		}
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
		if (tempobj.name=="serviceStartDate" && trim(tempobj.value)=='') {
			fieldlist = "Service Start Date";
			pass=false;
			break;
		}
		if (tempobj.name=="serviceEndDate" && trim(tempobj.value)=='') {
			fieldlist = "Service End Date";
			pass=false;
			break;
		}
		if (tempobj.name=="supervisorID" && tempobj.value=='0') {
			fieldlist = "Supervisor";
			pass=false;
			break;
		}
	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (degree1 == false && degree2 == false) {
	alert("Education Degree is required.");
	return false;
}

if (gender1 == false && gender2 == false) {
	alert("Gender is required.");
	return false;
}

if (secondYear1 == false && secondYear2 == false) {
	alert("Second Year Member is required.");
	return false;
}

if (americorpsPortal1 == false && americorpsPortal2 == false) {
	alert("Americorps Portal is required.");
	return false;
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredProspect(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";


if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
	}
}


if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredClientProfile(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "firstName" && tempobj.value == '') {
                fieldlist = "First Name";
                pass = false;
                break;
            }
            if (tempobj.name == "memberID" && tempobj.value == '0') {
                fieldlist = "Member";
                pass = false;
                break;
            }
            //		if (tempobj.name=="s4k_studentNumber" && tempobj.value=='') {
            //			fieldlist = "Student ID";
            //			pass=false;
            //			break;
            //		}
        }
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        ray2.ajax();
        return true;
    }
}


// ##############################
function checkrequiredAlumniProfile(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    var pwd = document.form1.password.value;
    var pwd2 = document.form1.verifypassword.value;

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "firstName" && tempobj.value == '') {
                fieldlist = "First Name";
                pass = false;
                break;
            }
            if (tempobj.name == "lastName" && tempobj.value == '') {
                fieldlist = "Last Name";
                pass = false;
                break;
            }
            if (tempobj.name == "email" && tempobj.value == '') {
                fieldlist = "Email";
                pass = false;
                break;
            }
            if (tempobj.name == "address" && tempobj.value == '') {
                fieldlist = "Address";
                pass = false;
                break;
            }
            if (tempobj.name == "city" && tempobj.value == '') {
                fieldlist = "City";
                pass = false;
                break;
            }
            if (tempobj.name == "stateID" && tempobj.value == '0') {
                fieldlist = "State";
                pass = false;
                break;
            }
            if (tempobj.name == "zip" && tempobj.value == '') {
                fieldlist = "Zip";
                pass = false;
                break;
            }
            if (tempobj.name == "phone1" && tempobj.value == '') {
                fieldlist = "Phone";
                pass = false;
                break;
            }
            if (tempobj.name == "phone2" && tempobj.value == '') {
                fieldlist = "Phone";
                pass = false;
                break;
            }
            if (tempobj.name == "phone3" && tempobj.value == '') {
                fieldlist = "Phone";
                pass = false;
                break;
            }
            if (tempobj.name == "birthDate" && tempobj.value == '') {
                fieldlist = "Birth date";
                pass = false;
                break;
            }
            if (tempobj.name == "login" && tempobj.value == '') {
                fieldlist = "Login";
                pass = false;
                break;
            }
            if (tempobj.name == "password" && tempobj.value == '') {
                fieldlist = "Password";
                pass = false;
                break;
            }
            if (tempobj.name == "verifypassword" && tempobj.value == '') {
                fieldlist = "Verify Password";
                pass = false;
                break;
            }
        }
    }

    if (pwd != pwd2) {
        alert("Passwords do not match.");
        setColor(document.form1.password, bgBad);
        setColor(document.form1.verifypassword, bgBad);
        document.form1.password.focus();
        return false;
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        ray2.ajax();
        return true;
    }
}


// ##############################
function checkrequiredClientProfileS4K(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

    var gender1 = (document.form1.studentGender[0].checked);
    var gender2 = (document.form1.studentGender[1].checked);

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="memberID" && tempobj.value=='0') {
			fieldlist = "Member";
			pass=false;
			break;
		}
		if (tempobj.name=="birthDate" && tempobj.value=='') {
			fieldlist = "Birth Date";
			pass=false;
			break;
		}
	}
}

if (gender1==false && gender2==false) {
    alert("Gender is required");
    return false; 
}
if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredSupervisorProfile(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="siteID" && tempobj.value=='0') {
			fieldlist = "Site";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredSupervisorProfileMI(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="siteID" && tempobj.value=='0') {
			fieldlist = "Site";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredSupervisorProfileS4K(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="siteID" && tempobj.value=='0') {
			fieldlist = "Site";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredProgramID(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		
		if (tempobj.name=="programID" && tempobj.value=='0') {
			fieldlist = "Program";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}




// ##############################
function checkrequiredStaffJournal(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="staffJournalName" && tempobj.value=='') {
			fieldlist = "Journal Entry Name";
			pass=false;
			break;
		}
		if (tempobj.name=="programID" && tempobj.value=='X') {
			fieldlist = "Program";
			pass=false;
			break;
		}
	}
}


if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequireds4kLogin(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredProfile(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;

        }

        if (tempobj.name == "directorID" && tempobj.value == '0') {
                fieldlist = "Program Director";
                pass = false;
                break;
         }
         if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;
		}
	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredDirector(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

  var pwd = document.form1.password.value;
  var pwd2 = document.form1.verifypassword.value;

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name == "programID" && tempobj.value == '0') {
            fieldlist = "Program";
            pass = false;
            break;
        }
        if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
		if (tempobj.name=="login" && tempobj.value=='') {
			fieldlist = "Login";
			pass=false;
			break;
		}
		if (tempobj.name=="password" && tempobj.value=='') {
			fieldlist = "Password";
			pass=false;
			break;
		}
		if (tempobj.name=="verifypassword" && tempobj.value=='') {
			fieldlist = "Verify Password";
			pass=false;
			break;

        }
        

	}
}

if (pwd != pwd2) {
	alert("Passwords do not match.");
	setColor(document.form1.password, bgBad);
	setColor(document.form1.verifypassword, bgBad);
	document.form1.password.focus();
	return false;
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredSiteProfileCoordinator(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="siteName" && tempobj.value=='') {
			fieldlist = "Site Name";
			pass=false;
			break;
		}
		if (tempobj.name=="coordinatorID" && tempobj.value=='0') {
			fieldlist = "Regional Coordinator";
			pass=false;
			break;
		}
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "Email";
			pass=false;
			break;
		}
		if (tempobj.name=="address" && tempobj.value=='') {
			fieldlist = "Address";
			pass=false;
			break;
		}
		if (tempobj.name=="city" && tempobj.value=='') {
			fieldlist = "City";
			pass=false;
			break;
		}
		if (tempobj.name=="stateID" && tempobj.value=='0') {
			fieldlist = "State";
			pass=false;
			break;
		}
		if (tempobj.name=="zip" && tempobj.value=='') {
			fieldlist = "Zip";
			pass=false;
			break;
		}
		if (tempobj.name=="phone" && tempobj.value=='') {
			fieldlist = "Phone";
			pass=false;
			break;
		}
	}
}


if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredSiteProfile(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "siteName" && tempobj.value == '') {
                fieldlist = "Site Name";
                pass = false;
                break;
            }
            if (tempobj.name == "coordinatorID" && tempobj.value == '0') {
                fieldlist = "Program Director";
                pass = false;
                break;
            }
            if (tempobj.name == "email" && tempobj.value == '') {
                fieldlist = "Email";
                pass = false;
                break;
            }
            if (tempobj.name == "address" && tempobj.value == '') {
                fieldlist = "Address";
                pass = false;
                break;
            }
            if (tempobj.name == "city" && tempobj.value == '') {
                fieldlist = "City";
                pass = false;
                break;
            }
            if (tempobj.name == "stateID" && tempobj.value == '0') {
                fieldlist = "State";
                pass = false;
                break;
            }
            if (tempobj.name == "zip" && tempobj.value == '') {
                fieldlist = "Zip";
                pass = false;
                break;
            }
            if (tempobj.name == "phone" && tempobj.value == '') {
                fieldlist = "Phone";
                pass = false;
                break;
            }
        }
    }


    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        ray2.ajax();
        return true;
    }
}


// ##############################
function checkrequiredSiteProfileWI(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "siteName" && tempobj.value == '') {
                fieldlist = "Site Name";
                pass = false;
                break;
            }
            if (tempobj.name == "coordinatorID" && tempobj.value == '0') {
                fieldlist = "Program Director";
                pass = false;
                break;
            }
            if (tempobj.name == "email" && tempobj.value == '') {
                fieldlist = "Email";
                pass = false;
                break;
            }
            if (tempobj.name == "address" && tempobj.value == '') {
                fieldlist = "Address";
                pass = false;
                break;
            }
            if (tempobj.name == "city" && tempobj.value == '') {
                fieldlist = "City";
                pass = false;
                break;
            }
            if (tempobj.name == "stateID" && tempobj.value == '0') {
                fieldlist = "State";
                pass = false;
                break;
            }
            if (tempobj.name == "zip" && tempobj.value == '') {
                fieldlist = "Zip";
                pass = false;
                break;
            }
            if (tempobj.name == "phone" && tempobj.value == '') {
                fieldlist = "Phone";
                pass = false;
                break;
            }
            if (tempobj.name == "stateSenateDistrictID" && tempobj.value == '0') {
                fieldlist = "State Senate District";
                pass = false;
                break;
            }
            if (tempobj.name == "districtID" && tempobj.value == '0') {
                fieldlist = "Legislative House District";
                pass = false;
                break;
            }
            if (tempobj.name == "fcdistrictID" && tempobj.value == '0') {
                fieldlist = "Federal Congressional District";
                pass = false;
                break;
            }
            if (tempobj.name == "bealeCode" && tempobj.value == '') {
                fieldlist = "Area Beale Code";
                pass = false;
                break;
            }
        }
    }


    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        ray2.ajax();
        return true;
    }
}


// ##############################
function checkrequiredSiteProfileOK(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "siteName" && tempobj.value == '') {
                fieldlist = "Site Name";
                pass = false;
                break;
            }
            if (tempobj.name == "coordinatorID" && tempobj.value == '0') {
                fieldlist = "Program Director";
                pass = false;
                break;
            }
        }
    }


    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        ray2.ajax();
        return true;
    }
}

// ##############################
function checkrequiredMRCStudent(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
    var MARSS_Number = document.form1.MARSS_Number.value;  
    var verifyMARSS_Number = document.form1.verifyMARSS_Number.value;  
    var MN_MRCGradeID = document.form1.MN_MRCGradeID.value;
    
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="MN_MRCStudentStatusID" && tempobj.value=='0') {
			fieldlist = "Status";
			pass=false;
			break;
		}
		if (tempobj.name=="MN_MRCEthnicity" && tempobj.value=='0') {
			fieldlist = "Ethnicity";
			pass=false;
			break;
		}
		if (tempobj.name=="MN_MRCGradeID" && tempobj.value=='0') {
			fieldlist = "Grade";
			pass=false;
			break;
		}
	}
}

if (MN_MRCGradeID!='0' && MN_MRCGradeID!='2' && MARSS_Number=='') {
    alert("MARSS Number is required");
    return false; 
}

if (MARSS_Number!='' && MARSS_Number.length!=13) {
    alert("MARSS Number must be 13 digits");
    return false; 
}

if (MARSS_Number!='' && MARSS_Number!=verifyMARSS_Number) {
    alert("MARSS Number and Verify MARSS Number do not match");
    return false; 
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredMathStudent(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
    var MARSS_Number = document.form1.MARSS_Number.value;  
    var verifyMARSS_Number = document.form1.verifyMARSS_Number.value;  
    var MN_MathGradeID = document.form1.MN_MathGradeID.value;
    
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="firstName" && tempobj.value=='') {
			fieldlist = "First Name";
			pass=false;
			break;
		}
		if (tempobj.name=="lastName" && tempobj.value=='') {
			fieldlist = "Last Name";
			pass=false;
			break;
		}
		if (tempobj.name=="MN_MathStudentStatusID" && tempobj.value=='0') {
			fieldlist = "Status";
			pass=false;
			break;
		}
		if (tempobj.name=="MN_MRCEthnicity" && tempobj.value=='0') {
			fieldlist = "Ethnicity";
			pass=false;
			break;
		}
		if (tempobj.name=="MN_MathGradeID" && tempobj.value=='0') {
			fieldlist = "Grade";
			pass=false;
			break;
		}
		if (tempobj.name=="MARSS_number" && tempobj.value=='0') {
			fieldlist = "MARSS Number";
			pass=false;
			break;
		}
	}
}

if (MARSS_Number!='' && MARSS_Number.length!=13) {
    alert("MARSS Number must be 13 digits");
    return false; 
}

if (MARSS_Number!='' && MARSS_Number!=verifyMARSS_Number) {
    alert("MARSS Number and Verify MARSS Number do not match");
    return false; 
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequireds4kAssessment(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";
 
   
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="s4k_assessmentID" && tempobj.value=='0') {
			fieldlist = "Select an Assessment";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist);
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    return true;
}
}


// ##############################
function authorizeTimesheet(which) {

	var agree=confirm("Click OK to submit this timesheet to your Supervisor for approval or Cancel to cancel.");
	if (agree) {
        document.form1.authSubmit.value="X";
		return true ;
	} else {
        document.form1.authSubmit.value="";
		return false ;
	}
}


// ##############################
function authorizeSupervisorTimesheet(which) {

	var agree=confirm("Click OK to submit this timesheet to your Program Director for approval or Cancel to cancel.");
	if (agree)
		return true ;
	else
		return false ;
}


// ##############################
function deleteEvent(which) {

	var agree=confirm("Are you sure you want to delete this item?\n\nThis action cannot be undone!");
	if (agree)
		return true ;
	else
		return false ;
}



// ##############################
function makePagePDF(which) {

	var agree=confirm("Click OK to create a PDF of this page or Cancel to cancel");
	if (agree) {
        ray.ajax();
		return true ;
	} else {
		return false ;
    }
}


// ##############################
function enrollMember(which) {

	var agree=confirm("Click OK to enroll this prospective member or Cancel to cancel");
	if (agree)
		return true ;
	else
		return false ;
}


// ##############################
function deleteBestPractice(which) {

	var agree=confirm("Are you sure you want to delete this item?\n\nThis action cannot be undone!");
	if (agree)
		return true ;
	else
		return false ;
}


// ##############################
function deleteOtherInKind(which) {

	var agree=confirm("Are you sure you want to delete this item?\n\nThis action cannot be undone!");
	if (agree)
		return true ;
	else
		return false ;
}


// ##############################
function deletePerformanceMeasure(which) {

	var agree=confirm("Are you sure you want to delete this item?\n\nThis action cannot be undone!");
	if (agree)
		return true ;
	else
		return false ;
}


// ##############################
function deleteProgress(which) {

	var agree=confirm("Are you sure you want to delete this item?\n\nThis action cannot be undone!");
	if (agree)
		return true ;
	else
		return false ;
}


// ##############################
function deleteStory(which) {

	var agree=confirm("Are you sure you want to delete this story?\n\nThis action cannot be undone!");
	if (agree)
		return true ;
	else
		return false ;
}

// ##############################
function deleteDirectService(which) {

	var agree=confirm("Are you sure you want to delete this direct service activity?\n\nThis action cannot be undone!");
	if (agree)
		return true ;
	else
		return false ;
}

// ##############################
function deleteCapacityBuilding(which) {

	var agree=confirm("Are you sure you want to delete this capacity building activity?\n\nThis action cannot be undone!");
	if (agree)
		return true ;
	else
		return false ;
}


// ##############################
function deleteService(which) {

	var agree=confirm("Are you sure you want to delete this community volunteer activity?\n\nThis action cannot be undone!");
	if (agree)
		return true ;
	else
		return false ;
}

// ##############################
function deleteCivic(which) {

	var agree=confirm("Are you sure you want to delete this civic engagement activity?\n\nThis action cannot be undone!");
	if (agree)
		return true ;
	else
		return false ;
}

// ##############################
function checkrequiredSelectOutcomeCategory(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="outcomeCategoryID" && tempobj.value=='X') {
			fieldlist = "Outcome Category";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}

// ##############################
function checkrequiredILTutorLogs(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "tutorMonth" && tempobj.value == '0') {
                fieldlist = "Month";
                pass = false;
                break;
            }
            if (tempobj.name == "tutorYear" && tempobj.value == '0') {
                fieldlist = "Year";
                pass = false;
                break;
            }
        }
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        return true;
    }
}


// ##############################
function checkrequiredServeMNLogin(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "login" && tempobj.value == '') {
                fieldlist = "Login";
                pass = false;
                break;
            }
            if (tempobj.name == "password" && tempobj.value == '') {
                fieldlist = "Password";
                pass = false;
                break;
            }
        }
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        return true;
    }
}


// ##############################
function checkrequiredServeMNEmail(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="email" && tempobj.value=='') {
			fieldlist = "E-Mail";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist+" is required.");
	tempobj.focus();
//	tempobj.blur();
	return false;
}
else {
    ray2.ajax();
    return true;
}
}


// ##############################
function checkrequiredSelectTimesheetSupervisor(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';
  var bgGood = "white";

    var approved1 = (document.form1.approved[0].checked);
    var approved2 = (document.form1.approved[1].checked);

if (approved1 == false && approved2 == false) {
	alert("You must either approve or reject this time sheet.");
	return false;
}
return true;

}

// ##############################
function checkrequiredSelectTimesheet(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';;
  var bgGood = "white";
 
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="weekID" && tempobj.value=='X') {
			fieldlist = "Please select a week";
			pass=false;
			break;
		}
		if (tempobj.name=="weekID" && tempobj.value=='L') {
			fieldlist = "The selected time sheet is locked - please select another period";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist);
	tempobj.focus();
	tempobj.blur();
	return false;
}
else {
    return true;
}
}


// ##############################
function checkrequiredSelectTimesheetStatus(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';;
  var bgGood = "white";
 
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="tsStat" && tempobj.value=='X') {
			fieldlist = "Please select a Timesheet Status";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist);
	tempobj.focus();
	tempobj.blur();
	return false;
}
else {
    return true;
}
}


// ##############################
function checkrequiredSelectMember(which) {

var pass=true;
fieldlist = "";

  var bgBad = '#dddddd';;
  var bgGood = "white";
 
if (document.images) {
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name=="memberID" && tempobj.value=='X') {
			fieldlist = "Please select a member";
			pass=false;
			break;
		}
	}
}

if (!pass) {
	setColor(tempobj, bgBad);
	alert(""+fieldlist);
	tempobj.focus();
	tempobj.blur();
	return false;
}
else {
    return true;
}
}


// ##############################
function checkrequiredMemberTimesheet(which) {

    var pass=true;
    fieldlist = "";

    var bgBad = '#dddddd';;
    var bgGood = "white";

    if (document.form1.supervisorID.type == "checkbox") {
        var super1 = document.form1.supervisorID.checked;
        var super2 = document.form1.supervisor2ID.checked;
        var super3 = document.form1.supervisor3ID.checked;
        var super4 = document.form1.supervisor4ID.checked;
    }
    else {
        var super1 = document.form1.supervisorID.value
        var super2 = document.form1.supervisor2ID.value;
        var super3 = document.form1.supervisor3ID.value;
        var super4 = document.form1.supervisor4ID.value;
    }
    

    if (super1==0 && super2==0 && super3==0 && super4==0) {
       alert("You must choose at least one Supervisor");
       pass=false;  
    }

    if (!pass) {
    	return false;
    }
   else {
     return true;
    }
}

// ##############################
function setColor(el, bg) {
  if (el.style) el.style.backgroundColor = bg;
}

// ##############################
function validate(field) {
var valid = "0123456789"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Invalid entry!  Only numbers are allowed!");
field.value = "";
field.focus();
field.select();
   }
}

// ##############################
function validate2(field) {
var valid = "0123456789."
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Invalid entry!  Only numbers are allowed!");
field.value = "";
field.focus();
field.select();
   }
}

// ##############################
function validate3(field) {
var valid = "0123456789."
var ok = "yes";
var temp;
var decfound=field.value.indexOf(".");
if (decfound>0) {
    var decvalue = field.value.substring(decfound+1);
    if (decvalue=="0" || decvalue=="00" || decvalue=="25" || decvalue=="5" || decvalue=="50" || decvalue=="75") {
    } else { 
        alert("Invalid entry: Hours must be entered in multiples of quarter hours (.25, .50, .75)");
        field.value=""; 
        field.focus();
        field.select();
        return false;
    }    
} 
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Invalid entry!  Only numbers are allowed.  Please remove any special characters, spaces, or non-numeric values!");
field.value = "";
field.focus();
field.select();
   }
}

// ##############################
// validate3 for Missouri
function validate3mo(field) {
var valid = "0123456789. "
var ok = "yes";
var temp;
var decfound=field.value.indexOf(".");
if (decfound>0) {
    var decvalue = field.value.substring(decfound+1);
//    if (decvalue=="0" || decvalue=="00" || decvalue=="25" || decvalue=="5" || decvalue=="50" || decvalue=="75") {
//    } else { 
//        alert("Invalid entry: Hours must be entered in multiples of quarter hours (.25, .50, .75)");
//        field.value=""; 
//        field.focus();
//        field.select();
//        return false;
//    }    
} 
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Invalid entry!  Only numbers are allowed!");
field.value = "";
field.focus();
field.select();
   }
}


// ##############################
function validate4(field) {
var valid = "0123456789.-"
var ok = "yes";
var temp;
//var decfound=field.value.indexOf(".");
//if (decfound>0) {
//    var decvalue = field.value.substring(decfound+1);
//    if (decvalue=="0" || decvalue=="00" || decvalue=="25" || decvalue=="5" || decvalue=="50" || decvalue=="75") {
//    } else { 
//        alert("Invalid entry: Hours must be entered in multiples of quarter hours (.25, .50, .75)");
//        field.value=""; 
//        field.focus();
//        field.select();
//        return false;
//    }    
//} 
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Invalid entry!  Only numbers are allowed!");
field.value = "";
field.focus();
field.select();
   }
}

// ##############################
function validate5(field) {
var valid = "0123456789.-"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Invalid entry!  Only numbers are allowed!");
field.value = "";
field.focus();
field.select();
   }
}

// ##############################
function validates4kAssessment(field) {
var valid = "012345"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Invalid entry!  Only numbers between 1-5 are allowed!");
field.value = "";
field.focus();
field.select();
   }
}

// ##############################
function validateTutorLog(field) {
var valid = "0123456789"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no" || trim(field.value)=="1" || trim(field.value)=="2" || trim(field.value)=="3" || trim(field.value)=="4") {
alert("Invalid entry!  Values of 0 or greater than 4 are allowed");
field.value = "";
field.focus();
field.select();
return false;
   }
}

// ##############################
function validateTutorLogSession(field) {
var sessionNumber = -1;
var isError = false;

if (field.value == "")
    return true;

if (isNaN(field.value) || field.value > 10)
    isError = true;
    
if (isError)
{   
    alert("Tutoring Session must be numeric and must not exceed 10.");
    field.value = "";
    field.focus();
    field.select();
}

return !isError;
}

// ##############################
function validateZip(field) {
var valid = "0123456789"
var ok1 = "yes";
var ok2 = "yes";
var temp;
if (field.value.length == 0) {
} else {
	for (var i=0; i<field.value.length; i++) {
	temp = "" + field.value.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") ok1 = "no";
	}
	if (field.value.length == 5) {
	} else {
	  ok2 = "no";
	}
	if (ok1 == "no") {
	alert("Invalid entry!  Only numbers are accepted!");
    field.value = "";
	field.focus();
	field.select();
	   }
	if (ok2 == "no") {
	alert("Field must contain five numbers");
	field.value = "";
	field.focus();
	field.select();
	   }
	}
}

// ##############################
function gtpage(url,frname,height,width) {

        var p1 = 'toolbar=no,'
        var p2 = 'location=no,'
        var p3 = 'directories=no,'
        var p4 = 'status=no,'
        var p5 = 'menubar=no,'
        var p6 = 'resizable=no,'
        var p7 = 'scrollbars=no,'
        var p8=  'copyhistory=no,'
        var p9 = 'width='+width+',';
        var p10 = 'height='+height
        var props = p1+p2+p3+p4+p5+p6+p7+p8+p9+p10;

        themainwindow = window.open(url,frname,props);
        themainwindow.focus();

     }

// ##############################
function gtpage2(url,frname,height,width) {

        var p1 = 'toolbar=no,'
        var p2 = 'location=no,'
        var p3 = 'directories=no,'
        var p4 = 'status=no,'
        var p5 = 'menubar=no,'
        var p6 = 'resizable=yes,'
        var p7 = 'scrollbars=yes,'
        var p8=  'copyhistory=no,'
        var p9 = 'width='+width+',';
        var p10 = 'height='+height
        var props = p1+p2+p3+p4+p5+p6+p7+p8+p9+p10;

        themainwindow = window.open(url,frname,props);
        themainwindow.focus();

     }

// ##############################
function printpage() {
	window.print();
}

// ###################################
function check_date(field){
    /*
    Comments: 1/21/2011 - Kelly Redmond, Pangea Foundation
    I don't know why this would need to be different than other date validation routine
    so I changed this to return the updated check_date function - it appears this old one
    allowed "." as a date separator and the check_date2 allowed "/".
    */
    
    return check_date2(field);
}

// ###################################
function check_date2(field){
    if (field.value == "")
        return true;
    
    var isValid = true;    
    var dateExpression = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var matchExpression = field.value.match(dateExpression); // is the format ok?

    if (matchExpression != null)
    {
        month = matchExpression[1];
        day = matchExpression[3];
        year = matchExpression[5];

        if ((month < 1 || month > 12) || (day < 1 || day > 31) || 
            ((month==4 || month==6 || month==9 || month==11) && day==31)) 
            isValid = false;
        else
        {
            if (month == 2) 
            { 
                // check for february 29th
                var isleapYear = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
                if (day > 29 || (day==29 && !isleapYear))
                    isValid = false;
            }
        }
    }
    else
        isValid = false;
    
    if (!isValid)
    {    
        alert("Please enter a valid date in the format mm/dd/yyyy or m-d-yyyy.");
        field.value = "";
        field.focus();
    }
    
    return isValid;
    
}

// ###################################
 function check_time(field) { 
    var TimeField = field;
 
    // regular expression to match required time format 
    re = /^\d{1,2}:\d{2}([ap]m)?$/; 
    if (TimeField.value != '' && !TimeField.value.match(re)) { 
        alert("Invalid time format: " + TimeField.value+"\n\nTimes should be entered using 12:34am format"); 
        TimeField.value=""; 
        TimeField.focus(); 
        return false; 
    }
}  
 
 
// ###################################
function check_birthdate(field){
 /*
    Comments: 1/21/2011 - Kelly Redmond, Pangea Foundation
    I don't know why this would need to be different than other date validation routine
    so I changed this to return the updated check_date function - it appears this old one
    allowed "." as a date separator and the check_date2 allowed "/".
    */
    
    return check_date2(field);
}

// ###################################
 function check_time(field) { 
    var TimeField = field;
 
    // regular expression to match required time format 
    re = /^\d{1,2}:\d{2}([ap]m)?$/; 
    if (TimeField.value != '' && !TimeField.value.match(re)) { 
        alert("Invalid time format: " + TimeField.value+"\n\nTimes should be entered using 12:34am format"); 
        TimeField.focus(); 
        return false; 
    }
}  
 
 
// ##############################
function echeck(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   alert("Invalid e-mail address entered")
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   alert("Invalid e-mail address entered")
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    alert("Invalid e-mail address entered")
	    return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
	    alert("Invalid e-mail address entered")
	    return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    alert("Invalid e-mail address entered")
	    return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
	    alert("Invalid e-mail address entered")
	    return false
	 }
		
	 if (str.indexOf(" ")!=-1){
	    alert("Invalid e-mail address entered")
	    return false
	 }

 	 return true					
}



// ###################################
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

// ###################################
function MM_goToURL_deleteEvent() { //v3.0
    var agree = confirm("Are you sure you want to delete this item?\n\nThis action cannot be undone!");
    if (agree) {
        var i, args = MM_goToURL_deleteEvent.arguments; document.MM_returnValue = false;
        for (i = 0; i < (args.length - 1); i += 2) eval(args[i] + ".location='" + args[i + 1] + "'");
    } else {
        return false;
    }
}

// ###################################
function MM_goToURL_deleteNewPM() { //v3.0
    var agree = confirm("Are you sure you want to deactivate this Performance Measure?\n\nThis action cannot be undone!");
    if (agree) {
        var i, args = MM_goToURL_deleteNewPM.arguments; document.MM_returnValue = false;
        for (i = 0; i < (args.length - 1); i += 2) eval(args[i] + ".location='" + args[i + 1] + "'");
    } else {
        return false;
    }
}

// ###################################
function MM_goToURL_deactivatePM() { //v3.0
	var agree=confirm("Are you sure you want to deactivate this Performance Measure?\n\nThis action cannot be undone!");
	if (agree) {
      var i, args=MM_goToURL_deactivatePM.arguments; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
	} else {
		return false ;
    }
}

// ###################################
function MM_goToURL_copySurvey() { //v3.0
	var agree=confirm("Are you sure you want to copy this Survey to a new Survey?");
	if (agree) {
      var i, args=MM_goToURL_copySurvey.arguments; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
	} else {
		return false ;
    }
}

// ###################################
function MM_goToURL_submitProgress() { //v3.0
	var agree=confirm("Are you sure you want to submit this progress report for State Commission approval?");
	if (agree) {
      var i, args=MM_goToURL_submitProgress.arguments; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
	} else {
		return false ;
    }
}

// ###################################
function MM_goToURL_submitMDMonthly() { //v3.0
    var agree = confirm("Are you sure you want to submit this report for UMDHSA approval?");
    if (agree) {
        var i, args = MM_goToURL_submitMDMonthly.arguments; document.MM_returnValue = false;
        for (i = 0; i < (args.length - 1); i += 2) eval(args[i] + ".location='" + args[i + 1] + "'");
    } else {
        return false;
    }
}

// ###################################
function MM_goToURL_removeSHTimesheet() { //v3.0
    var agree = confirm("Are you sure you want to remove this row?\n\nThis action cannot be undone.");
    if (agree) {
        var i, args = MM_goToURL_removeSHTimesheet.arguments; document.MM_returnValue = false;
        for (i = 0; i < (args.length - 1); i += 2) eval(args[i] + ".location='" + args[i + 1] + "'");
    } else {
        return false;
    }
}

// ###################################
function MM_goToURL_enrollMember() { //v3.0
	var agree=confirm("Are you sure you want to enroll this prospective member?");
	if (agree) {
      var i, args=MM_goToURL_enrollMember.arguments; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
	} else {
		return false ;
    }
}

// ###################################
function MM_goToURL_unlockTimesheet() { //v3.0
	var agree=confirm("Are you sure you want to unlock this time sheet?");
	if (agree) {
      var i, args=MM_goToURL_unlockTimesheet.arguments; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
	} else {
		return false ;
    }
}

// ###################################
function MM_goToURL_removeNotification() { //v3.0
	var agree=confirm("Are you sure you want to remove this notification?");
	if (agree) {
      var i, args=MM_goToURL_removeNotification.arguments; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
	} else {
		return false ;
    }
}

// ###################################
function MM_goToURL_removeFile() { //v3.0
	var agree=confirm("Are you sure you want to remove this file?");
	if (agree) {
      var i, args=MM_goToURL_removeFile.arguments; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
	} else {
		return false ;
    }
}

// ###################################
function calcTotalFFR(which) {
    var transA = document.ffr.transA.value;
    var transB = document.ffr.transB.value;
    var transC = document.ffr.transC.value;
    var transD = document.ffr.transD.value;
    var transE = document.ffr.transE.value;
    var transF = document.ffr.transF.value;
    //var transF = document.ffr.transFCalc.value;
    var transG = document.ffr.transG.value;
    var transH = document.ffr.transH.value;
    var transI = document.ffr.transI.value;
    var transJ = document.ffr.transJ.value;
    var transK = document.ffr.transK.value;
    var transL = document.ffr.transL.value;
    var transM = document.ffr.transM.value;
    var transN = document.ffr.transN.value;
    var transO = document.ffr.transO.value;
    var indirectBase = document.ffr.indirectBase.value;
    var indirectBase2 = document.ffr.indirectBase2.value;
    var indirectBase3 = document.ffr.indirectBase3.value;
    var indirectBase4 = document.ffr.indirectBase4.value;
    var indirectCharged = document.ffr.indirectCharged.value;
    var indirectCharged2 = document.ffr.indirectCharged2.value;
    var indirectCharged3 = document.ffr.indirectCharged3.value;
    var indirectCharged4 = document.ffr.indirectCharged4.value;
    var indirectShare = document.ffr.indirectShare.value;
    var indirectShare2 = document.ffr.indirectShare2.value;
    var indirectShare3 = document.ffr.indirectShare3.value;
    var indirectShare4 = document.ffr.indirectShare4.value;

    var transA2 = document.ffr.transA2.value;
    var transB2 = document.ffr.transB2.value;
    var transC2 = document.ffr.transC2.value;
    var transD2 = document.ffr.transD2.value;
    var transE2 = document.ffr.transE2.value;
    var transF2 = document.ffr.transF2.value;
    var transG2 = document.ffr.transG2.value;
    var transH2 = document.ffr.transH2.value;
    var transI2 = document.ffr.transI2.value;
    var transJ2 = document.ffr.transJ2.value;
    var transK2 = document.ffr.transK2.value;
    var transL2 = document.ffr.transL2.value;
    var transM2 = document.ffr.transM2.value;
    var transN2 = document.ffr.transN2.value;
    var transO2 = document.ffr.transO2.value;

    if (transA=='' || transA==' ') transD = 0; 
    if (transB=='' || transB==' ') transD = 0; 
    if (transC=='' || transC==' ') transD = 0; 
    if (transD=='' || transD==' ') transD = 0; 
    if (transE=='' || transE==' ') transD = 0; 
    if (transF=='' || transF==' ') transD = 0; 
    if (transG=='' || transG==' ') transD = 0; 
    if (transH=='' || transH==' ') transD = 0; 
    if (transI=='' || transI==' ') transD = 0; 
    if (transJ=='' || transJ==' ') transD = 0; 
    if (transK=='' || transK==' ') transD = 0; 
    if (indirectBase=='' || indirectBase==' ') indirectBase = 0; 
    if (indirectBase2=='' || indirectBase2==' ') indirectBase2 = 0; 
    if (indirectBase3=='' || indirectBase3==' ') indirectBase3 = 0; 
    if (indirectBase4=='' || indirectBase4==' ') indirectBase4 = 0; 
    if (indirectCharged=='' || indirectCharged==' ') indirectCharged = 0; 
    if (indirectCharged2=='' || indirectCharged2==' ') indirectCharged2 = 0; 
    if (indirectCharged3=='' || indirectCharged3==' ') indirectCharged3 = 0; 
    if (indirectCharged4=='' || indirectCharged4==' ') indirectCharged4 = 0; 
    if (indirectShare=='' || indirectShare==' ') indirectShare = 0; 
    if (indirectShare2=='' || indirectShare2==' ') indirectShare2 = 0; 
    if (indirectShare3=='' || indirectShare3==' ') indirectShare3 = 0; 
    if (indirectShare4=='' || indirectShare4==' ') indirectShare4 = 0; 

    document.ffr.transC.value=Math.round(parseFloat(0 + parseFloat(transA) - parseFloat(transB)) * 100) / 100;
    document.ffr.transCcalc.value=Math.round(parseFloat(0 + parseFloat(transA) - parseFloat(transB)) * 100) / 100;

    transC = document.ffr.transC.value;
    document.ffr.transG.value=Math.round(parseFloat(0 + parseFloat(transE) + parseFloat(transF)) * 100) / 100;
    document.ffr.transGcalc.value=Math.round(parseFloat(0 + parseFloat(transE) + parseFloat(transF)) * 100) / 100;

    transG = document.ffr.transG.value;
    document.ffr.transH.value=Math.round(parseFloat(0 + parseFloat(transD) - parseFloat(transG)) * 100) / 100;
    document.ffr.transHcalc.value=Math.round(parseFloat(0 + parseFloat(transD) - parseFloat(transG)) * 100) / 100;

    transH = document.ffr.transH.value;
    document.ffr.transK.value=Math.round(parseFloat(0 + parseFloat(transI) - parseFloat(transJ)) * 100) / 100;
    document.ffr.transKcalc.value=Math.round(parseFloat(0 + parseFloat(transI) - parseFloat(transJ)) * 100) / 100;
    transK = document.ffr.transK.value;

    document.ffr.indirectBasecalc.value=Math.round(parseFloat(0 + parseFloat(indirectBase) + parseFloat(indirectBase2) + parseFloat(indirectBase3) + parseFloat(indirectBase4)) * 100) / 100;
    document.ffr.indirectChargedcalc.value=Math.round(parseFloat(0 + parseFloat(indirectCharged) + parseFloat(indirectCharged2) + parseFloat(indirectCharged3) + parseFloat(indirectCharged4)) * 100) / 100;
    document.ffr.indirectSharecalc.value=Math.round(parseFloat(0 + parseFloat(indirectShare) + parseFloat(indirectShare2) + parseFloat(indirectShare3) + parseFloat(indirectShare4)) * 100) / 100;

    // get the values from the screen again as they may have changed
    transA = document.ffr.transA.value;
    transB = document.ffr.transB.value;
    transC = document.ffr.transC.value;
    transD = document.ffr.transD.value;
    transE = document.ffr.transE.value;
    transF = document.ffr.transF.value;
    //transF = document.ffr.transFCalc.value;
    transG = document.ffr.transG.value;
    transH = document.ffr.transH.value;
    transI = document.ffr.transI.value;
    transJ = document.ffr.transJ.value;
    transK = document.ffr.transK.value;
    transL = document.ffr.transL.value;
    transM = document.ffr.transM.value;
    transN = document.ffr.transN.value;
    transO = document.ffr.transO.value;

    document.ffr.transA3.value=Math.round(parseFloat(0 + parseFloat(transA) + parseFloat(transA2)) * 100) / 100;
    document.ffr.transA3calc.value=Math.round(parseFloat(0 + parseFloat(transA) + parseFloat(transA2)) * 100) / 100;
    document.ffr.transB3.value=Math.round(parseFloat(0 + parseFloat(transB) + parseFloat(transB2)) * 100) / 100;
    document.ffr.transB3calc.value=Math.round(parseFloat(0 + parseFloat(transB) + parseFloat(transB2)) * 100) / 100;
    document.ffr.transC3.value=Math.round(parseFloat(0 + parseFloat(transC) + parseFloat(transC2)) * 100) / 100;
    document.ffr.transC3calc.value=Math.round(parseFloat(0 + parseFloat(transC) + parseFloat(transC2)) * 100) / 100;
    document.ffr.transD3.value=Math.round(parseFloat(0 + parseFloat(transD) + parseFloat(transD2)) * 100) / 100;
    document.ffr.transD3calc.value=Math.round(parseFloat(0 + parseFloat(transD) + parseFloat(transD2)) * 100) / 100;
    document.ffr.transE3.value=Math.round(parseFloat(0 + parseFloat(transE) + parseFloat(transE2)) * 100) / 100;
    document.ffr.transE3calc.value=Math.round(parseFloat(0 + parseFloat(transE) + parseFloat(transE2)) * 100) / 100;
    document.ffr.transF3.value=Math.round(parseFloat(0 + parseFloat(transF) + parseFloat(transF2)) * 100) / 100;
    document.ffr.transF3calc.value=Math.round(parseFloat(0 + parseFloat(transF) + parseFloat(transF2)) * 100) / 100;
    document.ffr.transG3.value=Math.round(parseFloat(0 + parseFloat(transG) + parseFloat(transG2)) * 100) / 100;
    document.ffr.transG3calc.value=Math.round(parseFloat(0 + parseFloat(transG) + parseFloat(transG2)) * 100) / 100;
    //document.ffr.transH3.value=Math.round(parseFloat(0 + parseFloat(transH) + parseFloat(transH2)) * 100) / 100;
    //document.ffr.transH3calc.value=Math.round(parseFloat(0 + parseFloat(transH) + parseFloat(transH2)) * 100) / 100;
//alert(transD);
//alert(transG);
//alert(transG2);
//alert(parseFloat(transD) - (0 + parseFloat(transG) + parseFloat(transG2)));
    document.ffr.transH3.value=parseFloat(transD) - (0 + parseFloat(transG) + parseFloat(transG2));
    document.ffr.transH3calc.value=parseFloat(transD) - (0 + parseFloat(transG) + parseFloat(transG2));
    document.ffr.transI3.value=Math.round(parseFloat(0 + parseFloat(transI) + parseFloat(transI2)) * 100) / 100;
    document.ffr.transI3calc.value=Math.round(parseFloat(0 + parseFloat(transI) + parseFloat(transI2)) * 100) / 100;
    document.ffr.transJ3.value=Math.round(parseFloat(0 + parseFloat(transJ) + parseFloat(transJ2)) * 100) / 100;
    document.ffr.transJ3calc.value=Math.round(parseFloat(0 + parseFloat(transJ) + parseFloat(transJ2)) * 100) / 100;
    //document.ffr.transK3.value=Math.round(parseFloat(0 + parseFloat(transK) + parseFloat(transK2)) * 100) / 100;
    //document.ffr.transK3calc.value=Math.round(parseFloat(0 + parseFloat(transK) + parseFloat(transK2)) * 100) / 100;
    document.ffr.transK3.value=parseFloat(transI) - (0 + parseFloat(transJ) + parseFloat(transJ2));
    document.ffr.transK3calc.value=parseFloat(transI) - (0 + parseFloat(transJ) + parseFloat(transJ2));
    document.ffr.transL3.value=Math.round(parseFloat(0 + parseFloat(transL) + parseFloat(transL2)) * 100) / 100;
    document.ffr.transL3calc.value=Math.round(parseFloat(0 + parseFloat(transL) + parseFloat(transL2)) * 100) / 100;
    document.ffr.transM3.value=Math.round(parseFloat(0 + parseFloat(transM) + parseFloat(transM2)) * 100) / 100;
    document.ffr.transM3calc.value=Math.round(parseFloat(0 + parseFloat(transM) + parseFloat(transM2)) * 100) / 100;
    document.ffr.transN3.value=Math.round(parseFloat(0 + parseFloat(transN) + parseFloat(transN2)) * 100) / 100;
    document.ffr.transN3calc.value=Math.round(parseFloat(0 + parseFloat(transN) + parseFloat(transN2)) * 100) / 100;
    document.ffr.transO3.value=Math.round(parseFloat(0 + parseFloat(transO) + parseFloat(transO2)) * 100) / 100;
    document.ffr.transO3calc.value=Math.round(parseFloat(0 + parseFloat(transO) + parseFloat(transO2)) * 100) / 100;

}

// ###################################
function checkrequiredFFRPER(whichForm,whichCheckBoxArray,myMax,myMin,whichQuestion)
/*
  This function takes 5 paramaters:
  whichForm -- the NAME of the form to be validated, a string
  whichCheckBoxArray -- the NAME of the checkbox to be checked, a string
  myMax -- the most you want the user to be able to check, an integer
  myMin -- the least you want the user to be able to check, an integer
  whichQuestion -- a short description of the question, a string
  
  example use:
  howManyChecked('myform','cb_industry',6,1,'Industry');
*/
{

    var _countChecked = 0;
    var err = 0;

    var numCheckboxes = document[whichForm][whichCheckBoxArray].length;
    if (numCheckboxes>1) {
    } else {
        numCheckboxes = 1;
    }    
    /* iterate through all the elements in the checkbox array */
    if (numCheckboxes==1) {
        if (document.form1.budgetPeriodIDList.checked) {
            _countChecked++;
        } else {
        }    
    } else {  
        for(i=0;i<numCheckboxes;i++)
        {
	        /* and check to see if each is checked */
	        if(document.form1.budgetPeriodIDList[i].checked==true)
		        /* if it is, increment a counter */
		        { _countChecked++; }
        }
    }
    /* is the count too high? */
    if(_countChecked > myMax) { 
        alert('You may only choose up to 999 PERs.');
	    err = 1;
        return false; 
    }
    /* of is the count too low */
    else if(_countChecked < myMin) { 
	    alert('You must choose at least one PER.');
        err = 1;
        return false; 
    }

}

// ##############################
var type = "IE";	//Variable used to hold the browser name

BrowserSniffer();

// ##############################
//detects the capabilities of the browser
function BrowserSniffer() {
	if (navigator.userAgent.indexOf("Opera")!=-1 && document.getElementById) type="OP";		//Opera
	else if (document.all) type="IE";														//Internet Explorer e.g. IE4 upwards
	else if (document.layers) type="NN";													//Netscape Communicator 4
	else if (!document.all && document.getElementById) type="MO";							//Mozila e.g. Netscape 6 upwards
	else type = "IE";		//I assume it will not get here
}

// ##############################
//Displays the generic browser type
function whatBrows() {
	window.alert("Browser is : " + type);
}

// ##############################
//Puts the contents of str into the layer id
//id is the name of the layer
//str is the required content
//Works with all browsers except Opera
function ChangeContent(id, str) {
	if (type=="IE") {
		document.all[id].innerHTML = str;
	}
	if (type=="NN") { 
		document.layers[id].document.open();
		document.layers[id].document.write(str);
		document.layers[id].document.close();
	}
	if (type=="MO" || type=="OP") {
		document.getElementById(id).innerHTML = str;
	}
}

// ##############################
//Change the color of the layer background
//id is the name of the layer
//color is the required color
//Works with all browsers except NN4
function ChangeLayerBgColor(id, color){
	if (type=="IE") document.all[id].style.backgroundColor=color;
	if (type=="NN") document.layer['id'].bgColor=color;
	if (type=="MO" || type=="OP") document.getElementById(id).style.backgroundColor=color;
}

// ##############################
//Show and hide a layer
//id is the name of the layer
//action is either hidden or visible
//Seems to work with all versions NN4 plus other browsers
function ShowLayer(id, action){
	if (type=="IE") eval("document.all." + id + ".style.visibility='" + action + "'");
	if (type=="NN") eval("document." + id + ".visibility='" + action + "'");
	if (type=="MO" || type=="OP") eval("document.getElementById('" + id + "').style.visibility='" + action + "'");
}
// ##############################
function RefreshImage(valImageId) {
	var objImage = document.images[valImageId];
	if (objImage == undefined) {
		return;
	}
	var now = new Date();
	objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
}


// ##############################
function checkrequiredSHExpenseReport(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "reportStartDate" && tempobj.value == '') {
                fieldlist = "Report Start Date";
                pass = false;
                break;
            }
            if (tempobj.name == "reportEndDate" && tempobj.value == '') {
                fieldlist = "Report End Date";
                pass = false;
                break;
            }
        }
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        return true;
    }
} 


// ##############################
function checkrequiredSHVista(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "reportStartDate" && tempobj.value == '') {
                fieldlist = "Report Start Date";
                pass = false;
                break;
            }
            if (tempobj.name == "reportEndDate" && tempobj.value == '') {
                fieldlist = "Report End Date";
                pass = false;
                break;
            }
            
        }
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        return true;
    }
}

// ##############################
function HC_calcTotalTime(which) {

    var pg1_time = document.form1.pg1_time.value;
    var pg2_time = document.form1.pg2_time.value;
    var pg3_time = document.form1.pg3_time.value;
    var pg4_time = document.form1.pg4_time.value;
    var mdev_coordTime = document.form1.mdev_coordTime.value;
    var mdev_superTime = document.form1.mdev_superTime.value;
    var mdev_courseworkTime = document.form1.mdev_courseworkTime.value;
    var mdev_gedPrepTime = document.form1.mdev_gedPrepTime.value;
    var mdev_fundraisingTime = document.form1.mdev_fundraisingTime.value;
    var mdev_oncallTime = document.form1.mdev_oncallTime.value;

    if (pg1_time=='' || pg1_time==' ') pg1_time = 0; 
    if (pg2_time=='' || pg2_time==' ') pg2_time = 0; 
    if (pg3_time=='' || pg3_time==' ') pg3_time = 0; 
    if (pg4_time=='' || pg4_time==' ') pg4_time = 0; 
    if (mdev_coordTime=='' || mdev_coordTime==' ') mdev_coordTime = 0; 
    if (mdev_superTime=='' || mdev_superTime==' ') mdev_superTime = 0; 
    if (mdev_courseworkTime=='' || mdev_courseworkTime==' ') mdev_courseworkTime = 0; 
    if (mdev_gedPrepTime=='' || mdev_gedPrepTime==' ') mdev_gedPrepTime = 0; 
    if (mdev_fundraisingTime=='' || mdev_fundraisingTime==' ') mdev_fundraisingTime = 0; 

    document.form1.totalTime.value=(
        Number(pg1_time)+
        Number(pg2_time)+
        Number(pg3_time)+
        Number(pg4_time)+
        Number(mdev_coordTime)+
        Number(mdev_superTime)+
        Number(mdev_courseworkTime)+
        Number(mdev_gedPrepTime)+
        Number(mdev_fundraisingTime)+
        Number(mdev_oncallTime)
        )
    
}


// ##############################
function checkrequiredPWPQA(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd';
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "reportingPeriod" && tempobj.value == '') {
                fieldlist = "Reporting Period";
                pass = false;
                break;
            }
            if (tempobj.name == "reportingOn" && tempobj.value == '') {
                fieldlist = "Reporting On";
                pass = false;
                break;
            }
            
        }
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist + " is required.");
        tempobj.focus();
        //	tempobj.blur();
        return false;
    }
    else {
        return true;
    }
}




// ##############################
function pw_pqacalcAvg(which) {

    var recess1 = 0;
    var recess2 = 0;
    var recess3 = 0;
    var recess4 = 0;

    for( i = 0; i < document.form1.recess_1.length; i++ ){
    if( document.form1.recess_1[i].checked == true )
    recess1 = document.form1.recess_1[i].value;
    }
    
    for( i = 0; i < document.form1.recess_2.length; i++ ){
    if( document.form1.recess_2[i].checked == true )
    recess2 = document.form1.recess_2[i].value;
    }
    
    for( i = 0; i < document.form1.recess_3.length; i++ ){
    if( document.form1.recess_3[i].checked == true )
    recess3 = document.form1.recess_3[i].value;
    }
    
    for( i = 0; i < document.form1.recess_4.length; i++ ){
    if( document.form1.recess_4[i].checked == true )
    recess4 = document.form1.recess_4[i].value;
    }
        
    document.form1.recess_avg.value=(
        ((Number(recess1)+
        Number(recess2)+
        Number(recess3)+
        Number(recess4))/Number(4))
    )
    
    
    var jCoaches1 = 0;
    var jCoaches2 = 0;
    var jCoaches3 = 0;
    var jCoaches4 = 0;

    for( i = 0; i < document.form1.jCoaches_1.length; i++ ){
    if( document.form1.jCoaches_1[i].checked == true )
    jCoaches1 = document.form1.jCoaches_1[i].value;
    }
    
    for( i = 0; i < document.form1.jCoaches_2.length; i++ ){
    if( document.form1.jCoaches_2[i].checked == true )
    jCoaches2 = document.form1.jCoaches_2[i].value;
    }
    
    for( i = 0; i < document.form1.jCoaches_3.length; i++ ){
    if( document.form1.jCoaches_3[i].checked == true )
    jCoaches3 = document.form1.jCoaches_3[i].value;
    }
    
    for( i = 0; i < document.form1.jCoaches_4.length; i++ ){
    if( document.form1.jCoaches_4[i].checked == true )
    jCoaches4 = document.form1.jCoaches_4[i].value;
    }

    document.form1.jCoaches_avg.value=(
        ((Number(jCoaches1)+
        Number(jCoaches2)+
        Number(jCoaches3)+
        Number(jCoaches4))/Number(4))
    )
    
    var classGameTime1 = 0;
    var classGameTime2 = 0;
    var classGameTime3 = 0;
    var classGameTime4 = 0;

    for( i = 0; i < document.form1.classGameTime_1.length; i++ ){
    if( document.form1.classGameTime_1[i].checked == true )
    classGameTime1 = document.form1.classGameTime_1[i].value;
    }
    
    for( i = 0; i < document.form1.classGameTime_2.length; i++ ){
    if( document.form1.classGameTime_2[i].checked == true )
    classGameTime2 = document.form1.classGameTime_2[i].value;
    }
    
    for( i = 0; i < document.form1.classGameTime_3.length; i++ ){
    if( document.form1.classGameTime_3[i].checked == true )
    classGameTime3 = document.form1.classGameTime_3[i].value;
    }
    
    for( i = 0; i < document.form1.classGameTime_4.length; i++ ){
    if( document.form1.classGameTime_4[i].checked == true )
    classGameTime4 = document.form1.classGameTime_4[i].value;
    }

    document.form1.classGameTime_avg.value=(
        ((Number(classGameTime1)+
        Number(classGameTime2)+
        Number(classGameTime3)+
        Number(classGameTime4))/Number(4))
    )
    
    var afterSchool1 = 0;
    var afterSchool2 = 0;
    var afterSchool3 = 0;
    var afterSchool4 = 0;

    for( i = 0; i < document.form1.afterSchool_1.length; i++ ){
    if( document.form1.afterSchool_1[i].checked == true )
    afterSchool1 = document.form1.afterSchool_1[i].value;
    }
    
    for( i = 0; i < document.form1.afterSchool_2.length; i++ ){
    if( document.form1.afterSchool_2[i].checked == true )
    afterSchool2 = document.form1.afterSchool_2[i].value;
    }
    
    for( i = 0; i < document.form1.afterSchool_3.length; i++ ){
    if( document.form1.afterSchool_3[i].checked == true )
    afterSchool3 = document.form1.afterSchool_3[i].value;
    }
    
    for( i = 0; i < document.form1.afterSchool_4.length; i++ ){
    if( document.form1.afterSchool_4[i].checked == true )
    afterSchool4 = document.form1.afterSchool_4[i].value;
    }

    document.form1.afterSchool_avg.value=(
        ((Number(afterSchool1)+
        Number(afterSchool2)+
        Number(afterSchool3)+
        Number(afterSchool4))/Number(4))
    )
    
    var leagues1 = 0;
    var leagues2 = 0;
    var leagues3 = 0;
    var leagues4 = 0;

    for( i = 0; i < document.form1.leagues_1.length; i++ ){
    if( document.form1.leagues_1[i].checked == true )
    leagues1 = document.form1.leagues_1[i].value;
    }
    
    for( i = 0; i < document.form1.leagues_2.length; i++ ){
    if( document.form1.leagues_2[i].checked == true )
    leagues2 = document.form1.leagues_2[i].value;
    }
    
    for( i = 0; i < document.form1.leagues_3.length; i++ ){
    if( document.form1.leagues_3[i].checked == true )
    leagues3 = document.form1.leagues_3[i].value;
    }
    
    for( i = 0; i < document.form1.leagues_4.length; i++ ){
    if( document.form1.leagues_4[i].checked == true )
    leagues4 = document.form1.leagues_4[i].value;
    }

    document.form1.leagues_avg.value=(
        ((Number(leagues1)+
        Number(leagues2)+
        Number(leagues3)+
        Number(leagues4))/Number(4))
    )
    
    var proDev1 = 0;
    var proDev2 = 0;
    var proDev3 = 0;
    var proDev4 = 0;

    for( i = 0; i < document.form1.proDev_1.length; i++ ){
    if( document.form1.proDev_1[i].checked == true )
    proDev1 = document.form1.proDev_1[i].value;
    }
    
    for( i = 0; i < document.form1.proDev_2.length; i++ ){
    if( document.form1.proDev_2[i].checked == true )
    proDev2 = document.form1.proDev_2[i].value;
    }
    
    for( i = 0; i < document.form1.proDev_3.length; i++ ){
    if( document.form1.proDev_3[i].checked == true )
    proDev3 = document.form1.proDev_3[i].value;
    }
    
    for( i = 0; i < document.form1.proDev_4.length; i++ ){
    if( document.form1.proDev_4[i].checked == true )
    proDev4 = document.form1.proDev_4[i].value;
    }

    document.form1.proDev_avg.value=(
        ((Number(proDev1)+
        Number(proDev2)+
        Number(proDev3)+
        Number(proDev4))/Number(4))
    )


    var RecessAvg = document.form1.recess_avg.value;
    var jCoachesAvg = document.form1.jCoaches_avg.value;
    var classGameTimeAvg = document.form1.classGameTime_avg.value;
    var afterSchoolAvg = document.form1.afterSchool_avg.value;
    var leaguesAvg = document.form1.leagues_avg.value;
    var proDevAvg = document.form1.proDev_avg.value;

    if (RecessAvg=='' || RecessAvg==' ') RecessAvg = 0; 
    if (jCoachesAvg=='' || jCoachesAvg==' ') jCoachesAvg = 0; 
    if (classGameTimeAvg=='' || classGameTimeAvg==' ') classGameTimeAvg = 0; 
    if (afterSchoolAvg=='' || afterSchoolAvg==' ') afterSchoolAvg = 0; 
    if (leaguesAvg=='' || leaguesAvg==' ') leaguesAvg = 0; 
    if (proDevAvg=='' || proDevAvg==' ') proDevAvg = 0; 
    
    document.form1.totalScore.value=(
        (
        Number(RecessAvg)+
        Number(jCoachesAvg)+
        Number(classGameTimeAvg)+
        Number(afterSchoolAvg)+
        Number(leaguesAvg)+
        Number(proDevAvg)
        )
    )
    
    var totalScoreAvg = 0;
    totalScoreAvg = Number(document.form1.totalScore.value)/Number(6);
    totalScoreAvg = (Math.round(totalScoreAvg*Math.pow(10,2))/Math.pow(10,2));
    document.form1.totalScoreAvg.value = totalScoreAvg;
}



// ##############################
function checkrequiredTSSearch(which) {

    //var searchProgramID = document.form1.searchProgramID.value;
    var tsStat = document.form1.tsStat.value;
    var weekID = document.form1.weekID.value;
    var memberID = document.form1.memberID.value;
    
    //if (searchProgramID == '0') {
    //    alert("Program Selection is Required");
    //    return false;
    //    break;
    //}

    if (tsStat == 'X' && weekID == '0' && memberID == '0') {
        alert("At least one of the options in bold is required");
        return false;
    }
    else {
        return true;
    }
}

// ##############################
function checkrequiredS4Kenrollment(which) {

    var s4k_programID = document.form1.s4k_programID.value;
    var programID = document.form1.programID.value;
    var siteID = document.form1.siteID.value;
    var pass = true;
    fieldlist = "";
    
    if (programID == '0' && siteID == '0' ) {
        fieldlist="City or School";
        pass= false;
    }
    if (s4k_programID == '0' ) {
        fieldlist="Program";
        pass= false;
    }
    
    if (!pass) {
        alert("" + fieldlist + " is required.");
        return false;
    }
    else {
        return true;
    }
}

// ##############################
function checkrequiredSuperSiteXref(which) {

    var superID = document.form1.supervisorID.value;
    var siteID = document.form1.siteID.value;
    var pass = true;
    fieldlist = "";

    if (superID == '0') {
        fieldlist = "Supervisor";
        pass = false;
    }
    if (siteID == '0') {
        fieldlist = "Site";
        pass = false;
    }

    if (!pass) {
        alert("" + fieldlist + " is required.");
        return false;
    }
    else {
        return true;
    }
}

// ##############################
function checkrequiredILABCTutorLog(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd'; ;
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "IL_ABCGradeID" && tempobj.value == '0') {
                fieldlist = "You must select a grade range in order to save this record.";
                pass = false;
                break;
            }
        }
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist);
        tempobj.focus();
        tempobj.blur();
        return false;
    }
    else {
        return true;
    }
}

// ##############################
function checkrequiredILABCMentor(which) {

    var pass = true;
    fieldlist = "";

    var bgBad = '#dddddd'; ;
    var bgGood = "white";

    if (document.images) {
        for (i = 0; i < which.length; i++) {
            var tempobj = which.elements[i];
            if (tempobj.name == "IL_ABCLocationID" && tempobj.value == '0') {
                fieldlist = "You must select a location in order to save this record.";
                pass = false;
                break;
            }
        }
    }

    if (!pass) {
        setColor(tempobj, bgBad);
        alert("" + fieldlist);
        tempobj.focus();
        tempobj.blur();
        return false;
    }
    else {
        return true;
    }
}

