var app;
var bubbleCfg;
var netmap;
var tabs;
var routingTab;
var searchTab;
var trashReporterMapTab;
var ctrlDistanceMeasurement, ctrlGps;
var geo = null;

var NG_HeaderHeight = 55;
var NG_FooterHeight = 0;
var NG_MapMenuHeight = 20;
var NG_InterfaceWidth = 0;
var NG_TabsWidth = 316;
var NG_RouteProfileHeight = 180;

var NG_RouteProfileVisible = false;
var NG_MenuVisible = 1;
var NG_TabsVisible = 1;
var NG_fullscreen = 0;
var NG_mapborder = 0;

function init()
{
	Joms.dataScript = 'apiClient.php';
	Joms.loadingBox = gid('jomsLoadingBox');
	Joms.Convert.setZone(38);

	// Konfigurace aplikace.
	var cfg = new Joms.AppConf();
	cfg.width = 100;
	cfg.height = 100;
	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();

	var startCoord = new Joms.Coord(482660,4617952);
	app.init("tbilisi", 0, startCoord);


	if (!query.positionDefined()) {}
	app.hooks.register('error', jomsErrorHandler, app);

	bubbleCfg = new Joms.TextBoxConf();
	bubbleCfg.width = 350;
	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.addDefaultItems();context.addLine();context.addItem('cm-gps','GPS coordinates', function() {
		app.msg(this.mapPos.toGpsString() , 'GPS coordinates');
	});
	context.addItem('cm-link','Links', function() {
		showNetmapMapLink();
	});
	context.addLine();context.addItem('cm-arrshow', '????? ???????', function() {
		app.map.setMark(this.mapPos);
	});
	app.context.addItem('cm-arrhide','????? ???????', function() {
		app.map.hideMark();
	});
	var zoomCtrlConf = new Joms.ZoomControlConf();
	zoomCtrlConf.plus = Array('images/zoom/plus.png', 18, 18, 'png');zoomCtrlConf.minus = Array('images/zoom/minus.png', 18, 18, 'png');zoomCtrlConf.barwithout = Array('images/zoom/zoom.png', 18, 11, 'png');zoomCtrlConf.barwith = Array('images/zoom/zooms.png', 18, 9, 'png');
	var zoomCtrl = new Joms.ZoomControl(app, zoomCtrlConf);
	new Joms.Scale(app);
//  new Joms.MoveControl(app);
    
	var netmapCfg = new Joms.NetmapObjectsConf();
	netmapCfg.lang = 'en';
	netmapCfg.visibleCategories = null;
	netmapCfg.visibleObjects = null;
	netmapCfg.objectGrouping = 0;
	netmapCfg.iconSize = 24;
	netmapCfg.reloadDelay = 500;
	netmapCfg.drawIconFoot=1;
	netmapCfg.setIconSizeByMppx=0;
	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 = 'en';
	searchConf.addSearchSource(new Joms.PlanstudioSearchSource(app));
	var searchListConf = new Joms.SearchResultListConf();
	searchTab = new Joms.NetmapTabSearch(app, searchConf, searchListConf);
	tabs.addTab(searchTab, true);
	
	
	var objInMapTab = new Joms.NetmapTabObjectsInMap(app);
	tabs.addTab(objInMapTab, false);
	
	
	var objectListTab = new Joms.NetmapTabObjectList(app, 15);
	tabs.addTab(objectListTab, 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, 'Objects', 80, netmapCatCtrl.el));
	var layerCtrl = new Joms.LayerControl(app, true);layerCtrl.addCustom("opacitySwitch", "Map", function() {
		app.map.switchOpacity()
	});
	visibilityGroup.add(new Joms.VisibilityControll(app, 'Layers', 80, layerCtrl.el));
	
//	visibilityGroup.add(new Joms.Button(app, 'fullscreen', 80));
	
	ctrlDistanceMeasurement = new Joms.MeasureControll(app);
	ctrlGps = new Joms.GpsControll(app);
	var examples = new Joms.NetmapExamples(app, searchTab, routingTab);
	examples.createHtml('netmapTabSearchExamples');
	
	J.gid("netmapTabSearchResults").innerHTML = "";
	J.gid("netmapTabSearchExamples").style.display = "none";
	query.init();
	
	

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	if (tmp = $('pageEnvelope')) tmp.style.display = 'block';
	
}
