
function validateRequiredInputIfSelectYes(control, othercontrol, message)
{
    if (!control)
    {
        return 'RequiredInput: No such control ' + message;
    }

    if (!othercontrol)
    {
        return 'RequiredInput: No such control ' + message;
    }

    var result = '';

    if (othercontrol.value == 'y')
    {
        result = validateRequiredInput(control, message);
    }

    return result;
}

function validateRequiredInputIfOtherNonNull(control, othercontrol, message)
{
    if (!control)
    {
        return 'RequiredInput: No such control ' + message;
    }

    if (!othercontrol)
    {
        return 'RequiredInput: No such control ' + message;
    }

    var result = '';

    if (othercontrol.value != '')
    {
        result = validateRequiredInput(control, message);
    }

    return result;
}

function validateRequiredInputIfCheckboxChecked(control, badvalue, checkbox, invert, message)
{
    if (!control)
    {
        return 'RequiredInput: No such control ' + message;
    }

    if (!checkbox)
    {
        return 'RequiredInput: No such control ' + message;
    }

    if ((checkbox.checked && !invert) || (!checkbox.checked && invert))
    {
        if (control.value == badvalue) return message;
    }

    return '';

}

function validateRequiredInputIfRadioSelected(control, badvalue, radio, radiovalue, message)
{
    if (!control)
    {
        return 'RequiredInput: No such control ' + message;
    }

    if (!radio)
    {
        return 'RequiredInput: No such control ' + message;
    }

    for (i = 0; i < radio.length; i++)
    {
        if (radio[i].checked == true) break;
    }

    if (radio[i].value != radiovalue) return '';

    if (control.value == badvalue) return message;

    return '';
}

function validateEmailIfCheckBoxChecked(control, checkbox, message)
{
    if (!control)
    {
        return 'RequiredInput: No such control ' + message;
    }

    if (!checkbox)
    {
        return 'RequiredInput: No such control ' + message;
    }

    if (checkbox.checked)
    {
        return validateEmailField(control, message);
    }

    return '';
}

function validateInstiHirePassword(newPassword, verifyPassword, oldPassword, minLen, minNums)
{
    var result = '';

    if (!newPassword)
    {
        return 'Unable to validate password without password input';
    }

    if (!verifyPassword)
    {
        return 'Unable to validate password without verify password input';
    }

    var val = newPassword.value;
    var verVal = verifyPassword.value;
    var oldVal = oldPassword.value;

    if (val != verVal)
    {
        result += 'New password and Verify passwords do not match';
    }


    if (val == oldVal)
    {
        if (result != '') result += '\n';
        result += 'Your new password can not be the same as your existing password';
    }

    if (val.length < minLen)
    {
        if (result != '') result += '\n';
        result += 'Your company policy requires that passwords contain at least ' + minLen + ' characters';
    }

    if (minNums > 0)
    {
        var cnt = 0;
        var digits = "1234567890";

        for (i = 0; i < val.length; i++)
        {
            if (digits.indexOf(val.charAt(i)) != -1) { cnt++; }
        }

        if (cnt < minNums)
        {
            if (result != '') result += '\n';
            result += 'Your company policy requires that passwords contain at least ' + minNums + ' numbers';
        }
    }

    return result;
}