var app;
var bubbleCfg;
var netmap;
var tabs;
var routingTab;
var searchTab;
var trashReporterMapTab;
var ctrlDistanceMeasurement, ctrlGps;
var geo = null;
		
var NG_HeaderHeight = 60;
var NG_MapMenuHeight = 20;
var NG_InterfaceWidth = 1000; 
var NG_TabsWidth = 350;
var NG_RouteProfileHeight = 180;
		
var NG_RouteProfileVisible = false;
var NG_MenuVisible = 1;
var NG_TabsVisible = 1;
var NG_fullscreen = 1;
var NG_mapborder = 1;
				
function init() 
{
    Joms.dataScript = 'apiClient.php';
    Joms.loadingBox = gid('jomsLoadingBox');
			
    // Konfigurace aplikace.
    var cfg = new Joms.AppConf();
    cfg.width = 100;
    cfg.height = 100;
    cfg.opacity = 50;
    cfg.repairMapSize = true;
    cfg.enableKeys = true;
    cfg.enableMouseWheel = true;
    app = new Joms.App('mapElement', cfg);
    app.hooks.register('repairMapSize', repairMapSize);

    query = new Joms.NetmapQuery(app, 1);
    query.parse();
    app.init("evropa", 3);
    if (!query.positionDefined()) {
//        var appInitPos = new Joms.Coord(542975, 4929482);
        var appInitPos = new Joms.Coord(497475, 4841982);
        app.map.setCenter(appInitPos);
    }

    app.hooks.register('error', jomsErrorHandler, app);
    bubbleCfg = new Joms.TextBoxConf();
    bubbleCfg.width = 320;
    bubbleCfg.height = 200;
    bubbleCfg.overflowStyle = 'auto';
    bubbleCfg.headerHeight = 0;
    bubbleCfg.moveMapOnShow = 1;
    bubbleCfg.footerHeight = 20;
    bubbleCfg.moveOffset = Array(30, 30, 120, 30);
    bubbleCfg.style = 'text-box-white-blue';
    bubbleCfg.footerBgColor = 'ecf4fa';
    bubbleCfg.borderColor = 'd2d2d2';
    bubbleCfg.bgColor = 'ffffff';
    new Joms.TextBox(app, bubbleCfg);

    var context = new Joms.ContextMenu(app);
    context.addItem('addDest', 'Přidat do trasy', function() {
        tabs.changeTab('routing');
        if (routingTab.addDestination(this.mapPos.toGpsString())) {
            routingTab.search();
        }
    });
    context.addLine();
    context.addDefaultItems();
    context.addLine();
    context.addItem('cm-gps','Zobrazit GPS souřadnice', function() {
        app.msg(this.mapPos.toGpsString() , 'GPS souřadnice');
    });
    context.addItem('cm-link','Odkaz do mapy', function() {
        app.msg(app.createMapLink());
    });
    context.addLine();
    context.addItem('cm-arrshow', 'Zobrazit zde šipku', function() {
        app.map.setMark(this.mapPos);
    });
    app.context.addItem('cm-arrhide','Skrýt šipku', function() {
        app.map.hideMark();
    });


    var zoomCtrlConf = new Joms.ZoomControlConf();
    zoomCtrlConf.plus = Array(Joms.baseUrl+'images/netmap/zoom/plus.png', 20, 20, 'png');
    zoomCtrlConf.minus = Array(Joms.baseUrl+'images/netmap/zoom/minus.png', 20, 20, 'png');
    zoomCtrlConf.barwithout = Array(Joms.baseUrl+'images/netmap/zoom/zoom.png', 20, 11, 'png');
    zoomCtrlConf.barwith = Array(Joms.baseUrl+'images/netmap/zoom/zooms.png', 20, 11, 'png');
    var zoomCtrl = new Joms.ZoomControl(app, zoomCtrlConf);

    new Joms.Scale(app);

    var netmapCfg = new Joms.NetmapObjectsConf();
    netmapCfg.lang = 'cs';
    netmapCfg.objectGrouping = 1;
    netmapCfg.reloadDelay = 500;
    netmapCfg.drawIconFoot = 1;
    netmapCfg.setIconSizeByMppx=1;
    netmap = new Joms.NetmapObjects(app, netmapCfg);
    netmap.setDefaultHooks();

    var visibilityGroup = new Joms.VisibilityGroupControll(app);

    tabs = new Joms.NetmapTabs(app, netmap, 'netmapTabContainer', 350);

    var searchConf = new Joms.SearchConf(app);
    searchConf.lang = 'cs';
    searchConf.addSearchSource(new Joms.PlanstudioSearchSource(app));
    var searchListConf = new Joms.SearchResultListConf();
    searchTab = new Joms.NetmapTabSearch(app, searchConf, searchListConf);
    tabs.addTab(searchTab, true);

    if (! netmapCfg.objectGrouping) {
	    var objInMapTab = new Joms.NetmapTabObjectsInMap(app);
	    tabs.addTab(objInMapTab, false);
    }

    var objectListTab = new Joms.NetmapTabObjectList(app, 15);
    tabs.addTab(objectListTab, false);

    var routeConf = new Joms.RouteConf(app);
    routeConf.drawLine=1;
    routeConf.trackLineColor="0000FF33";
    routeConf.enableDestinationDrag = 1;

    var searchRConf = new Joms.SearchConf();
    searchRConf.addSearchSource(new Joms.PlanstudioSearchSource(app));
    var searchListConf = new Joms.SearchResultListConf();
    searchListConf.showResultNums = false;
    var routingConf = new Joms.RoutingControllConf(routeConf, searchRConf, searchListConf);
    routingConf.allowTouristRoutes = 0;
    routingConf.allowCycleRoutes = 0;
    routingConf.allowCarRoutes = 1;
    routingTab = new Joms.NetmapTabRouting(app, routingConf);
    tabs.addTab(routingTab, false);

    var legendMapTab = new Joms.NetmapTabLegend(app);
    legendMapTab.addDefaultHelpPages();
    tabs.addTab(legendMapTab, false);

    var netmapCatCtrl = new Joms.NetmapCategoryCheckboxControl(app, netmap);
    visibilityGroup.add(new Joms.VisibilityControll(app, 'Objekty', 80, netmapCatCtrl.el));

    ctrlDistanceMeasurement = new Joms.MeasureControll(app);
    ctrlGps = new Joms.GpsControll(app);
    ctrlGps.infoBox.setPosition(40, 150);
    
    ctrlDistanceMeasurement.infoBox.setPosition(40, 190);

    var examples = new Joms.NetmapExamples(app, searchTab, routingTab);
    examples.addSearchExample('45°1\'37.88"N, 15°9\'7.234"E');
    examples.addSearchExample('Trogir');
    examples.addRoutingExample('Praha - Split (nejrychlejší)', '1;true;460317;5547176;Praha;619792;4818979;Split', '0', []);
    examples.addRoutingExample('Brno - Dubrovník (nejkratší)', '1;1;617187;5450367;Brno;754408;4726421;Dubrovník', '0', []);
    examples.createHtml('netmapTabSearchExamples');

    query.init();
    if (tmp = $('pageEnvelope')) tmp.style.display = 'block';

    addBannerToSearchTab();
}



