function onPageLoad() {
    elementsToApplyOn = MochiKit.DOM.getElementsByTagAndClassName("div", "help");
    MochiKit.Base.map(hideHelp, elementsToApplyOn );
    try {
        MochiKit.Style.hideElement('payment_edit');
        addElementClass(getElement('payment_edit'), "invisible");
        MochiKit.Style.hideElement('payment_edit_error');
        addElementClass(getElement('payment_edit_error'), "invisible");
    }
    catch (e) {}
    
}

function onPageLoadInhaber() {
    onPageLoad();
    try {
        requestInhaberList();
        MochiKit.Style.hideElement('inhaber_edit');
        addElementClass(getElement('inhaber_edit'), "invisible");
        MochiKit.Style.hideElement('inhaber_edit_error');
        addElementClass(getElement('inhaber_edit_error'), "invisible");
    }
    catch (e) {}
}

function showHelp (element_id) {
    elem = getElement(element_id);
    if (hasElementClass(elem, "invisible")) {
        MochiKit.Visual.blindDown(element_id);
        removeElementClass(elem, "invisible");
    }else {
        MochiKit.Visual.blindUp(element_id);
        addElementClass(elem, "invisible");
    };
}

function hideHelp (element_id) {
    MochiKit.Style.hideElement(element_id);
    addElementClass(getElement(element_id), "invisible");
}

function switchPaymentEditView() {
    showHelp('payment_view');
    showHelp('payment_edit');
}

function switchInhaberEditView() {
    showHelp('inhaber_list');
    showHelp('inhaber_edit');
}

function savePaymentEdit() {
    hideHelp('payment_edit_error');
    member_url = getElement('member_url').value;
    account_holder_edit = getElement('account_holder_edit').value;
    account_number_edit = getElement('account_number_edit').value;
    account_bank_number_edit = getElement('account_bank_number_edit').value;
    account_bank_name_edit = getElement('account_bank_name_edit').value;
    
    d = MochiKit.Async.doSimpleXMLHttpRequest(member_url + '/savePaymentInformation', 
                                              {
                                                  'account_holder':account_holder_edit,
                                                  'account_number':account_number_edit,
                                                  'account_bank_number':account_bank_number_edit,
                                                  'account_bank_name':account_bank_name_edit
                                              } );
    d.addCallback(handleSavePaymentResponse);
}

function handleSavePaymentResponse(res) {
    if (res.responseText == 'success') {
         getElement('account_holder_view').innerHTML = getElement('account_holder_edit').value;
         getElement('account_number_view').innerHTML = getElement('account_number_edit').value;
         getElement('account_bank_number_view').innerHTML = getElement('account_bank_number_edit').value;
         getElement('account_bank_name_view').innerHTML = getElement('account_bank_name_edit').value;
         switchPaymentEditView();
    }
    else {
        showHelp('payment_edit_error');
    }
};

function requestInhaberList(){
    d = MochiKit.Async.doSimpleXMLHttpRequest('tlxma_inhaber_list');
    d.addCallback(handleInhaberListResponse);
}

function handleInhaberListResponse(res){
    getElement('inhaber_list').innerHTML = res.responseText;
    hideHelp('inhaberliste');
    if (hasElementClass(getElement('inhaber_list'), "invisible")) { switchInhaberEditView(); }
}

function requestInhaberEdit(inhaber_url){
    logDebug('requestInhaberEdit');
    d = MochiKit.Async.doSimpleXMLHttpRequest(inhaber_url + '/tlxma_inhaber_edit');
    d.addCallback(handleInhaberEditResponse);
}

function handleInhaberEditResponse(res){
    var ie = getElement('inhaber_edit');
    var txt = res.responseText;
    ie.innerHTML = txt;
    logDebug('handleInhaberEditResponse');
    if (hasElementClass(ie, "invisible")) { switchInhaberEditView(); }
    logDebug('handleInhaberEditResponse');
}

function tlxmaInhaberASP(url, inhaber_id, template_id) {
    d = MochiKit.Async.doSimpleXMLHttpRequest(url + '/folder_position', {'position':'top', 'id':inhaber_id, 'template_id':template_id});
    d.addCallback(handletlxmaInhaberASPResponse);
}

function handletlxmaInhaberASPResponse(res) { requestInhaberList(); }

function tlxmaInhaberDelete(url, inhaber_id) {
    d = doSimpleXMLHttpRequest(url + '/manage_delObjects', {'ids':inhaber_id});
    d.addCallback(handletlxmaInhaberASPResponse);
}

function tlxmaEditSave() {
    /*
    var inhaber_id = getElement('inhaber_id').value;
    logDebug(inhaber_id);
    var full_name = getElement('full_name').value;
    logDebug(full_name);
    var company = getElement('company').value;
    logDebug(company);
    var address = getElement('address').value;
    logDebug(address);
    var zipcode = getElement('zipcode').value;
    logDebug(zipcode);
    var city = getElement('city').value;
    logDebug(city);
    var country = getElement('country').value;
    logDebug(country);
    var telephone = getElement('telephone').value;
    logDebug(telephone);
    var facsimile = getElement('facsimile').value;
    logDebug(facsimile);
    var mobile = getElement('mobile').value;
    logDebug(mobile);
    var email = getElement('email').value;
    logDebug(email);
    d = doSimpleXMLHttpRequest('tlxSaveMI', 
        {
            'inhaber_id':        inhaber_id,
            'full_name': full_name,
            'company':   company,
            'address':   address,
            'zipcode':   zipcode,
            'city':      city,
            'country':   country,
            'telephone': telephone,
            'facsimile': facsimile,
            'mobile':    mobile,
            'email':     email
        };
    */
    d = doSimpleXMLHttpRequest('tlxSaveMI', formContents(getElement('inhaber_edit')));
    d.addCallback(handletlxmaSaveMIResponse);
}

function handletlxmaSaveMIResponse(res) {
    var r = evalJSON(res.responseText);
    logDebug(serializeJSON(r));
    var Status = r.Status;
    
    if (Status == 'success') {
        requestInhaberList();
    }
    else {
        var error_inhaber = r.Inhaber;
        var error_adresse = r.Adresse;
        var error_kommunikation = r.Kommunikation;
        
        logDebug('handletlxmaSaveMIResponse status = failure');
        if (error_inhaber != '') {
            getElement('error_inhaber').innerHTML = error_inhaber;
            blindDown('error_inhaber');
        } else
        {
            hideElement('error_inhaber');
            addElementClass(getElement('error_inhaber'), "invisible");
        };
        
        logDebug('handletlxmaSaveMIResponse status = failure');
        if (error_adresse != '') {
            getElement('error_adresse').innerHTML = error_adresse;
            blindDown('error_adresse');
        } else
        {
            hideElement('error_adresse');
            addElementClass(getElement('error_adresse'), "invisible");
        };
        
        logDebug('handletlxmaSaveMIResponse status = failure');
        if (error_kommunikation != '') {
            getElement('error_kommunikation').innerHTML = error_kommunikation;
            blindDown('error_kommunikation');
        } else
        {
            hideElement('error_kommunikation');
            addElementClass(getElement('error_kommunikation'), "invisible");
        };
    }
}

function tlxmaEditCancel() { switchInhaberEditView(); }