/*
 * 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	
	
		/* --- START ERROR BLOCK VARIABLE DECLARATION ---*/
    
	var errMsg = "";
	var errTableHTML = "";
	var errItemList = new Array(0);

	/* --- END ERROR BLOCK VARIABLE DECLARATION ---*/


	if(frmObj.mbr_fname.value.length==0)
		errItemList.push("Your First Name");

	if(frmObj.mbr_lname.value.length==0)
		errItemList.push("Your Last Name");

	if(frmObj.mbr_title.value.length==0)
		errItemList.push("Your Title");

	if(frmObj.mbr_mail.value.length==0) 
		errItemList.push("Your E-Mail Address");

	if(frmObj.mbr_dirphone.value.length==0) 
		errItemList.push("Your direct phone");

	if(frmObj.mbr_dirfax.value.length==0) 
		errItemList.push("Your direct fax");
		
		/* --- 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;

	return bValid;
}

function frmValidate_sect_01(frmObj)
{
	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 ---*/


	// City Clerk
	if(frmObj.udr_clerk_sal.value.length==0)
		errItemList.push("Please enter the City Clerk Salutation");

	if(frmObj.udr_clerk_fname.value.length==0)
		errItemList.push("Please enter the City Clerk First Name");

	if(frmObj.udr_clerk_lname.value.length==0)
		errItemList.push("Please enter the City Clerk Last Name");

	if(frmObj.udr_clerk_title.value.length==0)
		errItemList.push("Please enter the City Clerk Title");

	if(frmObj.udr_clerk_mail.value.length==0)
		errItemList.push("Please enter the City Clerk E-Mail");
	
	// City Manager
	if(frmObj.udr_cm_sal.value.length==0)
		errItemList.push("Please enter the City Manager Salutation");

	if(frmObj.udr_cm_fname.value.length==0)
		errItemList.push("Please enter the City Manager First Name");

	if(frmObj.udr_cm_lname.value.length==0)
		errItemList.push("Please enter the City Manager Last Name");

	if(frmObj.udr_cm_title.value.length==0)
		errItemList.push("Please enter the City Manager Title");

	if(frmObj.udr_cm_mail.value.length==0)
		errItemList.push("Please enter the City Manager E-Mail");

	// Finance Director
	if(frmObj.udr_fd_sal.value.length==0)
		errItemList.push("Please enter the Finance Director Salutation");

	if(frmObj.udr_fd_fname.value.length==0)
		errItemList.push("Please enter the Finance Director First Name");

	if(frmObj.udr_fd_lname.value.length==0)
		errItemList.push("Please enter the Finance Director Last Name");

	if(frmObj.udr_fd_title.value.length==0)
		errItemList.push("Please enter the Finance Director Title");

	if(frmObj.udr_fd_mail.value.length==0)
		errItemList.push("Please enter the Finance Director E-Mail");

	// Risk Manager
	if(frmObj.udr_risk_sal.value.length==0)
		errItemList.push("Please enter the Risk Manager Salutation");

	if(frmObj.udr_risk_fname.value.length==0)
		errItemList.push("Please enter the Risk Manager First Name");

	if(frmObj.udr_risk_lname.value.length==0)
		errItemList.push("Please enter the Risk Manager Last Name");

	if(frmObj.udr_risk_title.value.length==0)
		errItemList.push("Please enter the Risk Manager Title");

	if(frmObj.udr_risk_mail.value.length==0)
		errItemList.push("Please enter the Risk Manager E-Mail");

	// Personnel Director
	if(frmObj.udr_personnel_sal.value.length==0)
		errItemList.push("Please enter the Personnel Director Salutation");

	if(frmObj.udr_personnel_fname.value.length==0)
		errItemList.push("Please enter the Personnel Director First Name");

	if(frmObj.udr_personnel_lname.value.length==0)
		errItemList.push("Please enter the Personnel Director Last Name");

	if(frmObj.udr_personnel_title.value.length==0)
		errItemList.push("Please enter the Personnel Director Title");

	if(frmObj.udr_personnel_mail.value.length==0)
		errItemList.push("Please enter the Personnel Director E-Mail");


	// Director
	if(frmObj.udr_dir_sal.value.length==0)
		errItemList.push("Please enter the CJPIA Director Salutation");

	if(frmObj.udr_dir_fname.value.length==0)
		errItemList.push("Please enter the CJPIA Director First Name");

	if(frmObj.udr_dir_lname.value.length==0)
		errItemList.push("Please enter the CJPIA Director Last Name");

	if(frmObj.udr_dir_title.value.length==0)
		errItemList.push("Please enter the CJPIA Director Title");
		
			/* --- 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;

        
	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
	
			/* --- START ERROR BLOCK VARIABLE DECLARATION ---*/
    
	var errMsg = "";
	var errTableHTML = "";
	var errItemList = new Array(0);

	/* --- END ERROR BLOCK VARIABLE DECLARATION ---*/


		
	if(frmObj.udr_area.value.length==0) 
		errItemList.push("Please enter your area (in square miles)");
	
				/* --- 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;


	return bValid;
}

function frmValidate_sect_04(frmObj)
{
	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 ---*/


	if(numObj(frmObj.udr_budget.value) <= 0) 
			errItemList.push("You must supply the total budget.");
		
						/* --- 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;


	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 the no payroll checkbox to consider the section completed.";
        else
            errMsg = "";
            
    }
    
      if (frmObj.udr_vol_calYear.value == "0") {
    
        if(!frmObj.udr_no_volunteer.checked)
            errMsg = "If you have no volunteers you must select the no volunteers checkbox to consider the section completed.";
             
    }
    
  if((frmObj.water_budget.value != 0) && (frmObj.udr_payroll_7520.value == "$0.00") && (frmObj.udr_waterPayrollDescription.value.length == 0))
	{
		errMsg = "You have entered a water budget without water payroll.  Please enter the correct payroll or an explanation.";
	}

    
    

    
        
    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 ((udrImpCount == 0) && (bValid))
	  {
    
        if(!frmObj.udr_no_volunteer.checked)
        {
            alert("If you have no volunteers you must select the no volunteers checkbox to consider the section completed.");
        		bValid = false;    
        }
             
    }

  if ((udrImpCount != 0) && (bValid))
  {
    
        if(frmObj.udr_no_volunteer.checked)
        {
            alert("If you have  volunteers you must deselect the no volunteers checkbox to consider the section completed.");
            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 7
	if (!validateDesc(frmObj.udr_transport, frmObj.udr_transport_desc))
		errItemList.push( "Question 7: You must supply provide description.");
		
	// question 6
	if (!validateDesc ( frmObj.udr_fire_drills_account, frmObj.udr_fire_drills_desc))
		errItemList.push( "Question 8: You must provide description.");
	
	// question 11
	if (getObjValue(frmObj.udr_loss_prevention) == "Other" ) {
		if (getObjValue(frmObj.udr_loss_prevention_other) == "")
			errItemList.push("Question 11: You must supply provide 'Other' description.");
	}
	
		// question 13
	if(getObjValue(frmObj.udr_returnWork_treatment)=="true") {
		if(getObjValue(frmObj.udr_returnWorkDate)=="") {
			errItemList.push("Question 13: Please supply implementation date.");
		}
	}		


	// question 14
	if(getObjValue(frmObj.udr_temp_mod)=="true") {
		if(getObjValue(frmObj.udr_temp_date)=="") {
			errItemList.push("Question 14: Please supply implementation date.");
		}
		if(getObjValue(frmObj.udr_temp_measure)=="") {
			errItemList.push("Question 14: You must supply description.");
		}
	}		

	// question 15
	if(getObjValue(frmObj.udr_perm_mod)=="true") {
		if(getObjValue(frmObj.udr_perm_date)=="") {
			errItemList.push("Question 15: Please supply implementation date.");
		}
		if(getObjValue(frmObj.udr_perm_measure)=="") {
			errItemList.push("Question 15: 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 = 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_turnover_2009) == "")
		errItemList.push( "Question 1: You must supply turnover for 2009");

	// question 2
	if((frmObj.udr_term_2008.value.length == 0 ) || ( frmObj.udr_term_2009.value.length == 0 ))
		errItemList.push("Question 2:  You may not leave termination information blank.");

	// question 3
	if(frmObj.udr_salary.value.length == 0 )
		errItemList.push("Question 3:  You may not leave salary information blank.");

	// question 5
	if (!validateDesc(frmObj.udr_handbook, frmObj.udr_handbookReviewDate))
		errItemList.push("Question 5: You must supply the last review/update date.");

	// question 20
	if (!validateDesc(frmObj.udr_actual, frmObj.udr_actual_desc))
		errItemList.push("Question 20: You must supply actual layoff description.");
		
			// question 20
	if ((getObjValue(frmObj.udr_harass_investigated) == "true") 
		&& (getObjValue(frmObj.udr_memberAgencyInvestigate) == "")
		&& (getObjValue(frmObj.udr_thirdPartyInvestigate) == ""))
		errItemList.push("Question 23: You must indicate who performs the investigations.");
		


	/* --- 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 2
	if (!validateDesc(frmObj.udr_wharves, frmObj.udr_wharfLinearMiles)) {
		errItemList.push("Question 2: You must supply linear wharves/piers/docks/marinas miles or select 'Yes' if wharves/piers/docks/marinas miles supplied.");
		frmObj.udr_linear.select();
	}

	// question 3
	if (!validateDesc(frmObj.udr_lake, frmObj.udr_lake_qty)) {
		errItemList.push("Question 3: You must supply the number of lakes or select 'Yes' if number of lakes supplied.");
		frmObj.udr_linear.select();
	}

	// question 4
	if (!validateDesc(frmObj.udr_pools, frmObj.udr_swimmingPoolQty)) {
		errItemList.push("Question 4: You must supply the number of swimming pools or select 'Yes' if number of swimming pools 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 7
	if (!validateDesc(frmObj.udr_zoos, frmObj.udr_zoos_desc)) {
		errItemList.push("Question 7: You must supply the description of zoos or select 'Yes' if description 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 skate parks or select 'Yes' if skateparks supplied.");
		frmObj.udr_skatepark_qty.select();
	}


	// question 12
	if ((!validateDesc(frmObj.udr_stadium, frmObj.udr_stadium_qty)) && (!validateDesc(frmObj.udr_stadium, frmObj.udr_grandstandBleacherQty))){
		errItemList.push("Question 12: You must provide number of stadiums grandstands & bleachers or select 'Yes' if number supplied.");
		frmObj.udr_stadium_qty.select();
	}
	



	// question 13
	if (!validateDesc(frmObj.udr_watercraft, frmObj.udr_watercraft_desc)) {
		errItemList.push("Question 13: You must provide description or select 'Yes' if watercraft description supplied.");
		frmObj.udr_watercraft_desc.select();
	}

	// question 14
	if (!validateDesc(frmObj.udr_aircraft, frmObj.udr_aircraft_desc)) {
		errItemList.push("Question 14: You must provide description or select 'Yes' if aircraft description supplied.");
		frmObj.udr_aircraft_desc.select();
	}

	// question 15
	if (!validateDesc(frmObj.udr_water_facility, frmObj.udr_water_facility_desc)) {
		errItemList.push("Question 15: You must provide description or select 'Yes' if water facility description supplied.");
		frmObj.udr_water_facility_desc.select();
	}

	// question 16
	if (!validateDesc(frmObj.udr_parks, frmObj.udr_parkQty)) {
		errItemList.push("Question 16: You must enter the number of parks or select yes if the number has been entered.");
		frmObj.udr_parkQty.select();
	}

	// question 16
	if (!validateDesc(frmObj.udr_parks, frmObj.udr_parkArea)) {
		errItemList.push("Question 16: You must enter the total area of parks or select yes if the area has been entered.");
		frmObj.udr_parkArea.select();
	}

	// question 17
	if (!validateDesc(frmObj.udr_playgrounds, frmObj.udr_playGroundQty)) {
		errItemList.push("Question 17: You must provide number of playgrounds or select 'Yes' if playgrounds supplied.");
		frmObj.udr_playGroundQty.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 26
	if (!validateDesc(frmObj.udr_sidewalk, frmObj.udr_sidewalk_qty)) {
		errItemList.push("Question 26: You must provide quantity or select 'Yes' if sidewalks supplied." );
		frmObj.udr_sidewalk_qty.select();
	}


    // question 27
	if (getObjValue(frmObj.udr_maintenance)=="true") {
		if(frmObj.udr_maintenance_paved.value.length==0)
			errItemList.push("Question 27: Please supply paved value or select 'Yes' if supplied.");
		if(frmObj.udr_maintenance_unpaved.value.length==0)
			errItemList.push("Question 27: 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 27: Please supply paved or unpaved values if 'Yes' if supplied.");
	}

	// question 28
	if (!validateDesc(frmObj.udr_skiing, frmObj.udr_skiing_qty)) {
		errItemList.push("Question 28: 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_law_contract, frmObj.udr_law_contractName))
		errItemList.push("Question 30: You must provide the name of the agency or select 'Yes' if agency name supplied.");

	// question 31
	if (!validateDesc(frmObj.udr_fireServiceContract, frmObj.udr_fireServiceContractName))
		errItemList.push("Question 31: You must provide the name of the agency or select 'Yes' if agency name supplied.");

	
	
	
	// question 32
	if (!validateDesc(frmObj.udr_daycare, frmObj.udr_daycare_qty))
		errItemList.push("Question 33: You must provide quantity or select 'Yes' if daycare quantity supplied.");

	// question 32
	if (!validateDesc(frmObj.udr_daycare, frmObj.udr_daycare_desc))
		errItemList.push("Question 33: You must provide the description or select 'Yes' if description supplied.");

	// question 33
	if (!validateDesc(frmObj.udr_seniorCenters, frmObj.udr_seniorCenterQty))
		errItemList.push("Question 34: You must provide quantity or select 'Yes' if senior center quantity supplied.");

	// question 32
	if (!validateDesc(frmObj.udr_seniorCenters, frmObj.udr_seniorCenterDesc))
		errItemList.push("Question 34: You must provide the description or select 'Yes' if description supplied.");

	// question 34
	if (!validateDesc(frmObj.udr_parking, frmObj.udr_parking_qty))
		errItemList.push("Question 35: You must provide quantity or select 'Yes' if parking quantity supplied.");

	// question 35
	if (!validateDesc(frmObj.udr_animal_control, frmObj.udr_animal_control_budget))
		errItemList.push("Question 36: You must provide budget or select 'Yes' if budget supplied.");

	// question 36
	if (!validateDesc(frmObj.udr_redev, frmObj.udr_redev_budget))
		errItemList.push("Question 37: You must provide budget or select 'Yes' if budget supplied.");

	// question 37
	if (!validateDesc(frmObj.udr_housing, frmObj.udr_housing_budget))
		errItemList.push("Question 38: You must provide budget or select 'Yes' if budget supplied.");

	// question 37
	if (!validateDesc(frmObj.udr_housing, frmObj.udr_housing_buildings))
		errItemList.push("Question 38: You must provide the number of buildings or select 'Yes' if number supplied.");

	// question 37
	if (!validateDesc(frmObj.udr_housing, frmObj.udr_housing_units))
		errItemList.push("Question 38: You must provide the number of units or select 'Yes' if number supplied.");

  // question 38
	if (!validateDesc(frmObj.udr_chemical, frmObj.udr_chemicalSprayDesc))
		errItemList.push("Question 39: You must provide description or select 'Yes' if description supplied.");

	// question 38
	if (!validateDesc(frmObj.udr_terminal, frmObj.udr_terminal_desc))
		errItemList.push("Question 42: You must provide description or select 'Yes' if description supplied.");

	// question 41
	if (!validateDesc(frmObj.udr_terminal, frmObj.udr_terminal_resp))
		errItemList.push("Question 42: You must provide description or select 'Yes' if description supplied.");

	// question 42
	if (getObjValue(frmObj.udr_lic_police)=="true") {
		if(frmObj.udr_lic_police_qty.value.length==0)
			errItemList.push("Question 43: Please supply passenger vehicles or select 'Yes' if supplied.");
		if(frmObj.udr_lic_motor_qty.value.length==0)
			errItemList.push("Question 43: 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 43: Please supply passenger vehicles or select 'Yes' if supplied.");
	}

	// question 43
	if(getObjValue(frmObj.udr_private_passenger)=="true") {
		if(frmObj.udr_private_passenger_qty.value.length==0)
			errItemList.push("Question 44: Please supply private passenger vehicles or select 'Yes' if vehicles supplied.");
	} else {
		if(frmObj.udr_private_passenger_qty.value !="0")
			errItemList.push("Question 44: Please supply private passenger vehicles or select 'Yes' if vehicles supplied.");
	}


	// question 44
	if(getObjValue(frmObj.udr_commercial_light)=="true") {
		if(frmObj.udr_commercial_light_pickup.value.length==0)
			errItemList.push("Question 45: Please supply private pickup vehicles or select 'Yes' if light pickup supplied.");
		if(frmObj.udr_commercial_light_ambulance.value.length==0)
			errItemList.push("Question 45: 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 45: Please supply private pickup vehicles or select 'Yes' if light pickup supplied.");
		if(frmObj.udr_commercial_light_ambulance.value !="0")
			errItemList.push("Question 45: Please supply ambulance or rescue vehicles or select 'Yes' if ambulances or rescue vehicles supplied.");
	}


	// question 45
	if(getObjValue(frmObj.udr_commercial_medium)=="true") {
		if(frmObj.udr_commercial_medium_qty.value.length==0)
			errItemList.push("Question 46: Please supply medium passenger vehicles or select 'Yes' if passenger vehichles supplied.");
	} else {
		if(frmObj.udr_commercial_medium_qty.value !="0")
			errItemList.push("Question 46: Please supply medium passenger vehicles or select 'Yes' if passenger vehichles supplied.");
	}

	// question 46
	if(getObjValue(frmObj.udr_commercial_heavy)=="true") {
		if(frmObj.udr_commercial_heavy_refuse.value.length==0)
			errItemList.push("Question 47: 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 47: 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 47: Please supply number of trucks or select 'Yes' if trucks supplied.");
		if(frmObj.udr_commercial_heavy_buses.value.length==0)
			errItemList.push("Question 47: Please supply number of buses or select 'Yes' if buses supplied.");
		if(frmObj.udr_commercial_heavy_fire_other.value.length==0)
			errItemList.push("Question 47: 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 47: Please supply number of refuse vehicles or select 'Yes' if refuse vehicle supplied.");
		if(frmObj.udr_commercial_heavy_fire.value !="0")
			errItemList.push("Question 47: 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 47: Please supply number of trucks or select 'Yes' if trucks supplied.");
		if(frmObj.udr_commercial_heavy_buses.value !="0")
			errItemList.push("Question 47: Please supply number of buses or select 'Yes' if buses supplied.");
		if(frmObj.udr_commercial_heavy_fire_other.value != "0")
			errItemList.push("Question 47: 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 47
	if (!validateDesc(frmObj.udr_subsidence, frmObj.udr_subsidence_desc))
		errItemList.push("Question 48: You must provide description or select 'Yes' if description supplied.");

	// question 49
	if (!validateDesc(frmObj.udr_soil_extraction, frmObj.udr_soil_desc))
		errItemList.push("Question 50: You must provide description or select 'Yes' if extraction 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("If you have no OSHA violations please check the box to indicate this.");
			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 (!validateDesc(frmObj.udr_rail, frmObj.udr_rail_miles))
		    errItemList.push("Question 2: You must provide the number of miles or select 'Yes' if miles supplied.");


		if (!validateDesc(frmObj.udr_otherRailway, frmObj.udr_otherRailwayDesc))
		    errItemList.push("Question 2: You must provide the the description for other or select 'Other' if description supplied.");


	if(getObjValue(frmObj.udr_rail) == "true" ) {
				
		if ( frmObj.udr_pedestrianCrossingQty.value.length == 0 ) {
			errItemList.push("Question 2:  Rail Exposure values may not be blank (they may contain zero values)");
		}
		
			if ( frmObj.udr_vehicleCrossingQty.value.length == 0 ) {
			errItemList.push("Question 2:  Rail Exposure values may not be blank (they may contain zero values)");
		}


	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 (!validateDesc(frmObj.udr_mini_bus, frmObj.udr_mini_bus_qty))
		    errItemList.push("Question 3: You must provide the the number of minibuses or select 'Yes' if number supplied.");


	
			if (!validateDesc(frmObj.udr_dial, frmObj.udr_dialDesc))
		    errItemList.push("Question 4: You must provide the the description or select 'Yes' if description supplied.");


		if (!validateDesc(frmObj.udr_airport_owned, frmObj.udr_airportOwnedDesc))
		    errItemList.push("Question 5: You must provide the the description or select 'Yes' if 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_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 frmValidate_tester(frmObj)
{
	bValid = true; // default to true, we set to false when validation fails
		

	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 2010 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
}

