﻿function cellSaveW2(cell, keepDisplay) {
    var cellNum = cell.substr(cell.length - 1);
    var employer = getElement("n0" + cellNum + "name");
    if(employer == "") {
        employer = "Employer not named";
        if(getElement("maritalStatus") == "married1") {
            employer = getElement("n0" + cellNum + "earner", true) + "'s W2";
        }
    }

    setElement("employer" + cellNum, "<a href='javascript:cellDisplay(\"W2Entry" + cellNum + "\", true);'>" + employer + "</a>");
    var wages = getElement("n0" + cellNum + W2Line[0]);
    setElement("wages" + cellNum, wages);
    var withholding = getElement("n0" + cellNum + withholdLine[0]);
    setElement("withholding" + cellNum, withholding);
    if(getElement("n0" + cellNum + "name") + getElement("n0" + cellNum + W2Line[0]) != "") {
        cellDisplay("W2Empty" + cellNum, false);
        cellDisplay("W2Filled" + cellNum, true);
    }
    var totalWages = 0;
    var totalWithholding = 0;
    var totalW2s = 0;
    var w;
    for (var i = 0; i <= 9; i++) {
        if (document.getElementById("n0" + i + "name")) {
            totalW2s++;
            w = getElement("n0" + i + W2Line[0]);
            if(w != "")
                totalWages += parseMoney(w);

            w = getElement("n0" + i + withholdLine[0]);
            if(w != "")
                totalWithholding += parseMoney(w);
        }
    }
    setElement("W2Num", "Totals for " + totalW2s + " W2" + (totalW2s > 1 ? "s " : " "));
    setElement("wagesTotal", totalWages);
    setElement("withholdingTotal", totalWithholding);
    document.getElementById("W2Num").style.color = "Black";
    cellDisplay("wagesLabel", true);
    cellDisplay("wagesTotal", true);
    cellDisplay("withholdingLabel", true);
    cellDisplay("withholdingTotal", true);
    cellDisplay(cell, keepDisplay);
}
function cellSaveInt(cell, keepDisplay) {
    var cellNum = cell.substr(cell.length - 1);
    var bank = getElement("n1" + cellNum + "name");
    if(bank == "")
        bank = "Bank not named";

    setElement("bank" + cellNum, "<a href='javascript:cellDisplay(\"intEntry" + cellNum + "\", true);'>" + bank + "</a>");
    var wages = getElement("n1" + cellNum + intLine[0]);
    setElement("interest" + cellNum, wages);
    var exempt = getElement("n1" + cellNum + exemptIntLine[0]);
    var withholding = getElement("n1" + cellNum + withholdLine[0]);
    if(parseMoney(exempt) > 0 || parseMoney(withholding) == 0 || withholding == "") {
        setElement("exemptLabel" + cellNum, "Exempt Interest: ");
        setElement("exemptInt" + cellNum, exempt);
    } else {
        setElement("exemptLabel" + cellNum, "Withholding: ");
        setElement("exemptInt" + cellNum, withholding);
    }
    if(getElement("n1" + cellNum + "name") + getElement("n1" + cellNum + intLine[0]) != "") {
        cellDisplay("intEmpty" + cellNum, false);
        cellDisplay("intFilled" + cellNum, true);
    }
    var totalInt = 0;
    var totalExempt = 0;
    var totalWithholding = 0;
    var total1099 = 0;
    var w;
    for (var i = 0; i <= 9; i++) {
        if (document.getElementById("n1" + i + "name")) {
            total1099++;
            w = getElement("n1" + i + intLine[0]);
            if(w != "")
                totalInt += parseMoney(w);

            w = getElement("n1" + i + exemptIntLine[0]);
            if(w != "")
                totalExempt += parseMoney(w);

            w = getElement("n1" + i + withholdLine[0]);
            if(w != "")
                totalWithholding += parseMoney(w);
        }
    }
    setElement("intNum", "Totals for " + total1099 + " Interest item" + (total1099 > 1 ? "s " : " "));
    setElement("intTotals", totalInt);
    if(totalExempt > 0 || totalWithholding == 0) {
        setElement("exemptIntLabel", "Exempt Interest: ");
        setElement("exemptIntTotal", totalExempt);
    } else {
        setElement("exemptIntLabel", "Withholding: ");
        setElement("exemptIntTotal", totalWithholding);
    }
    restoreTabs(3);
    cellDisplay("intTotal", true);
    cellDisplay(cell, keepDisplay);
}
function cellSaveUE(cell, keepDisplay) {
    var cellNum = cell.substr(cell.length - 1);
    var state = getElement("n2" + cellNum + "name");
    if(state == "")
        state = "State not named";

    setElement("state" + cellNum, "<a href='javascript:cellDisplay(\"ueEntry" + cellNum + "\", true);'>" + state + "</a>");
    var wages = getElement("n2" + cellNum + ueLine[0]);
    setElement("UE" + cellNum, wages);
    var withholding = getElement("n2" + cellNum + withholdLine[0]);
    setElement("withholdUE" + cellNum, withholding);
    if(getElement("n2" + cellNum + "name") + getElement("n2" + cellNum + ueLine[0]) != "") {
        cellDisplay("ueEmpty" + cellNum, false);
        cellDisplay("ueFilled" + cellNum, true);
    }
    var totalUE = 0;
    var totalWithholding = 0;
    var total1099 = 0;
    var w;
    for (var i = 0; i <= 9; i++) {
        if (document.getElementById("n2" + i + "name")) {
            total1099++;
            w = getElement("n2" + i + ueLine[0]);
            if(w != "")
                totalUE += parseMoney(w);

            w = getElement("n2" + i + withholdLine[0]);
            if(w != "") totalWithholding += parseMoney(w);
        }
    }
    setElement("ueNum", "Totals for " + total1099 + " Unemployment item" + (total1099 > 1 ? "s " : " "));
    setElement("ueTotals", totalUE);
    setElement("withholdUETotal", totalWithholding);
    restoreTabs(4);
    cellDisplay("ueTotal", true);
    cellDisplay(cell, keepDisplay);
}
function cellSaveSS(cell, keepDisplay) {
    var cellNum = cell.substr(cell.length - 1);
    var payer = getElement("n6" + cellNum + "type", true);
    if(getElement("maritalStatus") == "married1")
        payer = getElement("n6" + cellNum + "earner", true) + "'s " + payer;

    setElement("ssEarner" + cellNum, "<a href='javascript:cellDisplay(\"ssEntry" + cellNum + "\", true);'>" + payer + "</a>");
    var wages = getElement("n6" + cellNum + ssLine[0]);
    setElement("ss" + cellNum, wages);
    var withholding = getElement("n6" + cellNum + withholdLine[0]);
    setElement("withholdSS" + cellNum, withholding);
    if(getElement("n6" + cellNum + ssLine[0]) != "") {
        cellDisplay("ssEmpty" + cellNum, false);
        cellDisplay("ssFilled" + cellNum, true);
    }
    var totalSS = 0;
    var totalRR = 0;
    var totalWithholding = 0;
    var total1099 = 0;
    var w;
    for (var i = 0; i <= 9; i++) {
        if(document.getElementById("n6" + i + "type")) {
            total1099++;
            w = getElement("n6" + i + ssLine[0]);
            if(w != "") {
                if(getElement("n6" + i + "type") == "RR") totalRR += parseMoney(w);
                else totalSS += parseMoney(w);
            }
            w = getElement("n6" + i + withholdLine[0]);
            if(w != "") totalWithholding += parseMoney(w);
        }
    }
    setElement("ssNum", "Totals for " + total1099 + " Social Security item" + (total1099 > 1 ? "s " : " "));
    if(totalRR > 0 && totalWithholding == 0) {
        setElement("ssTotals", totalSS);
        setElement("ssWithholdLabel", "Railroad Retirement: ");
        setElement("withholdSSTotal", totalRR);
    } else {
        setElement("ssTotals", parseFloat(totalSS + totalRR));
        setElement("ssWithholdLabel", "Withholding: ");
        setElement("withholdSSTotal", totalWithholding);
    }
    restoreTabs(5);
    cellDisplay("ssTotal", true);
    cellDisplay(cell, keepDisplay);
}
function cellSaveDiv(cell, keepDisplay) {
    var cellNum = cell.substr(cell.length - 1);
    var payer = getElement("n3" + cellNum + "name");
    if(payer == "")
        payer = "Payer not named";

    setElement("payer" + cellNum, "<a href='javascript:cellDisplay(\"divEntry" + cellNum + "\", true);'>" + payer + "</a>");
    var wages = getElement("n3" + cellNum + dividendLine[0]);
    var exempt = getElement("n3" + cellNum + qualDividendLine[0]);
    if (parseFloat(exempt) > 0 && getElement("n3" + cellNum + "ownership") > "1") {
        cellDisplay("qualDivWarn3" + cellNum, true);
        exempt = 0;
    } else
        cellDisplay("qualDivWarn3" + cellNum, false);

    setElement("dividend" + cellNum, wages);
    var withholding = getElement("n3" + cellNum + withholdLine[0]);
    if(parseMoney(exempt) > 0 || parseMoney(withholding) == 0 || withholding == "") {
        setElement("qualifiedLabel" + cellNum, "Qualified Dividends: ");
        setElement("qualDiv" + cellNum, exempt);
    } else {
        setElement("qualifiedLabel" + cellNum, "Withholding: ");
        setElement("qualDiv" + cellNum, withholding);
    }
    if(getElement("n3" + cellNum + "name") + getElement("n3" + cellNum + dividendLine[0]) != "") {
        cellDisplay("divEmpty" + cellNum, false);
        cellDisplay("divFilled" + cellNum, true);
    }
    var totalDiv = 0;
    var totalExempt = 0;
    var totalWithholding = 0;
    var total1099 = 0;
    var w;
    for (var i = 0; i <= 9; i++) {
        if (document.getElementById("n3" + i + "name")) {
            total1099++;
            w = getElement("n3" + i + dividendLine[0]);
            if(w != "")
                totalDiv += parseMoney(w);

            w = getElement("n3" + i + qualDividendLine[0]);
            if(w != "") {
                if(getElement("n3" + i + "ownership") <= "1")
                    totalExempt += parseMoney(w);
            }

            w = getElement("n3" + i + withholdLine[0]);
            if(w != "")
                totalWithholding += parseMoney(w);
        }
    }
    setElement("divNum", "Totals for " + total1099 + " Dividend item" + (total1099 > 1 ? "s " : " "));
    setElement("divTotals", totalDiv);
    if(totalExempt > 0 || totalWithholding == 0) {
        setElement("qualDivLabel", "Qualified Dividends: ");
        setElement("qualDivTotal", totalExempt);
    } else {
        setElement("qualDivLabel", "Withholding: ");
        setElement("qualDivTotal", totalWithholding);
    }
    restoreTabs(6);
    cellDisplay("divTotal", true);
    cellDisplay(cell, keepDisplay);
}
function cellSaveDeduct(cell, keepDisplay) {
    var cellNum = cell.substr(cell.length - 1);
    var linkText = getElement("deductEmpty" + cellNum).substr(4);
    linkText = linkText.substr(0, linkText.indexOf("<input"));
    if(getElement("maritalStatus") == "married1" || linkText.indexOf("Tuition") != -1) {
        linkText = getElement("n4" + cellNum + "earner", true) + "'s " + linkText;
        if(linkText.substr(0, 3) == "'s ") linkText = linkText.substr(3);
    }
    setElement("deductFilled" + cellNum, "<a href='javascript:cellDisplay(\"deductEntry" + cellNum + "\", true);'>" + linkText + "</a>");
    var wages;
    var entry;
    var warnCell;
    if(document.getElementById("n4" + cellNum + IRALine[0])) {
        warnCell = "IRAWarn4" + cellNum;
        cellDisplay(warnCell, false);
        entry = getElement("n4" + cellNum + IRALine[0]);
        if(getElement("n4" + cellNum + "IRADate") == "") {
            setElement(warnCell, "Please select a contribution date!");
            cellDisplay(warnCell, true);
            wages = 0;
        } else if(getElement("n4" + cellNum + "IRADeductible") == "true") {
            wages = Math.min(parseMoney(entry), IRALimit[1]);
            if(parseMoney(entry) > IRALimit[1]) {
                setElement(warnCell, "This IRA contribution exceeds the maximum deductible amount allowed by the IRS.");
                cellDisplay(warnCell, true);
            }
        } else {
            setElement(warnCell, "This IRA deduction does not qualify based on the selections you made.");
            cellDisplay(warnCell, true);
            wages = 0;
        }
    } else if(document.getElementById("n4" + cellNum + studentLine[0])) {
        entry = getElement("n4" + cellNum + studentLine[0]);
        warnCell = "studentWarn4" + cellNum;
        if(getElement("n4" + cellNum + "studentLoad") == "Yes" && getElement("n4" + cellNum + "studentCover") == "Yes" && getElement("n4" + cellNum + "studentDependent") > "0" && getElement("n4" + cellNum + "studentProgram") > "0") {
            wages = Math.min(parseMoney(entry), studentLimit);
            setElement(warnCell, "This Student Loan Interest deduction exceeds the maximum deductible amount allowed by the IRS");
            cellDisplay(warnCell, (parseMoney(entry) > studentLimit));
        } else {
            wages = "0";
            setElement(warnCell, "You do not qualify for the Student Loan Interest deduction based on the selections you made");
            cellDisplay(warnCell, true);
        }
    } else if(document.getElementById("n4" + cellNum + educatorLine[0])) {
        entry = getElement("n4" + cellNum + educatorLine[0]);
        warnCell = "educatorWarn4" + cellNum;
        if(getElement("n4" + cellNum + "educatorGrade") == "Yes" && getElement("n4" + cellNum + "educatorHours") == "Yes") {
            wages = Math.min(parseMoney(entry), educatorLimit);
            setElement(warnCell, "This Educator Expense deduction exceeds the maximum deductible amount allowed by the IRS");
            cellDisplay(warnCell, (parseMoney(entry) > educatorLimit));
        } else {
            wages = "0";
            setElement(warnCell, "You do not qualify for the Educator Expense deduction based on the selections you made");
            cellDisplay(warnCell, true);
        }
    } else if(document.getElementById("n4" + cellNum + tuitionLine[0])) {
        entry = getElement("n4" + cellNum + tuitionLine[0]);
        warnCell = "tuitionWarn4" + cellNum;
        if(getElement("n4" + cellNum + "courseStart") == "Deductible") {
            wages = Math.min(parseMoney(entry), tuitionLimit);
            setElement(warnCell, "This Tuition deduction exceeds the maximum deductible amount allowed by the IRS.");
            cellDisplay(warnCell, parseMoney(entry) > tuitionLimit);
        } else {
            wages = "0";
            setElement(warnCell, "You do not qualify for the Tuition and Fees deduction because the course did not begin within the proper time period.");
            cellDisplay(warnCell, true);
        }
    }
    setElement("deductAmt" + cellNum, wages);
    if(wages != "") {
        cellDisplay("deductEmpty" + cellNum, false);
        cellDisplay("deductFilled" + cellNum, true);
    }
    var totalDeduct = 0;
    var totalIRA = 0;
    var totalStudent = 0;
    var totalEducator = 0;
    var totalTuition = 0;
    var deductionTypes = 0;
    var biggestName = "";
    var biggestAmt = 0;
    var w;
    for (var i = 0; i <= 9; i++) {
        if(document.getElementById("n4" + i + IRALine[0])) {
            totalDeduct++;
            w = Math.min(parseMoney(getElement("n4" + i + IRALine[0])), IRALimit[1]);
            if(w != "") {
                if(getElement("n4" + i + "IRADeductible") == "true")
                    totalIRA += parseMoney(w);
            }
        } else if(document.getElementById("n4" + i + studentLine[0])) {
            totalDeduct++;
            w = Math.min(parseMoney(getElement("n4" + i + studentLine[0])), studentLimit);
            if(w != "")
                totalStudent += parseMoney(w);
        } else if(document.getElementById("n4" + i + educatorLine[0])) {
            totalDeduct++;
            w = Math.min(parseMoney(getElement("n4" + i + educatorLine[0])), educatorLimit);
            if(w != "")
                totalEducator += parseMoney(w);
        } else if(document.getElementById("n4" + i + tuitionLine[0])) {
            totalDeduct++;
            w = Math.min(parseMoney(getElement("n4" + i + tuitionLine[0])), tuitionLimit);
            if(w != "")
                totalTuition += parseMoney(w);
        }
    }
    if(totalIRA > 0) {
        deductionTypes++;
        biggestName = "IRA";
        biggestAmt = totalIRA;
    }
    if(totalStudent > 0) {
        deductionTypes++;
        if(totalStudent > biggestAmt) {
            biggestName = "Student Loan Interest";
            biggestAmt = totalStudent;
        }
    }
    if(totalEducator > 0) {
        deductionTypes++;
        if(totalEducator > biggestAmt) {
            biggestName = "Educator Expense";
            biggestAmt = totalEducator;
        }
    }
    if(totalTuition > 0) {
        deductionTypes++;
        if(totalTuition > biggestAmt) {
            biggestName = "Tuition and Fees";
            biggestAmt = totalTuition;
        }
    }
    setElement("deductNum", "Totals for " + totalDeduct + " Deduction" + (totalDeduct > 1 ? "s " : " "));
    if(totalDeduct == 0) {
        setElement("deductLabel1", "");
        setElement("deductTotal1", "");
        setElement("deductLabel2", "");
        setElement("deductTotal2", "");
    } else if(deductionTypes > 2) {
        setElement("deductLabel1", biggestName + " Deduction total");
        setElement("deductTotal1", biggestAmt);
        setElement("deductLabel2", "Other deductions total");
        setElement("deductTotal2", totalIRA + totalStudent + totalEducator + totalTuition - biggestAmt);
    } else {
        w = 1;
        if(totalIRA > 0) {
            setElement("deductLabel" + w, "IRA Deduction total");
            setElement("deductTotal" + w, totalIRA);
            w++;
        }
        if(totalStudent > 0) {
            setElement("deductLabel" + w, "Student Loan Interest total");
            setElement("deductTotal" + w, totalStudent);
            w++;
        }
        if(totalEducator > 0) {
            setElement("deductLabel" + w, "Educator Expense total");
            setElement("deductTotal" + w, totalEducator);
            w++;
        }
        if(totalTuition > 0) {
            setElement("deductLabel" + w, "Tuition and Fees total");
            setElement("deductTotal" + w, totalTuition);
        }
    }
    cellDisplay("deductTotal", true);
    cellDisplay(cell, keepDisplay);
}
function translateAge(age) {
    age = age.replace("<", "Less than ");
    age = age.replace(">", "Greater than ");
    if(age.indexOf("to") != -1)
        age = "Between " + age.replace("to", " and ");
    return age;
}
function cellSaveFiler(cell, keepDisplay) {
    var cellNum = (cell == "primary") ? 0 : 1;
    var filerName = getElement("filerNameInput" + cellNum);
    var infoCell = 0;
    if(filerName == "")
        filerName = (cellNum == 0) ? "Primary Taxpayer" : "Spouse";
    if(cellNum == 0)
        setElement("filerName" + cellNum, "<a href='javascript:cellDisplay(\"primary\", true);'>" + filerName + "</a>");
    else
        setElement("filerName" + cellNum, "<a href='javascript:cellDisplay(\"spouse\", true);'>" + filerName + "</a>");

    if(getElement("maritalStatus") == "") {
        setElement("filerInfo" + cellNum + infoCell, "You must select the correct marital status!");
        infoCell++;
    }
    if(getElement("canBeClaimed" + cellNum) == "") {
        setElement("filerInfo" + cellNum + infoCell, "You must decide if this person can be claimed on another return!");
        infoCell++;
    }
    if(infoCell < 2 && getElement("age" + cellNum) == "") {
        setElement("filerInfo" + cellNum + infoCell, "You must select the correct age range!");
        infoCell++;
    }
    if(infoCell < 2 && cell=="primary" && getElement("zip") == "" && getElement("state") == "") {
        setElement("filerInfo" + cellNum + infoCell, "You must either supply a zip code or a state!");
        infoCell++;
    }
    if(infoCell < 2 && getElement("canBeClaimed" + cellNum) == "Unsure" && 
        (getElement("unsure1" + cellNum) == "" || getElement("unsure2" + cellNum) == "" || getElement("unsure3" + cellNum) == "" || getElement("unsure4" + cellNum) == "")) {
        setElement("filerInfo" + cellNum + infoCell, "More information is required to figure out if somebody else can claim you as a dependent!");
        infoCell++;
    } else if(getElement("canBeClaimed" + cellNum) == "Unsure") {
        if(getElement("unsure1" + cellNum) == "NotDependent" || getElement("unsure2" + cellNum) == "NotDependent") {
            setElement("canBeClaimed" + cellNum, "No");
            cellDisplay("showIfUnsure" + cellNum, false);
        } else {
            var u3 = getElement("unsure3" + cellNum);
            var u4 = getElement("unsure4" + cellNum);
            var age = getElement("age" + cellNum);
            if(u4 == "No" || u3 == "Disabled" || age == "<18" || (age == "19to23" && u3 == "Student")) {
                setElement("canBeClaimed" + cellNum, "Yes");
                cellDisplay("showIfUnsure" + cellNum, false);
            } else {
                setElement("filerInfo" + cellNum + infoCell, "Might be claimed as a dependent on another's tax return");
                infoCell++;
            }
        }
    }
    if(infoCell < 2 && getElement("canBeClaimed" + cellNum) == "Yes") {
        setElement("filerInfo" + cellNum + infoCell, "Can be claimed as a dependent on another's tax return");
        infoCell++;
    }
    if(infoCell < 2 && getElement("residency" + cellNum) == "nonRes") {
        setElement("filerInfo" + cellNum + infoCell, "U.S. resident 6 months or less");
        infoCell++;
    }
    if(infoCell < 2 && getElement("age" + cellNum).indexOf("70.5") != -1) {
        setElement("filerInfo" + cellNum + infoCell, "65 years old or older");
        infoCell++;
    }
    if(infoCell < 2 && getElement("blind" + cellNum) == "Yes") {
        setElement("filerInfo" + cellNum + infoCell, "Blind");
        infoCell++;
    }

    var label = "";
    var maritalStatus = getElement("maritalStatus");
    switch(maritalStatus) {
        case "married1" : label += "Married"; break;
        case "married2" : label += "Widowed, but filing as married"; break;
        case "widow" : label += "Widowed"; break;
        case "single" :
            if(getElement("residencyPay") == "Yes" || getElement("parentPay") == "Yes")
                label += "Single or divorced, but might qualify as head of household";
            else
                label += "Single or divorced";
            break;
    }
    setElement("filingSummary", label);
    document.getElementById("filingSummary").style.color = "Black";
    if (infoCell < 2) {
        label = "Marital Status: " + label;
        setElement("filerInfo" + cellNum + infoCell, label);
        infoCell++;
    }

    if(infoCell < 2) {
        setElement("filerInfo" + cellNum + "1", "Age Range: " + translateAge(getElement("age" + cellNum)));
    }
    cellDisplay("filerEmpty" + cellNum, false);
    cellDisplay("filerFilled" + cellNum, true);
    cellDisplay(cell, keepDisplay);
}
function cellSaveDependent(cell, keepDisplay) {
    var cellNum = cell.substr(cell.length - 1);
    var dependentName = getElement("n5" + cellNum + "name");
    var displayName = dependentName;
    var relationVal = getElement("n5" + cellNum + "relation");
    var relationType = getElement("n5" + cellNum + "relation", true);
    var gender = document.getElementById("n5" + cellNum + "gender").selectedIndex;
    var dependentTotal = 0;
    var disallowedTotal = 0;
    var errMsg = "";
    var errAddition = "";
    var age = getElement("n5" + cellNum + "DCOB");
    var SSN = getElement("n5" + cellNum + "SSN");
    age = getElement("n5" + cellNum + "DYOB" + age);
    //age = age.replace("<", "Less than ");
    age = age.replace(">", "Greater than ");
    if(age.indexOf("to") != -1) age = "Between " + age.replace("to", " and ");

    if(relationType.indexOf("/") != -1) {
        var relations = relationType.split("/");
        if(relations.length != gender)
            relationType = relations[gender];
    }
    if(displayName == "") displayName = getElement("n5" + cellNum + "SSN");

    if(displayName == "") displayName = relationType;

    if(dependentName == "") dependentName = "(s)he";

    errMsg = dependentQualifies(relationVal, "5" + cellNum, dependentName);

    if(getElement("maritalStatus") == "single") errAddition = "<br/>However, this person might qualify you for Head of Household status."
    setElement("dependentWarn5" + cellNum, (errMsg == "" ? "" : errMsg + errAddition));

    cellDisplay("dependentWarn5" + cellNum, (errMsg != ""));
    if(errMsg == "") {
        dependents[parseInt(cellNum)] = displayName;
        setElement("dependentInfo" + cellNum + "1", "Age: " + age);
        if(displayName != relationType)
            setElement("dependentInfo" + cellNum + "0", "Relation: " + relationType);
        else
            dependents[parseInt(cellNum)] += " in cell number " + (parseInt(cellNum) + 1);
        if(SSN != "") dependents[parseInt(cellNum)] += "¡" + SSN;
    } else {
        dependents[parseInt(cellNum)] = null;
        setElement("dependentInfo" + cellNum + "0", errMsg);
        if(relationType == "Not a relative" || displayName == relationType)
            setElement("dependentInfo" + cellNum + "1", "Age: " + age);
        else
            setElement("dependentInfo" + cellNum + "1", "Relation: " + relationType);
    }
    setElement("dependentName" + cellNum, "<a href='javascript:cellDisplay(\"dependentEntry" + cellNum + "\", true);'>" + displayName + "</a>");
    cellDisplay("dependentEmpty" + cellNum, false);
    cellDisplay("dependentFilled" + cellNum, true);
    for (var i = 0; i <= 9; i++) {
        if(document.getElementById("n5" + i + "name")) {
            if(getElement("dependentInfo" + i + "0").indexOf("Not a dependent") == -1 && getElement("dependentInfo" + i + "0").indexOf("You must select") == -1)
                dependentTotal++;
            else
                disallowedTotal++;
        }
        if(disallowedTotal > 0)
            setElement("dependentTotal", dependentTotal + " dependents and " + disallowedTotal + " disallowed dependents");
        else if(dependentTotal > 0)
            setElement("dependentTotal", dependentTotal + " dependents");
        
    }
    restoreTabs(7);
    cellDisplay("dependentTotal", true);
    cellDisplay(cell, keepDisplay);
}