var dFilterStep
function dFilterStrip(dFilterTemp, dFilterMask) {
    dFilterMask = replace(dFilterMask, '#', '');
    for (dFilterStep = 0; dFilterStep < dFilterMask.length++; dFilterStep++) {
        dFilterTemp = replace(dFilterTemp, dFilterMask.substring(dFilterStep, dFilterStep + 1), '');
    }
    return dFilterTemp;
}

function dFilterMax(dFilterMask) {
    dFilterTemp = dFilterMask;
    for (dFilterStep = 0; dFilterStep < (dFilterMask.length + 1); dFilterStep++) {
        if (dFilterMask.charAt(dFilterStep) != '#') {
            dFilterTemp = replace(dFilterTemp, dFilterMask.charAt(dFilterStep), '');
        }
    }
    return dFilterTemp.length;
}

function dFilter(key, textbox, dFilterMask) {
    dFilterNum = dFilterStrip(textbox.value, dFilterMask);

    if (key == 9) {
        return true;
    }
    else if (key == 8 && dFilterNum.length != 0) {
        dFilterNum = dFilterNum.substring(0, dFilterNum.length - 1);
    }
    else if (((key > 47 && key < 58) || (key > 95 && key < 106)) && dFilterNum.length < dFilterMax(dFilterMask)) {
        switch (key) {
            case 96: dFilterNum = dFilterNum + "0"; break;
            case 97: dFilterNum = dFilterNum + "1"; break;
            case 98: dFilterNum = dFilterNum + "2"; break;
            case 99: dFilterNum = dFilterNum + "3"; break;
            case 100: dFilterNum = dFilterNum + "4"; break;
            case 101: dFilterNum = dFilterNum + "5"; break;
            case 102: dFilterNum = dFilterNum + "6"; break;
            case 103: dFilterNum = dFilterNum + "7"; break;
            case 104: dFilterNum = dFilterNum + "8"; break;
            case 105: dFilterNum = dFilterNum + "9"; break;
            default: dFilterNum = dFilterNum + String.fromCharCode(key); break;
        }
    }

    var dFilterFinal = '';
    for (dFilterStep = 0; dFilterStep < dFilterMask.length; dFilterStep++) {
        if (dFilterMask.charAt(dFilterStep) == '#') {
            if (dFilterNum.length != 0) {
                dFilterFinal = dFilterFinal + dFilterNum.charAt(0);
                dFilterNum = dFilterNum.substring(1, dFilterNum.length);
            }
            else {
                dFilterFinal = dFilterFinal + "";
            }
        }
        else if (dFilterMask.charAt(dFilterStep) != '#') {
            dFilterFinal = dFilterFinal + dFilterMask.charAt(dFilterStep);
        }
        //		    dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),'');
    }


    textbox.value = dFilterFinal;
    return false;
}

function replace(fullString, text, by) {
    // Replaces text with by in string
    var strLength = fullString.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return fullString;

    var i = fullString.indexOf(text);
    if ((!i) && (text != fullString.substring(0, txtLength))) return fullString;
    if (i == -1) return fullString;

    var newstr = fullString.substring(0, i) + by;

    if (i + txtLength < strLength)
        newstr += replace(fullString.substring(i + txtLength, strLength), text, by);

    return newstr;
}

function unallowableCalc() {
    //Calculates Rate Per Diem - Title IV-E = Unallowable Rate

    document.Form1.FosterUnallowableDiem.value = parseFloat(document.Form1.FosterRatePerDiem.value) - parseFloat(document.Form1.FosterAllowableIVe.value);
}

var isie = (navigator.userAgent.toLowerCase().indexOf('msie') != -1);
function getElement(id) {
    if (document.getElementById)
        return document.getElementById(id);
    else if (document.all)
        return document.all[id];
    return null;
}

function shrink(url, id, state) {
    var obj, display;
    if (obj = getElement('r' + id)) {
        if (state < 0)
            state = (obj.style.display != 'none') ? 1 : 0;
        obj.style.display = state ? 'none' : (((id == 'cust') || (id == 'media')) ? 'block' : (isie ? 'block' : 'table-row'));
    }
    if (obj = getElement('s' + id))
        obj.style.display = state ? 'inline' : 'none';
    if (obj = getElement('e' + id))
        obj.style.display = state ? 'none' : 'inline';
}

function help_click(id) {
    var help = getElement(id);
    if (help) {
        var visible = help.style.visibility;
        help.style.visibility = (visible == 'visible') ? 'hidden' : 'visible';
        var icon = getElement('i' + id.substring(1));
        if (icon)
            icon.className = "help_icon help_" + ((visible == 'visible') ? '' : 'no') + "help";
    }
}