﻿function CheckResidencyRows(personType, personTypeDesc, Errors, line)
{
    var isValid = true;
    var hasData = HasValue(personType + 'ResAddr' + line, false) ||
        HasValue(personType + 'ResCity' + line, false) ||
        HasValue(personType + 'ResSt' + line, false) ||
        HasValue(personType + 'ResZip' + line, false) ||
        HasValue(personType + 'ResYears' + line, false) ||
        HasValue(personType + 'ResMonths' + line, false);
    if (hasData)
    {
        if (!HasValue(personType + 'ResYears' + line, false))
        {
            $(personType + 'ResYears' + line).val('0');
        }
        if (!HasValue(personType + 'ResMonths' + line, false))
        {
            $(personType + 'ResMonths' + line).val('0');
        }
    }
    var isComplete = HasValue(personType + 'ResAddr' + line, true) &&
        HasValue(personType + 'ResCity' + line, true) &&
        HasValue(personType + 'ResSt' + line, true) &&
        HasValue(personType + 'ResZip' + line, true) &&
        HasValue(personType + 'ResYears' + line, true) &&
        HasValue(personType + 'ResMonths' + line, true);
    if (hasData && !isComplete)
    {
        isValid = false;
        Errors[Errors.length] = 'Please Enter Entire ' + personTypeDesc + ' Line ' + line + ' Residency';
    }
    if (!hasData || isComplete)
    {
        $(personType + 'ResAddr' + line).removeClass('input-validation-error');
        $(personType + 'ResCity' + line).removeClass('input-validation-error');
        $(personType + 'ResSt' + line).removeClass('input-validation-error');
        $(personType + 'ResZip' + line).removeClass('input-validation-error');
        $(personType + 'ResYears' + line).removeClass('input-validation-error');
        $(personType + 'ResMonths' + line).removeClass('input-validation-error');
    }
    return isValid;
}
function ValidateResidency(personType, personTypeDesc, Errors, years, months)
{
    var isValid = true;
    if (!HasValue(personType + 'ResAddr1', true))
    {
        isValid = false;
        Errors[Errors.length] = 'Please Enter ' + personTypeDesc + ' Line 1 Residence Address';
    }
    if (!HasValue(personType + 'ResCity1', true))
    {
        isValid = false;
        Errors[Errors.length] = 'Please Enter ' + personTypeDesc + ' Line 1 Residence City';
    }
    if (!HasValue(personType + 'ResSt1', true))
    {
        isValid = false;
        Errors[Errors.length] = 'Please Enter ' + personTypeDesc + ' Line 1 Residence State';
    }
    if (!HasValue(personType + 'ResZip1', true))
    {
        isValid = false;
        Errors[Errors.length] = 'Please Enter ' + personTypeDesc + ' Line 1 Residence Zip Code';
    }
    if (HasValue(personType + 'ResZip1', true) && !ValidZipCode(personType + 'ResZip1', true))
    {
        isValid = false;
        Errors[Errors.length] = 'Please Enter ' + personTypeDesc + ' Line 1 Residence Zip Code in the format "99999" or "99999-9999"';
    }
    if (!CheckResidencyRows(personType, personTypeDesc, Errors, '2'))
    {
        isValid = false;
    }
    if (!CheckYearsAndMonths(personType, personTypeDesc, Errors, true, '1', 'Res', 'Residence'))
    {
        isValid = false;
    }
    if (HasValue(personType + 'ResZip2', false) && !ValidZipCode(personType + 'ResZip2', true))
    {
        isValid = false;
        Errors[Errors.length] = 'Please Enter ' + personTypeDesc + ' Line 2 Residence Zip Code in the format "99999" or "99999-9999"';
    }
    if (!CheckYearsAndMonths(personType, personTypeDesc, Errors, false, '2', 'Res', 'Residence'))
    {
        isValid = false;
    }
    if (!CheckResidencyRows(personType, personTypeDesc, Errors, '3'))
    {
        isValid = false;
    }
    if (!CheckYearsAndMonths(personType, personTypeDesc, Errors, false, '3', 'Res', 'Residence'))
    {
        isValid = false;
    }
    if (HasValue(personType + 'ResZip3', false) && !ValidZipCode(personType + 'ResZip3', true))
    {
        isValid = false;
        Errors[Errors.length] = 'Please Enter ' + personTypeDesc + ' Line 3 Residence Zip Code in the format "99999" or "99999-9999"';
    }
    if (!IsTotalAtLeastXMonths(personType + 'ResYears1', personType + 'ResMonths1', personType + 'ResYears2', personType + 'ResMonths2', personType + 'ResYears3', personType + 'ResMonths3', months))
    {
        isValid = false;
        Errors[Errors.length] = 'Please Enter ' + personTypeDesc + ' residence information for at least the past ' + years + 'Year';
        $(personType + 'ResYears1').addClass('input-validation-error');
        $(personType + 'ResMonths1').addClass('input-validation-error');
    }
    return isValid;
}
