//
  var app = {};
  app.config = {};
  app.cswClientPath = "cswclient";
  app.thesaurusPath = 'gemetclient/';
  app.INSPIREsrvPath = 'keywords/';
  app.mapViewerPath = "../map";
  app.statusManagerPath = "statusmanager/index.php";
  HS.setLang(HS.getLastLangCode());
  //app.proxy = "/cgi-bin/olproxy.cgi?toEncoding=utf-8&url=";
  app.project = 'catclient';
  app.config.standard = "DC"; // implicitne ISO AP

  app.showMap = function(url){
    window.location = app.mapViewerPath+"?ows="+escape(url);
  }

  //zobrazeni pripojenych DS - asi upravit 
  app.showLinked = function(id){
    var pom = id.split(':');
    var id1 = pom[pom.length-1];
    if(pom[1]=='uuid') app.catClient.showDetail(null, null, {id:id1}); 
    else app.catClient.showDetailByQuery("ResourceIdentifier='"+id1+"'");
  }

  /***************************************************************
  * Ulozeni dat do session cache
  ****************************************************************/
  app.saveStatus = function(){
    var data = {};
    if(app.sf) var data = app.sf.getValues();
    if(document.simpleForm) {
      data.anytext = document.simpleForm.anytext.value;
      data.mapCenter=app.mapCenter;
      data.mapZoom=app.mapZoom;
      if(document.simpleForm.type) {
        data.type=document.simpleForm.type.value;
      }
      if(document.simpleForm.menuId){
        activatedMenu = getElementsByClass('active',document.getElementById('north'),'a');
        if(activatedMenu[0].id!=document.simpleForm.menuId.value){
          document.simpleForm.menuId.value=activatedMenu[0].id;
        };
        data.menuId = document.simpleForm.menuId.value;
      }
    }
    data.tabs=app.catClient.getServices();
    app.statusReader.save(data);
  }
  
  /***************************************************************
  * Nacteni dat ze session cache
  ****************************************************************/

  app.readStatus = function(data){
    if((data)&&(data.tabs.length)){ 
      app.catClient.addServices(data.tabs);
      app.readStatus.process(data);
    }
    // zde precteni konfiguraku sluzeb
    else {
      Ext.Ajax.request({
        url: app.config.url,
        params: {request: 'getservices', tab: 'true'},
        success: function(response, opts){
          app.catClient.addServices(Ext.util.JSON.decode(response.responseText).services);
        },
        callback: function(){
          app.catClient.resultContainer.doLayout();
          app.readStatus.process();
        }
      })
    }
}

    //tato funkce byla vytvorena kvuli asynchronite Ext.Ajax.request
    app.readStatus.process = function(data){
    // nacteni HTTP POST parametru
    var url = window.location.search.substr(1).split("&");
    var httpGetVars = new Array(); 
    for(i = 0; i < url.length; i++){
        httpGetVars[url[i].split("=")[0]] = unescape(url[i].split("=")[1]);
    }
    if((httpGetVars['anytext']!=undefined)&&(httpGetVars['type']!=undefined)&&(httpGetVars['menuId']!=undefined)){
        SetTypeValue(httpGetVars['type'],httpGetVars['menuId']);
        app.search({anytext:httpGetVars['anytext'], hlevel: httpGetVars['type']});
        return;
    }

    if(document.simpleForm.anytext.value){ 
      app.simpleSearch();
      return;
    }
    var toSearch = false;
    for(d in data){
      if((d.substring(0,3)!='map')&&(d!='tabs')&&(data[d])){
        toSearch = true; break;
      }
    }
    if(toSearch){
      app.catClient.setSession('load');
      if(document.simpleForm){
        document.simpleForm.anytext.value = data.anytext;
        app.mapCenter=data.mapCenter;
        app.mapZoom=data.mapZoom;
        if((document.simpleForm.type)&&(document.simpleForm.menuId)) {
          SetTypeValue(data.type,data.menuId);
        }
      }
      if(app.sf){
        app.sf.setValues(data);
        app.sf.onChangeResource();
        if(toSearch) app.search(data);
        if((document.simpleForm.type)&&(document.simpleForm.menuId)) {
          SetTypeValue(data.type,data.menuId);
        }

      } else if(data.anytext){
        app.simpleSearch();
      }
    } else if(app.sf){
      app.sf.onChangeResource();
    }
    app.catClient.setSession('save');
  }
  app.simpleSearch = function(){
    if(document.simpleForm.type) {
      var type = document.simpleForm.type.value;
    }
    app.search({anytext:document.simpleForm.anytext.value, hlevel: type});
    return false;
  }

Ext.onReady(function() {
  Ext.BLANK_IMAGE_URL = 'http://geoportal.bnhelp.cz/wwwlibs/ext/resources/images/default/s.gif';

  if(app.advanced){
    //app.project = 'catAdvanced';
  }
  app.searchParser = new MdExtFormParser();

  app.statusReader = new HSStatusReader({
    url:app.statusManagerPath,
    project: app.project,
    handler:app.readStatus
  });

  window.onunload = app.saveStatus;

  // definovani klientu katalogu
  app.config.url = app.cswClientPath+'/cswClientRun.php';
  app.config.detailPanel = new CatClientDetail(WMSURL);
  app.catClient = new CatalogueClient(app.config);
  app.catClient.resultContainer.doLayout();
  app.pageText = new Ext.Panel({el: 'start-text', height:40, border: false})

  app.search = function(formValues, params){
   var qstr = app.searchParser.parse(formValues);
    if(params) var sortBy=params.sortBy; else var sortBy='';
    app.catClient.search(qstr, {sortBy: sortBy});  
    app.catClient.setSession('save');
  }

  if(app.advanced){

    // --- rozsirene hledani ---  
    app.sf = new AdvancedSearch.SearchForm({
      cswClientPath: app.config.url,
      serviceName: app.serviceName,
      thesaurusPath: app.thesaurusPath,
      srvKeywordsPath:  app.INSPIREsrvPath,
      handler: app.search,
      region: 'north',
      title: HS.i18n('advSearch'),
      height:280,
      layout: 'fit',
      border: false,
      addField: document.simpleForm.anytext,
      frame: true,
      //collapsible: true,
      catClient: app.catClient
    });

    app.viewport = new Ext.Viewport({
      layout:'border',
      items: [
        new Ext.Panel({ 
          region:'north',
          contentEl: 'north',
          layout: 'fit',
          height: 90,
          frame: false,
          border: false,
          //collapsible: true
        }),
        new Ext.Panel({ 
          region:'center',
          layout: 'border',
          frame: false,
          collapsible: true,
          items: [
            app.sf,app.catClient.resultContainer,app.config.detailPanel
          ]
        })
      ]
    });
  } else {

    //--- jednoduche hledani ---     
    app.viewport = new Ext.Viewport({
      layout:'border',
      items: [
        new Ext.Panel({ 
          region:'north',
          contentEl: 'north',
          layout: 'fit',
          height: 90,
          frame: false,
          border: false,
          //collapsible: true
        }),
        app.catClient.resultContainer,
        app.config.detailPanel
      ]
    });
  }

  document.simpleForm.onsubmit = app.simpleSearch;
  Ext.QuickTips.init();
  app.statusReader.load(); 
});

HS.Lang["cze"]["all"] = "vše";
HS.Lang["cze"]["data"] = "data";
HS.Lang["cze"]["services"] = "služby";
HS.Lang["cze"]["advSearch"] = "Pokročilé hledání";
HS.Lang["cze"]["simpleSearch"] = "Základní hledání";
HS.Lang["cze"]["Search"] = "Vyhledat";

HS.Lang["eng"]["advSearch"] = "Advanced search";
HS.Lang["eng"]["simpleSearch"] = "Basic search";

