function createAnim(overlay, isShowing) {
    if (isShowing) {
        overlay.container.css("left", "-340px");
        return glow.anim.css(overlay.container, 1,
        {
            left: {
                from: "-340px",
                to: "20px"
            }
        },
        {
            tween: glow.tweens.bounceOut()
        }
                );
    } else {
        return glow.anim.css(overlay.container, 0.5,
        {
            left: {
                to: "-340px"
            }
        },
        {
            tween: glow.tweens.easeIn()
        }
                );
    }
}

function getHeight() {
    var viewportwidth;
    var viewportheight;

    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

    if (typeof window.innerWidth != 'undefined') {
        viewportwidth = window.innerWidth;
        return window.innerHeight
    }

    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

    else if (typeof document.documentElement != 'undefined'
            && typeof document.documentElement.clientWidth !=
            'undefined' && document.documentElement.clientWidth != 0) {
        viewportwidth = document.documentElement.clientWidth;
        return document.documentElement.clientHeight
    }

    // older versions of IE

    else {
        viewportwidth = document.getElementsByTagName('body')[0].clientWidth;
        return  document.getElementsByTagName('body')[0].clientHeight
    }

}


function loadEmf_full() {
    var customTemplate = '<div class="customTemplate"> <div class="customTemplate-head"><div class="panel-hd"></div></div><div class="customTemplate-body"><div class="panel-bd"></div></div> <div class="panel-ft"></div><div class="customTemplate-bottom"><a href="#" class="panel-close"></a></div></div>';

    var height = Math.min(getHeight() - 100, 680);
    var myOverlay = new glow.widgets.Panel(
            glow.dom.create('<iframe src="emf/index.php" style="background: #fff; text-align: center; padding: 0px; overflow-y:auto;" width="910" height="' + height + '" frameborder="0" style="background-color:#fff;"></iframe>'), {
        modal: true,
        width: 1000,
        height: 1245,
        template: customTemplate
    }
            );
    myOverlay.show();

    glow.events.addListener(myOverlay,"hide",// "afterHide",
            function(event) {
                 var ret = confirm (questionSave);
                if(ret){
                  window.location.reload();
                    return true;
                }else{
                    return false;
                }

            }
            );

}


function loadEmf(reloadonclose) {
    var customTemplate = '<div class="customTemplate"> <div class="customTemplate-head"><div class="panel-hd"></div></div><div class="customTemplate-body"><div class="panel-bd"></div></div> <div class="panel-ft"></div><div class="customTemplate-bottom"><a href="#" class="panel-close"></a></div></div>';

    var height = Math.min(getHeight() - 100, 680);
    var myOverlay = new glow.widgets.Panel(
            glow.dom.create('<iframe src="Emf.php" style="background: #fff; text-align: center; padding: 0px; overflow-y:auto;" width="910" height="' + height + '" frameborder="0" style="background-color:#fff;"></iframe>'), {
        modal: true,
        width: 1000,
        height: 1245,
        template: customTemplate
    }
            );
    myOverlay.show();

    glow.events.addListener(myOverlay, "afterHide",
            function(event) {

                window.location.reload();
            }
            );
}

function deleteEmf() {
    //Ext.MessageBox.wait(headerprocessingMessage);
    Ext.Ajax.request({
        url : 'deleteemf.php',
        method: 'POST',
        timeout: 5000,
        params:{
            sv: 'delete'
        },
        success: function (objServerResponse) {
            Ext.MessageBox.hide();

            if (objServerResponse.responseText.search('new') != -1) {
                new Ext.ux.Notification({
                    iconCls:    'x-icon-accept',
                    title:      'Status',
                    html:        msgSave,
                    autoDestroy: true,
                    hideDelay:  15000,
                    listeners: {
                        'beforerender': function() {
                        }
                    }
                }).show(document);
            }
            else if (objServerResponse.responseText.search('true') != -1) {
                new Ext.ux.Notification({
                    iconCls:    'x-icon-accept',
                    title:      'Status',
                    html:        msgSave,
                    autoDestroy: true,
                    hideDelay:  15000,
                    listeners: {
                        'beforerender': function() {
                        }
                    }
                }).show(document);
                window.location.reload();
            }
            else {
                new Ext.ux.Notification({
                    iconCls:    'x-icon-error',
                    title:      'Status',
                    html:        msgServerError,
                    autoDestroy: true,
                    hideDelay:  6000,
                    listeners: {
                        'beforerender': function() {
                        }
                    }
                }).show(document);

            }
        },
        failure: function (result, request) {
            Ext.MessageBox.hide();
            new Ext.ux.Notification({
                iconCls:    'x-icon-error',
                title:      'Status',
                html:        'Not saved - Please call',
                autoDestroy: true,
                hideDelay:  6000,
                listeners: {
                    'beforerender': function() {
                    }
                }
            }).show(document);
        }
    });

}

var myOverlay = undefined;
function loadIframe(creationtype, command, parentId, memberid, stufe) {

    var height = 600;

    if (command == null) {
        command = '';
    }

    if (memberid != 0 && command == 'create') {
        alert('create with memberid not possible - function call is wrong');
    }

    if (creationtype == 'verband')
        height = 380; //680

    if (creationtype == 'verein')
        height = 380;// 380




    Ext.Ajax.request({
        url: 'Navigation.php',
        method: 'POST',
        success: function () {

            if (myOverlay == undefined) {
                var customTemplate = '<div class="customTemplate"> <div class="customTemplate-head"><div class="panel-hd"></div></div><div class="customTemplate-body"><div class="panel-bd"></div></div> <div class="panel-ft"></div><div class="customTemplate-bottom"><a href="#" class="panel-close"></a></div></div>';
                myOverlay = new glow.widgets.Panel(
                        glow.dom.create('<iframe id="myOverlayFrame" src="Mitglieder.php" style="background: #fff; text-align: center;padding: 0px;" width="870" height="540" frameborder="0" style="background-color:#fff;"></iframe>'), {
                    modal: true,
                    width: 1000,
                    height: 650,
                    template: customTemplate
                }
                        );
                myOverlay.show();

            } else {
                myOverlay.show();
                parent.document.getElementById('myOverlayFrame').src = "Mitglieder.php";

            }

            glow.events.addListener(myOverlay, "afterHide",
                    function(event) {
                        var file_name = document.location.href;
                        var end = (file_name.indexOf("?") == -1) ? file_name.length : file_name.indexOf("?");
                        var filename_short = file_name.substring(file_name.lastIndexOf("/") + 1, end);

                        if (filename_short == 'Bund.php'|| filename_short == 'Bund.php#') {
                            storeverbaende.reload();
                            storemitglieder.reload();
                        }

                        if (filename_short == 'Verband.php' || filename_short == 'Verband.php#') {
                            store.reload();
                            storeverbandsmitglieder.reload();
                        }

                        if (filename_short == 'Verein.php' || filename_short == 'Verein.php#nogo' || filename_short == 'Verein.php#') {
                            storemitglieder.reload();
                        }
                    });
        },
        failure: function () {
            alert("Please reload.");
        },
        headers: {
            'my-header': 'mid'
        },
        params: {
            id: memberid,
            typ: creationtype,
            parentid: parentId,
            command: command,
            stufe: stufe
        }
    });
}


function removeVereinigung(id, typ) {
    var jperson = null;
    jperson = new JPerson();

    jperson.id = id;


    if (typ == 'mitglied') {
        jperson.parentid = Ext.get('iid').dom.value;

        Ext.Ajax.request({
            url : 'deleterecord.php',
            method: 'POST',
            params:{
                sv: 'deletemember'
                ,
                id: jperson.id
                ,
                parentid: jperson.parentid
            },
            success: function (objServerResponse) {

                if (objServerResponse.responseText.search('false') == -1) {

                    new Ext.ux.Notification({
                        iconCls:    'x-icon-accept',
                        title:      'Status',
                        html:        msgEintraggeloescht,
                        autoDestroy: true,
                        hideDelay:  4000,
                        listeners: {
                            'beforerender': function() {
                            }
                        }
                    }).show(parent);

                    parent.myOverlay.hide();
                }
                else {
                    new Ext.ux.Notification({
                        iconCls:    'x-icon-error',
                        title:      'Status',
                        html:        msgServerError,
                        autoDestroy: true,
                        hideDelay:  10000,
                        listeners: {
                            'beforerender': function() {
                            }
                        }
                    }).show(document);

                }
            },
            failure: function (result, request) {
                Ext.MessageBox.hide();
                new Ext.ux.Notification({
                    iconCls:    'x-icon-error',
                    title:      'Status',
                    html:        'Not saved - Please call',
                    autoDestroy: true,
                    hideDelay:  10000,
                    listeners: {
                        'beforerender': function() {
                        }
                    }
                }).show(document);
            }
        });
    }
    else if (typ == 'verein') {
        //alert ('not implemented yet...');

        Ext.Ajax.request({
            url : 'deleterecord.php',
            method: 'POST',
            params:{
                sv: 'deleteassociation'
                ,
                id: Ext.get('id').dom.value
            },
            success: function (objServerResponse) {

                if (objServerResponse.responseText.search('false') == -1) {

                    new Ext.ux.Notification({
                        iconCls:    'x-icon-accept',
                        title:      'Status',
                        html:        msgEintraggeloescht,
                        autoDestroy: true,
                        hideDelay:  4000,
                        listeners: {
                            'beforerender': function() {
                            }
                        }
                    }).show(parent);

                    parent.myOverlay.hide();

                }
                else if (objServerResponse.responseText.search('references') != -1) {
                    new Ext.ux.Notification({
                        iconCls:    'x-icon-error',
                        title:      'Status',
                        html:        msgMitgliedzuerstloeschen,
                        autoDestroy: true,
                        hideDelay:  10000,
                        listeners: {
                            'beforerender': function() {
                            }
                        }
                    }).show(document);
                }
                else {
                    new Ext.ux.Notification({
                        iconCls:    'x-icon-error',
                        title:      'Status',
                        html:        msgServerError,
                        autoDestroy: true,
                        hideDelay:  10000,
                        listeners: {
                            'beforerender': function() {
                            }
                        }
                    }).show(document);

                }
            },
            failure: function (objServerResponse) {
                Ext.MessageBox.hide();
                new Ext.ux.Notification({
                    iconCls:    'x-icon-error',
                    title:      'Status',
                    html:        'Communication Error. Server not reachable for a short moment. Please try again.',
                    autoDestroy: true,
                    hideDelay:  10000,
                    listeners: {
                        'beforerender': function() {
                        }
                    }
                }).show(document);

            }
        });

    }
}

function getCheckedValue(radioObj) {
    if (!radioObj) {
        return "";
    }

    var radioLength = radioObj.length;
    if (radioLength == undefined)
        if (radioObj.checked)
            return radioObj.value;
        else
            return "";
    for (var i = 0; i < radioLength; i++) {
        if (radioObj[i].checked) {
            return radioObj[i].value;
        }
    }
    return "";
}

var gridwith;
function setBrowserSettings() {
    var browser = navigator.appName;
    var b_version = navigator.appVersion;
    var version = parseFloat(b_version);

    if ((version >= 4) && (browser == "Microsoft Internet Explorer")) {
        gridwith = 800;
    }
    else {
        gridwith = '100%';
    }
    return version;
}

function formatDate(val) {
    // convert data from mysql yyyy-mm-dd to dd.mm.yyyy
    if (val != null) {
        var myDateParts = val.split("-");
        var output = myDateParts[2] + "." + myDateParts[1] + "." + myDateParts[0];

        if (output == "00.00.0000") {
            return '<span style="color:red;">' + "" + '</span>';
        }

        return output;
    }
    else {
        return '';
    }
}

function myDateValidatorEintritt() {
    var datevalEintritt = form.getForm().findField('eintrittsdatum').getValue();

    if (checkdate(datevalEintritt)) {
        return true;
    }
    else {

        return false;
    }
}


/* ---------------------------------------------------------------------------------------------- */
//
/* ---------------------------------------------------------------------------------------------- */
function myDateValidator() {
    var datevalGeburtstag = form.getForm().findField('geburtstag').getValue();
    if (checkdate(datevalGeburtstag))
        return true;
    else
        return false;
}


/* ---------------------------------------------------------------------------------------------- */
//
/* ---------------------------------------------------------------------------------------------- */
function checkdate(strDate) {
    var retval = true;

    if (strDate.indexOf("/") != -1 || strDate.indexOf("-") != -1) {
        Ext.MessageBox.alert(msgheaderDatum, msgFehlerDatum);
        retval = false;
    }
    else {
        if (strDate.length > 9) {
            day = strDate.substr(0, 2);
            month = strDate.substr(3, 2);
            year = strDate.substr(6, 4);

            if (month < 1 || month > 12) {
                Ext.MessageBox.alert(msgheaderDatum, msgFehlerDatum);
                retval = false;
            }
            if (day < 1 || day > 31) {
                Ext.MessageBox.alert(msgheaderDatum, msgFehlerDatum);
                retval = false;

            }
            if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
                Ext.MessageBox.alert(msgheaderDatum, msgFehlerDatum);
                retval = false;
            }
            if (month == 2) {
                // check for february 29th
                var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
                if (day > 29 || (day == 29 && !isleap)) {
                    alert("February " + year + " doesn't have " + day + " days!");
                    retval = false;
                }
            }
        }
        else {
            retval = false;
        }
    }

    return retval;  // date is valid
}


/* ---------------------------------------------------------------------------------------------- */
//
/* ---------------------------------------------------------------------------------------------- */
function saveVereinigungsdaten(tmpvereinigung, reset) {
    var jperson = null;
    var vereinigung = null;

    if (document.getElementById('associationtype') != undefined) {
        vereinigung = document.getElementById('associationtype').innerHTML;// Ext.get('associationtype').dom.value;
    }
    else {
        //alert('zuordnung fehlt') ;
        vereinigung = tmpvereinigung;
    }

    jperson = new JPerson();
    jperson.set(vereinigung);


    Ext.MessageBox.wait(headerprocessingMessage);
    Ext.Ajax.request({
        url : 'savedata.php',
        method: 'POST',
        timeout: 5000,
        params:{
            sv: 'save'
            ,
            name: jperson.name
            ,
            vorname: jperson.vorname
            ,
            zusatz: jperson.zusatz
            ,
            strasse: jperson.strasse
            ,
            plz: jperson.plz
            ,
            ort: jperson.ort
            ,
            geburtsdatum: jperson.geburtsdatum
            ,
            eintrittsdatum: jperson.eintrittsdatum
            ,
            austrittsdatum: jperson.austrittsdatum
            ,
            gruendungsjahr: jperson.gruendungsjahr
            ,
            telPrivat: jperson.telPrivat
            ,
            faxPrivat: jperson.faxPrivat
            ,
            telGeschaeft: jperson.telGeschaeft
            ,
            faxGeschaeft: jperson.faxGeschaeft
            ,
            telMobil: jperson.telMobil
            ,
            email: jperson.email
            ,
            bemerkung: jperson.bemerkung
            ,
            heft: jperson.heft
            ,
            werbung: jperson.werbung
            ,
            aktivmitglied: jperson.aktivmitglied
            ,
            ehrenmitglied: jperson.ehrenmitglied
            ,
            nationalitaet: jperson.nationalitaet
            ,
            laendercode: jperson.laendercode
            ,
            anrede: jperson.anrede
            ,
            domizil: jperson.domizil
            ,
            subvention: jperson.subvention
            ,
            kreis: jperson.kreis
            ,
            homepage: jperson.homepage
            ,
            amtssprache: jperson.amtssprache
            ,
            besetzung: jperson.besetzung
            ,
            anzahlmitgliedersoll: jperson.anzahlmitgliedersoll
            ,
            id: jperson.id
            ,
            konto: jperson.konto
            ,
            CISMVeteranen: jperson.cismVeteranen
            ,
            kantonaleVeteranen: jperson.kantonaleVeteranen
            ,
            eidgenoessischeVeteranen: jperson.eidgenoessischeVeteranen
            ,
            kantonaleEhrenveteranen: jperson.kantonaleEhrenveteranen
            ,
            veranstaltungen: jperson.veranstaltungen
            ,
            kreisverbaende: jperson.kreisverbaende
            ,
            typ: jperson.typ
            ,
            parentid: jperson.parentid
            ,
            vademecumort: jperson.vademecumort
            ,
            vademecumname: jperson.vademecumname
            ,
            hinweise: jperson.hinweise
        },
        success: function (objServerResponse) {
            Ext.MessageBox.hide();

            if (objServerResponse.responseText.search('new') != -1) {
                //var returnvalues = ;
                //alert(objServerResponse.responseText.split(':')[3]);

                Ext.get('id').dom.value = objServerResponse.responseText.split(':')[3];

                new Ext.ux.Notification({
                    iconCls:    'x-icon-accept',
                    title:      'Status',
                    html:        msgSave, //objServerResponse.responseText,
                    autoDestroy: true,
                    hideDelay:  4000,
                    listeners: {
                        'beforerender': function() {
                        }
                    }
                }).show(document);

                if (reset) {

                    //parent.document.getElementById('myOverlayFrame').contentDocument.location.reload(true);
                    parent.document.getElementById('myOverlayFrame').src = "Mitglieder.php";

                }

            }
            else if (objServerResponse.responseText.search('true') != -1) {
                new Ext.ux.Notification({
                    iconCls:    'x-icon-accept',
                    title:      'Status',
                    html:        msgSave , //objServerResponse.responseText,
                    autoDestroy: true,
                    hideDelay:  4000,
                    listeners: {
                        'beforerender': function() {
                        }
                    }
                }).show(document);


            }
            else {
                new Ext.ux.Notification({
                    iconCls:    'x-icon-error',
                    title:      'Status',
                    html:        msgServerError, //objServerResponse.responseText,
                    autoDestroy: true,
                    hideDelay:  2000,
                    listeners: {
                        'beforerender': function() {
                        }
                    }
                }).show(document);

            }
        },
        failure: function (result, request) {
            Ext.MessageBox.hide();
            new Ext.ux.Notification({
                iconCls:    'x-icon-error',
                title:      'Status',
                html:        'Not saved - Please call',
                autoDestroy: true,
                hideDelay:  2000,
                listeners: {
                    'beforerender': function() {
                    }
                }
            }).show(document);
        }
    });
}

