var eudlr_Ort;
var eudlr_Gebiet;
var eudlr_gebietsComboSingleOption = false;
var eudlr_ProcessSelectedGebietID;
var eudlr_ProcessSelectedGebietName;

var eudlr_gebietDataProxy = new Ext.data.ScriptTagProxy({
        timeout : 300000, // 5min
        url: eudlr_bridgeURL + '?action=getGebiete'
});

var eudlr_gebietDataStore = new Ext.data.Store({
        remoteSort: false,
        proxy: eudlr_gebietDataProxy,
        // ds : eudlr_localDemoProcessesDataStore,
        baseParams: {
            limit: 100
        },
         listeners : {
            load : function(store, records, options) {
                if(eudlr_WaitMsgBox) {
                    eudlr_WaitMsgBox.hide();
                    eudlr_WaitMsgBox = null;
                }
                eudlr_gebietsComboSingleOption = false;
                if(records.length == 0) {
                        Ext.Msg.getDialog().center = function(){
                            var xy = this.el.getAlignToXY(this.container, 'c-c');
                            this.setPagePosition(100, 300);
                            return this;
                         };
                         Ext.Msg.show({
                            title: 'Problem Gebietssuche',
                            msg: 'Der von Ihnen eingebene Ort "' + eudlr_Ort + '" ergab keinen Treffer!<br/>'
                            + 'Entweder ist der Ort falsch eingegeben, oder die entsprechende Kommune ist kein Anwender dieser EU-DLR-Lösung.<br/>'
                            + '<br/>Gegebenenfalls wenden Sie sich bitte auf anderen Wegen an die Kommune der gewünschten Betriebsstätte.'
                            ,
                            modal: true,
                            icon: Ext.Msg.ERROR,
                            buttons: Ext.Msg.OK
                        });
                        eudlr_gebietsCombo.disable();
                } else if(records.length > 1) {
                        Ext.Msg.getDialog().center = function(){
                            var xy = this.el.getAlignToXY(this.container, 'c-c');
                            this.setPagePosition(100, 300);
                            return this;
                         };
                         Ext.Msg.show({
                            title: 'Info Gebietssuche',
                            msg: 'Der von Ihnen eingebene Ort "' + eudlr_Ort + '" ergab mehr als einen Gebietstreffer.<br/>'
                            + 'Bitte wählen Sie in der Auswahlliste das Gebiet, das Ihrem gewünschten Betriebsstandort entspricht.<br/>'
                            + '<br/>Im Zweifel wenden Sie sich bitte direkt an einen Sachbearbeiter der jeweiligen Kommune.'
                            ,
                            modal: true,
                            icon: Ext.Msg.INFO,
                            buttons: Ext.Msg.OK
                        });
                        eudlr_gebietsCombo.enable();
                }
                else if(records.length == 1) {
                    eudlr_gebietsComboSingleOption = true;
                    eudlr_gebietsCombo.enable();
                    window.setTimeout(eudlr_selectSingleGebietsOption, 500);
                    
                }
            }
        },
        reader: new Ext.data.JsonReader({
                    totalProperty: 'totalCount',
                    root: 'items'
                }, [{
                            name: 'id'
                        },{
                            name: 'name'
                        }])
    });

var eudlr_gebietsCombo = new Ext.form.ComboBox({
     xtype : 'combo',
     id : 'fGebiet',
     name : 'fGebiet',
     listWidth : 300,
     disabled : true,
     fieldLabel : 'Gebiet wählen',
     width : 200,
     store : eudlr_gebietDataStore,
     displayField:'name',
     valueField:'id',
     typeAhead: true,
     mode: 'local',
     triggerAction: 'all',
     emptyText:'Bitte wählen Sie ein Gebiet...',
     selectOnFocus:true,
     listeners : {
         beforerender : {
            fn : function(combo) {
                if(eudlr_gebietsComboSingleOption)eudlr_gebietsCombo.select(0, true);
            }
         },
         select : {
            fn : function(combo, record, index) {
                eudlr_ProcessSelectedGebietID = record.data.id;
                eudlr_ProcessSelectedGebietName = record.data.name;
            }
        }
     }
});

var eudlr_AssStep2Panel = new Ext.Panel({
    // title: 'Anmeldung',
    // x : 50,
    // y : 100,
    // collapsible:true,
    preventBodyReset: true,
    width: 400,
    height : 500,
    bodyStyle : 'align : center; font-size : 11pt; padding: 4px;',
    items : [
        {
            xtype : 'label',
            text : 'Antragsassistent Schritt 2 - Daten zur Betriebsstätte',
            style : 'font-weight : bold'
        },
        {
            xtype : 'label',
            html : '<br/><br/>'

        },
        {
            xtype : 'label',
            html : 'Bitte geben Sie die Daten zur gewünschten Betriebsstätte ein<br/>und wählen dann unten "Weiter"',
            style : "font-size : 9pt; text-align : center"

        },
        {
            xtype : 'form',
            border:false,
            style : "padding-right : 10px",
            labelWidth : 120,
            items : [
                {
                 xtype : 'textfield',
                 id : 'fName',
                 name : 'fName',
                 fieldLabel : 'Firmenname',
                 allowBlank : false,
                 width : 200
                },
                 {
                 xtype : 'textarea',
                 id : 'fDescription',
                 name : 'fDescription',
                 fieldLabel : 'Beschreibung',
                 multiline : true,
                 allowBlank : true,
                 width : 200
                },
                 {
                 xtype : 'textfield',
                 id : 'fStreet',
                 name : 'fStreet',
                 fieldLabel : 'Straße',
                 allowBlank : false,
                 width : 200
                },
                 {
                 xtype : 'textfield',
                 id : 'fStreetNumber',
                 name : 'fStreetNumber',
                 fieldLabel : 'Hausnummer',
                 allowBlank : false,
                 width : 200
                },
                 {
                 xtype : 'textfield',
                 id : 'fZIP',
                 name : 'fZIP',
                 fieldLabel : 'Postleitzahl',
                 allowBlank : false,
                 width : 200
                },
                {
                    xtype : 'label',
                    html : '<p style="font-size : smaller"><b>Gebietsauswahl</b> <a href="#" onclick="eudlr_InfoGebietsauswahl()">Info</a></p>'

                }
                ,
                 {
                 xtype : 'textfield',
                 id : 'fCity',
                 name : 'fCity',
                 fieldLabel : 'Ort',
                 allowBlank : false,
                 width : 200
                }
                 ,
                 {
                 xtype : 'button',
                 id : 'regionSearchButton',
                 name : 'regionSearchButton',
                 fieldLabel : 'Gebietssuche',
                 text : 'Gebietssuche',
                 allowBlank : false,
                 handler : function() {
                     eudlr_Gebiet = Ext.get('fGebiet');
                     eudlr_Ort = Ext.get('fCity').getValue().trim();
                     if(eudlr_Ort.length == 0) {
                        Ext.Msg.getDialog().center = function(){
                            var xy = this.el.getAlignToXY(this.container, 'c-c');
                            this.setPagePosition(100, 400);
                            return this;
                         };
                         Ext.Msg.show({
                            title: 'Eingabefehler',
                            msg: 'Der Ort darf für die Gebietssuche nicht leer sein!',
                            modal: true,
                            icon: Ext.Msg.ERROR,
                            buttons: Ext.Msg.OK
                        });
                     }
                     else {
                        eudlr_gebietDataStore.load({params:{ort:eudlr_Ort}});
                        Ext.Msg.getDialog().center = function(){
                                var xy = this.el.getAlignToXY(this.container, 'c-c');
                                this.setPagePosition(200, 300);
                                return this;
                             };
                        eudlr_WaitMsgBox = Ext.MessageBox.wait('Anfrage läuft...', "Server-Anfrage");
                     }
                 },
                 width : 200
                }
                ,
                eudlr_gebietsCombo
                 
            ]
        }
    ]

 })

function eudlr_InfoGebietsauswahl() {
    Ext.Msg.show({
                title: 'Info zu "Gebietsauswahl"',
                msg:    'Um die zuständigen Stellen für Ihr Vorhaben ermitteln zu \
                        können, muss anhand Ihrer Ortsangabe das passende, sogenannte "Gebiet", \
                        was im Hessenfinder hinterlegt ist, ermittelt werden. <br/> \
                        Nach Eingabe des Orts wählen Sie bitte [Gebietssuche] !'
                ,
                modal: false,
                icon: Ext.Msg.INFO,
                buttons: Ext.Msg.OK
            });
}
function eudlr_selectSingleGebietsOption() {
   // eudlr_gebietsCombo.select(0, true);
}
function eudlr_CheckProcessStep2() {
//return true;
    Ext.Msg.getDialog().center = function(){
        var xy = this.el.getAlignToXY(this.container, 'c-c');
        this.setPagePosition(200, 300);
        return this;
    };

    var v;
    v = Ext.get('fName').getValue().trim();
    if(v.length == 0) {
        Ext.MessageBox.alert("Fehlende Eingabedaten", "Firmenname darf nicht leer sein.");
        return false;
    } else eudlr_ProcessParams.fName = v;

    v = Ext.get('fDescription').getValue().trim();
//    if(v.length == 0) {
//        Ext.MessageBox.alert("Fehlende Eingabedaten", "Beschreibung darf nicht leer sein.");
//        return false;
//    } else
        eudlr_ProcessParams.fDescription= v;

    v = Ext.get('fStreet').getValue().trim();
    if(v.length == 0) {
        Ext.MessageBox.alert("Fehlende Eingabedaten", "Straße darf nicht leer sein.");
        return false;
    } else eudlr_ProcessParams.fStreet = v;

    v = Ext.get('fStreetNumber').getValue().trim();
    if(v.length == 0) {
        Ext.MessageBox.alert("Fehlende Eingabedaten", "Hausnummer darf nicht leer sein.");
        return false;
    } else eudlr_ProcessParams.fStreetNumber = v;

    v = Ext.get('fZIP').getValue().trim();
    if(v.length == 0) {
        Ext.MessageBox.alert("Fehlende Eingabedaten", "Postleitzahl darf nicht leer sein.");
        return false;
    } else eudlr_ProcessParams.fZIP = v;

      v = Ext.get('fCity').getValue().trim();
      if(v.length == 0) {
        Ext.MessageBox.alert("Fehlende Eingabedaten", "Ort darf nicht leer sein.");
        return false;
      } else eudlr_ProcessParams.fCity = v;


      if(!eudlr_ProcessSelectedGebietID) {
        Ext.MessageBox.alert("Fehlende Eingabedaten", "Gebiet muss gewählt sein.");
        return false;
      } else {
          eudlr_ProcessParams.fGebiet = eudlr_ProcessSelectedGebietID;
          eudlr_ProcessParams.fGebietName = eudlr_ProcessSelectedGebietName;
      }


    return true;
}