/*
 * This script formats dates into the format mm/dd/yy.
 * It only work on numerical dates. 
 * It will not format the date properly if it is given in the format md[d]yy[yy] (where the items in brackets are optional).
 * It includes a function to operate directly on an input element and a function to operate on a string.
 */

/*
 * Pass in an input element to format its contents as a date using the date formatting function
 */
function formatDateField(inputElement)
{
	inputElement.value = formatDateString(inputElement.value);
}

/*
 * Formats dates into the format mm/dd/yy
 * Only accepts numerical dates
 */
function formatDateString(dateString)
{
	// Convert the date into a standard format padded with plenty of zeros.
	var newDate = dateString.replace(/^\s*(\d{1,2})\D*(\d{1,2})\D*(\d{2,4})\s*$/, "00$1/00$2/0000$3");

	// Split the date apart into its components	
	var dateComponents = newDate.split("/");
	
	// Format each individual component to two digits
	if (dateComponents.length == 3)
	{
		var i, n, componentLength;

		for (i=0; i<3; i++)
		{
			componentLength = dateComponents[i].length;

			dateComponents[i] = dateComponents[i].substring(componentLength - 2, componentLength);
		}
		
		// Join the date back together in the desired format and return it.
		return dateComponents.join("/");
	}
	else
	{
		return dateString;
	}
}

function showDiv(divid)
{
   if (document.layers) document.layers[divid].display="";
   else document.getElementById(divid).style.display="";
}

function hideDiv(divid)
{
   if (document.layers) document.layers[divid].display = "none";
   else document.getElementById(divid).style.display = "none";
}


function getSelectValue (selectObj) {
	return selectObj.options[selectObj.selectedIndex].value;
}

function getRadioValue (radioObj) 
{
    var value = "";
	if( radioObj.type == undefined ) {
		for ( var i=0; i<radioObj.length; i++ ) {
			if ( radioObj[i].checked ) {
				value = radioObj[i].value;
				break;
			}
		}
	} else {
		if(radioObj.checked) {
			value = radioObj.value;
		}
	}
	return value;
}

function isRadioObj (inObj)
{
	bResult = false;	

	if ( inObj.type == undefined ) {
		for ( var i=0; i<inObj.length; i++ ) {
			if ( inObj[i].type == 'radio' ) {
				bResult = true;
				break;
			}
		}
	} else {
		if ( inObj.type == 'radio' ) {
			bResult = true;
		}
	}
	return bResult;
}


function findInArray ( inArray, findStr )
{
	var iRet = -1;
	var currValue = "";
	var iPos = 0;
	
    if ( inArray.type != 'undefined' ) {
        if ( inArray.length > 0 ) {
            for ( var i = 0; i <= inArray.length-1; i++ ) {
                iPos = inArray[i].indexOf(findStr);
                if ( iPos >= 0 ) {
                    iRet = i;
                    break;
                }
            }
        }
	}
	return iRet;

}

function plural(count, zeroMsg, singleMsg, multipleMsg)
{
    switch (count)
    {
        case 0: // zero msg
            return zeroMsg;
            break;
        case 1: // single msg
            return count + " " + singleMsg;
            break;
        default:
            return count + " " + multipleMsg;
            break;    
    }
}

function createErrorTable ( inDescMsg, inArray )
{

    var errTable = "";
    
    errTable += "<table class='errorTable' width='100%'>";
    errTable += "<tr>";
    errTable += "<td class='errorTD'>";
    
    if ( inDescMsg.length > 0 ) {
        errTable += "<tr><td class='errorTD' style='font-weight:bold;'>" + inDescMsg + "</td></tr>";
       // errTable += "<tr><td class='errorTD' style='font-weight:bold;'>&nbsp;</td></tr>";
    }
        
    for ( i = 0; i <= inArray.length - 1; i++ ) {
        errTable += "<tr><td class='errorTD'>" + "&nbsp;&nbsp;- " + inArray[i] + "</td></tr>";
    }
    errTable += "</td>";
    errTable += "</tr>";
    errTable += "</table>";

    return errTable;
       
}


function validateObj(fieldObj,format)
{

	// inText
	// format
	// 0 - no formatting
	// 1 - upLoCase
	// 2 - uppercase

	switch (format) 
	{
		case 1:	// no formatting
			fieldObj.value = upLoCase(fieldObj.value);
		 	break;
		case 2:
			fieldObj.value = fieldObj.value.toUpperCase();
			break;
		case 3:
			fieldObj.value = fieldObj.value.toLowserCase();
			break;		
	}
	
	if ( fieldObj.id != "" ) {
		var obj = document.getElementById(fieldObj.id);
	} else {
		var obj = document.getElementById(fieldObj.name);
	}
		
	if (obj) {
        if(fieldObj.value.length == 0) {
            obj.className = "error";
        } else {
            obj.className = "";
        }
	} else {
	    alert ( "validateObj:  Invalid <div id=" + fieldObj.name + ">");
	}
}

function getObjValue (inObj) {
	
    var value = "";
	if (isRadioObj(inObj)) {
	    value = getRadioValue(inObj);
	} else {
		if (inObj.type == 'checkbox') {
			if ( inObj.checked ) {
				value = inObj.value;
			} else {
				value = "";
			}
		} else {
			value = inObj.value;
		}
	}
	return value;
}

function validateDesc ( inRadioObj, inTextObj, errMsg) 
{

	bValid = true;
	if ( getObjValue(inRadioObj) == "true" ) {
		if (( getObjValue(inTextObj) == "" ) || (getObjValue(inTextObj) == "0")){
			bValid = false;
		}
	}

    if(getObjValue(inRadioObj)=="false") {
        if(getObjValue(inTextObj) !="") {
            if(getObjValue(inTextObj) !="0")
                bValid = false;
           }
    }
        
	return bValid;
}


function frmValidate_sect_00(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails	

	if((frmObj.mbr_fname.value.length==0) && (bValid)){
		alert("Please enter your First Name");
		frmObj.mbr_fname.select();
		bValid=false;
	}

	if((frmObj.mbr_lname.value.length==0) && (bValid)){
		alert("Please enter your Last Name");
		frmObj.mbr_lname.select();
		bValid=false;
	}

	if((frmObj.mbr_title.value.length==0) && (bValid)){
		alert("Please enter your Title");
		frmObj.mbr_title.select();
		bValid=false;
	}

	if((frmObj.mbr_mail.value.length==0) && (bValid)){
		alert("Please enter your E-Mail Address");
		frmObj.mbr_mail.select();
		bValid=false;
	}

	if((frmObj.mbr_dirphone.value.length==0) && (bValid)){
		alert("Please enter your direct phone");
		frmObj.mbr_dirphone.select();
		bValid=false;
	}

	if((frmObj.mbr_dirfax.value.length==0) && (bValid)){
		alert("Please enter your direct fax");
		frmObj.mbr_dirfax.select();
		bValid=false;
	}

	return bValid;
}

function frmValidate_sect_01(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails

	// City Clerk
	if((frmObj.udr_clerk_sal.value.length==0) && (bValid)){
		alert("Please enter the City Clerk Salutation");
		frmObj.udr_clerk_sal.select();
		bValid=false;
	}

	if((frmObj.udr_clerk_fname.value.length==0) && (bValid)){
		alert("Please enter the City Clerk First Name");
		frmObj.udr_clerk_fname.select();
		bValid=false;
	}

	if((frmObj.udr_clerk_lname.value.length==0) && (bValid)){
		alert("Please enter the City Clerk Last Name");
		frmObj.udr_clerk_lname.select();
		bValid=false;
	}

	if((frmObj.udr_clerk_title.value.length==0) && (bValid)){
		alert("Please enter the City Clerk Title");
		frmObj.udr_clerk_title.select();
		bValid=false;
	}

	if((frmObj.udr_clerk_mail.value.length==0) && (bValid)){
		alert("Please enter the City Clerk E-Mail");
		frmObj.udr_clerk_mail.select();
		bValid=false;
	}
	
	// City Manager
	if((frmObj.udr_cm_sal.value.length==0) && (bValid)){
		alert("Please enter the City Manager Salutation");
		frmObj.udr_cm_sal.select();
		bValid=false;
	}

	if((frmObj.udr_cm_fname.value.length==0) && (bValid)){
		alert("Please enter the City Manager First Name");
		frmObj.udr_cm_fname.select();
		bValid=false;
	}

	if((frmObj.udr_cm_lname.value.length==0) && (bValid)){
		alert("Please enter the City Manager Last Name");
		frmObj.udr_cm_lname.select();
		bValid=false;
	}

	if((frmObj.udr_cm_title.value.length==0) && (bValid)){
		alert("Please enter the City Manager Title");
		frmObj.udr_cm_title.select();
		bValid=false;
	}

	if((frmObj.udr_cm_mail.value.length==0) && (bValid)){
		alert("Please enter the City Manager E-Mail");
		frmObj.udr_cm_mail.select();
		bValid=false;
	}

	// Finance Director
	if((frmObj.udr_fd_sal.value.length==0) && (bValid)){
		alert("Please enter the Finance Director Salutation");
		frmObj.udr_fd_sal.select();
		bValid=false;
	}

	if((frmObj.udr_fd_fname.value.length==0) && (bValid)){
		alert("Please enter the Finance Director First Name");
		frmObj.udr_fd_fname.select();
		bValid=false;
	}

	if((frmObj.udr_fd_lname.value.length==0) && (bValid)){
		alert("Please enter the Finance Director Last Name");
		frmObj.udr_fd_lname.select();
		bValid=false;
	}

	if((frmObj.udr_fd_title.value.length==0) && (bValid)){
		alert("Please enter the Finance Director Title");
		frmObj.udr_fd_title.select();
		bValid=false;
	}

	if((frmObj.udr_fd_mail.value.length==0) && (bValid)){
		alert("Please enter the Finance Director E-Mail");
		frmObj.udr_fd_mail.select();
		bValid=false;
	}

	// Risk Manager
	if((frmObj.udr_risk_sal.value.length==0) && (bValid)){
		alert("Please enter the Risk Manager Salutation");
		frmObj.udr_risk_sal.select();
		bValid=false;
	}

	if((frmObj.udr_risk_fname.value.length==0) && (bValid)){
		alert("Please enter the Risk Manager First Name");
		frmObj.udr_risk_fname.select();
		bValid=false;
	}

	if((frmObj.udr_risk_lname.value.length==0) && (bValid)){
		alert("Please enter the Risk Manager Last Name");
		frmObj.udr_risk_lname.select();
		bValid=false;
	}

	if((frmObj.udr_risk_title.value.length==0) && (bValid)){
		alert("Please enter the Risk Manager Title");
		frmObj.udr_risk_title.select();
		bValid=false;
	}

	if((frmObj.udr_risk_mail.value.length==0) && (bValid)){
		alert("Please enter the Risk Manager E-Mail");
		frmObj.udr_risk_mail.select();
		bValid=false;
	}

	// Personnel Director
	if((frmObj.udr_personnel_sal.value.length==0) && (bValid)){
		alert("Please enter the Personnel Director Salutation");
		frmObj.udr_personnel_sal.select();
		bValid=false;
	}

	if((frmObj.udr_personnel_fname.value.length==0) && (bValid)){
		alert("Please enter the Personnel Director First Name");
		frmObj.udr_personnel_fname.select();
		bValid=false;
	}

	if((frmObj.udr_personnel_lname.value.length==0) && (bValid)){
		alert("Please enter the Personnel Director Last Name");
		frmObj.udr_personnel_lname.select();
		bValid=false;
	}

	if((frmObj.udr_personnel_title.value.length==0) && (bValid)){
		alert("Please enter the Personnel Director Title");
		frmObj.udr_personnel_title.select();
		bValid=false;
	}

	if((frmObj.udr_personnel_mail.value.length==0) && (bValid)){
		alert("Please enter the Personnel Director E-Mail");
		frmObj.udr_personnel_mail.select();
		bValid=false;
	}


	// Director
	if((frmObj.udr_dir_sal.value.length==0) && (bValid)){
		alert("Please enter the CJPIA Director Salutation");
		frmObj.udr_dir_sal.select();
		bValid=false;
	}

	if((frmObj.udr_dir_fname.value.length==0) && (bValid)){
		alert("Please enter the CJPIA Director First Name");
		frmObj.udr_dir_fname.select();
		bValid=false;
	}

	if((frmObj.udr_dir_lname.value.length==0) && (bValid)){
		alert("Please enter the CJPIA Director Last Name");
		frmObj.udr_dir_lname.select();
		bValid=false;
	}

	if((frmObj.udr_dir_title.value.length==0) && (bValid)){
		alert("Please enter the CJPIA Director Title");
		frmObj.udr_dir_title.select();
		bValid=false;
	}
        
	return bValid;
}

function frmValidate_sect_02(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails
	
	/*	
	if((frmObj.udr_population.value.length==0) && (bValid)){
		alert("Please enter your population");
		frmObj.udr_population.focus();
		bValid=false;
	}
	*/
	
	return bValid;
}

function frmValidate_sect_03(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails
		
	if((frmObj.udr_area.value.length==0) && (bValid)){
		alert("Please enter your area (in square miles)");
		frmObj.udr_area.select();
		bValid=false;
	}

	return bValid;
}

function frmValidate_sect_04(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails

	if((numObj(frmObj.udr_budget.value) <= 0) && (bValid))
	{
		alert("You must supply the total budget.");
		frmObj.udr_budget.select();
		bValid=false;
	}

	return bValid;
}

function checkSection(inFT,inPT,inPay,inSection)
{
    var msg = "";
    var ft = numObj(inFT);
    var pt = numObj(inPT);
    var pay = numObj(inPay);
	var baseMsg = "You can't leave this page until you have entered values or clicked 'SaveCurrent Data':\r\r";

    if ( pay > 0 ) {
        if((pt==0) && (ft==0))
            msg = baseMsg + "You must have full-time or part-time position values for '" + inSection +"' if payroll greater than zero.";  
    } else {
        if((pt>0) || (ft>0))
            msg = baseMsg + "You must have a payroll value if your full-time or part-time positions for '" + inSection + "' are greater than zero.";  
    }
    
    return msg;
}

function frmValidate_sect_05(frmObj)
{
    var errMsg = "";

    // 8810
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_8810.value,frmObj.udr_pt_8810.value,frmObj.udr_payroll_8810.value,'8810 Clerical Office');

    // 9410
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_9410.value,frmObj.udr_pt_9410.value,frmObj.udr_payroll_9410.value,'9410 Municipal Non-Manual');

    // 9420
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_9420.value,frmObj.udr_pt_9420.value,frmObj.udr_payroll_9420.value,'9420 All Other Municipal');

    // 7706
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_7706.value,frmObj.udr_pt_7706.value,frmObj.udr_payroll_7706.value,'7706 Fire Fighters');

    // 7720
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_7720.value,frmObj.udr_pt_7720.value,frmObj.udr_payroll_7720.value,'7720 Police Officers');

    // 7382
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_7382.value,frmObj.udr_pt_7382.value,frmObj.udr_payroll_7382.value,'7382 Bus Operators');

    // 7424
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_7424.value,frmObj.udr_pt_7424.value,frmObj.udr_payroll_7424.value,'7424 Pilots');

    // 8831
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_8831.value,frmObj.udr_pt_8831.value,frmObj.udr_payroll_8831.value,'8831 Animal Care');

    // 8832
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_8832.value,frmObj.udr_pt_8832.value,frmObj.udr_payroll_8832.value,'8832 Animal Control');

    // 7520
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_7520.value,frmObj.udr_pt_7520.value,frmObj.udr_payroll_7520.value,'7520 Waterworks');

    // 7580
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_7580.value,frmObj.udr_pt_7580.value,frmObj.udr_payroll_7580.value,'7580 Sanitation Employees');

    // 9999
    if (errMsg=="")
        errMsg = checkSection(frmObj.udr_ft_9999.value,frmObj.udr_pt_9999.value,frmObj.udr_payroll_9999.value,'9999 Other');


    if ((frmObj.udr_est_gross.value == "") && (errMsg=="")) {
        errMsg = "Estimated Gross Payroll must be completed.";
    }        

    
    if (frmObj.udr_payroll_calYear.value == "$0.00") {
    
        if(!frmObj.udr_zero_payroll.checked)
            errMsg = "If you have a payroll value of zero ($0.00), you must select confirmation checkbox to consider section completed.";
        else
            errMsg = "";
            
    }
        
    if (errMsg!="") {
        alert(errMsg);
        return false;
    } else
        return true;    
}

function frmValidate_sect_07(frmObj)
{

	var udrImpCount = 0;
	var udrCalcCount = 0;
	
	
	bValid = true; // default to true, we set to false when validation fails
		

	if((numObj(frmObj.udr_contact_fname.value)==0) && (bValid))
	{
		alert("Please provide person completing this sections Contact Information.");
		frmObj.udr_contact_fname.select();
		bValid=false;
	}

	if((numObj(frmObj.udr_contact_lname.value)==0) && (bValid))
	{
		alert("Please provide person completing this sections Contact Information.");
		frmObj.udr_contact_lname.select();
		bValid=false;
	}


	if((numObj(frmObj.udr_contact_phone.value)==0) && (bValid))
	{
		alert("Please provide person completing this sections Contact Information.");
		frmObj.udr_contact_phone.select();
		bValid=false;
	}

	if((numObj(frmObj.udr_contact_mail.value)==0) && (bValid))
	{
		alert("Please provide person completing this sections Contact Information.");
		frmObj.udr_contact_mail.select();
		bValid=false;
	}

/*	
	if((numObj(frmObj.udr_est_payroll.value)==0) && (bValid))
	{
		alert("The estimated payroll for 2008 must be greater than zero.");
		frmObj.udr_est_payroll.select();
		bValid=false;
	}
*/
	if((numObj(frmObj.udr_nontax_other.value)>0) && (bValid))
	{
		if(frmObj.udr_nontax_other_desc.value.length ==0) {
			alert("Please provide description if you have entered a non-tax value greater than zero.");
			frmObj.udr_nontax_other_desc.select();
			bValid=false;
		}
	}

	// Non-Taxable	
	/*
	if((numObj(frmObj.udr_nontax_deferred.value)==0) && (bValid))
	{
		alert("The Deferred Compensation must be greater than zero.");
		frmObj.udr_nontax_deferred.select();
		bValid=false;
	}

	if((numObj(frmObj.udr_nontax_sect125.value)==0) && (bValid))
	{
		alert("The Section 125 must be greater than zero.");
		frmObj.udr_nontax_sect125.select();
		bValid=false;
	}
	*/

	// W3 Payroll	
	if((numObj(frmObj.udr_w3_payroll_adj.value)>0) && (bValid))
	{
		if((frmObj.udr_w3_payroll_desc.value.length==0) && (bValid)){
			alert("Net Payroll does not match W-3 Box #1. Please enter an explanation of adjustment.");
			frmObj.udr_w3_payroll_desc.select();
			bValid=false;
		}
	}
	
	udrImpCount += numObj(frmObj.udr_vol_less100.value);
	udrImpCount += numObj(frmObj.udr_vol_100_500.value);
	udrImpCount += numObj(frmObj.udr_vol_more500.value);
	udrCalcCount = numObj(frmObj.udr_vol_calYear.value);
	
	if (( udrImpCount != udrCalcCount ) && (bValid))
	{	
		alert("The total number of volunteers must be " + udrCalcCount + " as defined in your 'Position Census' section.");
		frmObj.udr_vol_less100.select();
		bValid=false;
	}
	
	if ((frmObj.udr_vol_imp_coverage.checked) && (bValid)) {
		if ((frmObj.udr_vol_imp_coverage_date.value.length == 0) || (frmObj.udr_vol_imp_coverage_date.value == '00/00/00') || ( frmObj.udr_vol_imp_coverage_date.value.length == 0)) {
			alert("You must supply your workers compensatation coverage date.");
			bValid = false;
		}
		if ((frmObj.udr_vol_workcomp_payroll.value.length==0) && (bValid)) {
			alert("You must supply your Workers' Compensation Payroll");
			bValid = false;
		}
	}

	if (!frmObj.udr_vol_imp_coverage.checked) {
		frmObj.udr_vol_workcomp_payroll.value = "0";
		frmObj.udr_vol_imp_coverage_date.value = "";
	}
	
	/*
	if((numObj(frmObj.udr_genLiab_payroll.value)==0) && (bValid))
	{
		alert("You must supply the General Liability Payroll.");
		frmObj.udr_genLiab_payroll.select();
		bValid=false;
	}
	*/

	/*
	if((numObj(frmObj.udr_workComp_payroll.value)==0) && (bValid))
	{
		alert("You must supply the Workers' Compensation Payroll.");
		frmObj.udr_workComp_payroll.select();
		bValid=false;
	}
	*/
    
	return bValid;
}

function frmValidate_sect_13(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails
	if (!frmObj.udr_no_contracts.checked) {
		if (numObj(frmObj.udr_protected_contract.value)== 0) {
				alert("You must enter at least one protected contract or select the 'We do not have any Protected Contracts' checkbox.");
				bValid = false;
			}
	}	
	return bValid;
}

function frmValidate_sect_17(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails
		
	// bValid = false;	// set to false for testing	
	if(!bValid) {
		alert("Validation Failed");
	}	
	return bValid;
}

function frmValidate_sect_18(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails
		
	// bValid = false;	// set to false for testing	
	if((numObj(frmObj.udr_audit_name.value)==0) && (bValid))
	{
		alert("You must supply your auditing company.");
		frmObj.udr_audit_name.select();
		bValid=false;
	}

	if((numObj(frmObj.udr_audit_name.value)==0) && (bValid))
	{
		alert("You must supply your auditing company's name.");
		frmObj.udr_audit_name.select();
		bValid=false;
	}

	if((numObj(frmObj.udr_audit_address.value)==0) && (bValid))
	{
		alert("You must supply your auditing company's address.");
		frmObj.udr_audit_address.select();
		bValid=false;
	}

	if((numObj(frmObj.udr_audit_city.value)==0) && (bValid))
	{
		alert("You must supply your auditing company's city.");
		frmObj.udr_audit_city.select();
		bValid=false;
	}
	
	if((numObj(frmObj.udr_audit_state.value)==0) && (bValid))
	{
		alert("You must supply your auditing company's state.");
		frmObj.udr_audit_state.select();
		bValid=false;
	}

	if((numObj(frmObj.udr_audit_zip.value)==0) && (bValid))
	{
		alert("You must supply your auditing company's zip code.");
		frmObj.udr_audit_zip.select();
		bValid=false;
	}

	return bValid;
}

function frmValidate_sect_19(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails
		
	// bValid = false;	// set to false for testing	
	if(!bValid) {
		alert("Validation Failed");
	}	
	return bValid;
}

function frmValidate_sect_20(frmObj)
{
	bDebug = false;	// set debug flag for section
	bValid = true; // default to true, we set to false when validation fails

	// define error tracking objects
	var errMsg = "";
	var errTableHTML = "";
	var errItemList = new Array(0);

	// question 3
	if (!validateDesc(frmObj.udr_exp_other, frmObj.udr_exp_other_desc))
		errItemList.push( "Question 3: You must supply provide 'Other' description.");
		
	// question 4
	if (!validateDesc(frmObj.udr_risk_vehicle, frmObj.udr_risk_vehicle_desc))
		errItemList.push( "Question 4: You must supply provide description.");
		
	// question 5
	if (!validateDesc(frmObj.udr_transport, frmObj.udr_transport_desc))
		errItemList.push( "Question 5: You must supply provide description.");
		
	// question 6
	if (!validateDesc ( frmObj.udr_fire_drills_account, frmObj.udr_fire_drills_desc))
		errItemList.push( "Question 6: You must provide description.");
	
	// question 9
	if (getObjValue(frmObj.udr_loss_prevention) == "Other" ) {
		if (getObjValue(frmObj.udr_loss_prevention_other) == "")
			errItemList.push("Question 9: You must supply provide 'Other' description.");
	}

	// question 13
	if(getObjValue(frmObj.udr_temp_mod)=="true") {
		if(getObjValue(frmObj.udr_temp_date)=="") {
			errItemList.push("Question 13: Please supply implementation date.");
		}
		if(getObjValue(frmObj.udr_temp_measure)=="") {
			errItemList.push("Question 13: You must supply description.");
		}
	}		

	// question 14
	if(getObjValue(frmObj.udr_perm_mod)=="true") {
		if(getObjValue(frmObj.udr_perm_date)=="") {
			errItemList.push("Question 14: Please supply implementation date.");
		}
		if(getObjValue(frmObj.udr_perm_measure)=="") {
			errItemList.push("Question 14: You must supply description.");
		}
	}		


	if ( errItemList.length > 0 ) {
		if ( errItemList.length == 1 ) 
			errMsg = "There was one error, please correct the following error and resubmit.";
		if ( errItemList.length > 1 ) 
			errMsg = "There were "+errItemList.length+" errors, please correct the following errors and resubmit.";
	}
	
	var errObj = document.getElementById("errTable");
	if ( errObj ) {
		if ( errItemList.length > 0 ) {
			errTableHTML = createErrorTable (errMsg,errItemList);
			errObj.innerHTML = errTableHTML + "<br>";
			window.location.href = "#top";
		} else {
			errObj.innerHTML = "&nbsp;"
		}
	} else {
		alert ( errMsg );
	}
	
	if ( errItemList.length > 0 )
		bValid = false;

	if ( bDebug ) {
		bValid ? alert("Debug Mode: Validation passed") : alert("Debug Mode: Validation failed");
		bValid = false;
	}
	
	return bValid;
}

function frmValidate_sect_21(frmObj)
{
	bDebug = true;	// set debug flag for section
	bValid = true; // default to true, we set to false when validation fails
	
	/* --- START ERROR BLOCK VARIABLE DECLARATION ---*/

	var errMsg = "";
	var errTableHTML = "";
	var errItemList = new Array(0);

	/* --- END ERROR BLOCK VARIABLE DECLARATION ---*/

	// question 1
	if(getObjValue(frmObj.udr_turnover_2008) == "")
		errItemList.push( "Question 1: You must supply turnover for 2008");

	// question 2
	if((frmObj.udr_term_2006.value.length == 0 ) || ( frmObj.udr_term_2008.value.length == 0 ))
		errItemList.push("Question 2:  You may not leave volunteer information blank.");

	// question 3
	if(frmObj.udr_salary.value.length == 0 )
		errItemList.push("Question 3:  You may not leave salary information blank.");

	// question 19
	if (!validateDesc(frmObj.udr_layoffs, frmObj.udr_layoff_desc))
		errItemList.push("Question 19: You must supply anticpated layoff description.");

	// question 20
	if (!validateDesc(frmObj.udr_actual, frmObj.udr_actual_desc))
		errItemList.push("Question 20: You must supply actual layoff description.");

	/* --- START HTML ERROR BLOCK ---*/
	
	if ( errItemList.length > 0 ) {
		if ( errItemList.length == 1 ) 
			errMsg = "There was one error, please correct the following error and resubmit.";
		if ( errItemList.length > 1 ) 
			errMsg = "There were "+errItemList.length+" errors, please correct the following errors and resubmit.";
	}
		
	var errObj = document.getElementById("errTable");
	if ( errObj ) {
		if ( errItemList.length > 0 ) {
			errTableHTML = createErrorTable (errMsg,errItemList);
			errObj.innerHTML = errTableHTML + "<br>";
			window.location.href = "#top";
		} else {
			errObj.innerHTML = "&nbsp;"
		}
	} else {
		if ( errItemList.length > 0 )
			alert ( errMsg );
	}
	
	/* --- END HTML ERROR BLOCK ---*/
	
	if ( errItemList.length > 0 )
		bValid = false;


	if ( bDebug ) {
		bValid ? alert("Debug Mode: Validation passed") : alert("Debug Mode: Validation failed");
		bValid = false;
	}
	return bValid;
}

function frmValidate_sect_22a(frmObj)
{
	bDebug = false;	// set debug flag for section
	bValid = true; // default to true, we set to false when validation fails

	/* --- START ERROR BLOCK VARIABLE DECLARATION ---*/
    
	var errMsg = "";
	var errTableHTML = "";
	var errItemList = new Array(0);

	/* --- END ERROR BLOCK VARIABLE DECLARATION ---*/
	
	// question 1
	if (!validateDesc(frmObj.udr_beachfront, frmObj.udr_linear)) {
		errItemList.push("Question 1: You must supply linear shoreline miles or select 'Yes' if shoreline miles supplied.");
		frmObj.udr_linear.select();
	}

	// question 7
	if (!validateDesc(frmObj.udr_zoos, frmObj.udr_zoos_qty)) {
		errItemList.push("Question 7: You must supply number of zoos or select 'Yes' if number of zoos supplied.");
		frmObj.udr_linear.select();
	}

/*
	// question 8
	if (!validateDesc(frmObj.udr_amusement, frmObj.udr_amusement_qty))
		errItemList.push("Question 8: You must supply number of Amusement Parks.");
*/
	// question 9
	if (!validateDesc(frmObj.udr_mechanical, frmObj.udr_mechanical_qty)) {
		errItemList.push("Question 9: You must supply number of Mechanical Rides or select 'Yes' if number of Mechanical Rides supplied.");
		frmObj.udr_mechanical_qty.select();
	}

	// question 10
	if (!validateDesc(frmObj.udr_other_rides, frmObj.udr_other_rides_desc)) {
		errItemList.push("Question 10: You must provide description of other rides or select 'Yes' if other rides description supplied.");
		frmObj.udr_other_rides_desc.select();
	}

	// question 11
	if (!validateDesc(frmObj.udr_skatepark, frmObj.udr_skatepark_qty)) {
		errItemList.push("Question 11: You must provide number of skateparks or select 'Yes' if skateparks supplied.");
		frmObj.udr_skatepark_qty.select();
	}

	// question 14
	if (!validateDesc(frmObj.udr_watercraft, frmObj.udr_watercraft_desc)) {
		errItemList.push("Question 14: You must provide description or select 'Yes' if watercraft description supplied.");
		frmObj.udr_watercraft_desc.select();
	}

	// question 15
	if (!validateDesc(frmObj.udr_aircraft, frmObj.udr_aircraft_desc)) {
		errItemList.push("Question 15: You must provide description or select 'Yes' if aircraft description supplied.");
		frmObj.udr_aircraft_desc.select();
	}

	// question 16
	if (!validateDesc(frmObj.udr_water_facility, frmObj.udr_water_facility_desc)) {
		errItemList.push("Question 16: You must provide description or select 'Yes' if water facility description supplied.");
		frmObj.udr_water_facility_desc.select();
	}

	// question 17
	if (!validateDesc(frmObj.udr_parks, frmObj.udr_parks_desc)) {
		errItemList.push("Question 17: You must provide description or select 'Yes' if parks description supplied.");
		frmObj.udr_parks_desc.select();
	}

	// question 18
	if (!validateDesc(frmObj.udr_fairgrounds, frmObj.udr_fairgrounds_desc)) {
		errItemList.push("Question 18: You must provide description or select 'Yes' if fairgrounds description supplied.");
		frmObj.udr_fairgrounds_desc.select();
	}

	// question 19
	if (!validateDesc(frmObj.udr_racetracks, frmObj.udr_racetracks_desc)) {
		errItemList.push("Question 19: You must provide description or select 'Yes' if racetrack description supplied.");
		frmObj.udr_racetracks_desc.select();
	}

	// question 20
	if (!validateDesc(frmObj.udr_special, frmObj.udr_special_desc)) {
		errItemList.push("Question 20: You must provide description or select 'Yes' if special description supplied.");
		frmObj.udr_special_desc.select();
    }
    
	// question 21a
	if (!validateDesc(frmObj.udr_medical, frmObj.udr_clinic_qty)) {
		errItemList.push("Question 21: You must provide clinic quantity or select 'Yes' if clinics supplied.");
		frmObj.udr_clinic_qty.select();
	}

	// question 21b
	if (!validateDesc(frmObj.udr_medical, frmObj.udr_nurses_qty)) {
		errItemList.push("Question 21: You must provide nurses quantity or select 'Yes' if nurses supplied.");
		frmObj.udr_nurses_qty.select();
    }
    
	// question 22
	if (!validateDesc(frmObj.udr_exhibit, frmObj.udr_exhibit_desc)) {
		errItemList.push("Question 22: You must provide description or select 'Yes' if exhibit description supplied.");
		frmObj.udr_exhibit_desc.select();
	}

	// question 23
	if (!validateDesc(frmObj.udr_landfill, frmObj.udr_landfill_qty)) {
		errItemList.push("Question 23: You must provide quantity or select 'Yes' if landfill supplied.");
		frmObj.udr_landfill_qty.select();
	}
		
    /* -- dams description requirement removed 2008
	// question 24
	if (!validateDesc(frmObj.udr_dams, frmObj.udr_dams_qty))
		errItemList.push("Question 24: You must provide quantity.");
    */
    
	// question 25
	if (!validateDesc(frmObj.udr_sidewalk, frmObj.udr_sidewalk_qty)) {
		errItemList.push("Question 25: You must provide quantity or select 'Yes' if sidewalks supplied." );
		frmObj.udr_sidewalk_qty.select();
	}


    // question 26a
	if (getObjValue(frmObj.udr_maintenance)=="true") {
		if(frmObj.udr_maintenance_paved.value.length==0)
			errItemList.push("Question 26: Please supply paved value or select 'Yes' if supplied.");
		if(frmObj.udr_maintenance_unpaved.value.length==0)
			errItemList.push("Question 26: Please supply unpaved or select 'Yes' if supplied.");
	} else {
	    if ((frmObj.udr_maintenance_paved.value != "0" ) || (frmObj.udr_maintenance_unpaved.value != "0" ))
	        errItemList.push("Question 26: Please supply paved or unpaved values if 'Yes' if supplied.");
	}

	// question 27
	if (!validateDesc(frmObj.udr_skiing, frmObj.udr_skiing_qty)) {
		errItemList.push("Question 27: You must provide quantity or select 'Yes' if skiing supplied." );
		frmObj.udr_skiing_qty.select();
	}


	/* --- START HTML ERROR BLOCK ---*/

	if ( errItemList.length > 0 ) {
		if ( errItemList.length == 1 ) 
			errMsg = "There was one error, please correct the following error and resubmit.";
		if ( errItemList.length > 1 ) 
			errMsg = "There were "+errItemList.length+" errors, please correct the following errors and resubmit.";
	}
		
	var errObj = document.getElementById("errTable");
	if ( errObj ) {
		if ( errItemList.length > 0 ) {
			errTableHTML = createErrorTable (errMsg,errItemList);
			errObj.innerHTML = errTableHTML + "<br>";
			window.location.href = "#top";
		} else {
			errObj.innerHTML = "&nbsp;"
		}
	} else {
		if ( errItemList.length > 0 )
			alert ( errMsg );
	}
	
	/* --- END HTML ERROR BLOCK ---*/

	if ( errItemList.length > 0 )
		bValid = false;


	if ( bDebug ) {
		bValid ? alert("Debug Mode: Validation passed") : alert("Debug Mode: Validation failed");
		bValid = false;
	}

	return bValid;
}

function frmValidate_sect_22b(frmObj)
{
	bDebug = false;	// set debug flag for section
	bValid = true; // default to true, we set to false when validation fails


	/* --- START ERROR BLOCK VARIABLE DECLARATION ---*/

	var errMsg = "";
	var errTableHTML = "";
	var errItemList = new Array(0);

	/* --- END ERROR BLOCK VARIABLE DECLARATION ---*/
	
	// question 29
	if (!validateDesc(frmObj.udr_daycare, frmObj.udr_daycare_qty))
		errItemList.push("Question 30: You must provide quantity or select 'Yes' if daycare quantity supplied.");

	// question 31
	if (!validateDesc(frmObj.udr_parking, frmObj.udr_parking_qty))
		errItemList.push("Question 31: You must provide quantity or select 'Yes' if parking quantity supplied.");

	// question 32
	if (!validateDesc(frmObj.udr_animal_control, frmObj.udr_animal_control_budget))
		errItemList.push("Question 32: You must provide budget or select 'Yes' if budget supplied.");

	// question 33
	if (!validateDesc(frmObj.udr_redev, frmObj.udr_redev_budget))
		errItemList.push("Question 33: You must provide budget or select 'Yes' if budget supplied.");

	// question 38
	if (!validateDesc(frmObj.udr_terminal, frmObj.udr_terminal_desc))
		errItemList.push("Question 38: You must provide description or select 'Yes' if description supplied.");

	// question 38
	if (!validateDesc(frmObj.udr_terminal, frmObj.udr_terminal_resp))
		errItemList.push("Question 38: You must provide description or select 'Yes' if description supplied.");

	// question 39
	if (getObjValue(frmObj.udr_lic_police)=="true") {
		if(frmObj.udr_lic_police_qty.value.length==0)
			errItemList.push("Question 39: Please supply passenger vehicles or select 'Yes' if supplied.");
		if(frmObj.udr_lic_motor_qty.value.length==0)
			errItemList.push("Question 39: Please supply motorcycle/scooter vehicles or select 'Yes' if supplied.");
	} else {
	    if ((frmObj.udr_lic_police_qty.value != "0" ) || (frmObj.udr_lic_police_qty.value != "0" ))
	        errItemList.push("Question 39: Please supply passenger vehicles or select 'Yes' if supplied.");
	}

	// question 40
	if(getObjValue(frmObj.udr_private_passenger)=="true") {
		if(frmObj.udr_private_passenger_qty.value.length==0)
			errItemList.push("Question 40: Please supply private passenger vehicles or select 'Yes' if vehicles supplied.");
	} else {
		if(frmObj.udr_private_passenger_qty.value !="0")
			errItemList.push("Question 40: Please supply private passenger vehicles or select 'Yes' if vehicles supplied.");
	}


	// question 41
	if(getObjValue(frmObj.udr_commercial_light)=="true") {
		if(frmObj.udr_commercial_light_pickup.value.length==0)
			errItemList.push("Question 41: Please supply private pickup vehicles or select 'Yes' if light pickup supplied.");
		if(frmObj.udr_commercial_light_ambulance.value.length==0)
			errItemList.push("Question 41: Please supply ambulance or rescue vehicles or select 'Yes' if ambulances or rescue vehicles supplied.");
	} else {
		if(frmObj.udr_commercial_light_pickup.value !="0")
			errItemList.push("Question 41: Please supply private pickup vehicles or select 'Yes' if light pickup supplied.");
		if(frmObj.udr_commercial_light_ambulance.value !="0")
			errItemList.push("Question 41: Please supply ambulance or rescue vehicles or select 'Yes' if ambulances or rescue vehicles supplied.");
	}


	// question 42
	if(getObjValue(frmObj.udr_commercial_medium)=="true") {
		if(frmObj.udr_commercial_medium_qty.value.length==0)
			errItemList.push("Question 42: Please supply medium passenger vehicles or select 'Yes' if passenger vehichles supplied.");
	} else {
		if(frmObj.udr_commercial_medium_qty.value !="0")
			errItemList.push("Question 42: Please supply medium passenger vehicles or select 'Yes' if passenger vehichles supplied.");
	}

	// question 43
	if(getObjValue(frmObj.udr_commercial_heavy)=="true") {
		if(frmObj.udr_commercial_heavy_refuse.value.length==0)
			errItemList.push("Question 43: Please supply number of refuse vehicles or select 'Yes' if refuse vehicle supplied.");
		if(frmObj.udr_commercial_heavy_fire.value.length==0)
			errItemList.push("Question 43: Please supply number of fire pumper vehicles or select 'Yes' if pumper vehicle supplied.");
		if(frmObj.udr_commercial_heavy_trucks.value.length==0)
			errItemList.push("Question 43: Please supply number of trucks or select 'Yes' if trucks supplied.");
		if(frmObj.udr_commercial_heavy_buses.value.length==0)
			errItemList.push("Question 43: Please supply number of buses or select 'Yes' if buses supplied.");
		if(frmObj.udr_commercial_heavy_fire_other.value.length==0)
			errItemList.push("Question 43: Please supply number of other vehicles or select 'Yes' if other vehicles supplied.");
	} else {
		if(frmObj.udr_commercial_heavy_refuse.value !="0")
			errItemList.push("Question 43: Please supply number of refuse vehicles or select 'Yes' if refuse vehicle supplied.");
		if(frmObj.udr_commercial_heavy_fire.value !="0")
			errItemList.push("Question 43: Please supply number of fire pumper vehicles or select 'Yes' if pumper vehicle supplied.");
		if(frmObj.udr_commercial_heavy_trucks.value != "0")
			errItemList.push("Question 43: Please supply number of trucks or select 'Yes' if trucks supplied.");
		if(frmObj.udr_commercial_heavy_buses.value !="0")
			errItemList.push("Question 43: Please supply number of buses or select 'Yes' if buses supplied.");
		if(frmObj.udr_commercial_heavy_fire_other.value != "0")
			errItemList.push("Question 43: Please supply number of other vehicles or select 'Yes' if other vehicles supplied.");
	}

	/* --- START HTML ERROR BLOCK ---*/

	if ( errItemList.length > 0 ) {
		if ( errItemList.length == 1 ) 
			errMsg = "There was one error, please correct the following error and resubmit.";
		if ( errItemList.length > 1 ) 
			errMsg = "There were "+errItemList.length+" errors, please correct the following errors and resubmit.";
	}
		
	var errObj = document.getElementById("errTable");
	if ( errObj ) {
		if ( errItemList.length > 0 ) {
			errTableHTML = createErrorTable (errMsg,errItemList);
			errObj.innerHTML = errTableHTML + "<br>";
			window.location.href = "#top";
		} else {
			errObj.innerHTML = "&nbsp;"
		}
	} else {
		if ( errItemList.length > 0 )
			alert ( errMsg );
	}
	
	/* --- END HTML ERROR BLOCK ---*/

	if ( errItemList.length > 0 )
		bValid = false;

	if ( bDebug ) {
		bValid ? alert("Debug Mode: Validation passed") : alert("Debug Mode: Validation failed");
		bValid = false;
	}
	return bValid;
}

function frmValidate_sect_22c(frmObj)
{
	bDebug = false;	// set debug flag for section
	bValid = true; // default to true, we set to false when validation fails


	/* --- START ERROR BLOCK VARIABLE DECLARATION ---*/

	var errMsg = "";
	var errTableHTML = "";
	var errItemList = new Array(0);

	/* --- END ERROR BLOCK VARIABLE DECLARATION ---*/
	

	// question 43
	if (!validateDesc(frmObj.udr_subsidence, frmObj.udr_subsidence_desc))
		errItemList.push("Question 43: You must provide description or select 'Yes' if description supplied.");

	// question 44
	if (!validateDesc(frmObj.udr_slopes, frmObj.udr_slopes_desc))
		errItemList.push("Question 44: You must provide description or select 'Yes' if slope description supplied.");

	// question 45
	if (!validateDesc(frmObj.udr_soil_extraction, frmObj.udr_soil_desc))
		errItemList.push("Question 45: You must provide description or select 'Yes' if soil description supplied.");


	/* --- START HTML ERROR BLOCK ---*/

	if ( errItemList.length > 0 ) {
		if ( errItemList.length == 1 ) 
			errMsg = "There was one error, please correct the following error and resubmit.";
		if ( errItemList.length > 1 ) 
			errMsg = "There were "+errItemList.length+" errors, please correct the following errors and resubmit.";
	}
		
	var errObj = document.getElementById("errTable");
	if ( errObj ) {
		if ( errItemList.length > 0 ) {
			errTableHTML = createErrorTable (errMsg,errItemList);
			errObj.innerHTML = errTableHTML + "<br>";
			window.location.href = "#top";
		} else {
			errObj.innerHTML = "&nbsp;"
		}
	} else {
		if ( errItemList.length > 0 )
			alert ( errMsg );
	}
	
	/* --- END HTML ERROR BLOCK ---*/

	if ( errItemList.length > 0 )
		bValid = false;

	
	if ( bDebug ) {
		bValid ? alert("Debug Mode: Validation passed") : alert("Debug Mode: Validation failed");
		bValid = false;
	}
	return bValid;
}


function frmValidate_sect_30(frmObj)
{
	bDebug = false;	// set debug flag for section
	bValid = true; // default to true, we set to false when validation fails
	
	sValue = getObjValue(frmObj.udr_no_osha_violations);
	if ((sValue=="false") || (sValue==""))
	{
		if (frmObj.udr_osha_desc_01.value.length == 0) {
			alert("You must supply at least OSHA violation.");
			bValid = false;
		}
	}

	if ( bDebug ) {
		bValid ? alert("Debug Mode: Validation passed") : alert("Debug Mode: Validation failed");
		bValid = false;
	}
	return bValid;
}

function frmValidate_sect_23(frmObj)
{
	bDebug = false;	// set debug flag for section
	bValid = true; // default to true, we set to false when validation fails


	/* --- START ERROR BLOCK VARIABLE DECLARATION ---*/

	var errMsg = "";
	var errTableHTML = "";
	var errItemList = new Array(0);

	/* --- END ERROR BLOCK VARIABLE DECLARATION ---*/

	// question 1
	if ( getObjValue(frmObj.udr_transit) == "true" ) {
		
		if ( frmObj.udr_transit_vehicle_20.value.length == 0 ) {
			errItemList.push("Question 1: Passenger values may not be blank (they may contain a zero values)");
		}
		
		if ( frmObj.udr_transit_vehicle_40.value.length == 0 ) {
			errItemList.push("Question 1: Passenger Values may not be blank (they may contain a zero value)");
		}

		if ( frmObj.udr_transit_vehicle_60.value.length == 0 ) {
			errItemList.push("Question 1: Passenger Values may not be blank (they may contain a zero value)");
		}

		if ( frmObj.udr_transit_vehicle_over.value.length == 0 ) {
			errItemList.push("Question 1: Passenger Values may not be blank (they may contain a zero value)");
		}

	}
	
	

	if(getObjValue(frmObj.udr_rail) == "true" ) {
				
		if ( frmObj.udr_rail_miles.value.length == 0 ) {
			errItemList.push("Question 2:  Rail Exposure values may not be blank (they may contain zero values)");
		}

		if ( frmObj.udr_rail_vehicles.value.length == 0 ) {
			errItemList.push("Question 2:  Rail Exposure values may not be blank (they may contain zero values)");
		}

		if ( frmObj.udr_rail_qty.value.length == 0 ) {
			errItemList.push("Question 2:  Rail Exposure values may not be blank (they may contain zero values)");
		}

		if ( frmObj.udr_rail_revenue.value.length == 0 ) {
			errItemList.push("Question 2:  Rail Exposure values may not be blank (they may contain zero values)");
		}
	}

	
	if ( getObjValue(frmObj.udr_mini_bus) == "true" )
	{
		if (frmObj.udr_mini_bus_qty.value.length == 0 ) 
		{
				errItemList.push("Question 3:  Mini bus values may not be blank [they may contain zero values).");
		}
	}

	
	/* --- START HTML ERROR BLOCK ---*/

	if ( errItemList.length > 0 ) {
		if ( errItemList.length == 1 ) 
			errMsg = "There was one error, please correct the following error and resubmit.";
		if ( errItemList.length > 1 ) 
			errMsg = "There were "+errItemList.length+" errors, please correct the following errors and resubmit.";
	}
		
	var errObj = document.getElementById("errTable");
	if ( errObj ) {
		if ( errItemList.length > 0 ) {
			errTableHTML = createErrorTable (errMsg,errItemList);
			errObj.innerHTML = errTableHTML + "<br>";
			window.location.href = "#top";
		} else {
			errObj.innerHTML = "&nbsp;"
		}
	} else {
		if ( errItemList.length > 0 )
			alert ( errMsg );
	}
	
	/* --- END HTML ERROR BLOCK ---*/

	if ( errItemList.length > 0 )
		bValid = false;


	if ( bDebug ) {
		bValid ? alert("Debug Mode: Validation passed") : alert("Debug Mode: Validation failed");
		bValid = false;
	}
	return bValid;
}

function frmValidate_sect_24(frmObj)
{
	bDebug = false;	// set debug flag for section
	bValid = true; // default to true, we set to false when validation fails


	/* --- START ERROR BLOCK VARIABLE DECLARATION ---*/

	var errMsg = "";
	var errTableHTML = "";
	var errItemList = new Array(0);

	/* --- END ERROR BLOCK VARIABLE DECLARATION ---*/
	
	/* --- START HTML ERROR BLOCK ---*/

	if ( errItemList.length > 0 ) {
		if ( errItemList.length == 1 ) 
			errMsg = "There was one error, please correct the following error and resubmit.";
		if ( errItemList.length > 1 ) 
			errMsg = "There were "+errItemList.length+" errors, please correct the following errors and resubmit.";
	}
		
	var errObj = document.getElementById("errTable");
	if ( errObj ) {
		if ( errItemList.length > 0 ) {
			errTableHTML = createErrorTable (errMsg,errItemList);
			errObj.innerHTML = errTableHTML + "<br>";
			window.location.href = "#top";
		} else {
			errObj.innerHTML = "&nbsp;"
		}
	} else {
		if ( errItemList.length > 0 )
			alert ( errMsg );
	}
	
	/* --- END HTML ERROR BLOCK ---*/

	if ( errItemList.length > 0 )
		bValid = false;


	if ( bDebug ) {
		bValid ? alert("Debug Mode: Validation passed") : alert("Debug Mode: Validation failed");
		bValid = false;
	}
	return bValid;
}

function frmValidate_sect_25(frmObj)
{
	bDebug = false;	// set debug flag for section
	bValid = true; // default to true, we set to false when validation fails

	// define error tracking objects
	var errMsg = "";
	var errTableHTML = "";
	var errItemList = new Array(0);
	
	if ( frmObj.udr_rep_agency.value.length == 0 )
		errItemList.push("Agency Name");
	
	if ( frmObj.udr_rep_name.value.length == 0 )
		errItemList.push("Representative Name");

	if ( frmObj.udr_rep_title.value.length == 0 )
		errItemList.push("Representative Title");

	if ( frmObj.udr_rep_phone.value.length == 0 )
		errItemList.push("Phone");

	if ( frmObj.udr_rep_mail.value.length == 0 )
		errItemList.push("E-Mail");
		
	
	if ( errItemList.length > 0 ) {
		if ( errItemList.length == 1 ) 
			errMsg = "There was one error, please correct the following error and resubmit.";
		if ( errItemList.length > 1 ) 
			errMsg = "There were "+errItemList.length+" errors, please correct the following errors and resubmit.";
	}
	
	var errObj = document.getElementById("errTable");
	if ( errObj ) {
		if ( errItemList.length > 0 ) {
			errTableHTML = createErrorTable (errMsg,errItemList);
			errObj.innerHTML = errTableHTML + "<br>";
		} else {
			errObj.innerHTML = "&nbsp;"
		}
	} else {
		alert ( errMsg );
	}
	
	if ( errItemList.length > 0 )
		bValid = false;
		
	if ( bDebug ) {
		bValid ? alert("Debug Mode: Validation passed") : alert("Debug Mode: Validation failed");
		bValid = false;
	}
	return bValid;
}

function frmValidate_finalize(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails
		
	if((numObj(frmObj.udr_resp_name.value)==0) && (bValid))
	{
		alert("You must supply the person's name that is responsible for completing this form.");
		frmObj.udr_resp_name.select();
		bValid=false;
	}
	return bValid;
}

function validateComplete(frmObj)
{
    var iSectionCount = 0;
    var bRet = false;
    
    if(frmObj.cb_udr_complete.checked) {
        iSectionCount = Number(frmObj.udr_formState.value);
        if ( iSectionCount != 19 ) {
            bRet = confirm("You have not completed all sections.\n\nOnce you have marked your submission complete, you will not be able to edit the information.\n\nAre you you sure you wish to consider this submission complete?");	    
            if ( !bRet )
                frmObj.cb_udr_complete.checked = false;
        }       
	}
	return bRet;
}

function frmIncomplete(frmObj)
{
	return true;  // temporarily returning true so users can finalize at anytime.
}

function confirmUnderwriting(form)
{
	bValid=true;
	dToday = new Date();
	bSave = false;
	udrCalcCount = 0;
	udrImpCount = 0;
	
	// section 1 -- all objects are optional
		
	if((form.udr_dir_fname.value.length==0) && (bValid)){
		alert("Please enter the CJPIA Director First Name");
		form.udr_dir_fname.select();
		bValid=false;
	}

	if((form.udr_dir_lname.value.length==0) && (bValid)){
		alert("Please enter the CJPIA Director Last Name");
		form.udr_dir_lname.select();
		bValid=false;
	}

	// section 2 -- objects are optional
	
	// section 3 -- objects are optional
	
	// section 4 
	if((form.udr_budget.value.length==0) && (bValid))
	{
		alert("You must supply the total budget.");
		form.udr_budget.select();
		bValid=false;
	}
	
	// section 5 -- objects are optional
	
	// section 6
	if((numObj(form.udr_payroll_calYear.value)==0) && (bValid))
	{
		alert("The payroll must be greater than zero.");
		form.udr_payroll_calYear.select();
		bValid=false;
	}

	if((numObj(form.udr_est_payroll.value)==0) && (bValid))
	{
		alert("The estimated payroll for 2008 must be greater than zero.");
		form.udr_est_payroll.select();
		bValid=false;
	}

	// section 7
	if((numObj(form.udr_payroll_calYear.value)==0) && (bValid))
	{
		alert("The payroll must be greater than zero.");
		form.udr_payroll_calYear.select();
		bValid=false;
	}

	// section 8 -- objects are optional
	
	// section 9 -- objects are optional
	
	// section 10 -- objects are optional
	
	// section 11 -- objects are optional
	udrImpCount += numObj(form.udr_vol_less100.value);
	udrImpCount += numObj(form.udr_vol_100_500.value);
	udrImpCount += numObj(form.udr_vol_more500.value);
	udrCalcCount = numObj(form.udr_vol_calYear.value);

	if (( udrImpCount != udrCalcCount ) && (bValid))
	{
		alert("The total number of volunteers in Section 11 must equal the total in Section 6.");
		form.udr_vol_less100.select();
		bValid=false;
	}

	/*
	if((udrImpCount!=udrCalcCount) && (bValid)) 
	{
		alert("The total number of volunteers in Section 11 must equal the total in Section 6);
		form.udr_udr_vol_less100.select();
		bValid = false;
	}
	*/
	
	// section 12
	/*
	if((numObj(form.udr_protected_contract.value)==0) && (bValid))
	{
		alert("You must supply value of Protected Contracts.");
		form.udr_protected_contract.select();
		bValid=false;
	}
	*/
	
	// section 13
	/*
	if((numObj(form.udr_police_payroll.value)==0) && (bValid))
	{
		alert("You must supply the Police Payroll.");
		form.udr_police_payroll.select();
		bValid=false;
	}
	*/
	
	// section 14
	if((numObj(form.udr_genLiab_payroll.value)==0) && (bValid))
	{
		alert("You must supply the General Liability Payroll.");
		form.udr_genLiab_payroll.select();
		bValid=false;
	}
	
	// section 15
	if((numObj(form.udr_workComp_payroll.value)==0) && (bValid))
	{
		alert("You must supply the Workers' Compensation Payroll.");
		form.udr_workComp_payroll.select();
		bValid=false;
	}

	// section 16 -- objects optional
	
	// section 17
	if((numObj(form.udr_audit_name.value)==0) && (bValid))
	{
		alert("You must supply your auditing company.");
		form.udr_audit_name.select();
		bValid=false;
	}

	if((numObj(form.udr_audit_name.value)==0) && (bValid))
	{
		alert("You must supply your auditing company's name.");
		form.udr_audit_name.select();
		bValid=false;
	}

	if((numObj(form.udr_audit_address.value)==0) && (bValid))
	{
		alert("You must supply your auditing company's address.");
		form.udr_audit_address.select();
		bValid=false;
	}

	if((numObj(form.udr_audit_city.value)==0) && (bValid))
	{
		alert("You must supply your auditing company's city.");
		form.udr_audit_city.select();
		bValid=false;
	}
	
	if((numObj(form.udr_audit_state.value)==0) && (bValid))
	{
		alert("You must supply your auditing company's state.");
		form.udr_audit_state.select();
		bValid=false;
	}

	if((numObj(form.udr_audit_zip.value)==0) && (bValid))
	{
		alert("You must supply your auditing company's zip code.");
		form.udr_audit_zip.select();
		bValid=false;
	}

	if((numObj(form.udr_resp_name.value)==0) && (bValid))
	{
		alert("You must supply the person's name that is responsible for completing this form.");
		form.udr_resp_name.select();
		bValid=false;
	}

	// section 18 -- some members don't have councils, must select none if that is the case
	// section 19 -- objects are optional
	// section 20 -- objects are optional
	// section 21 -- objects are optional
	// section 22 -- objects are optional
	
	if (!bValid) {
		bValid = confirm("WARNING:\r\rYou have not provided all the necessary information.  Would you like to save this form so that you can return to later?");
	}
	
	return bValid;
}

function filterNum(str) {
	re = /^\$|,/g;
	// remove "$" and ","
	return str.replace(re, "");
}

function formatCurrency(num,includeCents) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	
	if(includeCents==1)
		return (((sign)?'':'-') + '$' + num + '.' + cents);
	else
		return (((sign)?'':'-') + '$' + num);
}

function numObj(value)
{
	var objValue = 0;	
	if(value.length>0) {
		objValue = parseFloat(filterNum(value));
	}
	return objValue;
}

function calc_sect_05(form)
{
	var udrFT = 0;
	var udrPT = 0;
	var udrVol = 0;
	var udrPayroll = 0;

	udrFT += numObj(form.udr_ft_8810.value);
	udrFT += numObj(form.udr_ft_9410.value);
	udrFT += numObj(form.udr_ft_9420.value);
	udrFT += numObj(form.udr_ft_7706.value);
	// udrFT += numObj(form.udr_ft_7707.value);
	udrFT += numObj(form.udr_ft_7720.value);
	// udrFT += numObj(form.udr_ft_7722.value);
	udrFT += numObj(form.udr_ft_7382.value);
	udrFT += numObj(form.udr_ft_7424.value);
	udrFT += numObj(form.udr_ft_8831.value);
	udrFT += numObj(form.udr_ft_8832.value);
	udrFT += numObj(form.udr_ft_7520.value);
	udrFT += numObj(form.udr_ft_7580.value);
	// udrFT += numObj(form.udr_ft_9422.value);
	udrFT += numObj(form.udr_ft_9999.value);
	form.udr_ft_calYear.value = udrFT;
	
	udrPT += numObj(form.udr_pt_8810.value);
	udrPT += numObj(form.udr_pt_9410.value);
	udrPT += numObj(form.udr_pt_9420.value);
	udrPT += numObj(form.udr_pt_7706.value);
	// udrPT += numObj(form.udr_pt_7707.value);
	udrPT += numObj(form.udr_pt_7720.value);
	// udrPT += numObj(form.udr_pt_7722.value);
	udrPT += numObj(form.udr_pt_7382.value);
	udrPT += numObj(form.udr_pt_7424.value);
	udrPT += numObj(form.udr_pt_8831.value);
	udrPT += numObj(form.udr_pt_8832.value);
	udrPT += numObj(form.udr_pt_7520.value);
	udrPT += numObj(form.udr_pt_7580.value);
	udrPT += numObj(form.udr_pt_9999.value);

	form.udr_pt_calYear.value = udrPT;
	
	udrVol += numObj(form.udr_vol_8810.value);
	udrVol += numObj(form.udr_vol_9410.value);
	udrVol += numObj(form.udr_vol_9420.value);
	// udrVol += numObj(form.udr_vol_7706.value);
	udrVol += numObj(form.udr_vol_7707.value);
	// udrVol += numObj(form.udr_vol_7720.value);
	udrVol += numObj(form.udr_vol_7722.value);
	udrVol += numObj(form.udr_vol_7382.value);
	udrVol += numObj(form.udr_vol_7424.value);
	udrVol += numObj(form.udr_vol_8831.value);
	udrVol += numObj(form.udr_vol_8832.value);
	udrVol += numObj(form.udr_vol_7520.value);
	udrVol += numObj(form.udr_vol_7580.value);
	udrVol += numObj(form.udr_vol_9999.value);
	form.udr_vol_calYear.value = udrVol;

	udrPayroll += numObj(form.udr_payroll_8810.value);
	udrPayroll += numObj(form.udr_payroll_9410.value);
	udrPayroll += numObj(form.udr_payroll_9420.value);
	udrPayroll += numObj(form.udr_payroll_7706.value);
	udrPayroll += numObj(form.udr_payroll_7707.value);
	udrPayroll += numObj(form.udr_payroll_7720.value);
	udrPayroll += numObj(form.udr_payroll_7722.value);
	udrPayroll += numObj(form.udr_payroll_7382.value);
	udrPayroll += numObj(form.udr_payroll_7424.value);
	udrPayroll += numObj(form.udr_payroll_8831.value);
	udrPayroll += numObj(form.udr_payroll_8832.value);
	udrPayroll += numObj(form.udr_payroll_7520.value);
	udrPayroll += numObj(form.udr_payroll_7580.value);
	udrPayroll += numObj(form.udr_payroll_9999.value);
	form.udr_payroll_calYear.value = formatCurrency(udrPayroll,1);

	form.udr_payroll_calYear.value = formatCurrency(numObj(form.udr_payroll_calYear.value),1);
	form.udr_payroll_8810.value = formatCurrency(numObj(form.udr_payroll_8810.value),1);
	form.udr_payroll_9410.value = formatCurrency(numObj(form.udr_payroll_9410.value),1);
	form.udr_payroll_9420.value = formatCurrency(numObj(form.udr_payroll_9420.value),1);
	form.udr_payroll_7706.value = formatCurrency(numObj(form.udr_payroll_7706.value),1);
	form.udr_payroll_7707.value = formatCurrency(numObj(form.udr_payroll_7707.value),1);
	form.udr_payroll_7720.value = formatCurrency(numObj(form.udr_payroll_7720.value),1);
	form.udr_payroll_7722.value = formatCurrency(numObj(form.udr_payroll_7722.value),1);
	form.udr_payroll_7382.value = formatCurrency(numObj(form.udr_payroll_7382.value),1);
	form.udr_payroll_7424.value = formatCurrency(numObj(form.udr_payroll_7424.value),1);
	form.udr_payroll_8831.value = formatCurrency(numObj(form.udr_payroll_8831.value),1);
	form.udr_payroll_8832.value = formatCurrency(numObj(form.udr_payroll_8832.value),1);
	form.udr_payroll_7520.value = formatCurrency(numObj(form.udr_payroll_7520.value),1);
	form.udr_payroll_7580.value = formatCurrency(numObj(form.udr_payroll_7580.value),1);
	form.udr_payroll_9999.value = formatCurrency(numObj(form.udr_payroll_9999.value),1);
	
	form.udr_est_gross.value = formatCurrency(numObj(form.udr_est_gross.value),1);
    
    if ( udrPayroll > 0 )
        hideDiv('div_noPayroll');
    else
        showDiv('div_noPayroll');

}

function calc_sect_04(form)
{	
	form.udr_budget.value = formatCurrency(numObj(form.udr_budget.value),1);
	form.udr_treated_water_budget.value = formatCurrency(numObj(form.udr_treated_water_budget.value),1);
	form.udr_waste_water_budget.value = formatCurrency(numObj(form.udr_waste_water_budget.value),1);	
}

function calc_sect_13(form)
{	
	var udrProtectTotal = 0;

	form.udr_procost_01.value = formatCurrency(numObj(form.udr_procost_01.value),1);
	form.udr_procost_02.value = formatCurrency(numObj(form.udr_procost_02.value),1);
	form.udr_procost_03.value = formatCurrency(numObj(form.udr_procost_03.value),1);
	form.udr_procost_04.value = formatCurrency(numObj(form.udr_procost_04.value),1);
	form.udr_procost_05.value = formatCurrency(numObj(form.udr_procost_05.value),1);
	form.udr_procost_06.value = formatCurrency(numObj(form.udr_procost_06.value),1);
	form.udr_procost_07.value = formatCurrency(numObj(form.udr_procost_07.value),1);
	form.udr_procost_08.value = formatCurrency(numObj(form.udr_procost_08.value),1);
	form.udr_procost_09.value = formatCurrency(numObj(form.udr_procost_09.value),1);
	form.udr_procost_10.value = formatCurrency(numObj(form.udr_procost_10.value),1);

	udrProtectTotal += numObj(form.udr_procost_01.value);
	udrProtectTotal += numObj(form.udr_procost_02.value);
	udrProtectTotal += numObj(form.udr_procost_03.value);
	udrProtectTotal += numObj(form.udr_procost_04.value);
	udrProtectTotal += numObj(form.udr_procost_05.value);
	udrProtectTotal += numObj(form.udr_procost_06.value);
	udrProtectTotal += numObj(form.udr_procost_07.value);
	udrProtectTotal += numObj(form.udr_procost_08.value);
	udrProtectTotal += numObj(form.udr_procost_09.value);
	udrProtectTotal += numObj(form.udr_procost_10.value);

	form.udr_protected_contract.value = formatCurrency(udrProtectTotal,1);
}

function calc_sect_20(form)
{

	form.udr_treated_water_budget.value = formatCurrency(numObj(form.udr_treated_water_budget.value),1);
	form.udr_waste_water_budget.value = formatCurrency(numObj(form.udr_waste_water_budget.value),1);
}

function calc_sect_07(form)
{
	var deffered = 0;
	var sect125 = 0;
	var other = 0;
	var nonTaxTotal = 0;
	var udrImpCount = 0;
	var udrImpPayroll = 0;
	
	deffered = numObj(form.udr_nontax_deferred.value);	
	other = numObj(form.udr_nontax_other.value);
	sect125 = numObj(form.udr_nontax_sect125.value);

	nonTaxTotal = (deffered + other + sect125)
	

	//form.udr_police_payroll.value = form.udr_payroll_7721.value
		
	form.udr_nontax_total.value = formatCurrency(nonTaxTotal,1);
	//form.udr_est_payroll.value = formatCurrency(numObj(form.udr_est_payroll.value),1);


	form.udr_operations_payroll.value = formatCurrency(numObj(form.udr_operations_payroll.value),1);
	form.udr_nontax_deferred.value = formatCurrency(numObj(form.udr_nontax_deferred.value),1);
	form.udr_nontax_sect125.value = formatCurrency(numObj(form.udr_nontax_sect125.value),1);
	form.udr_nontax_other.value = formatCurrency(numObj(form.udr_nontax_other.value),1);
	form.udr_police_payroll.value = formatCurrency(numObj(form.udr_police_payroll.value),1);


	// VOLUNTEER WORKERS' IMPUTED PAYROLL:
	form.udr_vol_less100_total.value = formatCurrency(numObj(form.udr_vol_less100.value)*500,1);
	form.udr_vol_100_500_total.value = formatCurrency(numObj(form.udr_vol_100_500.value)*2500,1);
	form.udr_vol_more500_total.value = formatCurrency(numObj(form.udr_vol_more500.value)*5000,1);


	udrImpCount += numObj(form.udr_vol_less100.value);
	udrImpCount += numObj(form.udr_vol_100_500.value);
	udrImpCount += numObj(form.udr_vol_more500.value);

	udrImpPayroll += numObj(form.udr_vol_less100.value)*500;
	udrImpPayroll += numObj(form.udr_vol_100_500.value)*2500;
	udrImpPayroll += numObj(form.udr_vol_more500.value)*5000;

	form.udr_volunteer_payroll.value = formatCurrency(udrImpPayroll,1);
	if (form.udr_vol_imp_coverage.checked) {
		form.udr_vol_workcomp_payroll.value = form.udr_volunteer_payroll.value;
	}

	
	form.udr_w3_payroll.value = formatCurrency(numObj(form.udr_w3_payroll.value),1);
	//form.udr_w3_payroll.value = formatCurrency(numObj(form.udr_payroll_calYear.value) - numObj(form.udr_nontax_total.value),1);

	form.udr_genLiab_payroll.value = formatCurrency(numObj(form.udr_payroll_calYear.value) + numObj(form.udr_volunteer_payroll.value) + numObj(form.udr_protected_contract.value) - numObj(form.udr_operations_payroll.value),1 );
		
	form.udr_vol_workcomp_payroll.value = formatCurrency(numObj(form.udr_vol_workcomp_payroll.value),1);
	form.udr_genLiab_payroll.value = formatCurrency(numObj(form.udr_genLiab_payroll.value),1);

	form.udr_workComp_payroll.value = formatCurrency(numObj(form.udr_payroll_calYear.value) + numObj(form.udr_vol_workcomp_payroll.value),1);
	
	form.udr_netpayroll.value = formatCurrency(numObj(form.udr_payroll_calYear.value) - numObj(form.udr_nontax_total.value),1);
	
	form.udr_w3_payroll_adj.value = formatCurrency(numObj(form.udr_netpayroll.value) - numObj(form.udr_w3_payroll.value),1);
	
	form.udr_imp_count.value = udrImpCount;

}

function calc_sect_07_workcomp ( form )
{
	/*
	if (form.udr_vol_imp_coverage.checked) {
		alert(form.udr_vol_imp_coverage.checked);
		form.udr_vol_workcomp_payroll.value = "$0.00";
		form.udr_vol_imp_coverage_date.value = "";
	}
	*/
}

function calcObjects(form)
{
	var udrImpPayroll = 0;
	var udrFT = 0;
	var udrPT = 0;
	var udrVol = 0;
	var udrImpCount = 0;
	var udrProtectTotal = 0;
	
	
	
	// Line 4
	form.udr_budget.value = formatCurrency(numObj(form.udr_budget.value),1);


	// Line 11

	form.udr_vol_less100_total.value = formatCurrency(numObj(form.udr_vol_less100.value)*500,1);
	form.udr_vol_100_500_total.value = formatCurrency(numObj(form.udr_vol_100_500.value)*2500,1);
	form.udr_vol_more500_total.value = formatCurrency(numObj(form.udr_vol_more500.value)*5000,1);

	udrImpCount += numObj(form.udr_vol_less100.value);
	udrImpCount += numObj(form.udr_vol_100_500.value);
	udrImpCount += numObj(form.udr_vol_more500.value);

	// this value must match udr_vol_calYear value
	
	udrImpPayroll += numObj(form.udr_vol_less100.value)*500;
	udrImpPayroll += numObj(form.udr_vol_100_500.value)*2500;
	udrImpPayroll += numObj(form.udr_vol_more500.value)*5000;

	form.udr_volunteer_payroll.value = formatCurrency(udrImpPayroll,1);
	

	// Line 14
	form.udr_volunteer_payroll.value = formatCurrency(numObj(form.udr_volunteer_payroll.value),1);
	form.udr_protected_contract.value = formatCurrency(numObj(form.udr_protected_contract.value),1);
	form.udr_operations_payroll.value = formatCurrency(numObj(form.udr_operations_payroll.value),1);
	
	form.udr_police_payroll.value = form.udr_payroll_7721.value;
	
	
	
}

function NewWindow(url) {
self.name = "main"; // names current window as "main"

var windowprops = "toolbar=0,location=0,directories=0,status=0, " +
"menubar=0,scrollbars=1,resizable=0,width=593,height=467";

OpenWindow = window.open(url, "control", windowprops); // opens remote control
}
