try {
Ext.onReady(function () {
    
    Ext.History.init();
    //var tokenDelimiter = ':';
    
    var historyStore = new Ext.data.SimpleStore({
        id: 'id',
        fields: ['id','value'],
        data: [
            ['SearchPanel', 'Kereses'],
            ['ratePanel', 'Adatlap'],
            ['askTenderFormPanel', 'Ajanlatkeres'],
            ['mateTab', 'Szaki'],
            ['aboutTab', 'Rolunk']
        ]
    });


    
    var canvasInit = function () {
        
        var translate = Imind.Translator.create(Imind.Translator.Common, Imind.Translator.Szaki);

	    
        // Analistics
	    Imind.Log.trackPageview('/inditas/kulso');                                        
	
	    Ext.QuickTips.init();
	    Ext.form.Field.prototype.msgTarget = 'qtip';
	    // Overwrite the encode date to YYYY-MM-DD HH:MM:SS format
	    Ext.util.JSON.encodeDate = function (o) {
	        var pad = function (n) {
	            return n < 10 ? "0" + n : n;
	        };
	        var res = '"' + o.getFullYear() + "-" +
	                pad(o.getMonth() + 1) + "-" +
	                pad(o.getDate()) + " " + 
	                pad(o.getHours()) + ":" +
	                pad(o.getMinutes()) + ":" +
	                pad(o.getSeconds()) + '"';
	        return res;
        };
                
        if (Imind.szaki.searchTab === undefined) {
            Imind.szaki.searchTab = null;
            Imind.szaki.askTenderTab = null;   
            Imind.szaki.rateTab = null;
        }
                            
        var getParag = function(title, text) {
            return '<font size="+2"><b>' + translate(title) + '</b></font>' +
                   '<p class="box-text">' +
                       translate(text) +
                   '</p>' 
                        
                        
        }
        
        //
        
        var mateTab = new Ext.Panel({
            id: 'mateTab',
            height: 580,
            layout: 'fit',
            bodyStyle: 'padding: 0px 11px 20px 41px',
            items: [{
                bodyStyle: 'background-color: transparent; padding: 25px;',
                border: false,
                bodyCssClass: 'box',
                html: getParag('mateRegTitle', 'mateRegText') +
                      '<center>' + 
                        '<a target="_blank" href=\'http://iwiw.hu/app/2037662028?view-params={"referrer":"j"}\'>' +
                        '<img ' +
                        ' style="cursor:pointer;"' +
                        ' border="0"' +
                        ' src="' + Imind.szaki.baseUrl + '/images/kulso/regist_out.png' + '"' +
                        ' onmouseover="this.src=\'' + Imind.szaki.baseUrl + '/images/kulso/regist_over.png' + '\'"' +
                        ' onmouseout="this.src=\'' + Imind.szaki.baseUrl + '/images/kulso/regist_out.png' + '\'"/>' +
                        '</a>' +
                      '</center>' +
                      '<br><br>' +
                      getParag('mateRegWhyTitle', 'mateRegWhyText')  
            }]
        });
        
        var aboutTab = new Ext.Panel({
            id: 'aboutTab',
            height: 1720,
            layout: 'fit',
            bodyStyle: 'padding: 0px 11px 20px 41px',
            items: [{
                bodyStyle: 'background-color: transparent; padding: 25px;',
                border: false,
                bodyCssClass: 'box-about',
                html: '<table width="100%" border="0">' +
                      '  <tr>' +
                      '    <td>' +
                               getParag('aboutJoszakiTitle', 'aboutJoszakiText') +
                      '    </td>' +
                      '    <td>' +
                      '        <img style="padding-right: 10px" src="' + Imind.szaki.baseUrl + '/images/kulso/szaki_logo.png"/>' +
                      '    </td>' +

                      '  </tr>' +
                      '</table>' +
                      getParag('aboutMateTitle', 'aboutMateText') +
                      getParag('aboutCustomerTitle', 'aboutCustomerText') +
                      '<font size="+2"><b>' + translate('aboutTeamTitle') + '</b></font>' +
                      '<p class="box-text">' +
                      '<center>' +
                      '    <img src="' + Imind.szaki.baseUrl + '/images/kulso/team.jpg"/>' +
                           translate('aboutTeamText') +
                      '</center>' +
                      '</p>' +     
                      '<br><br>' + 
                      '<font size="+2"><b>' + translate('aboutConnTitle') + '</b></font>' +
                      '<table width="100%" border="0">' +
                      '  <tr>' +
                      '    <td width="430px">' +
                      '<div align="justify">' + 
                          translate('aboutConnText') +
                      '</div>' +
                      '    </td>' +
                      '    <td>' +
                      '&nbsp;' +
                      '      <div class="map">' +
                      '          <iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=1027+Budapest+Bem+J%C3%B3zsef+u.+5.++&amp;sll=40.74672,-73.984075&amp;sspn=0.07543,0.116215&amp;ie=UTF8&amp;hq=&amp;hnear=1027+Budapest,+II.+District,+Bem+J%C3%B3zsef+St+5,+Hungary&amp;z=16&amp;ll=47.51181,19.036117&amp;output=embed"></iframe>' +
                      '          <div class="button">' +
                      '              <a style="text-decoration: none" href="http://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=1027+Budapest+Bem+J%C3%B3zsef+u.+5.++&sll=40.74672,-73.984075&sspn=0.07543,0.116215&ie=UTF8&hq=&hnear=1027+Budapest,+II.+District,+Bem+J%C3%B3zsef+St+5,+Hungary&z=16&ll=47.51181,19.036117" target="_blank"><font color="red"><span>+</span>nagyobb méret</font></a>' +
                      '          </div>' +
                      '      </div>' +
                      '    </td>' +
                      '  </tr>' +
                      '</table>'
                      
            }]            
        });
        
        var searchConfig = {
            height: 580,
            title: translate('topMenuSearch'),
            iconCls: 'menuSearchOut',
            border: false,
            width: 940,
            disCityCombo: true
        }
        
        var tenderConfig = {
            height: 580
        }
        mainPanel = new Ext.TabPanel({
            renderTo: 'contentDiv',
            activeItem: (Imind.szaki.datapage ? 10 : 0),
            autoHeight: true,
            autoScroll: true,
            width: '960px',
            border: false,
            cls: 'x-tab-hide',
            y: 5,
            id: 'mainPanel',
            layoutOnTabChange: true,
            defaults: {border: false, frame: false},                           
            items: [
                Imind.szaki.searchTab || (function () {
                    var searchPresenter = new Imind.szaki.presenter.SearchPresenter(Imind.szaki.view.SearchView, {view: searchConfig});
                    Imind.szaki.searchTab = searchPresenter.getView();
                    return Imind.szaki.searchTab;                                
                }()),
                Imind.szaki.askTenderTab || (function () {
                    var askTenderPresenter = new Imind.szaki.presenter.AskTenderPresenter(Imind.szaki.view.AskTenderView, {view: tenderConfig});
                    Imind.szaki.askTenderTab = askTenderPresenter.getView();
                    return Imind.szaki.askTenderTab;
                }()),
                Imind.szaki.rateTab || (function () {
                    var ratePresenter = new Imind.szaki.presenter.RatePresenter(Imind.szaki.view.RateView, {view: tenderConfig});
                    Imind.szaki.rateTab = ratePresenter.getView();
                    return Imind.szaki.rateTab;
                }()),
                mateTab,
                aboutTab
                
            ],
            listeners: {
                tabchange: function (tabPanel, panel) {
                    var tabValue = historyStore.getAt(historyStore.findExact('id', panel.id, 0)).data.value;
                    Ext.History.add(tabValue);
                    panel.doLayout();
                    if (panel.getPresenter && panel.getPresenter().loadData) {
                        if (panel.rendered) {
                            panel.getPresenter().loadData();
                        }
                    }
                }
            }
        });

        
        
        var toggleHandlerFn = function (btn, state) {
            if (state) {
                btn.setText('<font size="4px"><b>' + translate(btn.name) + '</b></font>');
            } else {
                btn.setText('<font size="4px">' + translate(btn.name) + '</font>');
            }
            if (btn.name == 'outSearchText') { mainPanel.setActiveTab('SearchPanel') };
            if (btn.name == 'outMateText') { mainPanel.setActiveTab('mateTab') };
            if (btn.name == 'outAboutText') { mainPanel.setActiveTab('aboutTab') };
        }
        
        var btnSearch = new Ext.Button({
            renderTo: 'btnSearch',
            name: 'outSearchText',
            width: 200,
            height: 55,            
            text: '<font size="4px"><b>' + translate('outSearchText') + '</b></font>',
            iconCls: 'btn-search',
            scale: 'large',
            pressed: true,
            cls: 'btn-text',
            enableToggle: true,
            toggleGroup: 'menu',
            toggleHandler: toggleHandlerFn
        })
        
        var btnMate = new Ext.Button({
            renderTo: 'btnMate',
            name: 'outMateText',
            width: 200,
            height: 55,
            text: '<font size="4px">' + translate('outMateText') + '</font>',
            iconCls: 'btn-mate',
            scale: 'large',
            enableToggle: true,
            toggleGroup: 'menu',
            toggleHandler: toggleHandlerFn
        })
        
        var btnAbout = new Ext.Button({
            renderTo: 'btnAbout',
            name: 'outAboutText',
            width: 200,
            height: 55,
            text: '<font size="4px">' + translate('outAboutText') + '</font>',
            iconCls: 'btn-about',
            scale: 'large',
            enableToggle: true,
            toggleGroup: 'menu',
            toggleHandler: toggleHandlerFn
        })
              
        
                
        Ext.History.on('change', function(token){
            if (token) {
                var combo = Ext.getCmp('profcombo');
                var tabId = historyStore.getAt(historyStore.findExact('value', token, 0)).data.id;
                if (tabId == 'SearchPanel') {
                    btnSearch.toggle(false);
                    btnSearch.toggle(true);
                } else if (tabId == 'mateTab') {
                    btnMate.toggle(false);
                    btnMate.toggle(true);
                    combo.collapse();
                } else if (tabId == 'aboutTab') {
                    btnAbout.toggle(false);
                    btnAbout.toggle(true);
                    combo.collapse();
                } else {
                    if (tabId == 'ratePanel') {
                        if (Imind.szaki.rateTab.getPresenter().haveData) {
                            mainPanel.setActiveTab(tabId);
                            combo.collapse();
                        } else {
                            btnSearch.toggle(false);
                            btnSearch.toggle(true);
                        }
                    } else if (tabId == 'askTenderFormPanel') {
                        if (Imind.szaki.askTenderTab.getPresenter().haveData) {
                            mainPanel.setActiveTab(tabId);
                            combo.collapse();
                        } else {
                            btnSearch.toggle(false);
                            btnSearch.toggle(true);
                        }
                    
                    }
                }
            }else{
                btnSearch.toggle(false);
                btnSearch.toggle(true);
            }
        });
        
        showSearchPage = function() {
            btnSearch.toggle(false);
            btnSearch.toggle(true);
        }

               
        Ext.get('loading').remove();  
        Ext.get('loading-mask').fadeOut({remove: true});
        
        if (Imind.szaki.datapage) {
            Imind.szaki.rateTab.getPresenter().rateMate(Imind.szaki.datapage);
        }
        
        
        var cityCombo = Ext.getCmp('citycombo');
        try {            
            Ext.Ajax.request({
	            url: Imind.szaki.baseUrl + '/admin/getcity',
	            method: 'GET',
	            params: {},
	            success: function(response) {   
                    var resp = Ext.decode(response.responseText.trim());
                    cityCombo.store.clearFilter(true);
                    var idx = cityCombo.store.findExact('name', resp.city, 0);
                    if (idx !== -1) {
                        cityCombo.setValue(cityCombo.store.getAt(idx).data.id);
                        cityCombo.setDisabled(false);
                        
                        var f = Ext.getCmp('profcombo');
                        if (Imind.config.prof != '') {
                            Imind.szaki.searchTab.getPresenter().profId = Imind.config.prof;
	                        Imind.szaki.searchTab.getPresenter().loadData();
	                    } else {
                            f.selectedIndex = -1;
				            f.clearValue();
				            f.store.clearFilter();
				            f.focus.defer(100, f);               
				            f.expand.defer(150, f);				            
				            Ext.getCmp('gridMates').getView().refresh();
                        }
                    }                          
	            },
	            failure: function (errors) {
                    cityCombo.setDisabled(false);
	            }                   
	        });            
        } catch(e) {
            cityCombo.setDisabled(false);
        }
            
        Imind.Log.trackPageview('/kulso/tab/kereses/kereso_form');
            
    }
        
	
    var jsLoaded = 0;
    var jsFiles = [
        [Imind.szaki.baseUrl + '/scripts/OpSocTools.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/Cache.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/Util.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/views/SendMessView.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/presenters/SendMessPresenter.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/views/RateView.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/presenters/RatePresenter.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/Gui.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/views/SearchView.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/presenters/SearchPresenter.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/languages/hu.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/languages/ext-3.0-lang-hu.js', onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/views/AskTenderView.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/presenters/AskTenderPresenter.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/RateWidget.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/RowExpander.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        //[Imind.szaki.baseUrl + '/scripts/GMaps.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/data/Cities.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/data/Professions.js?rand=v' + Imind.config.hostVer, onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/data/Keywords.js?rand=v' + Ext.util.Format.date(new Date(), 'Ymd'), onJsLoaded],
        [Imind.szaki.baseUrl + '/scripts/Log.js?rand=v' + Imind.config.hostVer, onJsLoaded]
    ];
    
    function loadScript(url, callback) {
	    var script = document.createElement("script");
	    script.type = "text/javascript";
	
	    if (script.readyState) {  //IE
	        script.onreadystatechange = function () {
	            if (script.readyState === "loaded" ||
	                    script.readyState === "complete") {
	                script.onreadystatechange = null;
	                if (callback !== null) {
	                    callback();
	                }
	            }
	        };
	    } else {  //Others
	        script.onload = function () {
	            if (callback !== null) {
	                callback();
	            }
	        };
	    }
	
	    script.src = url;
	    document.getElementsByTagName("head")[0].appendChild(script);
	}
	        
        
	function jsLoad(urls) {
	    for (var i = 0; i < urls.length; i = i + 1) {
	        loadScript(urls[i][0], urls[i][1]);
	    }
	}
	
	function onJsLoaded() {
	    jsLoaded++;
	    document.getElementById('loading-msg').innerHTML = '' + (jsLoaded) + ' / ' + jsFiles.length;
	    if (jsLoaded === jsFiles.length) {
            canvasInit();
	    }
	}
	
	jsLoad(jsFiles);

});
}catch(e) {alert(e);}
