function change_splitting(split) {
    var fields = document.forms[0].getElementsByTagName('input');
    for (var i = 0; i < fields.length; i++)
        if (fields[i].name.match(/_ehegatte$/))
            fields[i].parentNode.style.display = split ? '' : 'none';
    var headlines = document.getElementsByTagName('th');
    for (i = 0; i < headlines.length; i++)
        headlines[i].parentNode.style.display = split ? '' : 'none';
    var tds = document.getElementsByTagName('td');
    for (i = 0; i < tds.length; i++)
        if (tds[i].className == 'ehegatte')
            tds[i].style.display = split ? '' : 'none';
    var sonderausgaben = document.getElementById('sonderausgaben');
    if (sonderausgaben.value == (2 - split) * 36) {
        sonderausgaben.value = (split + 1) * 36;
        transfer(sonderausgaben);
    }
}

function filldefault(id, value) {
    var field = document.getElementById(id)
    if(field) {
        if (!field.value) {
            field.value = value;
            var p = field.parentNode;
            while (p.nodeName.toLowerCase() != 'fieldset' && p.nodeName.toLowerCase() != 'body')
                p = p.parentNode;
            calcoverview(p.id);
        }
    }
}

var fieldmap = new Object();
fieldmap.einkuenfte = 'nichtselbststaendigerarbeit';
fieldmap.werbungskosten = 'werbungskosten_nichtselbststaendig';
fieldmap.sonderausgaben = 'uebrige_sonderausgaben';
fieldmap.freibetraege = 'freibetrag_sonstige';
fieldmap.vorauszahlungen = 'vorauszahlung_lohnsteuer';
var set;

function showdetails(link) {
    document.getElementById('overview').style.display = 'none';
    var field = link.parentNode.parentNode.getElementsByTagName('input')[0];
    var newpage = 'fieldset_' + field.name;
    document.getElementById(newpage).style.display = 'block';
    set = newpage;

    //f�r eingebundene
    var tmp=document.getElementById('anmerkung');
    if (tmp){tmp.style.display='none';}
    tmp=document.getElementById('ergebnis');
    if (tmp){tmp.style.display='none';}  
}

var ajax_ignore_elem = new Array();
var ajax_id = 'estd';

find_label = function(field, error_collector) {
    if (error_collector) {
        var label = document.forms[0][field].parentNode.parentNode.firstChild;
        if (label.nodeType != 1)
            label = label.nextSibling;
        label = label.firstChild.data;
        if (/_ehegatte$/.test(field))
            label = label + ' Ehegatte';
        return label;
    }
    else {
        return document.forms[0][field].parentNode;
    }
}

domready.add(function() {
    var ovfields = document.getElementById('overview').getElementsByTagName('input');
    for (var i = 0; i < ovfields.length; i++) {
        ovfields[i].onkeyup = function() {
            transfer(this);
        }
    }
    filldefault('uebrige_sonderausgaben', 72);
    init_ajax();

    var ajax_processReqChange = processReqChange;
    processReqChange = function() {
        ajax_processReqChange();

        if (req.readyState == 4 && req.status == 200) {
            /* transfer error messages to the overview page here */
            for (var field in fieldmap) {
                var next_sibling = document.forms[0][fieldmap[field]].nextSibling;
                if (next_sibling && next_sibling.nodeType == 1 && next_sibling.className == 'error') {
                    document.forms[0][field].parentNode.appendChild(next_sibling.cloneNode(true));
                }

                if (! document.forms[0][fieldmap[field] + '_ehegatte'])
                    continue;
                next_sibling = document.forms[0][fieldmap[field] + '_ehegatte'].nextSibling;
                if (next_sibling && next_sibling.nodeType == 1 && next_sibling.className == 'error') {
                    document.forms[0][field + '_ehegatte'].parentNode.appendChild(next_sibling.cloneNode(true));
                }
            }
        }
    }
});

function transfer(source) {
    if (source.name.indexOf('_ehegatte') != -1)
        var target = fieldmap[ source.name.replace(/_ehegatte/, '') ] + '_ehegatte';
    else
        var target = fieldmap[ source.name ];
    if (target) {
        var field = document.forms[0].elements[target];
        if (field) {
            document.forms[0].elements[target].value = source.value;
            if (target.match(/^nichtselbststaendigerarbeit/))
                filldefault(target.replace('nichtselbststaendigerarbeit', 'werbungskosten_nichtselbststaendig'), 920);
        }
    }
}

function showoverview() {
    document.getElementById(set).style.display =  '';
    calcoverview(set);
    document.getElementById('overview').style.display = '';
    set = '';
    //f�r eingebundene
    var tmp=document.getElementById('anmerkung');
    if (tmp){tmp.style.display='block';}
    tmp=document.getElementById('ergebnis');
    if (tmp){tmp.style.display='block';}  
}

function calcoverview(field) {
    var overviewfieldname = field.replace(/^fieldset_/, '');
    var overviewfield = document.forms[0].elements[overviewfieldname];
    if (!overviewfield)
        return;
    /*for (var i = 0; i < overviewfield.length; i++) // fieldsets also get reported als form elements
        if (overviewfield[i].name == field) {
            overviewfield = overviewfield[i];
            break;
        }*/
    var fields = document.getElementById(field).getElementsByTagName('input');
    var sum = 0;
    var sum_ehegatte = 0;
    var disable = 0;
    for (var i = 0; i < fields.length; i++)
        if (fields[i].type == 'text' && fields[i].name.indexOf('kapitalvermoegen_dividenden') == -1) {
            var val = fields[i].value;
            if (val) {
                val = val.replace(/\D/g, '');
                if (! isNaN(parseInt(val))) {
                    if (fields[i].name != fieldmap[overviewfieldname] && fields[i].name != fieldmap[overviewfieldname] + '_ehegatte' && parseInt(val) != 0) // Zusatzdaten eingetragen
                        disable = 1;
                    if (fields[i].name.indexOf('ehegatte') != -1)
                        sum_ehegatte += parseInt(val)
                    else
                        sum += parseInt(val);
                }
            }
        }

    overviewfield.value = sum;
    var overviewfield_ehegatte = document.forms[0].elements[overviewfieldname + '_ehegatte'];
    if (overviewfield_ehegatte)
        overviewfield_ehegatte.value = sum_ehegatte;

    if (disable) {
        overviewfield.disabled = true;
        if (overviewfield_ehegatte)
            overviewfield_ehegatte.disabled = true;
        var tmp=document.getElementById('lnk_'+overviewfieldname);
        if (tmp){tmp.style.fontWeight='bold';}
    } else {
        overviewfield.disabled = false;
        if (overviewfield_ehegatte)
            overviewfield_ehegatte.disabled = false;
        var tmp=document.getElementById('lnk_'+overviewfieldname);
        if (tmp){tmp.style.fontWeight='normal';}
    }
}

function initoverviews() {
    for (var area in fieldmap)
        calcoverview(area);
}
