RegionenContentPanel = function()
{
    //-----< create all tabs >--------------------------------------------------
    this.overview_panel = new Ext.Panel({
        title : 'Übersicht',
        autoScroll : true,
        border : true,
        deferredContentUrl : null,
        deferredContentLoaded : false
    });
    this.gemdat_panel = new Ext.Panel({
        title : 'Gemeindedaten',
        autoScroll : true,
        border : true,
        deferredContentUrl : null,
        deferredContentLoaded : false
    });
    this.krsdat_panel = new Ext.Panel({
        title : 'Kreisdaten',
        autoScroll : true,
        border : true,
        deferredContentUrl : null,
        deferredContentLoaded : false
    });
    this.ihkdat_panel = new Ext.Panel({
        title : 'Firmendaten',
        autoScroll : true,
        border : true,
        deferredContentUrl : null,
        deferredContentLoaded : false
    });
    //-----< call parent constructor >------------------------------------------
    RegionenContentPanel.superclass.constructor.call(this, {
        border : false,
        deferredRender : false,
        activeTab : 0,
        items: [ this.overview_panel, this.gemdat_panel, this.krsdat_panel, this.ihkdat_panel ]
    });
    //-----< add events >-------------------------------------------------------
    this.on('tabchange', this.onTabChange, this);
};

//-----< define new class MerkmalePanel >---------------------------------------
Ext.extend(RegionenContentPanel, Ext.TabPanel,
{

    // private
    onTabChange : function(tp,activeTab)
    {
        if(activeTab)
        {
            if(activeTab.deferredContentUrl)
            {
                if(!activeTab.deferredContentLoaded)
                {
                    activeTab.body.load({url: activeTab.deferredContentUrl, scripts : true});
                    activeTab.deferredContentLoaded = true;
                }
            }
        }
    },

    // private
    clearAllPanels : function()
    {
        this.overview_panel.body.update('');
        this.overview_panel.deferredContentUrl = null;
        this.overview_panel.deferredContentLoaded = false;
        this.gemdat_panel.body.update('');
        this.gemdat_panel.deferredContentUrl = null;
        this.gemdat_panel.deferredContentLoaded = false;
        this.krsdat_panel.body.update('');
        this.krsdat_panel.deferredContentUrl = null;
        this.krsdat_panel.deferredContentLoaded = false;
        this.ihkdat_panel.body.update('');
        this.ihkdat_panel.deferredContentUrl = null;
        this.ihkdat_panel.deferredContentLoaded = false;
    },

    // private
    hasIhkdat : function(regnr)
    {
        if(
            ( (regnr.length == 5) || (regnr.length == 8) ) &&   // Gemeinde oder Landkreis
            ( regnr.substr(0,3) == '096' ) &&                   // in Unterfranken
            ( regnr != '09661000' ) &&
            ( regnr.substr(0,5) != '09671' ) &&
            ( regnr.substr(0,5) != '09676' )
          )
        {
            return(true);
        }
        return(false);
    },

    showRegnr : function(regnr)
    {
        var ihkdat = this.hasIhkdat(regnr);
        //-----< clear all panels >---------------------------------------------
        this.clearAllPanels();
        //-----< enable all required panels >-----------------------------------
        this.overview_panel.enable();
        this.gemdat_panel.enable();
        this.krsdat_panel.enable();
        if(ihkdat)
            this.ihkdat_panel.enable();
        //-----< set the urls for the content >---------------------------------
        this.overview_panel.deferredContentUrl = 'services/overview.php'+'?regnr='+regnr;
        this.gemdat_panel.deferredContentUrl = 'services/gemdat.php'+'?regnr='+regnr;
        this.krsdat_panel.deferredContentUrl = 'services/krsdat.php'+'?regnr='+regnr;
        if(ihkdat)
            this.ihkdat_panel.deferredContentUrl = 'services/firmendat.php'+'?type=r&regnr='+regnr;
        //-----< switch to panel gemdat if krsdat is activated and not available
        if( (this.getActiveTab()) && (this.getActiveTab() == this.krsdat_panel) && (regnr.length == 8) && (regnr.substr(5,5) != '000') )
        {
            this.activate(this.gemdat_panel);
        }
        //-----< switch to panel overview if ihkdat is activated and not available
        if( (this.getActiveTab()) && (this.getActiveTab() == this.ihkdat_panel) && (!ihkdat) )
        {
            this.activate(this.overview_panel);
        }
        //-----< disable all unrequired panels >--------------------------------
        if(!ihkdat)
            this.ihkdat_panel.disable();
        //-----< initiate panel reload >----------------------------------------
        this.onTabChange(this,this.getActiveTab());
    },

    showArticle : function(source,nodeid)
    {
        //-----< clear all panels >---------------------------------------------
        this.clearAllPanels();
        //-----< enable all required panels >-----------------------------------
        this.overview_panel.enable();
        //-----< set the urls for the content >---------------------------------
        this.overview_panel.deferredContentUrl = 'services/ArticleContent.php'+'?source='+source+'&node='+nodeid;
        //-----< switch to overview panel >-------------------------------------
        this.activate(this.overview_panel);
        //-----< disable all unrequired panels >--------------------------------
        this.gemdat_panel.disable();
        this.krsdat_panel.disable();
        this.ihkdat_panel.disable();
        //-----< initiate panel reload >----------------------------------------
        this.onTabChange(this,this.getActiveTab());
    },

    showStrukdat : function(tabid)
    {
        //-----< clear all panels >---------------------------------------------
        this.clearAllPanels();
        //-----< enable all required panels >-----------------------------------
        this.overview_panel.enable();
        //-----< set the urls for the content >---------------------------------
        this.overview_panel.deferredContentUrl = 'services/struktab.php'+'?tabid='+tabid;
        //-----< switch to overview panel >-------------------------------------
        this.activate(this.overview_panel);
        //-----< disable all unrequired panels >--------------------------------
        this.gemdat_panel.disable();
        this.krsdat_panel.disable();
        this.ihkdat_panel.disable();
        //-----< initiate panel reload >----------------------------------------
        this.onTabChange(this,this.getActiveTab());
    },

    showFirmendat : function(type,param)
    {
        //-----< clear all panels >---------------------------------------------
        this.clearAllPanels();
        //-----< enable all required panels >-----------------------------------
        this.ihkdat_panel.enable();
        //-----< set the urls for the content >---------------------------------
        this.ihkdat_panel.deferredContentUrl = 'services/firmendat.php'+'?type='+type+'&wzbra='+param;
        //-----< switch to overview panel >-------------------------------------
        this.activate(this.ihkdat_panel);
        //-----< disable all unrequired panels >--------------------------------
        this.overview_panel.disable();
        this.gemdat_panel.disable();
        this.krsdat_panel.disable();
        //-----< initiate panel reload >----------------------------------------
        this.onTabChange(this,this.getActiveTab());
    },

    reloadOverview : function(url)
    {
        this.overview_panel.deferredContentUrl = url;
        this.overview_panel.body.load({url: url, scripts : true});
        this.overview_panel.deferredContentLoaded = true;
    },

    reloadGemdat : function(url)
    {
        this.gemdat_panel.deferredContentUrl = url;
        this.gemdat_panel.body.load({url: url, scripts : true});
        this.gemdat_panel.deferredContentLoaded = true;
    },

    reloadKrsdat : function(url)
    {
        this.krsdat_panel.deferredContentUrl = url;
        this.krsdat_panel.body.load({url: url, scripts : true});
        this.krsdat_panel.deferredContentLoaded = true;
    },

    postFirmendaten : function(url,formname)
    {
        if(document.forms[formname])
        {
            var postparams = {};
            for(i = 0; i < document.forms[formname].elements.length; i++)
            {
                elem = document.forms[formname].elements[i];
                if(elem.type)
                {
                    if(elem.type == "text")
                    {
                        postparams[elem.name] = elem.value;
                    }
                    else if(elem.type == "select-one")
                    {
                        postparams[elem.name] = elem.options[elem.selectedIndex].value;
                    }
                }
            }
            this.ihkdat_panel.deferredContentUrl = url;
            this.ihkdat_panel.body.load({url: this.ihkdat_panel.deferredContentUrl, params: postparams, scripts : true});
            this.ihkdat_panel.deferredContentLoaded = true;
        }
    }

});
