﻿dojo.require("dojox.image.Lightbox");
		
var hbBaseUrl = "http://services.maps.lt/moksleiviu_gis";
var hbMap;
var hbLegendDlg, hbLightboxes = [], hbConnects = [], hbMapTips = [];

function hbInit(){
	var serviceUrl = "http://services.maps.lt/mapsk_services/moksleiviu_gis/MapServer";
	hb.layerDefs["moksleiviu_gis"] = {title:"Anykščių Regioninis Parkas", url:serviceUrl, visible:true};
	if (hb.layerDefs["hotels"]) delete hb.layerDefs["hotels"];
	if (hb.layerDefs["stops"]) delete hb.layerDefs["stops"];
	if (hb.layerDefs["other"]) delete hb.layerDefs["other"];

    hbMap = new hb.FullMap({
        id:"map",
        elements:{"layers":true, "scalebar":true},
        theme: "mapslt",
        dojoTheme: "tundra",
		extent: new esri.geometry.Extent({"xmin":548483,"ymin":6135653,"xmax":590658,"ymax":6167297,"spatialReference":{"wkid":2600}})
    }, dojo.byId("hbMap"));
	
	hbConnects.push(dojo.connect(hbMap, "onLoad", function(map){
		try {					
			var symbol = new esri.symbol.PictureMarkerSymbol('http://dc1.maps.lt/maps_js_api/current/images/blank.gif', 20, 20);
			
			hbMapTips.push(new hb.MapTips({
				id: "kulturosTips",
				map: map.map,
				layerUrl: serviceUrl + "/0",
				tipTemplate: "<p><b>Tipas:</b> ${Tipas}</p>"+
					"<p><b>Paveldo rūšis:</b> ${Paveldo_rusis}</p>"+
					"<p><b>Datavimas:</b> ${Datavimas}</p>"+
					"<p><b>Pritaikymas lankymui:</b> ${Pritaikymas_lankymui}</p>"+
					"<p><b>Ilguma (koord):</b> ${Long}</p>"+
					"<p><b>Platuma (koord):</b> ${Lat}</p>"+
					"<p><b>Aprašymas:</b> ${Aprasymas}</p>"+
					"<p><b>Pastabos:</b> ${Pastabos}</p>"+
					"<p><b>Nuotraukos:</b> <a href='"+hbBaseUrl+"/foto_zemelapiui/${Nuotraukos}' target='_blank'>${Nuotraukos}</a></p>",
				outFields: "*",
				tileSize: 300000,
				minScale: 6000000,
				symbol: symbol
			}));
			
			hbMapTips.push(new hb.MapTips({
				id: "gamtosTips",
				map: map.map,
				layerUrl: serviceUrl + "/1",
				tipTemplate: "<p><b>Tipas:</b> ${Tipas}</p>"+
					"<p><b>Rūšis:</b> ${Rusis}</p>"+
					"<p><b>Pritaikymas lankymui:</b> ${Pritaikymas_lankymui}</p>"+
					"<p><b>Aukštis (m):</b> ${Aukstis}</p>"+
					"<p><b>Plotis (m):</b> ${Plotis}</p>"+
					"<p><b>Skersmuo (m):</b> ${Skersmuo}</p>"+
					"<p><b>Ilguma (koord):</b> ${Long}</p>"+
					"<p><b>Platuma (koord):</b> ${Lat}</p>"+
					"<p><b>Aprašymas:</b> ${Aprasymas}</p>"+
					"<p><b>Nuotraukos:</b> <a href='"+hbBaseUrl+"/foto_zemelapiui/${Nuotrauka}' target='_blank'>${Nuotrauka}</a>&nbsp;"+
					"<a href='"+hbBaseUrl+"/foto_zemelapiui/${Nuotrauka2}' target='_blank'>${Nuotrauka2}</a></p>",
				outFields: "*",
				tileSize: 300000,
				minScale: 6000000,
				symbol: symbol
			}));
			
			hbMapTips.push(new hb.MapTips({
				id: "rekreacijosTips",
				map: map.map,
				layerUrl: serviceUrl + "/2",
				tipTemplate: "<p><b>Paskirtis:</b> ${Paskirtis}</p>"+
					"<p><b>Plotas (ha):</b> ${Plotas}</p>"+
					"<p><b>Maksimalus žmonių talpumas:</b> ${Maks_zm_kiekis}</p>"+
					"<p><b>Automobilių vietos:</b> ${Auto}</p>"+
					"<p><b>Pavėsinių sk.:</b> ${Pavesines}</p>"+
					"<p><b>Laužaviečių sk.:</b> ${Lauzavietes}</p>"+
					"<p><b>Lieptų sk.:</b> ${Lieptai}</p>"+
					"<p><b>Stalų sk.:</b> ${Stalai}</p>"+
					"<p><b>Suolų sk.:</b> ${Suolai}</p>"+
					"<p><b>Apžvalgos bokštų sk.:</b> ${Apzvalgos_bokstai}</p>"+
					"<p><b>Tualetų sk.:</b> ${Tualetai}</p>"+
					"<p><b>Šiukšlių dėžių sk.:</b> ${Siuksliadezes}</p>"+
					"<p><b>Šašlykinių sk.:</b> ${Saslykines}</p>"+
					"<p><b>Ilguma (koord):</b> ${Long}</p>"+
					"<p><b>Platuma (koord):</b> ${Lat}</p>"+
					"<p><b>Nuotraukos:</b> <a href='"+hbBaseUrl+"/foto_zemelapiui/${Nuotrauka}' target='_blank'>${Nuotrauka}</a>&nbsp;"+
					"<a href='"+hbBaseUrl+"/foto_zemelapiui/${Nuotrauka2}' target='_blank'>${Nuotrauka2}</a></p>",
				outFields: "*",
				tileSize: 300000,
				minScale: 6000000,
				symbol: symbol
			}));
			
			map.addButton("legend", null, {
				label: "Legenda",
				display: "labelOnly",
				onClick:function(){
					if (!hbLegendDlg){
						hbLegendDlg = new dojox.image.LightboxDialog({});
						hbLegendDlg.startup();
					}
					hbLegendDlg.show({title:"", href:hbBaseUrl+"/Legenda.jpg"});
				}
			});
			
			map.map.infoWindow.resize(300, 230);
			hbConnects.push(dojo.connect(map, "onUnload", hbCleanup));
			hbConnects.push(dojo.connect(map.map.infoWindow, "onHide", hbCleanTip));
			hbConnects.push(dojo.connect(map.map.infoWindow, "onShow", hbUpdateTip));
			hbConnects.push(dojo.connect(hbMap._layers, "onShow", hbLayerToggled));
			hbConnects.push(dojo.connect(hbMap._layers, "onHide", hbLayerToggled));
			if (hbMap._layers.isVisible("moksleiviu_gis")) hbLayerToggled("moksleiviu_gis", null, hbMap.map.getLayer("moksleiviu_gis"));
			else hbConnects.push(dojo.connect(hbMap._layers, "onCreate", hbLayerToggled));
		} catch(e) {hb.err(e);}
	}));
}

function hbCleanTip(){
	dojo.forEach(hbLightboxes, function(lb){ lb.destroyRecursive(); });
	hbLightboxes = [];
}

function hbUpdateTip(){
    setTimeout(function(){
		dojo.forEach(hbLightboxes, function(lb){ lb.destroyRecursive(); });
		hbLightboxes = [];
	
        dojo.query("a", hbMap.map.infoWindow.containerNode).forEach(function(a){
			if (!a.innerHTML) return;
			var lb = new dojox.image.Lightbox({href:a.href}, a);
			lb.startup();
			hbLightboxes.push(lb);
		});
		
    }, 100);
	hbMap.map.infoWindow.containerNode.scrollTop = 0;
}

function hbLayerToggled(id, def, layer){
	if (id === "moksleiviu_gis")
		dojo.forEach(hbMapTips, function(mt){ mt.setVisibility(layer.visible); });
}

function hbCleanup(){
	dojo.forEach(hbConnects, dojo.disconnect);
	if (hbLegendDlg) hbLegendDlg.destroyRecursive();
	hbMap.destroyRecursive();
}

dojo.addOnLoad(hbInit);

