/*
Source from TOPOLISZ MTT eles gep
*/

function IncludeJS(strUrl)
{
	var script = document.createElement('script');
	script.type = 'text/javascript'; 
	script.src = strUrl;
	document.getElementsByTagName('head')[0].appendChild(script);
}

function IncludeCSS(strUrl, strMedia)
{
	var link = document.createElement('link');
	link.rel = 'stylesheet';
	link.type = 'text/css'; 
	if(strMedia != null && strMedia.length > 0)
	{
		link.media = strMedia;
	}
	link.href = strUrl;
	document.getElementsByTagName('head')[0].appendChild(link);
}

function GetAbsUrl(strRelativeUrl)
{
	return "/Topolisz/"+strRelativeUrl;
}

function IncludeLocalJS(strUrl)
{
	IncludeJS("/Topolisz/"+strUrl);
}

function IncludeLocalCSS(strUrl, strMedia)
{
	IncludeCSS("/Topolisz/"+strUrl, strMedia);
}

g_strSessionID  = "033f9f07-4808-4265-bf95-25ac8d947caa";
g_strHandlerUrl = "/Topolisz/WriteSession.ashx";
g_strReadSessionHandlerUrl = "/Topolisz/ReadSession.ashx";
g_strNoSessionHandlerUrl = "/Topolisz/NoSession.ashx";
g_RasterMapInfo = new RasterMapInfo(2,14,256,256,16.100635,45.731271,23.186462,48.705793,[new RasterLevel(0,8000,8000,18458.3731343284,18649.7804878049,67,41,1,1),new RasterLevel(1,4000,4000,9229.18656716418,9212.5421686747,134,83,1,1),new RasterLevel(2,2000,2000,4614.59328358209,4634.18787878788,268,165,1,2),new RasterLevel(3,1000,1000,2307.29664179104,2310.09365558912,536,331,2,3),new RasterLevel(4,500,500,1152.57315936626,1156.79425113464,1073,661,3,5),new RasterLevel(5,250,250,576.555244755245,577.959939531368,2145,1323,6,9),new RasterLevel(6,125,125,288.21044045677,288.979969765684,4291,2646,11,17),new RasterLevel(7,62.5,62.5,144.122013751311,144.517293517294,8581,5291,21,34),new RasterLevel(8,31.25,31.25,72.0610068756555,72.2586467586468,17162,10582,42,68),new RasterLevel(9,15.625,15.625,36.0294537509104,36.1293233793234,34325,21164,83,135),new RasterLevel(10,7.8125,7.8125,18.0149892933619,18.0642349216849,68649,42329,166,269),new RasterLevel(11,3.90625,3.90625,9.00742904172645,9.03222415157636,137299,84657,331,537),new RasterLevel(12,1.953125,1.953125,4.50371452086323,4.51608540294717,274598,169315,662,1073),new RasterLevel(13,0.9765625,0.9765625,2.25186136071887,2.25804936966415,549195,338629,1323,2146)]);
g_Babel = new Babel([new BabelWord("Address","hu","város, irányítószám vagy pontosabb cím"),new BabelWord("Address","en","address"),new BabelWord("Address","sk","adresa"),new BabelWord("AddressSearch","hu","Címkeresés"),new BabelWord("AddressSearch","en","Address search"),new BabelWord("AddressSearch","sk","Adresa hľadanie"),new BabelWord("RouteSearch","hu","Útvonaltervezés"),new BabelWord("RouteSearch","en","Routing"),new BabelWord("RouteSearch","sk","Plánovanie trasy"),new BabelWord("StartAddress","hu","indulási cím"),new BabelWord("StartAddress","en","start address"),new BabelWord("StartAddress","sk","odchod adresa"),new BabelWord("StopAddress","hu","érkezési cím"),new BabelWord("StopAddress","en","stop address"),new BabelWord("StopAddress","sk","príchod adresa"),new BabelWord("NewStopAddress","hu","új érkezési cím"),new BabelWord("NewStopAddress","en","new stop address"),new BabelWord("NewStopAddress","sk","nová príchod adresa"),new BabelWord("SwapAddresses","hu","Iránycsere"),new BabelWord("SwapAddresses","en","Swap addresses"),new BabelWord("SwapAddresses","sk","Zmena smeru"),new BabelWord("OK","hu","OK"),new BabelWord("OK","en","OK"),new BabelWord("OK","sk","OK"),new BabelWord("Print","hu","Nyomtatás"),new BabelWord("Print","en","Print"),new BabelWord("Print","sk","Tlač"),new BabelWord("Delete","hu","Törlés"),new BabelWord("Delete","en","Clear"),new BabelWord("Delete","sk","Zmazať"),new BabelWord("Add","hu","Hozzáad"),new BabelWord("Add","en","Add"),new BabelWord("Add","sk",""),new BabelWord("AddAddress","hu","Új útvonalpont hozzáadása"),new BabelWord("AddAddress","en","Add destination"),new BabelWord("AddAddress","sk",""),new BabelWord("Up","hu","Föl"),new BabelWord("Up","en","Up"),new BabelWord("Up","sk",""),new BabelWord("Details","hu","Részletek"),new BabelWord("Details","en","Details"),new BabelWord("Details","sk","Podrobnosti"),new BabelWord("Minute","hu","'"),new BabelWord("Minute","en","minutes"),new BabelWord("Minute","sk","m"),new BabelWord("MinuteShort","hu","'"),new BabelWord("MinuteShort","en","m"),new BabelWord("MinuteShort","sk","m"),new BabelWord("HourShort","hu","h"),new BabelWord("HourShort","en","h"),new BabelWord("HourShort","sk","h"),new BabelWord("MeasureDistanceTooltip","hu","távolságmérés"),new BabelWord("MeasureDistanceTooltip","en","Measure distance"),new BabelWord("MeasureDistanceTooltip","sk","Meranie vzdialenosti"),new BabelWord("MeasureDistance","hu","szakasz"),new BabelWord("MeasureDistance","en","Section"),new BabelWord("MeasureDistance","sk","???"),new BabelWord("MeasureTotal","hu","összesen"),new BabelWord("MeasureTotal","en","Total"),new BabelWord("MeasureTotal","sk","Celkom"),new BabelWord("ExitDistanceMeasuring","hu","kilépéshez nyomj Esc-et!"),new BabelWord("ExitDistanceMeasuring","en","Press Esc to exit"),new BabelWord("ExitDistanceMeasuring","sk","???"),new BabelWord("OpenCloseAllRoute","hu","Összes becsuk/kinyit"),new BabelWord("OpenCloseAllRoute","en","Open/close all"),new BabelWord("OpenCloseAllRoute","sk","???"),new BabelWord("PickFromMap","hu","Megjelölöm a pontot a térképen"),new BabelWord("PickFromMap","en","Pick from map"),new BabelWord("PickFromMap","sk","???"),new BabelWord("AvoidTolledRoute","hu","fizetős utak elkerülése"),new BabelWord("AvoidTolledRoute","en","Avoid toll roads"),new BabelWord("AvoidTolledRoute","sk","Cez spoplatnených diaľnic"),new BabelWord("AvoidFerry","hu","kompok elkerülése"),new BabelWord("AvoidFerry","en","Avoid ferries"),new BabelWord("AvoidFerry","sk","Využívanie kompu"),new BabelWord("Empty","hu",""),new BabelWord("Empty","en",""),new BabelWord("Empty","sk",""),new BabelWord("PoiType","hu","Típus"),new BabelWord("PoiType","en","Type"),new BabelWord("PoiType","sk","Typ"),new BabelWord("DefaultCity","hu","[Település]"),new BabelWord("DefaultCity","en","[City]"),new BabelWord("DefaultCity","sk","[Obec]"),new BabelWord("DefaultStreet","hu","[Ker. utca házszám]"),new BabelWord("DefaultStreet","en","[District, street, number]"),new BabelWord("DefaultStreet","sk","[Ulica, číslo domu]"),new BabelWord("DefaultLat","hu","[Szélesség]"),new BabelWord("DefaultLat","en","[Lattitude]"),new BabelWord("DefaultLat","sk","[Zemepisná šírka]"),new BabelWord("DefaultLon","hu","[Hosszúság]"),new BabelWord("DefaultLon","en","[Longitude]"),new BabelWord("DefaultLon","sk","[Zemepisná dĺžka]"),new BabelWord("Start","hu","Indulás"),new BabelWord("Start","en","Start"),new BabelWord("Start","sk","Odchod"),new BabelWord("Stop","hu","Érkezés"),new BabelWord("Stop","en","Stop"),new BabelWord("Stop","sk","Príchod"),new BabelWord("TextAddress","hu","Szöveges cím"),new BabelWord("TextAddress","en","Text adress"),new BabelWord("TextAddress","sk","Adresa (text)"),new BabelWord("GPSAddress","hu","GPS koordináta"),new BabelWord("GPSAddress","en","GPS coordinate"),new BabelWord("GPSAddress","sk","GPS súradnice"),new BabelWord("PickAddress","hu","Térképről"),new BabelWord("PickAddress","en","Pick address"),new BabelWord("PickAddress","sk","Z mapy"),new BabelWord("ClickToMap","hu","Kattintson a térképre!"),new BabelWord("ClickToMap","en","Click on the map!"),new BabelWord("ClickToMap","sk","Kliknite na mapu!"),new BabelWord("ShowAddress","hu","Mutasd"),new BabelWord("ShowAddress","en","Show"),new BabelWord("ShowAddress","sk","Zobraziť"),new BabelWord("TrafficByCar","hu","Útvonaltervezés autóval"),new BabelWord("TrafficByCar","en","Routing by car"),new BabelWord("TrafficByCar","sk","Plánovanie trasy pre autá"),new BabelWord("TrafficByBkv","hu","Útvonaltervezés BKV-val"),new BabelWord("TrafficByBkv","en","Routing by public transport"),new BabelWord("TrafficByBkv","sk","Plánovanie trasy hromadnou dopravou"),new BabelWord("TrafficByBike","hu","Útvonaltervezés biciklivel"),new BabelWord("TrafficByBike","en","Routing by bike"),new BabelWord("TrafficByBike","sk","Plánovanie trasy pre cyklistov"),new BabelWord("TrafficOnFoot","hu","Útvonaltervezés gyalog"),new BabelWord("TrafficOnFoot","en","Routing on foot"),new BabelWord("TrafficOnFoot","sk","Plánovanie pešej trasy"),new BabelWord("SelectTheCity","hu","Válassza ki a települést!"),new BabelWord("SelectTheCity","en","Select the city!"),new BabelWord("SelectTheCity","sk","Zvoľte obec!"),new BabelWord("SelectTheStreet","hu","Válassza ki az utcát!"),new BabelWord("SelectTheStreet","en","Select the street!"),new BabelWord("SelectTheStreet","sk","Zvoľte ulicu!"),new BabelWord("CoordinateError","hu","Hibás koordináta!"),new BabelWord("CoordinateError","en","Coordinate error"),new BabelWord("CoordinateError","sk","Chybné koordináty!"),new BabelWord("PoiVisibility","hu","Láthatóság"),new BabelWord("PoiVisibility","en","Poi visibility"),new BabelWord("PoiVisibility","sk","Viditeľnosť"),new BabelWord("AllPoiTypes","hu","Minden típus"),new BabelWord("AllPoiTypes","en","All poi types"),new BabelWord("AllPoiTypes","sk","Všetky typy"),new BabelWord("PTGetOn","hu","Felszáll:"),new BabelWord("PTGetOn","en","Get on:"),new BabelWord("PTGetOn","sk","Nastúpite:"),new BabelWord("PTStops","hu","megálló"),new BabelWord("PTStops","en","Stops"),new BabelWord("PTStops","sk","Zastávka"),new BabelWord("PTGetOff","hu","Leszáll:"),new BabelWord("PTGetOff","en","Get off"),new BabelWord("PTGetOff","sk","Vystúpite:"),new BabelWord("TravelTime","hu","Utazási idő"),new BabelWord("TravelTime","en","Travel time"),new BabelWord("TravelTime","sk","Trvanie cesty"),new BabelWord("TotalFuelPrice","hu","Üzemanyagköltség"),new BabelWord("TotalFuelPrice","en","Fuel cost"),new BabelWord("TotalFuelPrice","sk","Cena pohonnej hmoty"),new BabelWord("MapLink","hu","Térkép"),new BabelWord("MapLink","en","Map"),new BabelWord("MapLink","sk","Mapa"),new BabelWord("ClickHere","hu","Kattints ide"),new BabelWord("ClickHere","en","Click here"),new BabelWord("ClickHere","sk","Klikni sem"),new BabelWord("ClickHereForLargerMap","hu","Kattins ide a nagyobb térképhez"),new BabelWord("ClickHereForLargerMap","en","Click here for larger map"),new BabelWord("ClickHereForLargerMap","sk","Klikni sem a zväčši mapu"),new BabelWord("GiveMeAStartAddress","hu","Kérem adjon meg egy kezdőcímet!"),new BabelWord("GiveMeAStartAddress","en","Please, fill the start address."),new BabelWord("GiveMeAStartAddress","sk","Prosím zadajte počiatočnú adresu!"),new BabelWord("TrafficFromHere","hu","Útvonaltervezés innen"),new BabelWord("TrafficFromHere","en","Directions from here"),new BabelWord("TrafficFromHere","sk","Plánovanie trasy odtiaľto"),new BabelWord("TrafficToHere","hu","Útvonaltervezés ide"),new BabelWord("TrafficToHere","en","Directions to here"),new BabelWord("TrafficToHere","sk","Plánovanie trasy sem"),new BabelWord("PoiName","hu","Név"),new BabelWord("PoiName","en","Name"),new BabelWord("PoiName","sk","Meno"),new BabelWord("Close","hu","Bezár"),new BabelWord("Close","en","Close"),new BabelWord("Close","sk","Zatvoriť"),new BabelWord("PoiInfo","hu","Info"),new BabelWord("PoiInfo","en","Info"),new BabelWord("PoiInfo","sk","Info"),new BabelWord("Previous","hu","Előző"),new BabelWord("Previous","en","Previous"),new BabelWord("Previous","sk","Predošlé"),new BabelWord("Next","hu","Következő"),new BabelWord("Next","en","Next"),new BabelWord("Next","sk","Nasledujúce"),new BabelWord("SearchByCity","hu","Település"),new BabelWord("SearchByCity","en","City"),new BabelWord("SearchByCity","sk","Obec"),new BabelWord("Search","hu","Keres"),new BabelWord("Search","en","Search"),new BabelWord("Search","sk","Hľadá"),new BabelWord("SearchNearPre","hu","Az induló cím"),new BabelWord("SearchNearPre","en","In the"),new BabelWord("SearchNearPre","sk","Počiatočná adresa"),new BabelWord("SearchNearPost","hu","méteres körzetében"),new BabelWord("SearchNearPost","en","range (meter) of the start address"),new BabelWord("SearchNearPost","sk","metrovom okruhu"),new BabelWord("Routing","hu","Útvonaltervezés"),new BabelWord("Routing","en","Routing"),new BabelWord("Routing","sk","Plánovanie trasy"),new BabelWord("Poi","hu","Objektumok"),new BabelWord("Poi","en","Poi"),new BabelWord("Poi","sk","Objekty"),new BabelWord("TrafficTime","hu","Időpont"),new BabelWord("TrafficTime","en","Time of traffic"),new BabelWord("TrafficTime","sk","Čas"),new BabelWord("CarTuning","hu","Autós hangolás"),new BabelWord("CarTuning","en","Car settings"),new BabelWord("CarTuning","sk","Nastavenie - auto"),new BabelWord("FastestRoute","hu","Leggyorsabb útvonal"),new BabelWord("FastestRoute","en","Quickest"),new BabelWord("FastestRoute","sk","Najrýchlejšia trasa"),new BabelWord("ShortestRoute","hu","Legrövidebb útvonal"),new BabelWord("ShortestRoute","en","Shortest"),new BabelWord("ShortestRoute","sk","Najkratšia trasa"),new BabelWord("Consumption","hu","Fogyasztás"),new BabelWord("Consumption","en","Consumption"),new BabelWord("Consumption","sk","Spotreba"),new BabelWord("Fuel","hu","Üzemanyag"),new BabelWord("Fuel","en","Fuel price"),new BabelWord("Fuel","sk","Pohonné hmoty"),new BabelWord("BkvTuning","hu","Bkv hangolás"),new BabelWord("BkvTuning","en","Public transport settings"),new BabelWord("BkvTuning","sk","Nastavenie - hromadná doprava"),new BabelWord("MinimizeChanges","hu","Legkevesebb átszállással"),new BabelWord("MinimizeChanges","en","Least change"),new BabelWord("MinimizeChanges","sk","Najnižším počtom prestupovaní"),new BabelWord("MinimizeWalking","hu","Legkevesebb gyaloglással"),new BabelWord("MinimizeWalking","en","Least walk"),new BabelWord("MinimizeWalking","sk","Najmenej pešej chôdze"),new BabelWord("PoiSearch","hu","Keresés"),new BabelWord("PoiSearch","en","Poi search"),new BabelWord("PoiSearch","sk","Hľadanie"),new BabelWord("ComplexSearch","hu","További szűrés"),new BabelWord("ComplexSearch","en","Detailed search"),new BabelWord("ComplexSearch","sk","Ďalšie možnosti"),new BabelWord("Show","hu","Mutat"),new BabelWord("Show","en","Show"),new BabelWord("Show","sk","Ukáže"),new BabelWord("ZoomRect","hu","Nagyít"),new BabelWord("ZoomRect","en","Zoom"),new BabelWord("ZoomRect","sk","Zväčšuje"),new BabelWord("Move","hu","Mozgat"),new BabelWord("Move","en","Move"),new BabelWord("Move","sk","Presun"),new BabelWord("ZoomIn","hu","Közelít"),new BabelWord("ZoomIn","en","Zoom in"),new BabelWord("ZoomIn","sk","Približuje"),new BabelWord("ZoomSliderUrl","hu","images/mapctrl/zoomtext.gif"),new BabelWord("ZoomSliderUrl","en","images/mapctrl/zoomtext_en.gif"),new BabelWord("ZoomSliderUrl","sk","images/mapctrl/zoomtext_en.gif"),new BabelWord("ZoomSliderAlt","hu","ország-utca"),new BabelWord("ZoomSliderAlt","en","country-street"),new BabelWord("ZoomSliderAlt","sk","krajina-ulica"),new BabelWord("ZoomOut","hu","Távolít"),new BabelWord("ZoomOut","en","Zoom out"),new BabelWord("ZoomOut","sk","Vzďaľuje"),new BabelWord("BigMap","hu","Nagy térkép"),new BabelWord("BigMap","en","Big map"),new BabelWord("BigMap","sk","Veľká mapa"),new BabelWord("MapError","hu","Térkép hibabejelentő"),new BabelWord("MapError","en","Send feedback"),new BabelWord("MapError","sk","Nahlásenie zistených chýb"),new BabelWord("Partners","hu","Partnerek"),new BabelWord("Partners","en","Partners"),new BabelWord("Partners","sk","Partneri"),new BabelWord("Licence","hu","Jogi nyilatkozat"),new BabelWord("Licence","en","Licence"),new BabelWord("Licence","sk","Právne prehlásenie"),new BabelWord("PreferredBrowser","hu","Az oldal megtekintéséhez Internet Explorer 6.0<!--, illetve FireFox 1.07--> ajánlott."),new BabelWord("PreferredBrowser","en","Preferred browser: Internet Explorer 6.0"),new BabelWord("PreferredBrowser","sk","K nahliadnutiu stránky odporúčame Internet Explorer 6.0<!--, respektíve FireFox 1.07-->"),new BabelWord("LastMapRelease","hu","Utolsó térkép frissítés"),new BabelWord("LastMapRelease","en","Last map release"),new BabelWord("LastMapRelease","sk","Obnovenie poslednej mapy"),new BabelWord("TrafficErrorSameAddresses","hu","Adjon meg különböző címeket!"),new BabelWord("TrafficErrorSameAddresses","en","Use different addresses!"),new BabelWord("TrafficErrorSameAddresses","sk","Zadajte odlišné adresy!"),new BabelWord("TrafficErrorFootBetweenCites","hu","Gyalogos közlekedési ajánlatot csak településen belül tudunk adni!"),new BabelWord("TrafficErrorFootBetweenCites","en","On foot routing only available in cities!"),new BabelWord("TrafficErrorFootBetweenCites","sk","Pešiu trasu plánujeme iba v rámci obce!"),new BabelWord("TrafficErrorFootDefault","hu","Nem tudok utat ajánlani!"),new BabelWord("TrafficErrorFootDefault","en","Can't calculate route!"),new BabelWord("TrafficErrorFootDefault","sk","Neviem ponúknuť trasu"),new BabelWord("TrafficErrorCar","hu","Nem tudok közlekedni!"),new BabelWord("TrafficErrorCar","en","Can't calculate route!"),new BabelWord("TrafficErrorCar","sk","Neviem ponúknuť trasu"),new BabelWord("TrafficErrorBkvBudapest","hu","Erre az útvonalra nem tudunk tömegközlekedési ajánlatot adni!"),new BabelWord("TrafficErrorBkvBudapest","en","Can't calculate route by public transport!"),new BabelWord("TrafficErrorBkvBudapest","sk","Na túto trasu nemôžem ponúknuť prepravu s hromadnou dopravou"),new BabelWord("TrafficErrorBkvDefault","hu","Adatbázisunk csak a BKV járatait tartalmazza, a helyközi közlekedésről nincsenek adataink!"),new BabelWord("TrafficErrorBkvDefault","en","Public transport only available in Budapest!"),new BabelWord("TrafficErrorBkvDefault","sk","Naša databáza obsahuje iba trasy hromadnej dopravy mesta Budapest"),new BabelWord("ZoomToStreet","hu","Utca"),new BabelWord("ZoomToStreet","en","Street"),new BabelWord("ZoomToStreet","sk","Ulica"),new BabelWord("ZoomToCity","hu","Város"),new BabelWord("ZoomToCity","en","City"),new BabelWord("ZoomToCity","sk","Mesto"),new BabelWord("ZoomToCounty","hu","Megye"),new BabelWord("ZoomToCounty","en","County"),new BabelWord("ZoomToCounty","sk","Župa, kraj"),new BabelWord("ZoomToCountry","hu","Ország"),new BabelWord("ZoomToCountry","en","Country"),new BabelWord("ZoomToCountry","sk","Krajina"),new BabelWord("NewMap","hu","Új térkép"),new BabelWord("NewMap","en","New map"),new BabelWord("NewMap","sk","Nová mapa"),new BabelWord("Through","hu","Érintve"),new BabelWord("Through","en","Through"),new BabelWord("Through","sk","Cez"),new BabelWord("RootPoiType","hu","Keresett objektumtípus"),new BabelWord("RootPoiType","en","All poi types"),new BabelWord("RootPoiType","sk","Hľadaný typ objektu"),new BabelWord("VT_CAR","hu","autó"),new BabelWord("VT_CAR","en","car"),new BabelWord("VT_CAR","sk",""),new BabelWord("VT_BUS","hu","busz"),new BabelWord("VT_BUS","en","bus"),new BabelWord("VT_BUS","sk",""),new BabelWord("VT_TRAM","hu","villamos"),new BabelWord("VT_TRAM","en","tram"),new BabelWord("VT_TRAM","sk",""),new BabelWord("VT_TROLEY","hu","trolibus"),new BabelWord("VT_TROLEY","en","troleybus"),new BabelWord("VT_TROLEY","sk",""),new BabelWord("VT_METRO","hu","metró"),new BabelWord("VT_METRO","en","metro"),new BabelWord("VT_METRO","sk",""),new BabelWord("VT_LOCALRAILWAY","hu","hév"),new BabelWord("VT_LOCALRAILWAY","en","local railway"),new BabelWord("VT_LOCALRAILWAY","sk",""),new BabelWord("VT_PUBLIC","hu","BKV"),new BabelWord("VT_PUBLIC","en","public transport"),new BabelWord("VT_PUBLIC","sk",""),new BabelWord("VT_PEDESTRIAN","hu","gyalogos"),new BabelWord("VT_PEDESTRIAN","en","pedestrian"),new BabelWord("VT_PEDESTRIAN","sk","")]);

IncludeLocalCSS('css/style.css?200804211014', '')
IncludeLocalCSS('css/MTTTopSearch.css?200802270858', '')
IncludeLocalCSS('css/noprint.css?200802270858', '')
IncludeLocalCSS('css/print.css?200804031534','print')

function MapLabel(id,x,y)
{this.ID=id;this.iPixX=x;this.iPixY=y;}
function CCoordinate(dX,dY)
{this.dX=dX;this.dY=dY;}
function CSimplePoi(strID,dX,dY)
{this.strID=strID;this.dX=dX;this.dY=dY;}
function CSimpleAddress(strAddress,dX,dY)
{this.strAddress=strAddress;this.dX=dX;this.dY=dY;}
function CAddress(strAddress,dX,dY,dMinX,dMinY,dMaxX,dMaxY)
{this.strAddress=(strAddress!=null?strAddress:"");this.dX=(dX!=null?dX:0);this.dY=(dY!=null?dY:0);this.dMinX=(dMinX!=null?dMinX:0);this.dMinY=(dMinY!=null?dMinY:0);this.dMaxX=(dMaxX!=null?dMaxX:0);this.dMaxY=(dMaxY!=null?dMaxY:0);}
function FindAddressResult(arrAddresses,bWasDeleteBack)
{this.arrAddresses=(arrAddresses!=undefined&&arrAddresses!=null?arrAddresses:new Array());this.bWasDeleteBack=(bWasDeleteBack!=null?bWasDeleteBack:false);}
function CMapData()
{this.strCaption;this.iMapWidth;this.iMapHeight;this.dCenterX;this.dCenterY;this.dRadius;this.dMinX;this.dMinY;this.dMaxX;this.dMaxY;this.dMeterPerPixelX;this.dMeterPerPixelY;this.iViewportOffsetX;this.iViewportOffsetY;this.dGridMinX;this.dGridMinY;this.dGridMaxX;this.dGridMaxY;}
function RasterLevel(iLevel,dPixelDensityXMeter,dPixelDensityYMeter,dPixelDensityXAC,dPixelDensityYAC,iActiveWidth,iActiveHeight,iRows,iCols)
{this.iLevel=(iLevel!=undefined?iLevel:0);this.dPixelDensityXMeter=(dPixelDensityXMeter!=undefined?dPixelDensityXMeter:1.0);this.dPixelDensityYMeter=(dPixelDensityYMeter!=undefined?dPixelDensityYMeter:1.0);this.dPixelDensityXAC=(dPixelDensityXAC!=undefined?dPixelDensityXAC:1.0);this.dPixelDensityYAC=(dPixelDensityYAC!=undefined?dPixelDensityYAC:1.0);this.iActiveWidth=(iActiveWidth!=undefined?iActiveWidth:0);this.iActiveHeight=(iActiveHeight!=undefined?iActiveHeight:0);this.iRows=(iRows!=undefined?iRows:0);this.iCols=(iCols!=undefined?iCols:0);};function RasterMapInfo(iVersion,iLevels,iSectionWidth,iSectionHeight,wgsMapMinX,wgsMapMinY,wgsMapMaxX,wgsMapMaxY,arrLevels)
{this.iVersion=(iVersion!=undefined?iVersion:1);this.iLevels=(iLevels!=undefined?iLevels:0);this.iSectionWidth=(iSectionWidth!=undefined?iSectionWidth:0);this.iSectionHeight=(iSectionHeight!=undefined?iSectionHeight:0);this.wgsMapMinX=(wgsMapMinX!=undefined?wgsMapMinX:0);this.wgsMapMinY=(wgsMapMinY!=undefined?wgsMapMinY:0);this.wgsMapMaxX=(wgsMapMaxX!=undefined?wgsMapMaxX:0);this.wgsMapMaxY=(wgsMapMaxY!=undefined?wgsMapMaxY:0);this.arrLevels=(arrLevels!=undefined&&arrLevels!=null?arrLevels:new Array());};function RasterMapResult(dGridLowerLeftX,dGridLowerLeftY,dGridUpperRightX,dGridUpperRightY,dViewportLowerLeftX,dViewportLowerLeftY,dViewportUpperRightX,dViewportUpperRightY,dCenterX,dCenterY,dMinRadius,iLevel,iGridUpperRow,iGridLeftColumn,iGridLowerRow,iGridRightColumn,iViewportOffsetX,iViewportOffsetY,iViewportDeltaX,iViewportDeltaY,arrUrls,strCaption)
{this.dGridLowerLeftX=(dGridLowerLeftX!=undefined?dGridLowerLeftX:0.0);this.dGridLowerLeftY=(dGridLowerLeftY!=undefined?dGridLowerLeftY:0.0);this.dGridUpperRightX=(dGridUpperRightX!=undefined?dGridUpperRightX:0.0);this.dGridUpperRightY=(dGridUpperRightY!=undefined?dGridUpperRightY:0.0);this.dViewportLowerLeftX=(dViewportLowerLeftX!=undefined?dViewportLowerLeftX:0.0);this.dViewportLowerLeftY=(dViewportLowerLeftY!=undefined?dViewportLowerLeftY:0.0);this.dViewportUpperRightX=(dViewportUpperRightX!=undefined?dViewportUpperRightX:0.0);this.dViewportUpperRightY=(dViewportUpperRightY!=undefined?dViewportUpperRightY:0.0);this.dCenterX=(dCenterX!=undefined?dCenterX:0.0);this.dCenterY=(dCenterY!=undefined?dCenterY:0.0);this.dMinRadius=(dMinRadius!=undefined?dMinRadius:0.0);this.iLevel=(iLevel!=undefined?iLevel:0);this.iGridUpperRow=(iGridUpperRow!=undefined?iGridUpperRow:0);this.iGridLeftColumn=(iGridLeftColumn!=undefined?iGridLeftColumn:0);this.iGridLowerRow=(iGridLowerRow!=undefined?iGridLowerRow:0);this.iGridRightColumn=(iGridRightColumn!=undefined?iGridRightColumn:0);this.iViewportOffsetX=(iViewportOffsetX!=undefined?iViewportOffsetX:0);this.iViewportOffsetY=(iViewportOffsetY!=undefined?iViewportOffsetY:0);this.iViewportDeltaX=(iViewportDeltaX!=undefined?iViewportDeltaX:0);this.iViewportDeltaY=(iViewportDeltaY!=undefined?iViewportDeltaY:0);this.arrUrls=(arrUrls!=undefined&&arrUrls!=null?arrUrls:new Array());this.strCaption=(strCaption!=undefined&&strCaption!=null?strCaption:"");}
function ClickablePoi(strID,iX,iY,strName)
{this.strID=(strID!=undefined&&strID!=null?strID:"");this.iX=(iX!=undefined?iX:0);this.iY=(iY!=undefined?iY:0);this.strName=(strName!=undefined&&strName!=null?strName:"");}
function DrawMapPersonalResult(dLowerLeftX,dLowerLeftY,dUpperRightX,dUpperRightY,strCaption,strUrl,arrPois,arrMapLabels,dLastDistPointX,dLastDistPointY,arrDistPolylinePixelX,arrDistPolylinePixelY,dDistanceMeter)
{this.dLowerLeftX=(dLowerLeftX!=undefined?dLowerLeftX:0.0);this.dLowerLeftY=(dLowerLeftY!=undefined?dLowerLeftY:0.0);this.dUpperRightX=(dUpperRightX!=undefined?dUpperRightX:0.0);this.dUpperRightY=(dUpperRightY!=undefined?dUpperRightY:0.0);this.strCaption=(strCaption!=undefined&&strCaption!=null?strCaption:"");this.strUrl=(strUrl!=undefined&&strUrl!=null?strUrl:"");this.arrPois=(arrPois!=undefined&&arrPois!=null?arrPois:new Array());this.arrMapLabels=(arrMapLabels!=undefined&&arrMapLabels!=null?arrMapLabels:new Array());this.dLastDistPointX=(dLastDistPointX!=undefined?dLastDistPointX:0.0);this.dLastDistPointY=(dLastDistPointY!=undefined?dLastDistPointY:0.0);this.arrDistPolylinePixelX=(arrDistPolylinePixelX!=undefined?arrDistPolylinePixelX:null);this.arrDistPolylinePixelY=(arrDistPolylinePixelY!=undefined?arrDistPolylinePixelY:null);this.dDistanceMeter=(dDistanceMeter!=undefined?dDistanceMeter:0.0);}
function CPoiType(iID,strName,iLevel,iParentID)
{this.iID=(iID!=undefined&&iID!=null?iID:0);this.strName=(strName!=undefined&&strName!=null?strName:"");this.iLevel=(iLevel!=undefined&&iLevel!=null?iLevel:0);this.iParentID=(iParentID!=undefined&&iParentID!=null?iParentID:0);}
function CPoiRecord(nID,nTypeID,iImageID,arrNames,arrValues,dX,dY)
{this.nID=nID;this.nTypeID=nTypeID;this.iImageID=iImageID;this.arrNames=(arrNames!=null?arrNames:new Array());this.arrValues=(arrValues!=null?arrValues:new Array());this.dX=dX;this.dY=dY;}
function CPoiSearchResult(iFirst,bHasNextPage,arrRecords)
{this.iFirst=(iFirst!=undefined&&iFirst!=null?iFirst:0);this.bHasNextPage=(bHasNextPage!=undefined&&bHasNextPage!=null?bHasNextPage:false);this.arrRecords=(arrRecords!=null?arrRecords:new Array());}
function CWeather(id,x,y,place,weather,temperature,wind,humidity,pressure,uv,iconId)
{this.id=(id!=null?id:"");this.x=(x!=null?x:"");this.y=(y!=null?y:"");this.place=(place!=null?place:"");this.weather=(weather!=null?weather:"");this.temperature=(temperature!=null?temperature:"");this.wind=(wind!=null?wind:"");this.humidity=(humidity!=null?humidity:"");this.pressure=(pressure!=null?pressure:"");this.uv=(uv!=null?uv:"");this.iconId=(iconId!=null?iconId:"");}
function CDailyNews(id,shortdescription,longdescription,eovx,eovy,signid)
{this.id=(id!=null?id:"");this.shortdescription=(shortdescription!=null?shortdescription:"");this.longdescription=(longdescription!=null?longdescription:"");this.eovx=(eovx!=null?eovx:"");this.eovy=(eovy!=null?eovy:"");this.signid=(signid!=null?signid:"");}

function StopAnyEvent(obj)
{obj.ondblclick=function(pEvent){StopEventPropagation(pEvent);return false;}
obj.onmousemove=function(pEvent){StopEventPropagation(pEvent);return false;}
obj.onclick=function(pEvent){StopEventPropagation(pEvent);return false;}
obj.onmousedown=function(pEvent){StopEventPropagation(pEvent);return false;}
obj.onmouseup=function(pEvent){StopEventPropagation(pEvent);return false;}
obj.onmousewheel=function(pEvent){StopEventPropagation(pEvent);return false;}}
function GetBlock(id)
{var block=null;if(document.getElementById)
{block=document.getElementById(id);}
return block;}
function GetTable(id)
{var table=GetBlock(id);if(table!=null)
{var tb=table.getElementsByTagName('tbody');if(tb.length>0)
return tb[0];}
return table;}
function SwapNode(a1,a2)
{if(a1.swapNode)
a1.swapNode(a2);else
{var itemtmp=a1.cloneNode(1);var parent1=a1.parentNode;var parent2=a2.parentNode;a2=parent2.replaceChild(itemtmp,a2);parent1.replaceChild(a2,a1);parent2.replaceChild(a1,itemtmp);itemtmp=null;}}
function InsertBefore(pParent,pChild,pBefore)
{var a=new Array();var c=pParent.firstChild;while(c!=null)
{if(c==pBefore)
break;c=c.nextSibling;}
while(c!=null)
{a[a.length]=c;c=c.nextSibling;}
var i=0;for(i=0;i<a.length;i++)
{pParent.removeChild(a[i]);}
pParent.appendChild(pChild);for(i=0;i<a.length;i++)
{pParent.appendChild(a[i]);}
delete a;}
function RefreshChildren(pParent)
{var a=new Array();var c=pParent.firstChild;while(c!=null)
{a[a.length]=c;c=c.nextSibling;}
var i=0;for(i=0;i<a.length;i++)
{pParent.removeChild(a[i]);}
for(i=0;i<a.length;i++)
{pParent.appendChild(a[i]);}
delete a;}
function AddTag(pChild,pParent,pBefore)
{if(pBefore!=undefined)
pParent.insertBefore(pChild,pBefore);else
pParent.appendChild(pChild);}
function NewTag(id,pParent,pBefore)
{var tag=document.createElement(id);if(pParent!=undefined)
AddTag(tag,pParent,pBefore);return tag;}
function NewTextTag(text,pParent,pBefore)
{var tag=document.createTextNode(text);if(pParent!=undefined)
AddTag(tag,pParent,pBefore);return tag;}
function NewAutoLinkTag(text,pParent,pBefore)
{var strTemp=text;strTemp.toLowerCase();var iPos=strTemp.lastIndexOf(".");var strExt="";if(iPos>=0)
strExt=strTemp.substr(iPos+1);if(strTemp.substr(0,7)=="http://"||strTemp.substr(0,6)=="ftp://"||strTemp.substr(0,4)=="www.")
{var a=NewTag("a",pParent,pBefore);a.setAttribute("target","_blank");a.setAttribute("href",strTemp.substr(0,4)=="www."?"http://"+text:text);NewTextTag(text,a);}
else if(strTemp.indexOf("@")>=0)
{var a=NewTag("a",pParent,pBefore);a.setAttribute("href","mailto:"+text);NewTextTag(text,a);}
else if(strExt=="png"||strExt=="gif"||strExt=="jpg"||strExt=="jpeg")
{var img=NewTag("img",pParent,pBefore);img.setAttribute("src",text);img.setAttribute("alt","");}
else
{NewTextTag(text,pParent,pBefore);}}
function NewIframe(src,width,height)
{var iframe=NewTag("iframe");iframe.setAttribute("src",src);iframe.width=width;iframe.height=height;iframe.marginWidth=0;iframe.marginHeight=0;iframe.setAttribute("hspace",0);iframe.setAttribute("vspace",0);iframe.frameBorder=0;iframe.setAttribute("scrolling","no");return iframe;}
function SetEvent(obj,strEvent,strFunction)
{obj.setAttribute(strEvent,strFunction);if(navigator.appName.indexOf("Microsoft")>=0)
obj[strEvent]=new Function(strFunction);}
function ImageSetter(img,src)
{this.img=img;this.src=src;var me=this;this.SetImageSrc=function()
{me.img.setAttribute('src',me.src);delete me;}
window.setTimeout(me.SetImageSrc,0);}
function SetImage(img,src,width,height,alt)
{if(width!=undefined&&width!=null&&width!=0)
img.style.width=width+"px";if(height!=undefined&&height!=null&&height!=0)
img.style.height=height+"px";img.style.border=0;new ImageSetter(img,src);if(alt!=null&&alt!=undefined||img.alt==null||img.alt==undefined)
img.setAttribute('alt',(alt==null||alt==undefined?"":alt));}
function GetEventX(pEvent)
{if(pEvent==undefined)
pEvent=window.event;if(pEvent.x!=undefined){return pEvent.x;}else if(pEvent.layerX!=undefined){return pEvent.layerX;}
else if(pEvent.clientX!=undefined){return pEvent.clientX;}
return null;}
function GetEventY(pEvent)
{if(pEvent==undefined)
pEvent=window.event;if(pEvent.y!=undefined){return pEvent.y;}else if(pEvent.layerY!=undefined){return pEvent.layerY;}else if(pEvent.clientY!=undefined){return pEvent.clientY;}
return null;}
function GetLayerX(pEvent)
{if(pEvent==undefined)
pEvent=window.event;if(pEvent.layerX!=undefined){return pEvent.layerX;}else if(pEvent.offsetX!=undefined){return pEvent.offsetX;}
return null;}
function GetLayerY(pEvent)
{if(pEvent==undefined)
pEvent=window.event;if(pEvent.layerY!=undefined){return pEvent.layerY;}else if(pEvent.offsetY!=undefined){return pEvent.offsetY;}
return null;}
function GetEventXNew(pEvent)
{var posx=0;if(!pEvent)pEvent=window.event;if(pEvent.pageX)
posx=pEvent.pageX;else if(pEvent.clientX)
{posx=pEvent.clientX+document.body.scrollLeft
+document.documentElement.scrollLeft;}
return posx;}
function GetEventYNew(pEvent)
{var posy=0;if(!pEvent)pEvent=window.event;if(pEvent.pageY)
posy=pEvent.pageY;else if(pEvent.clientY)
{posy=pEvent.clientY+document.body.scrollTop
+document.documentElement.scrollTop;}
return posy;}
function GetEventSourceElement(pEvent)
{if(pEvent==undefined)
pEvent=window.event;if(pEvent.srcElement!=null){return pEvent.srcElement;}else if(pEvent.target!=null){return pEvent.target;}}
function GetEventRelatedElement(pEvent)
{if(pEvent==undefined||pEvent==null)
pEvent=window.event;var relTarg=pEvent.relatedTarget||pEvent.toElement;return relTarg;}
function StopEventPropagation(pEvent)
{if(pEvent==undefined)
pEvent=window.event;if(pEvent.preventDefault)
pEvent.preventDefault();pEvent.cancelBubble=true;if(pEvent.stopPropagation)
pEvent.stopPropagation();}
function GetEventButton(pEvent)
{if(pEvent==undefined)
pEvent=window.event;if(pEvent.button!=undefined)
return pEvent.button;if(pEvent.which!=undefined)
{if(pEvent.which==0)
return 1;if(pEvent.which==1)
return 4;return pEvent.which;}
return 1;}
function GetLayerLeft(block)
{if(block.offsetLeft!=undefined)
{var iLeft=0;do{iLeft+=block.offsetLeft||0;block=block.offsetParent;if(block){if(block.tagName.toLowerCase()=='body')
break;var p=GetStyle(block,'position');if(p=='relative'||p=='absolute')
break;}}while(block);return iLeft;}
if(block.pixelLeft!=undefined)
return block.pixelLeft;return null;}
function GetStyle(block,strStyle)
{strStyle=strSyle=='float'?'cssFloat':strStyle;var value=block.style[strStyle];if(!value){var css=document.defaultView.getComputedStyle(block,null);value=css?css[strStyle]:null;}
if(strStyle=='opacity')
return value?parseFloat(value):1.0;return value=='auto'?null:value;}
function GetLayerTop(block)
{if(block.offsetTop!=undefined)
{var iTop=0;do{iTop+=block.offsetTop||0;block=block.offsetParent;if(block){if(block.tagName.toLowerCase()=='body')
break;var p=GetStyle(block,'position');if(p=='relative'||p=='absolute')
break;}}while(block);return iTop;}
if(block.pixelTop!=undefined)
return block.pixelTop;return null;}
function GetAbsLayerLeft(block)
{var ret=0;ret+=GetLayerLeft(block);if(block.offsetParent)
{if(block.offsetParent!=null)
{ret+=GetAbsLayerLeft(block.offsetParent);}}
return ret;}
function GetAbsLayerTop(block)
{var ret=0;ret+=GetLayerTop(block);if(block.offsetParent)
{if(block.offsetParent!=null)
{ret+=GetAbsLayerTop(block.offsetParent);}}
return ret;}
function GetLayerWidth(block)
{if(block.offsetWidth!=undefined)
return block.offsetWidth;if(block.pixelWidth!=undefined)
return block.pixelWidth;return null;}
function GetLayerHeight(block)
{if(block.offsetHeight!=undefined)
return block.offsetHeight;if(block.pixelHeight!=undefined)
return block.pixelHeight;return null;}
function GetLayerRight(block)
{return GetLayerLeft(block)+GetLayerWidth(block);}
function GetLayerBottom(block)
{return GetLayerTop(block)+GetLayerHeight(block);}
function Show(block)
{block.style.display="";block.style.visibility="visible";}
function Hide(block)
{block.style.display="none";block.style.visibility="hidden";}
function setAlpha(strCssSelector)
{if(document.all&&typeof window.opera==undefined)
{var styleSheets=document.styleSheets;for(var i=0;i<styleSheets.length;i++)
{var rules=styleSheets[i].rules;for(var j=0;j<rules.length;j++)
{if(rules[j].selectorText==strCssSelector)
{rules[j].style.filter='alpha(opacity = 100)';return true;}}}}
return false;};function SetOpac(block,value){block.style.opacity=value/100;block.style.filter='alpha(opacity='+value+')';}
function GetOpac(block)
{if(block.filters)
{if(block.filters.alpha)
return block.filters.alpha.opacity;else return 100;}
else if(block.style)
{if(block.style.MozOpacity)
return block.style.MozOpacity*100;else if(block.style.opacity)
return block.style.opacity;}}
function AvoidClip(div)
{if(GetLayerLeft(div)+GetLayerWidth(div)-3>GetLayerWidth(div.parentNode))
{var iLeft=Math.max(0,GetLayerWidth(div.parentNode)-GetLayerWidth(div)-3);div.style.left=iLeft+"px";}
if(GetLayerTop(div)+GetLayerHeight(div)-3>GetLayerHeight(div.parentNode))
{var iTop=Math.max(0,GetLayerHeight(div.parentNode)-GetLayerHeight(div)-3);div.style.top=iTop+"px";}}
function SetDivSize(div,iWidth,iHeight)
{div.style.width=iWidth+"px";div.style.height=iHeight+"px";}
function GetStyle(element,styleProp)
{if(element.currentStyle)
var y=element.currentStyle[styleProp];else if(window.getComputedStyle)
var y=document.defaultView.getComputedStyle(element,null).getPropertyValue(styleProp);return y;}
function WheelEventCalculateDelta(pEvent)
{var delta=0;if(!pEvent)pEvent=window.event;if(pEvent.wheelDelta){delta=pEvent.wheelDelta/120;if(window.opera)delta=-delta;}else if(pEvent.detail){delta=-pEvent.detail/3;}
if(delta)
return delta;}
function pausecomp(iMillis)
{var date=new Date();var curDate=null;do{curDate=new Date();}
while(curDate-date<iMillis);}
function getCookie(Name)
{var search=Name+"=";if(document.cookie.length>0)
{offset=document.cookie.indexOf(search);if(offset!=-1)
{offset+=search.length;end=document.cookie.indexOf(";",offset);if(end==-1)end=document.cookie.length;return unescape(document.cookie.substring(offset,end));}
return null;}}
function setCookie(name,value,expire)
{if(expire==null)
{expire=new Date;expire.setYear(expire.getYear()+1);}
document.cookie=name+"="+escape(value)+"; path=/"+((expire==null)?"":("; expires="+expire.toGMTString()))}
function GetArrayLength(array)
{if(array!=null)
{var iUpperBound=array.length;while(iUpperBound--)
{if(array[iUpperBound]!=null)
return iUpperBound+1;}}
return 0;}
function DisableSelection(block)
{block.onselectstart=function(){return false;};block.onmousedown=function(){return false;};}
var g_bPngHackSupported=/MSIE (5\.5)|[6789]/.test(navigator.userAgent)&&navigator.platform=="Win32";function SetTransparentPngAsBg(block,src)
{if(g_bPngHackSupported&&block.runtimeStyle)
{block.runtimeStyle.filter=block.runtimeStyle.filter||"";if(/\.png$/.test(src.toLowerCase())){block.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"',sizingMethod='scale')";block.style.backgroundImage="";}
else{block.runtimeStyle.filter="";}}
else
{block.style.backgroundImage="url('"+src+"')";}}
function SetTransparentPng(img,src,width,height,alt)
{var blankSrc=GetAbsUrl("graphics/transparent.gif");if(g_bPngHackSupported&&img.runtimeStyle)
{if(/\.png$/.test(src.toLowerCase())){SetImage(img,blankSrc,width,height,alt);img.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"',sizingMethod='scale')";}
else{img.runtimeStyle.filter="";SetImage(img,src,width,height,alt);}}
else
SetImage(img,src,width,height,alt);}
function AddEvent(elementObject,eventName,functionObject)
{if(document.addEventListener)
elementObject.addEventListener(eventName,functionObject,false);else if(document.attachEvent)
elementObject.attachEvent("on"+eventName,functionObject);}

function CreateRoundedInputDiv(pDOMParent,iWidth)
{var divMain=NewTag('div',pDOMParent);divMain.style.fontSize="1px";var div1=NewTag('div',divMain);div1.className="rip";var img=NewTag('img',div1);SetImage(img,"design/bevitelibox/bal.jpg",8,22,"");var div2=NewTag('div',divMain);div2.className="rip";div2.style.height="22px";div2.style.backgroundImage="url('design/bevitelibox/tolt.jpg')";div2.style.backgroundRepeat="repeat-x";var input1=NewTag('input');input1.className="beviteli";input1.type="text";AddTag(input1,div2);input1.style.width=(iWidth-16)+"px";input1.onfocus=function(){this.select();};var div3=NewTag('div',divMain);div3.className="rip";var img=NewTag('img',div3);SetImage(img,"design/bevitelibox/jobb.jpg",8,22,"");var div4=NewTag('div',divMain);div4.className="ripend";return input1;}
function CreateRoundedFramedDiv(pDOMParent,strExtension,iVerticalPadding)
{var retval=new Object();retval.outerdiv=null;retval.td=null;var rettd=null;var divMain=NewTag('div',pDOMParent);divMain.style.paddingTop=iVerticalPadding+"px";divMain.style.paddingBottom=iVerticalPadding+"px";var table=NewTag('table',divMain);table.className="sargakek";table.setAttribute("cellPadding","0");table.setAttribute("cellSpacing","0");var tbody=NewTag('tbody',table);var tr=NewTag('tr',tbody);tr.className="felso"+strExtension;var td=NewTag('td',tr);td.className="balfelso"+strExtension;td=NewTag('td',tr);td.className="kozepfelso"+strExtension;td=NewTag('td',tr);td.className="jobbfelso"+strExtension;var tr=NewTag('tr',tbody);tr.className="kozep"+strExtension;var td=NewTag('td',tr);td.className="bal"+strExtension;var img=NewTag('img',td);SetImage(img,GetAbsUrl('graphics/transparent.gif'),1,1,'');td=NewTag('td',tr);td.style.fontSize="1px";td.style.padding="0px";rettd=td;td=NewTag('td',tr);td.className="jobb"+strExtension;var tr=NewTag('tr',tbody);tr.className="also"+strExtension;var td=NewTag('td',tr);td.className="balalso"+strExtension;td=NewTag('td',tr);td.className="kozepalso"+strExtension;td=NewTag('td',tr);td.className="jobbalso"+strExtension;retval.td=rettd;retval.outerdiv=divMain;return retval;}
function CreateRoundedBox(pDOMParent,strExtension,iHeight,iVerticalPadding)
{var retval=new Object();retval.outerdiv=null;retval.innerdiv=null;if((iVerticalPadding==undefined)||(iVerticalPadding==null))
iVerticalPadding=0;var rv=CreateRoundedFramedDiv(pDOMParent,strExtension,iVerticalPadding);var td1=rv.td;var div1=NewTag('div',td1);if((iHeight!=undefined)&&(iHeight!=null)&&(iHeight!=""))
div1.style.height=iHeight+"px";div1.style.padding="0px";retval.innerdiv=div1;retval.outerdiv=rv.outerdiv;return retval;}
function ImgButton(img,srcDefault,srcOver,srcDown,bTransparent)
{this.img=img;this.srcDefault=srcDefault;this.srcOver=(srcOver!=undefined?srcOver:null);this.srcDown=(srcDown!=undefined?srcDown:null);this.bTransparent=(bTransparent!=undefined?bTransparent:false);this.bIsOver=false;var me=this;this.SetImage=function(src)
{if(me.bTransparent)
{SetTransparentPng(me.img,src);}
else
{SetImage(me.img,src);}}
this.SetDefaultSrc=function(srcDefault)
{me.srcDefault=srcDefault;if(!me.bIsOver)
me.SetImage(me.srcDefault);}
this.SetOverSrc=function(srcOver)
{me.srcOver=srcOver;if(me.bIsOver)
me.SetImage(me.srcOver);}
this.OnMouseOver=function()
{me.bIsOver=true;if(me.srcOver!=null)
me.SetImage(me.srcOver);}
this.OnMouseOut=function()
{me.bIsOver=false;me.SetImage(me.srcDefault);}
this.OnMouseDown=function()
{if(me.srcDown!=null)
me.SetImage(me.srcDown);}
this.OnMouseUp=function()
{if(me.srcOver!=null)
me.SetImage(me.srcOver);}
this.Init=function()
{me.SetImage(me.srcDefault);me.img.onmouseover=me.OnMouseOver;me.img.onmouseout=me.OnMouseOut;me.img.onmousedown=me.OnMouseDown;me.img.onmouseup=me.OnMouseUp;}
me.Init();}

function Ajax(){this.req=null;this.url=null;this.method='GET';this.async=true;this.status=null;this.statusText='';this.postData=null;this.readyState=null;this.responseText=null;this.responseXML=null;this.handleResp=null;this.handleReadyStateChange=null;this.responseFormat='text',this.mimeType=null;var me=this;this.setMimeType=function(mimeType){me.mimeType=mimeType;};this.setHandlerErr=function(funcRef){me.handleErr=funcRef;};this.setHandlerBoth=function(funcRef){me.handleResp=funcRef;me.handleErr=funcRef;};this.init=function(){if(!me.req){try{me.req=new XMLHttpRequest();}
catch(e){try{me.req=new ActiveXObject('MSXML2.XMLHTTP');}
catch(e){try{me.req=new ActiveXObject('Microsoft.XMLHTTP');}
catch(e){return false;}}}}
return me.req;};this.doReq=function(){if(!me.init()){return;}
me.req.open(me.method,me.url,me.async);if(me.mimeType){try{req.overrideMimeType(me.mimeType);}
catch(e){}}
var myonreadystatechange=function(){var resp=null;me.readyState=me.req.readyState;if(me.handleReadyStateChange)
me.handleReadyStateChange();if(me.req.readyState==4){switch(me.responseFormat){case'text':resp=me.req.responseText;break;case'xml':resp=me.req.responseXML;break;case'object':resp=req;break;}
if(me.req.status>=200&&me.req.status<=299){me.handleResp(resp);}
else{if(me.handleErr!=null&&me.handleErr!=undefined)
me.handleErr(resp);}}};if(me.async)
me.req.onreadystatechange=myonreadystatechange;me.req.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=UTF-8');me.req.send(me.postData);if(!me.async)
{myonreadystatechange();}};this.handleErr=function(){var errorWin;try{errorWin=window.open('','errorWin');errorWin.document.body.innerHTML=me.responseText;}
catch(e){}};this.abort=function(){if(me.req){me.req.onreadystatechange=function(){};me.req.abort();me.req=null;}};this.doGet=function(url,hand,format){me.url=url;me.handleResp=hand;me.responseFormat=format||'text';me.doReq();};this.doPost=function(url,params,hand,format){me.method="POST";me.url=url;me.postData=params;me.handleResp=hand;me.responseFormat=format||"text";me.doReq();}}

var g_arrAjaxList=new Array();function CommandHandler(strServerUrl,strSessionID,strAppID,strLangID)
{var me=this;this.bUseAjax=true;this.strServerUrl=((strServerUrl!=undefined)&&(strServerUrl!=null)&&(strServerUrl!="")?strServerUrl:location.protocol+"//"+location.host+location.pathname);this.strSessionID=(strSessionID!=undefined?strSessionID:"");this.strAppID=(strAppID!=undefined?strAppID:null);this.strLangID=(strLangID!=undefined?strLangID:null);this.arrAjaxList=new Array();this.OnCommandReady=null;this.OnCommandError=null;this.OnReadyStateChange=null;this.AddAjax=function(ajax,iTag)
{ajax.iTag=(iTag!=undefined?iTag:null);var iNew=-1;for(var i=0;i<g_arrAjaxList.length;i++)
{if(g_arrAjaxList[i]==null||g_arrAjaxList[i].readyState==4)
{iNew=i;break;}}
if(iNew<0){iNew=g_arrAjaxList.length;}
g_arrAjaxList[iNew]=ajax;}
this.GetState=function(iTag)
{if(iTag==undefined)
iTag=null;var iState=0;for(var i=0;i<g_arrAjaxList.length;i++)
{if(g_arrAjaxList[i]!=null)
{if(iTag!=null&&g_arrAjaxList[i].iTag!=iTag)
{continue;}
if(iState==0||g_arrAjaxList[i].readyState<iState)
iState=g_arrAjaxList[i].readyState;}}
return iState;}
this.CreateCommandID=function()
{return Math.round(Math.random()*10000);}
this.GetCommandUrl=function(strFunction,iCommandID)
{var url=me.strServerUrl;if(iCommandID==null)
iCommandID=me.CreateCommandID();url+='?Command='+strFunction+'&sessionID='+me.strSessionID+'&iCommandID='+iCommandID;if(me.strAppID!=null)
url+='&appID='+me.strAppID;if(me.strLangID!=null)
url+='&lang='+me.strLangID;return url;}
this.CallJs=function(strUrl)
{var iStartPos=strUrl.indexOf("iImageID=")+9;var iEndPos=strUrl.indexOf("&",iStartPos);var iImageID=0;if(iEndPos>0)
iImageID+=parseInt(strUrl.substring(iStartPos,iEndPos));if(isNaN(iImageID))
iImageID=0;var script=document.createElement('script');script.type='text/javascript';script.src=strUrl;document.getElementsByTagName('head')[0].appendChild(script);}
this.CallAjax=function(strFunction,strParams,iTag,handler,handlerParam,bAsync)
{var iCommandID=me.CreateCommandID();if(handler==undefined)
handler=null;var hand=function(strResult){try
{if(strResult!=null&&strResult.length>0)
{if(handler)
handler(eval(strResult),handlerParam,iCommandID);else
eval(strResult);if(me.OnCommandReady)
{try{me.OnCommandReady(iCommandID);}
catch(exp){if(me.OnCommandError)
me.OnCommandError(exp,iCommandID);}}}
else
{if(me.OnCommandError)
{try{me.OnCommandError("");}
catch(exp){}}}}
catch(exp)
{if(me.OnCommandError)
{try{me.OnCommandError(exp);}
catch(e){}}}}
if(iTag==undefined)
iTag=null;var ajax=new Ajax();if(bAsync!=null&&!bAsync)
ajax.async=false;me.AddAjax(ajax,iTag);if(me.OnCommandError!=null)
ajax.setHandlerErr(me.OnCommandError);ajax.handleReadyStateChange=function()
{if(me.OnReadyStateChange)
{try{me.OnReadyStateChange(me.GetState(iTag),iTag);}
catch(e){}}}
ajax.doPost(me.GetCommandUrl(strFunction,iCommandID),strParams,hand,"text");return iCommandID;}
this.CallFunction=function(strFunction,strParams,iTag,handler,handlerParam)
{if(me.bUseAjax)
return me.CallAjax(strFunction,strParams,iTag,handler,handlerParam,true);else
me.CallJs(me.GetUrl(strFunction,strParams));}
this.CallSyncFunction=function(strFunction,strParams,iTag,handler,handlerParam)
{var iCommandID=me.CallAjax(strFunction,strParams,iTag,handler,handlerParam,false);return iCommandID;}
this.GetUrl=function(strFunction,strParams)
{var strUrl=me.GetCommandUrl(strFunction);if(strParams!=null&&strParams!=undefined)
{strUrl+="&"+strParams;}
return strUrl;}}

function TopoliszPageData()
{this.pMap=null;var me=this;this.SetActiveMap=function(map){me.pMap=map};this.GetActiveMap=function(){return me.pMap};}
g_TopoliszPageData=new TopoliszPageData();function DrawRouteStruct()
{this.bNewPoint=false;this.bDrawRoute=false;}
function CTopoliszMap(strSessionID,divMap,bHasMiniMap)
{this.bPreviewIsOn=true;divMap.pMap=this;this.strSessionID=strSessionID;this.divMap=divMap;this.iDivMapWidth=0;this.iDivMapHeight=0;this.divFace=null;this.arrPois=new Array();this.pMapPalette=null;this.graphics=null;this.polyline=null;this.bMouseDown=false;this.iMouseDownX=0;this.iMouseDownY=0;this.iMouseUpX=0;this.iMouseUpY=0;this.iMouseMoveStartX=0;this.iMouseMoveStartY=0;this.iMouseMoveEndX=0;this.iMouseMoveEndY=0;this.iMousePosX=0;this.iMousePosY=0;this.pGridMain=null;this.iMapViewWidth=0;this.iMapViewHeight=0;this.arrStates=new Array();this.iActiveState=-1;this.bSkipNextStateChange=false;this.pTextResult=null;this.iMapGridItemWidth=(g_RasterMapInfo!=null?g_RasterMapInfo.iSectionWidth:0);this.iMapGridItemHeight=(g_RasterMapInfo!=null?g_RasterMapInfo.iSectionHeight:0);this.iGridHeight=Math.ceil(screen.availHeight/this.iMapGridItemHeight)+1;this.iGridWidth=Math.ceil(screen.availWidth/this.iMapGridItemWidth)+1;this.iMapWidth=this.iMapGridItemWidth*this.iGridWidth;this.iMapHeight=this.iMapGridItemHeight*this.iGridHeight;this.DEFAULT_MINIMAP_LEVEL=0;this.DIFF_MAP_LEVELS=4;this.MAP_DEFAULT_LEVEL=3;this.MAP_MINIMUM_LEVEL=3;this.MAP_MAXIMUM_LEVEL=-1;this.ArgZoom_ZoomPosX=0;this.ArgZoom_ZoomPosY=0;this.pixeldensity=10;this.InciServer=null;this.NoSessionServer=null;this.ReadSessionServer=null;this.bMainMapMode=true;this.bHasMiniMap=bHasMiniMap;this.pConnectedMainMap=null;this.pConnectedMiniMap=null;this.pMiniMapFrame=null;this.bMiniMapVisible=false;this.divMiniMap=null;this.animDiv=null;this.ratiometerOuterDiv=null;this.ratiometerInnerDiv=null;this.bZooming=false;this.iZoomingLevelChange=0;this.pZoomSrc=undefined;this.bFrameMouseDown=false;this.iFrameMouseX;this.iFrameMouseY;this.iFrameMouseStartX;this.iFrameMouseStartY;this.graphics=null;this.DistMeter=null;this.bDistanceMeasuring=false;this.pDistanceDisplay=null;this.pDistancePoly=new CPolyline();this.bDrawRouteHappening=false;this.bDrawDistMeasureHappening=false;this.iMapDivBorderWidth=0;this.bUserMovedByMouse=false;this.bUserMovedEndedFlag=false;this.bUserMoving=false;this.pLastStateFromServer=null;this.iMovingSinceLastServerStateX=0;this.iMovingSinceLastServerStateY=0;this.AutoScrollDY=0;this.AutoScrollDX=0;this.bAutoScrollEnabled=false;this.bMouseOverMapView=false;this.iAutoScrollMargin=10;this.bAutoScrolling=false;this.divFaceBorderTop=null;this.divFaceBorderLeft=null;this.divFaceBorderBottom=null;this.divFaceBorderRight=null;this.imgFaceBorderTop=null;this.imgFaceBorderLeft=null;this.imgFaceBorderBottom=null;this.imgFaceBorderRight=null;this.AutoMoveLimit=0;this.AutoMoveLimitStartValue=1000;this.pMarkers=new Markers();this.pAddressLabels=new Array();this.pRouteSearch=null;this.bPickMode=false;this.strPickMode="internal";this.bMouseEventsAreSet=false;this.divPoiParent=null;this.bCursorOnMapPalette=false;this.bOuterMoving=false;this.bWheeling=false;this.iWheelingDeltaSum=0;this.pRegisteredAddressLabel=null;this.bZoomingHappens=false;this.bUserZoomAllowed=true;var me=this;this.Init=function()
{if(me.bHasMiniMap)
{document.onkeypress=me.OnKeyDown;}
me.pixeldensity=me.GetInitialPixelDensity();me.className="CTopoliszMap";me.InciServer=new CommandHandler(g_strHandlerUrl,me.strSessionID);me.InciServer.OnReadyStateChange=function(iState,iTag){me.OnReadyStateChange(iState,iTag);};me.InciServer.OnCommandReady=function(){me.OnCommandReady();};me.InciServer.OnCommandError=function(exp){me.OnCommandError(exp);};me.NoSessionServer=new CommandHandler(g_strNoSessionHandlerUrl,me.strSessionID);me.NoSessionServer.OnReadyStateChange=function(iState,iTag){me.OnReadyStateChange(iState,iTag);};me.NoSessionServer.OnCommandReady=function(){me.OnCommandReady();};me.NoSessionServer.OnCommandError=function(exp){me.OnCommandError(exp);};me.ReadSessionServer=new CommandHandler(g_strReadSessionHandlerUrl,me.strSessionID);me.ReadSessionServer.OnReadyStateChange=function(iState,iTag){me.OnReadyStateChange(iState,iTag);};me.ReadSessionServer.OnCommandReady=function(){me.OnCommandReady();};me.ReadSessionServer.OnCommandError=function(exp){me.OnCommandError(exp);};if(me.divMap)
me.SetMapDiv(me.divMap);if(me.bHasMiniMap)
{me.divMiniMap=NewTag("div",me.divMap);me.divMiniMap.className="minimapHolder";var MiniMapDiv=NewTag('div',me.divMiniMap);var MiniMapId=me.divMap.id+"mm";MiniMapDiv.setAttribute("id",MiniMapId);MiniMapDiv.className="minimap";me.pConnectedMiniMap=new CTopoliszMap(me.strSessionID,MiniMapDiv,false);me.pConnectedMiniMap.SetAsMiniMap(me);me.pConnectedMiniMap.pMiniMapFrame=new CMiniMapFrame(me,me.pConnectedMiniMap);me.HideMiniMap();me.CreateZoomAnim();me.CreateRatioMeter();}
if(me.bMainMapMode)
{me.SetScrollEvents();}
if(me.OnCreate)
{try{me.OnCreate(me);}
catch(exp){if(me.OnError)
me.OnError(exp,'CTopoliszMap.OnCreate');}}}
this.InitGrid=function()
{if(me.pGridMain==null)
{me.pGridMain=new CMapGrid(0,0,me.iGridHeight-1,me.iGridWidth-1,me,0,0);var mgd=me.pGridMain.CreateGrid();me.graphics=new Graphics(mgd.id);}
if(me.pConnectedMiniMap)
me.pConnectedMiniMap.InitGrid();me.graphics=new Graphics(me.pGridMain.mainGridDiv.id);me.DistMeter=new DistanceMeter(me.graphics,0,0,me.pGridMain.mainGridDiv,me.pDistancePoly);}
this.SetAsMiniMap=function(pConnectedMainMap)
{me.bMainMapMode=false;me.pConnectedMainMap=pConnectedMainMap;me.pConnectedMainMap.pConnectedMiniMap=me;me.divMap.style.visibility="visible";me.iGridHeight=2;me.iGridWidth=2;me.SetBorderThickness(0);}
this.GetMapGridItemWidth=function()
{return me.iMapGridItemWidth;}
this.GetMapGridItemHeight=function()
{return me.iMapGridItemHeight;}
this.GetMapGridWidthInPixel=function()
{return me.iMapGridItemWidth*me.pGridMain.GetWidth();}
this.GetMapGridHeightInPixel=function()
{return me.iMapGridItemHeight*me.pGridMain.GetHeight();}
this.GetMapViewWidth=function()
{return me.iMapViewWidth;}
this.GetMapViewHeight=function()
{return me.iMapViewHeight;}
this.GetMapWidth=function()
{return me.iMapWidth;}
this.GetMapHeight=function()
{return me.iMapHeight;}
this.SetUserZoomAllowed=function(bAllowed)
{me.bUserZoomAllowed=bAllowed;}
this.GetMapGridItem=function()
{var pGridItem=new CMapGridItem(me);AddTag(pGridItem.div,me.divMap);return pGridItem;}
this.GetSessionID=function()
{return me.strSessionID;}
this.SetSessionID=function(strSessionID)
{me.strSessionID=strSessionID;}
this.SetMouseUp=function(iUpX,iUpY)
{this.iMouseUpX=iUpX;this.iMouseUpY=iUpY;}
this.SetMouseDown=function(iDownX,iDownY)
{me.iMouseDownX=iDownX;me.iMouseDownY=iDownY;}
this.SetMouseMoveStart=function(iUpX,iUpY)
{this.iMouseMoveStartX=iUpX;this.iMouseMoveStartY=iUpY;}
this.SetMouseMoveEnd=function(iDownX,iDownY)
{me.iMouseMoveEndX=iDownX;me.iMouseMoveEndY=iDownY;}
this.GetMapDivWidth=function()
{return me.iDivMapWidth;}
this.GetMapDivHeight=function()
{return me.iDivMapHeight;}
this.IsInView=function(x,y)
{var mvw=me.GetMapViewWidth();var mvh=me.GetMapViewHeight();var mvvx=me.pGridMain.GetMapViewVectorX();var mvvy=me.pGridMain.GetMapViewVectorY();if((x>=mvvx)&&(x<=mvvx+mvw)&&(y>=mvvy)&&(y<=mvvy+mvh))
{return true;}
return false;}
this.WriteIntoStatusBar=function(strInput)
{var str=window.status+" "+strInput;var len=str.length;var from=Math.max(0,len-100);var to=len;window.status=str.substr(from,to);}
this.MoveMap=function()
{document.onselectstart=function(){return false;};me.pGridMain.sMoveCallbackOn="true";var iMoveX=me.iMouseMoveEndX-me.iMouseMoveStartX;var iMoveY=me.iMouseMoveEndY-me.iMouseMoveStartY;var bItWasARealMove=me.MoveMapYX(iMoveY,iMoveX);me.bUserMovedByMouse=me.bUserMovedByMouse||bItWasARealMove;}
this.MoveMapYX=function(iMoveY,iMoveX)
{if(me.bUserMoving==false)
me.UserMovingStarted();me.bUserMoving=true;return me.pGridMain.Move(-iMoveY,-iMoveX);}
this.MoveMapYX_outer=function(iMoveY,iMoveX)
{me.bOuterMoving=true;me.pGridMain.Move(-iMoveY,-iMoveX);}
this.MovedCallback=function()
{if(me.bDrawRouteHappening==false)
me.RearrangeAddressLabels();else
me.HideAddressLabels();if(me.OnMapViewChanged)
{try{me.OnMapViewChanged();}
catch(exp)
{if(me.OnError)
me.OnError(exp,'OnMapViewChanged');}}
if(me.bUserMovedEndedFlag==true)
{me.bUserMovedEndedFlag=false;me.UserMovingEnded();}
if(me.bOuterMoving==true)
{me.OnStateChanged(me.pLastStateFromServer,me.iMovingSinceLastServerStateX,me.iMovingSinceLastServerStateY);me.bOuterMoving=false;}
if(me.bMainMapMode)
{me.MoveMiniMapSync();}
if(!me.bMainMapMode)
{me.MoveMainMapSync();}}
this.MoveMiniMapSync=function()
{if(me.bMiniMapVisible)
{var mainMapLevel=me.GetLevel();var miniMapLevel=me.pConnectedMiniMap.GetLevel();var mainMapPixelDensity=me.GetPixelDensity();var miniMapPixelDensity=me.GetPixelDensityFromLevel(miniMapLevel);var ratio=mainMapPixelDensity/miniMapPixelDensity;var iCol=(me.pGridMain.GetViewAbsoluteLeft()+(me.GetMapViewWidth())/2)*ratio-(me.pConnectedMiniMap.GetMapViewWidth())/2;var iRow=(me.pGridMain.GetViewAbsoluteTop()+(me.GetMapViewHeight())/2)*ratio-(me.pConnectedMiniMap.GetMapViewHeight())/2;me.pConnectedMiniMap.pGridMain.sMoveCallbackOn="rearrangeframe";me.pConnectedMiniMap.MoveMapTo(iRow,iCol);}}
this.MoveMainMapSync=function()
{if((me.pConnectedMainMap!=null))
{var miniMapLevel=me.GetLevel();var mainMapLevel=me.pConnectedMainMap.GetLevel();var miniMapPixelDensity=me.GetPixelDensity();var mainMapPixelDensity=me.GetPixelDensityFromLevel(mainMapLevel);var ratio=1/(mainMapPixelDensity/miniMapPixelDensity);var iCol=(me.pGridMain.GetViewAbsoluteLeft()+me.GetMapViewWidth()/2)*ratio-me.pConnectedMainMap.GetMapViewWidth()/2;var iRow=(me.pGridMain.GetViewAbsoluteTop()+me.GetMapViewHeight()/2)*ratio-me.pConnectedMainMap.GetMapViewHeight()/2;me.pConnectedMainMap.pGridMain.sMoveCallbackOn="false";me.pConnectedMainMap.MoveMapTo(iRow,iCol);}}
this.MoveMapTo=function(iRow,iCol)
{me.pGridMain.MoveTo(iRow,iCol);}
this.ZoomToCenter=function(iTop,iLeft,N)
{var MVW=me.GetMapViewWidth();var MVH=me.GetMapViewHeight();var newLevel=me.GetLevel()+N;if(newLevel>me.GetMaximumLevel())
newLevel=me.GetMaximumLevel();var oldPixelDensity=me.GetPixelDensity();var newPixelDensity=me.GetPixelDensityFromLevel(newLevel);var beforeAbsY=me.pGridMain.GetViewAbsoluteTop()+iTop;var beforeAbsX=me.pGridMain.GetViewAbsoluteLeft()+iLeft;var afterAbsY=oldPixelDensity/newPixelDensity*beforeAbsY;var afterAbsX=oldPixelDensity/newPixelDensity*beforeAbsX;var AbsX=afterAbsX-MVW/2;var AbsY=afterAbsY-MVH/2;var PixDen=me.GetPixelDensityFromLevel(newLevel);me.pGridMain.RemoveZoomPreview();var PreviewZoomPosX=MVW/2;var PreviewZoomPosY=MVH/2;if(me.GetMapViewWidth()>me.GetActiveWidthFromLevel(newLevel))
PreviewZoomPosX=me.GetMapViewWidth()/2;if(me.GetMapViewHeight()>me.GetActiveHeightFromLevel(newLevel))
PreviewZoomPosY=me.GetMapViewHeight()/2;var PreviewMoveX=iLeft-MVW/2;var PreviewMoveY=iTop-MVH/2;if(me.bPreviewIsOn)
me.pGridMain.ZoomPreview(oldPixelDensity/newPixelDensity,PreviewZoomPosX,PreviewZoomPosY,-PreviewMoveX,-PreviewMoveY);me.ZoomMap(PixDen,AbsX,AbsY,iLeft,iTop);}
this.ValidateEventSource=function(pEvent)
{for(var src=GetEventSourceElement(pEvent).parentNode;src!=null;src=src.parentNode)
{if(src==me.divPoiParent)
return false;if(src==me.divMap)
return true;if(src.nodeName.toLowerCase()=="body")
return true;}
return true;}
this.OnMapClick=function(pEvent)
{if(!me.ValidateEventSource(pEvent))
return true;var iX=GetEventXNew(pEvent)-GetAbsLayerLeft(me.divFace);var iY=GetEventYNew(pEvent)-GetAbsLayerTop(me.divFace);if(me.bPickMode)
{if((iX>=0)&&(iY>=0)&&(iX<me.GetMapViewWidth())&&(iY<me.GetMapViewHeight()))
me.OnPick(me.strPickMode,iX+me.pGridMain.GetMapViewVectorX(),iY+me.pGridMain.GetMapViewVectorY());me.UserPicked(pEvent);me.ResetPickMode();}
return false;}
this.OnMapDblClick=function(pEvent)
{if(!me.ValidateEventSource(pEvent))
return true;if(me.bMainMapMode==true)
{if(me.bDistanceMeasuring==true)
{me.OnOffMeasureDistance();}
else
{if(me.bUserZoomAllowed==true)
me.ZoomToCenter(GetEventY(pEvent),GetEventX(pEvent),1);}}}
this.OnMouseDown=function(pEvent)
{if(!me.ValidateEventSource(pEvent))
return true;me.OnMouseDownFunc(pEvent);return false;}
this.OnMouseDownFunc=function(pEvent)
{if(me.bPickMode)
{}
else
if(me.bDistanceMeasuring)
{if(me.bDrawDistMeasureHappening==false)
{var xx=GetEventXNew(pEvent)-GetAbsLayerLeft(me.pGridMain.mainGridDiv);var yy=GetEventYNew(pEvent)-GetAbsLayerTop(me.pGridMain.mainGridDiv);me.DrawDistMeasure(xx,yy);}
return false;}
else
{me.bMouseDown=true;var x=GetEventXNew(pEvent)-GetAbsLayerLeft(me.divFace);var y=GetEventYNew(pEvent)-GetAbsLayerTop(me.divFace);me.SetMouseDown(x,y);return false;}}
this.OnMouseWheel=function(pEvent)
{try
{var delta=WheelEventCalculateDelta(pEvent);var pMap=g_TopoliszPageData.GetActiveMap();if(pMap!=null)
{if(me.bUserZoomAllowed==true)
{if(pMap.bMainMapMode)
{if(pMap.bWheeling==false)
{pMap.bWheeling=true;setTimeout(pMap.WheelZoom,30);}
pMap.iWheelingDeltaSum+=delta;StopEventPropagation(pEvent);return false;}}}
return true;}
catch(e)
{}}
this.WheelZoom=function()
{me.pZoomSrc=me.className;var iTick=me.iWheelingDeltaSum/4;var iAbsTick=Math.abs(iTick);var iSign=iTick/iAbsTick;var iRoundAbsTick=Math.round(iAbsTick);var iDiffLevel=iRoundAbsTick*iSign;me.ZoomByLevel(iDiffLevel);me.bWheeling=false;me.iWheelingDeltaSum=0;}
this.UserMovingStarted=function()
{}
this.UserMovingEnded=function()
{document.onselectstart=function(){return true;};me.bUserMoving=false;var dMinX=me.pGridMain.dWgsLowerLeftX;var dMinY=me.pGridMain.dWgsLowerLeftY;var dMaxX=me.pGridMain.dWgsUpperRightX;var dMaxY=me.pGridMain.dWgsUpperRightY;var Params="";Params+='dMinX='+dMinX;Params+='&dMinY='+dMinY;Params+='&dMaxX='+dMaxX;Params+='&dMaxY='+dMaxY;me.NoSessionServer.CallFunction("MapRectToSettlement",Params,0,me.MapRectToSettlementCallback);}
this.MapRectToSettlementCallback=function(caption)
{me.ShowViewCenterSettlementCaption(caption);me.OnStateChanged(me.pLastStateFromServer,me.iMovingSinceLastServerStateX,me.iMovingSinceLastServerStateY,caption);}
this.OnMouseUp=function(pEvent)
{if(!me.ValidateEventSource(pEvent))
return true;me.OnMouseUpFunc(pEvent);return false;}
this.OnMouseUpFunc=function(pEvent)
{if(me.bFrameMouseDown)
{me.pMiniMapFrame.divSecFrame.style.visibility="hidden";me.pMiniMapFrame.divSecFrameFill.style.visibility="hidden";me.bFrameMouseDown=false;var x=GetEventXNew(pEvent);var y=GetEventYNew(pEvent);var iMoveX=-(x-me.iFrameMouseStartX);var iMoveY=-(y-me.iFrameMouseStartY);if((iMoveX!=0)||(iMoveY!=0))
{var miniMapLevel=me.GetLevel();var mainMapLevel=me.pConnectedMainMap.GetLevel();var miniMapPixelDensity=me.GetPixelDensity();var mainMapPixelDensity=me.GetPixelDensityFromLevel(mainMapLevel);var ratio=1/(mainMapPixelDensity/miniMapPixelDensity);me.pConnectedMainMap.pGridMain.sMoveCallbackOn="true";me.pConnectedMainMap.bUserMovedEndedFlag=true;me.pConnectedMainMap.MoveMapYX(Math.floor(iMoveY*ratio),Math.floor(iMoveX*ratio));}}
else if(me.bMouseDown==true)
{var x=GetEventXNew(pEvent)-GetAbsLayerLeft(me.divFace);var y=GetEventYNew(pEvent)-GetAbsLayerTop(me.divFace);me.SetMouseUp(x,y);var bSamePlaceUpAndDown=false;if((me.iMouseUpX==me.iMouseDownX)&&(me.iMouseUpY==me.iMouseDownY))
bSamePlaceUpAndDown=true;me.bMouseDown=false;if(bSamePlaceUpAndDown)
{}
else
{if(me.bUserMovedByMouse==true)
{if(me.pGridMain.AllowMove==true)
{me.bUserMovedByMouse=false;me.UserMovingEnded();}
else
{me.bUserMovedEndedFlag=true;}}}}}
this.OnMouseMoveOnDocument=function(pEvent)
{try
{var pActMap=g_TopoliszPageData.GetActiveMap();if(g_TopoliszPageData.GetActiveMap()==me)
{me.OnMouseMove(pEvent);}
me.OnMouseMoveOnDocumentHandler(pEvent);}
catch(e)
{}}
this.OnMouseMoveOnDocumentHandler=function(pEvent)
{if(me.pMapPalette)
{var div=me.pMapPalette.pSlider.slider;var l=GetAbsLayerLeft(div);var t=GetAbsLayerTop(div);var r=l+GetLayerWidth(div);var b=t+GetLayerHeight(div);var x=GetEventXNew(pEvent);var y=GetEventYNew(pEvent);if((l<=x)&&(x<=r)&&(y<=b-3)&&(t+3<=y))
{if(me.bCursorOnMapPalette==false)
{me.pMapPalette.SliderOnMouseOver();me.bCursorOnMapPalette=true;}}else if(me.bCursorOnMapPalette==true)
{me.pMapPalette.SliderOnMouseOut();me.bCursorOnMapPalette=false;}}}
this.OnMouseUpOnDocument=function(pEvent)
{try
{if(g_TopoliszPageData.GetActiveMap()==me)
{me.OnMouseUp(pEvent);}}
catch(e)
{}}
this.OnMouseMove=function(pEvent)
{try
{me.bMouseOverMapView=true;if(me.bDistanceMeasuring)
{if(me.bDrawDistMeasureHappening==false)
{var xx=GetEventXNew(pEvent)-GetAbsLayerLeft(me.pGridMain.mainGridDiv);var yy=GetEventYNew(pEvent)-GetAbsLayerTop(me.pGridMain.mainGridDiv);me.DistMeter.MoveDistCursor(xx,yy);}}
me.OnMouseMoveFunc(pEvent);StopEventPropagation(pEvent);}
catch(e)
{}
return false;}
this.OnMouseMoveFunc=function(pEvent)
{var obj=GetEventSourceElement(pEvent);var xxx=GetLayerX(pEvent);var yyy=GetLayerY(pEvent);if(me.bFrameMouseDown)
{var obj=GetEventSourceElement(pEvent);if(obj.className=="minimapframe")
{xxx+=me.pMiniMapFrame.GetFrameLeft();yyy+=me.pMiniMapFrame.GetFrameTop();}
else if(obj.className=="minimapsecframe")
{xxx+=GetLayerLeft(me.pMiniMapFrame.divSecFrame);yyy+=GetLayerTop(me.pMiniMapFrame.divSecFrame);}
var LT=GetLayerTop(me.pMiniMapFrame.divSecFrame);var LL=GetLayerLeft(me.pMiniMapFrame.divSecFrame);var NewLeft=(LL+xxx-me.iFrameMouseX);var NewTop=(LT+yyy-me.iFrameMouseY);me.pMiniMapFrame.divSecFrame.style.left=NewLeft+"px";me.pMiniMapFrame.divSecFrame.style.top=NewTop+"px";me.pMiniMapFrame.divSecFrameFill.style.left=NewLeft+"px";me.pMiniMapFrame.divSecFrameFill.style.top=NewTop+"px";me.iFrameMouseX=xxx;me.iFrameMouseY=yyy;}
else if(g_TopoliszPageData.GetActiveMap()==me)
{var xx=GetEventXNew(pEvent)-GetAbsLayerLeft(me.divFace);var yy=GetEventYNew(pEvent)-GetAbsLayerTop(me.divFace);me.iMousePosX=xx;me.iMousePosY=yy;me.SetMouseMoveEnd(xx,yy);if(me.bMouseDown)
{me.MoveMap();}
else
{if
(((me.iMousePosY>0)&&(me.iMousePosX>0)&&(me.iMousePosY<me.GetMapViewHeight())&&(me.iMousePosX<me.GetMapViewWidth()))&&((me.iMousePosY<me.iAutoScrollMargin)||(me.iMousePosX<me.iAutoScrollMargin)||(me.iMousePosY>me.GetMapViewHeight()-me.iAutoScrollMargin)||(me.iMousePosX>me.GetMapViewWidth()-me.iAutoScrollMargin)))
{if(me.bAutoScrolling==false)
{me.AutoMoveLimit=me.AutoMoveLimitStartValue;window.setTimeout(me.AutoScroll,500);}}}
me.SetMouseMoveStart(xx,yy);}}
this.AutoScroll=function()
{me.AutoScrollDY=0;me.AutoScrollDX=0;if(me.bAutoScrollEnabled&&me.bMouseOverMapView)
{if
(((me.iMousePosY>0)&&(me.iMousePosX>0)&&(me.iMousePosY<me.GetMapViewHeight())&&(me.iMousePosX<me.GetMapViewWidth()))&&((me.iMousePosY<me.iAutoScrollMargin)||(me.iMousePosX<me.iAutoScrollMargin)||(me.iMousePosY>me.GetMapViewHeight()-me.iAutoScrollMargin)||(me.iMousePosX>me.GetMapViewWidth()-me.iAutoScrollMargin)))
{var VY=me.iMousePosY-me.GetMapViewHeight()/2;var VX=me.iMousePosX-me.GetMapViewWidth()/2;var L=Math.sqrt(VY*VY+VX*VX);VY=VY/L*6;VX=VX/L*6;if((me.iMousePosY<me.iAutoScrollMargin/2)||(me.iMousePosX<me.iAutoScrollMargin/2)||(me.iMousePosY>me.GetMapViewHeight()-me.iAutoScrollMargin/2)||(me.iMousePosX>me.GetMapViewWidth()-me.iAutoScrollMargin/2))
{VY*=2;VX*=2;}
me.AutoScrollDX=-VX;me.AutoScrollDY=-VY;}
if(((me.AutoScrollDY!=0)||(me.AutoScrollDX!=0))&&(me.AutoMoveLimit>0))
{me.pGridMain.sMoveCallbackOn="true";me.AutoMoveLimit-=Math.sqrt(me.AutoScrollDY*me.AutoScrollDY+Math.round(me.AutoScrollDX)*Math.round(me.AutoScrollDX));me.MoveMapYX(Math.round(me.AutoScrollDY),Math.round(me.AutoScrollDX));me.bAutoScrolling=true;window.setTimeout(me.AutoScroll,100);}
else if(me.bAutoScrolling)
{me.bAutoScrolling=false;me.UserMovingEnded();}}}
this.OnMouseOver=function(pEvent)
{try
{var pActMap=g_TopoliszPageData.GetActiveMap();if(pActMap==null)
g_TopoliszPageData.SetActiveMap(me);else if(pActMap.bMouseDown==false)
g_TopoliszPageData.SetActiveMap(me);}
catch(e)
{}}
this.OnMouseOut=function(pEvent)
{try
{if((pEvent==undefined)||(pEvent==null))
pEvent=window.event;var relTarg=pEvent.relatedTarget||pEvent.toElement;if(relTarg.className!="face"&&relTarg.className!="poiParent"&&relTarg.className!="anim_main"&&relTarg.className!="anim_br"&&relTarg.className!="anim_bl"&&relTarg.className!="anim_tr"&&relTarg.className!="anim_tl")
{var pActMap=g_TopoliszPageData.GetActiveMap();if((pActMap==me)&&(pActMap.bMouseDown==false))
{g_TopoliszPageData.SetActiveMap(null);me.bMouseOverMapView=false;var AutoScrollFinishedByMouseOut=false;if(me.bAutoScrolling)
{me.bAutoScrolling=false;AutoScrollFinishedByMouseOut=true;}
if((me.bUserMovedByMouse==true)||(AutoScrollFinishedByMouseOut==true))
{if(me.pGridMain.AllowMove==true)
{me.bUserMovedByMouse=false;me.UserMovingEnded();}
else
{me.bUserMovedEndedFlag=true;}}}}}
catch(e)
{}}
this.GetMapDiv=function()
{return me.divMap;}
this.SetMouseEvents=function()
{if(me.bMouseEventsAreSet==false)
{me.divFace.onclick=me.OnMapClick;me.divFace.ondblclick=me.OnMapDblClick;me.divFace.onmousedown=me.OnMouseDown;if(window.addEventListener)
{document.addEventListener('mousemove',me.OnMouseMoveOnDocument,false);}
else
{document.attachEvent('onmousemove',me.OnMouseMoveOnDocument,false);}
if(window.addEventListener)
{window.addEventListener('mouseup',me.OnMouseUpOnDocument,false);}
else
{document.attachEvent('onmouseup',me.OnMouseUpOnDocument,false);}
me.divFace.onmouseout=me.OnMouseOut;me.divFace.onmouseover=me.OnMouseOver;me.bMouseEventsAreSet=true;}}
this.SetMapDiv=function(divMap)
{me.divMap=divMap;if(divMap.className=="")
divMap.className="map";me.iDivMapWidth=GetLayerWidth(divMap);me.iDivMapHeight=GetLayerHeight(divMap);divMap.style.overflow="hidden";var clipLeft=GetLayerLeft(divMap);var clipTop=GetLayerTop(divMap);var clipRight=clipLeft+me.iDivMapWidth;var clipBottom=clipTop+me.iDivMapHeight;this.iMapViewWidth=clipRight-clipLeft-me.iMapDivBorderWidth;this.iMapViewHeight=clipBottom-clipTop-me.iMapDivBorderWidth;me.divFace=NewTag("div",me.divMap);me.divFace.id=divMap.id+"face";me.divFace.className="face";me.divFace.style.backgroundImage="url('"+GetAbsUrl("graphics/transparent.gif")+"')";me.divFace.style.width=(me.iDivMapWidth-2*me.iMapDivBorderWidth)+"px";me.divFace.style.height=(me.iDivMapHeight-2*me.iMapDivBorderWidth)+"px";me.divPrintPreview=NewTag('div',me.divFace);me.divPrintPreview.className="printPreview";me.divPrintPreview.style.width=me.iMapWidth;me.divPrintPreview.style.height=me.iMapHeight;me.divPoiParent=NewTag('div',me.divFace);me.divPoiParent.className="poiParent";me.divPoiParent.style.width=me.iMapWidth;me.divPoiParent.style.height=me.iMapHeight;me.divPoiParent.style.top="0px";me.divPoiParent.style.left="0px";me.divMarkerLabel=NewTag("div",me.divFace);me.divMarkerLabel.className="markerlabel";me.divMarkerLabel.style.width=(me.iDivMapWidth-2*me.iMapDivBorderWidth)+"px";me.divMarkerLabel.style.height=(me.iDivMapHeight-2*me.iMapDivBorderWidth)+"px";me.divMarkerLabel.style.top="0px";me.divMarkerLabel.style.left="0px";me.SetMouseEvents();if(me.bHasMiniMap)
{var toplogo=NewTag("img",me.divMap);toplogo.id=divMap.id+"toplogo";toplogo.className="toplogo";SetImage(toplogo,GetAbsUrl("graphics/t.gif"),58,28,"Topolisz");}}
this.CreateFaceBorder=function()
{var BorderOpacity=10;setAlpha(".faceborder");me.divFaceBorderTop=NewTag("div",me.divMap);me.divFaceBorderTop.className="faceborder";me.divFaceBorderTop.style.width=Math.max(0,me.iDivMapWidth-2*me.iMapDivBorderWidth)+"px";me.divFaceBorderTop.style.height=me.iAutoScrollMargin+"px";me.divFaceBorderTop.style.top=0+"px";SetOpac(me.divFaceBorderTop,BorderOpacity);me.divFaceBorderTop.style.visibility="hidden";me.imgFaceBorderTop=NewTag("img",me.divMap);me.imgFaceBorderTop.className="faceborder";me.imgFaceBorderTop.style.left=Math.max(0,(me.iDivMapWidth-2*me.iMapDivBorderWidth-9)/2)+"px";me.imgFaceBorderTop.style.top=0+"px";me.imgFaceBorderTop.style.visibility="hidden";SetTransparentPng(me.imgFaceBorderTop,GetAbsUrl('graphics/faceborder_top.png'),9,9,"");me.divFaceBorderBottom=NewTag("div",me.divMap);me.divFaceBorderBottom.className="faceborder";me.divFaceBorderBottom.style.width=Math.max(0,me.iDivMapWidth-2*me.iMapDivBorderWidth)+"px";me.divFaceBorderBottom.style.height=me.iAutoScrollMargin+"px";me.divFaceBorderBottom.style.bottom=0+"px";SetOpac(me.divFaceBorderBottom,BorderOpacity);me.divFaceBorderBottom.style.visibility="hidden";me.imgFaceBorderBottom=NewTag("img",me.divMap);me.imgFaceBorderBottom.className="faceborder";me.imgFaceBorderBottom.style.left=Math.max(0,(me.iDivMapWidth-2*me.iMapDivBorderWidth-9)/2)+"px";me.imgFaceBorderBottom.style.bottom=0+"px";me.imgFaceBorderBottom.style.visibility="hidden";SetTransparentPng(me.imgFaceBorderBottom,GetAbsUrl('graphics/faceborder_bottom.png'),9,9,"");me.divFaceBorderLeft=NewTag("div",me.divMap);me.divFaceBorderLeft.className="faceborder";me.divFaceBorderLeft.style.width=me.iAutoScrollMargin+"px";me.divFaceBorderLeft.style.height=Math.max(0,me.iDivMapHeight-2*me.iMapDivBorderWidth-2*me.iAutoScrollMargin)+"px";me.divFaceBorderLeft.style.top=me.iAutoScrollMargin+"px";me.divFaceBorderLeft.style.left=0+"px";SetOpac(me.divFaceBorderLeft,BorderOpacity);me.divFaceBorderLeft.style.visibility="hidden";me.imgFaceBorderLeft=NewTag("img",me.divMap);me.imgFaceBorderLeft.className="faceborder";me.imgFaceBorderLeft.style.left=0+"px";me.imgFaceBorderLeft.style.top=Math.max(0,(me.iDivMapHeight-2*me.iMapDivBorderWidth-2*me.iAutoScrollMargin+9)/2)+"px";me.imgFaceBorderLeft.style.visibility="hidden";SetTransparentPng(me.imgFaceBorderLeft,GetAbsUrl('graphics/faceborder_left.png'),9,9,"");me.divFaceBorderRight=NewTag("div",me.divMap);me.divFaceBorderRight.className="faceborder";me.divFaceBorderRight.style.width=me.iAutoScrollMargin+"px";me.divFaceBorderRight.style.height=Math.max(0,me.iDivMapHeight-2*me.iMapDivBorderWidth-2*me.iAutoScrollMargin)+"px";me.divFaceBorderRight.style.top=me.iAutoScrollMargin+"px";me.divFaceBorderRight.style.right=0+"px";me.divFaceBorderRight.style.visibility="hidden";SetOpac(me.divFaceBorderRight,BorderOpacity);me.imgFaceBorderRight=NewTag("img",me.divMap);me.imgFaceBorderRight.className="faceborder";me.imgFaceBorderRight.style.right=0+"px";me.imgFaceBorderRight.style.top=Math.max(0,(me.iDivMapHeight-2*me.iMapDivBorderWidth-2*me.iAutoScrollMargin+9)/2)+"px";me.imgFaceBorderRight.style.visibility="hidden";SetTransparentPng(me.imgFaceBorderRight,GetAbsUrl('graphics/faceborder_right.png'),9,9,"");}
this.GetPoiParentDiv=function()
{return me.divPoiParent;}
this.RearrangeFaceBorder=function()
{if(me.divFaceBorderTop)
{me.divFaceBorderTop.style.width=Math.max(0,me.iDivMapWidth-2*me.iMapDivBorderWidth)+"px";me.divFaceBorderTop.style.height=me.iAutoScrollMargin+"px";me.divFaceBorderTop.style.top=0+"px";me.imgFaceBorderTop.style.left=Math.max(0,(me.iDivMapWidth-2*me.iMapDivBorderWidth-9)/2)+"px";me.divFaceBorderBottom.style.width=Math.max(0,me.iDivMapWidth-2*me.iMapDivBorderWidth)+"px";me.divFaceBorderBottom.style.height=me.iAutoScrollMargin+"px";me.divFaceBorderBottom.style.bottom=0+"px";me.imgFaceBorderBottom.style.left=Math.max(0,(me.iDivMapWidth-2*me.iMapDivBorderWidth-9)/2)+"px";me.divFaceBorderLeft.style.width=me.iAutoScrollMargin+"px";me.divFaceBorderLeft.style.height=Math.max(0,me.iDivMapHeight-2*me.iMapDivBorderWidth-2*me.iAutoScrollMargin)+"px";me.divFaceBorderLeft.style.top=me.iAutoScrollMargin+"px";me.divFaceBorderLeft.style.left=0+"px";me.imgFaceBorderLeft.style.top=Math.max(0,(me.iDivMapHeight-2*me.iMapDivBorderWidth-2*me.iAutoScrollMargin+9)/2)+"px";me.divFaceBorderRight.style.width=me.iAutoScrollMargin+"px";me.divFaceBorderRight.style.height=Math.max(0,me.iDivMapHeight-2*me.iMapDivBorderWidth-2*me.iAutoScrollMargin)+"px";me.divFaceBorderRight.style.top=me.iAutoScrollMargin+"px";me.divFaceBorderRight.style.right=0+"px";me.imgFaceBorderRight.style.top=Math.max(0,(me.iDivMapHeight-2*me.iMapDivBorderWidth-2*me.iAutoScrollMargin+9)/2)+"px";}}
this.SetVisibilityBorders=function(bVisibilityHorizontal,bVisibilityVertical)
{if(me.iAutoScrollMargin<=0)
{bVisibilityHorizontal=false;bVisibilityVertical=false;}
if(!me.bDistanceMeasuring)
{bVisibilityHorizontal=false;bVisibilityVertical=false;}
if((bVisibilityHorizontal)&&(bVisibilityVertical))
{if(!me.divFacBorderLeft)
me.CreateFaceBorder();me.divFaceBorderLeft.style.top=me.iAutoScrollMargin+"px";me.divFaceBorderLeft.style.height=Math.max(0,me.iDivMapHeight-2*me.iMapDivBorderWidth-2*me.iAutoScrollMargin)+"px";me.divFaceBorderRight.style.top=me.iAutoScrollMargin+"px";me.divFaceBorderRight.style.height=Math.max(0,me.iDivMapHeight-2*me.iMapDivBorderWidth-2*me.iAutoScrollMargin)+"px";me.divFaceBorderTop.style.visibility="visible";me.divFaceBorderBottom.style.visibility="visible";me.divFaceBorderLeft.style.visibility="visible";me.divFaceBorderRight.style.visibility="visible";me.imgFaceBorderTop.style.visibility="visible";me.imgFaceBorderBottom.style.visibility="visible";me.imgFaceBorderLeft.style.visibility="visible";me.imgFaceBorderRight.style.visibility="visible";}
else if((!bVisibilityHorizontal)&&(!bVisibilityVertical))
{if(me.divFaceBorderTop)
{me.divFaceBorderTop.style.visibility="hidden";me.divFaceBorderBottom.style.visibility="hidden";me.divFaceBorderLeft.style.visibility="hidden";me.divFaceBorderRight.style.visibility="hidden";me.imgFaceBorderTop.style.visibility="hidden";me.imgFaceBorderBottom.style.visibility="hidden";me.imgFaceBorderLeft.style.visibility="hidden";me.imgFaceBorderRight.style.visibility="hidden";}}
else if((bVisibilityHorizontal)&&(!bVisibilityVertical))
{if(!me.divFaceBorderLeft)
me.CreateFaceBorder();me.divFaceBorderLeft.style.top="0px";me.divFaceBorderLeft.style.height=Math.max(0,me.iDivMapHeight-2*me.iMapDivBorderWidth)+"px";me.divFaceBorderRight.style.top="0px";me.divFaceBorderRight.style.height=Math.max(0,me.iDivMapHeight-2*me.iMapDivBorderWidth)+"px";me.divFaceBorderTop.style.visibility="hidden";me.divFaceBorderBottom.style.visibility="hidden";me.divFaceBorderLeft.style.visibility="visible";me.divFaceBorderRight.style.visibility="visible";me.imgFaceBorderTop.style.visibility="hidden";me.imgFaceBorderBottom.style.visibility="hidden";me.imgFaceBorderLeft.style.visibility="visible";me.imgFaceBorderRight.style.visibility="visible";}
else if((!bVisibilityHorizontal)&&(bVisibilityVertical))
{if(!me.divFaceBorderTop)
me.CreateFaceBorder();me.divFaceBorderTop.style.visibility="visible";me.divFaceBorderBottom.style.visibility="visible";me.divFaceBorderLeft.style.visibility="hidden";me.divFaceBorderRight.style.visibility="hidden";me.imgFaceBorderTop.style.visibility="visible";me.imgFaceBorderBottom.style.visibility="visible";me.imgFaceBorderLeft.style.visibility="hidden";me.imgFaceBorderRight.style.visibility="hidden";}
me.bAutoScrollEnabled=(bVisibilityHorizontal||bVisibilityVertical);}
this.SetBorderThickness=function(iThickness)
{me.iAutoScrollMargin=iThickness;}
this.SetScrollEvents=function()
{if(me.bMainMapMode)
{if(window.addEventListener)
{window.addEventListener('DOMMouseScroll',me.OnMouseWheel,false);}
else
{document.attachEvent('onmousewheel',me.OnMouseWheel,false);}}}
this.SetMapToDefaultLevelAndPosition=function()
{me.ZoomMap(me.GetPixelDensityFromLevel(me.MAP_DEFAULT_LEVEL),me.GetCenterPosX(me.MAP_DEFAULT_LEVEL),me.GetCenterPosY(me.MAP_DEFAULT_LEVEL),0,0);}
this.GetCenterPosX=function(iLevel)
{var A=me.GetActiveWidthFromLevel(iLevel);var V=me.GetMapViewWidth();return Math.floor((A-V)/2);}
this.GetCenterPosY=function(iLevel)
{var A=me.GetActiveHeightFromLevel(iLevel);var V=me.GetMapViewHeight();return Math.floor((A-V)/2);}
this.SetLang=function(strLang)
{g_Babel.SetLang(strLang);}
this.GetLang=function()
{return g_Babel.GetLang();}
this.Show=function()
{me.divMap.style.visibility="visible";}
this.Hide=function()
{me.divMap.style.visibility="hidden";}
this.GetInitialPixelDensity=function()
{if(me.bHasMiniMap)
{return me.GetPixelDensityFromLevel(me.MAP_DEFAULT_LEVEL);}
else
{return me.GetPixelDensityFromLevel(me.DEFAULT_MINIMAP_LEVEL);}}
this.ZoomOut=function()
{me.pZoomSrc=this.className;me.ZoomByLevel(-1);}
this.ZoomIn=function()
{me.pZoomSrc=this.className;me.ZoomByLevel(+1);}
this.ZoomByLevel=function(iDiffLevel)
{me.iZoomingLevelChange+=iDiffLevel;if(me.bZooming==false)
{me.bZooming=true;window.setTimeout(me.ZoomByLevelMain,250);}}
this.ZoomByLevelMain=function(bForced)
{var iDiffLevel=me.iZoomingLevelChange;me.iZoomingLevelChange=0;me.bZooming=false;var oldLevel=me.GetLevel();var newLevel=oldLevel+iDiffLevel;if(newLevel>me.GetMaximumLevel())
newLevel=me.GetMaximumLevel();if(newLevel<me.GetMinimumLevel())
newLevel=me.GetMinimumLevel();if((oldLevel!=newLevel)||bForced==true)
{var oldPixelDensity=me.GetPixelDensity();var newPixelDensity=me.GetPixelDensityFromLevel(newLevel);var ZoomPosX=0;var ZoomPosY=0;if(me.pZoomSrc=="CTopoliszMap")
{ZoomPosX=me.iMousePosX;ZoomPosY=me.iMousePosY;}
else
{if(me.GetMapViewWidth()<=me.GetActiveWidth())
ZoomPosX=me.GetMapViewWidth()/2;else
ZoomPosX=me.GetActiveWidth()/2;if(me.GetMapViewHeight()<=me.GetActiveHeight())
ZoomPosY=me.GetMapViewHeight()/2;else
ZoomPosY=me.GetActiveHeight()/2;}
var beforeAbsY=me.pGridMain.GetViewAbsoluteTop();var beforeAbsX=me.pGridMain.GetViewAbsoluteLeft();var afterAbsY=oldPixelDensity/newPixelDensity*(beforeAbsY+ZoomPosY)-ZoomPosY;var afterAbsX=oldPixelDensity/newPixelDensity*(beforeAbsX+ZoomPosX)-ZoomPosX;var PreviewZoomPosX=ZoomPosX;var PreviewZoomPosY=ZoomPosY;if(me.GetMapViewWidth()>me.GetActiveWidthFromLevel(newLevel))
PreviewZoomPosX=me.GetMapViewWidth()/2;if(me.GetMapViewHeight()>me.GetActiveHeightFromLevel(newLevel))
PreviewZoomPosY=me.GetMapViewHeight()/2;if(me.bPreviewIsOn)
me.pGridMain.ZoomPreview(oldPixelDensity/newPixelDensity,PreviewZoomPosX,PreviewZoomPosY,0,0);me.ZoomMap(newPixelDensity,afterAbsX,afterAbsY,ZoomPosX,ZoomPosY);}}
this.SetSlider=function()
{if(me.pMapPalette)
{var Level=me.GetLevel()-me.GetMinimumLevel();var LevelNumber=me.GetLevelNumber();var value=Level/(LevelNumber-1);if(me.pMapPalette.pSlider)
me.pMapPalette.pSlider.setPercentY(1-value);}}
this.GetPixelDensity=function()
{return me.pixeldensity;}
this.ZoomModifiedBySlider=function(sliderPercent)
{if(me.bUserZoomAllowed==false)
return;var oldPixelDensity=me.GetPixelDensity();var newLevel=Math.round((1-sliderPercent)*(me.GetLevelNumber()-1))+me.GetMinimumLevel();var newPixelDensity=me.GetPixelDensityFromLevel(newLevel);var oldLevel=me.GetLevel();var ZoomPosX=0;var ZoomPosY=0;ZoomPosX=me.GetMapViewWidth()/2;ZoomPosY=me.GetMapViewHeight()/2;if(oldLevel!=newLevel)
{var beforeAbsY=me.pGridMain.GetViewAbsoluteTop();var beforeAbsX=me.pGridMain.GetViewAbsoluteLeft();var afterAbsY=oldPixelDensity/newPixelDensity*(beforeAbsY+ZoomPosY)-ZoomPosY;var afterAbsX=oldPixelDensity/newPixelDensity*(beforeAbsX+ZoomPosX)-ZoomPosX;if(me.bPreviewIsOn)
me.pGridMain.ZoomPreview(oldPixelDensity/newPixelDensity,ZoomPosX,ZoomPosY,0,0);me.ZoomMap(newPixelDensity,afterAbsX,afterAbsY,ZoomPosX,ZoomPosY);}}
this.ZoomMap=function(PixelDensity,PosX,PosY,ZoomPosX,ZoomPosY)
{if(PixelDensity>me.GetMaxPixelDensity())PixelDensity=me.GetMaxPixelDensity();if(PixelDensity<me.GetMinPixelDensity())PixelDensity=me.GetMinPixelDensity();me.StartZoom(PixelDensity,PosX,PosY,ZoomPosX,ZoomPosY);}
this.ZoomMiniMapSync=function(PixelDensity,ZoomPosX,ZoomPosY,bUsePreview)
{if(me.bMiniMapVisible)
{var mainMapLevel=me.GetLevelFromPixelDensity(PixelDensity);var levelDiff=me.DIFF_MAP_LEVELS;var miniMapLevel=mainMapLevel-levelDiff;if(miniMapLevel<0)miniMapLevel=0;var mainMapPixelDensity=PixelDensity;var miniMapPixelDensity=me.GetPixelDensityFromLevel(miniMapLevel);var ratio=mainMapPixelDensity/miniMapPixelDensity;var iCol=(me.pGridMain.GetViewAbsoluteLeft()+me.GetMapViewWidth()/2)*ratio-me.pConnectedMiniMap.GetMapViewWidth()/2;var iRow=(me.pGridMain.GetViewAbsoluteTop()+me.GetMapViewHeight()/2)*ratio-me.pConnectedMiniMap.GetMapViewHeight()/2;var MiniPosX=iCol;var MiniPosY=iRow;if((me.bMiniMapVisible)&&(bUsePreview))
{var FrameTop=me.pConnectedMiniMap.pMiniMapFrame.GetFrameTop();var FrameLeft=me.pConnectedMiniMap.pMiniMapFrame.GetFrameLeft();var PreViewX=ZoomPosX*ratio+FrameTop+3;var PreViewY=ZoomPosY*ratio+FrameLeft+3;me.pConnectedMiniMap.pGridMain.ZoomPreview(me.pConnectedMiniMap.GetPixelDensity()/miniMapPixelDensity,PreViewX,PreViewY,0,0);}
me.pConnectedMiniMap.ZoomMap(miniMapPixelDensity,MiniPosX,MiniPosY,0,0);}}
this.StartZoom=function(PixelDensity,PosX,PosY,ZoomPosX,ZoomPosY)
{me.HideAddressLabels();me.HidePois();me.HidePrintPreview();me.HideRoute();me.pGridMain.SetMainGridImage("");me.HideDistMeasure();if(me.DistMeter)
{me.DistMeter.ClearRubberLine();me.DistMeter.ClearCursors();}
var isIn=true;if(PixelDensity>me.pixeldensity)isIn=false;if((ZoomPosX!=0)&&(ZoomPosY!=0))
me.ShowZoomAnimation(ZoomPosY,ZoomPosX,isIn);var iNewLevel=me.GetLevelFromPixelDensity(PixelDensity);if(me.GetActiveWidthFromLevel(iNewLevel)<me.GetMapViewWidth())
PosX=me.GetCenterPosX(iNewLevel);if(me.GetActiveHeightFromLevel(iNewLevel)<me.GetMapViewHeight())
PosY=me.GetCenterPosY(iNewLevel);var iNewTop=me.pGridMain.GetTopFromAbsCoordY(PosY);var iNewLeft=me.pGridMain.GetLeftFromAbsCoordX(PosX);var iGridWidth=me.pGridMain.GetWidth();var iGridHeight=me.pGridMain.GetHeight();me.ArgZoom_ZoomPosX=ZoomPosX;me.ArgZoom_ZoomPosY=ZoomPosY;var iViewDeltaX=me.GetMapViewWidth();var iViewDeltaY=me.GetMapViewHeight();var iNewViewOffsetY=me.pGridMain.GetMapViewVectorYFromAbsCoordY(PosY);var iNewViewOffsetX=me.pGridMain.GetMapViewVectorXFromAbsCoordX(PosX);var Params='iLevel='+iNewLevel;Params+='&iMinRow='+iNewTop;Params+='&iMinCol='+iNewLeft;Params+='&iMaxRow='+(iNewTop+iGridHeight-1);Params+='&iMaxCol='+(iNewLeft+iGridWidth-1);Params+='&iViewOffsetX='+(iNewViewOffsetX);Params+='&iViewOffsetY='+(iNewViewOffsetY);Params+='&iViewDeltaX='+(iViewDeltaX);Params+='&iViewDeltaY='+(iViewDeltaY);me.bZoomingHappens=true;me.NoSessionServer.CallFunction("DrawRasterMap",Params,0,me.EndZoomMain);}
this.EndZoomMain=function(serverResponse,clientParam,iCommandID)
{me.bZoomingHappens=false;if(!serverResponse)
return;me.pLastStateFromServer=serverResponse;me.iMovingSinceLastServerStateX=0;me.iMovingSinceLastServerStateY=0;me.pixeldensity=me.GetPixelDensityFromLevel(serverResponse.iLevel);me.iMapWidth=me.GetMapCols()*me.GetMapGridItemWidth();me.iMapHeight=me.GetMapRows()*me.GetMapGridItemHeight();me.pGridMain.LoadLevel2(serverResponse);me.SetSlider();me.SetMovingRights();if(me.bMainMapMode)
{me.ZoomMiniMapSync(me.pixeldensity,me.ArgZoom_ZoomPosX,me.ArgZoom_ZoomPosY,true);}
if(me.pMiniMapFrame)
me.pMiniMapFrame.ReArrange();me.RearrangeRatioMeter();me.DrawRoute();me.DrawDistMeasure();me.OnStateChanged(serverResponse,0,0);me.RearrangePois();me.ShowPois();}
this.SetMovingRights=function()
{if(me.GetActiveWidth()<me.GetMapViewWidth())
{me.pGridMain.bCanMoveX=false;PosX=0;}
else
{me.pGridMain.bCanMoveX=true;}
if(me.GetActiveHeight()<me.GetMapViewHeight())
{me.pGridMain.bCanMoveY=false;PosY=0;}
else
{me.pGridMain.bCanMoveY=true;}
me.SetVisibilityBorders(me.pGridMain.bCanMoveX,me.pGridMain.bCanMoveY);}
this.GetLevelNumber=function()
{return me.GetMaximumLevel()-me.GetMinimumLevel()+1;}
this.GetMinimumLevel=function()
{if(me.bHasMiniMap)
return me.MAP_MINIMUM_LEVEL;else
return 0;}
this.GetMaximumLevelByServer=function()
{try
{return g_RasterMapInfo!=null?g_RasterMapInfo.iLevels-1:0;}
catch(e)
{return 0;}}
this.GetMaximumLevel=function()
{if((me.MAP_MAXIMUM_LEVEL>-1)&&(me.MAP_MAXIMUM_LEVEL<=me.GetMaximumLevelByServer()))
return me.MAP_MAXIMUM_LEVEL;else
return me.GetMaximumLevelByServer();}
this.GetLevelFromPixelDensity=function(PixelDensity)
{try
{var minLevel=me.GetMinimumLevel();var maxLevel=me.GetMaximumLevel();if(g_RasterMapInfo!=null)
{for(i=minLevel;i<maxLevel+1;i++)
{if(g_RasterMapInfo.arrLevels[i].dPixelDensityXMeter==PixelDensity)
return i;}
if(PixelDensity>g_RasterMapInfo.arrLevels[minLevel].dPixelDensityXMeter)
return minLevel;else
return maxLevel;}}
catch(e)
{}
return 0;}
this.GetLevelFromPixelDensityNonExact=function(PixelDensity)
{try
{var minLevel=me.GetMinimumLevel();var maxLevel=me.GetMaximumLevel();if(g_RasterMapInfo!=null)
{for(i=minLevel;i<maxLevel+1;i++)
{if(g_RasterMapInfo.arrLevels[i].dPixelDensityXMeter<PixelDensity)
return i;}
return maxLevel;}}
catch(e)
{}
return 0;}
this.GetLevel=function()
{return me.GetLevelFromPixelDensity(me.pixeldensity);}
this.GetMaxPixelDensity=function()
{return g_RasterMapInfo!=null?g_RasterMapInfo.arrLevels[me.GetMinimumLevel()].dPixelDensityXMeter:0;}
this.GetMinPixelDensity=function()
{return g_RasterMapInfo!=null?g_RasterMapInfo.arrLevels[me.GetMaximumLevel()].dPixelDensityXMeter:0;}
this.GetPixelDensityFromLevel=function(Level)
{try
{return g_RasterMapInfo!=null?g_RasterMapInfo.arrLevels[Level].dPixelDensityXMeter:0;}
catch(e)
{return 0;}}
this.GetMapColsFromLevel=function(Level)
{return g_RasterMapInfo.arrLevels[Level].iCols;}
this.GetMapRowsFromLevel=function(Level)
{return g_RasterMapInfo.arrLevels[Level].iRows;}
this.GetMapCols=function()
{return g_RasterMapInfo!=null?g_RasterMapInfo.arrLevels[me.GetLevel()].iCols:0;}
this.GetMapRows=function()
{return g_RasterMapInfo!=null?g_RasterMapInfo.arrLevels[me.GetLevel()].iRows:0;}
this.GetActiveWidth=function()
{return g_RasterMapInfo!=null?g_RasterMapInfo.arrLevels[me.GetLevel()].iActiveWidth:0;}
this.GetActiveHeight=function()
{return g_RasterMapInfo!=null?g_RasterMapInfo.arrLevels[me.GetLevel()].iActiveHeight:0;}
this.GetActiveWidthFromLevel=function(iLevel)
{return g_RasterMapInfo!=null?g_RasterMapInfo.arrLevels[iLevel].iActiveWidth:0;}
this.GetActiveHeightFromLevel=function(iLevel)
{return g_RasterMapInfo!=null?g_RasterMapInfo.arrLevels[iLevel].iActiveHeight:0;}
this.ZoomToScale=function(wgsX,wgsY,strScale)
{var dRadius=me.GetRadiusMeter(strScale);me.ZoomToPoint(wgsX,wgsY,dRadius,null);}
this.GetRadiusMeter=function(strScale)
{var dRadius;switch(strScale)
{case"Country":dRadius=160000;break;case"Region":dRadius=30000;break;case"Settlement":dRadius=3000;break;case"Street":dRadius=300;break;default:dRadius=160000;}
return dRadius;}
this.ZoomToPoint=function(wgsX,wgsY,dRadius,pfOuterCallback)
{me.HideAddressLabels();me.HidePois();me.DistMeter.ClearRubberLine();me.DistMeter.ClearCursors();me.HideRoute();me.HideDistMeasure();var iViewDeltaX=me.GetMapViewWidth();var iViewDeltaY=me.GetMapViewHeight();var iGridDeltaX=me.GetMapGridItemWidth()*me.iGridWidth;var iGridDeltaY=me.GetMapGridItemHeight()*me.iGridHeight;var Params="";Params+='dCenterX='+wgsX;Params+='&dCenterY='+wgsY;Params+='&dRadius='+dRadius;Params+='&iViewDeltaX='+iViewDeltaX;Params+='&iViewDeltaY='+iViewDeltaY;Params+='&iGridDeltaX='+iGridDeltaX;Params+='&iGridDeltaY='+iGridDeltaY;me.NoSessionServer.CallFunction("DrawRasterMapCenter",Params,0,me.ZoomToPointCallback,pfOuterCallback);me.pGridMain.RemoveZoomPreview();}
this.ZoomToPointCallback=function(result,pfOuterCallback,iCommandID)
{me.ArgZoom_ZoomPosX=0;me.ArgZoom_ZoomPosY=0;me.EndZoomMain(result,null,iCommandID);if(pfOuterCallback)
pfOuterCallback();}
this.ZoomToRect=function(dMinX,dMinY,dMaxX,dMaxY,pfOuterCallback)
{me.HideAddressLabels();me.HidePois();me.DistMeter.ClearRubberLine();me.DistMeter.ClearCursors();me.HideRoute();me.HideDistMeasure();var iViewDeltaX=me.GetMapViewWidth();var iViewDeltaY=me.GetMapViewHeight();var iGridDeltaX=me.GetMapGridItemWidth()*me.iGridWidth;var iGridDeltaY=me.GetMapGridItemHeight()*me.iGridHeight;var Params="";Params+='dMinX='+dMinX;Params+='&dMinY='+dMinY;Params+='&dMaxX='+dMaxX;Params+='&dMaxY='+dMaxY;Params+='&iViewDeltaX='+iViewDeltaX;Params+='&iViewDeltaY='+iViewDeltaY;Params+='&iGridDeltaX='+iGridDeltaX;Params+='&iGridDeltaY='+iGridDeltaY;me.NoSessionServer.CallFunction("DrawRasterMapRectangle",Params,0,me.ZoomToRectCallback,pfOuterCallback);me.pGridMain.RemoveZoomPreview();}
this.ZoomToRectCallback=function(result,pfOuterCallback,iCommandID)
{me.ArgZoom_ZoomPosX=0;me.ArgZoom_ZoomPosY=0;me.EndZoomMain(result,null,iCommandID);if(pfOuterCallback)
pfOuterCallback();}
this.ZoomToDefault=function(pfOuterCallback)
{me.ZoomToRect(g_RasterMapInfo.wgsMapMinX+0.5,g_RasterMapInfo.wgsMapMinY+0.5,g_RasterMapInfo.wgsMapMaxX-0.5,g_RasterMapInfo.wgsMapMaxY-0.5,pfOuterCallback);}
this.ZoomToAddressSpecial=function(address,pfOuterCallback)
{var WGS_METER_X=0.0000121;var WGS_METER_Y=0.0000098;var RADIUS_METER_MIN=250;var RADIUS_METER_MAX=1000;if(address.dMinX>0&&address.dMinY>0&&address.dMaxX>0&&address.dMaxY>0&&address.dMinX!=address.dMaxX&&address.dMinY!=address.dMaxY)
{if((Math.abs(address.dMaxX-address.dMinX)<2*RADIUS_METER_MIN*WGS_METER_X)&&(Math.abs(address.dMaxY-address.dMinY)<2*RADIUS_METER_MIN*WGS_METER_Y))
{if(address.dX>0&&address.dY>0)
me.ZoomToPoint(address.dX,address.dY,RADIUS_METER_MIN,pfOuterCallback);}
else
{me.ZoomToRect(address.dMinX,address.dMinY,address.dMaxX,address.dMaxY,pfOuterCallback);}}
else if(address.dX>0&&address.dY>0)
me.ZoomToPoint(address.dX,address.dY,RADIUS_METER_MIN,pfOuterCallback);}
this.DrawRoute=function()
{me.bDrawRouteHappening=true;var dMinX=me.pGridMain.dWgsLowerLeftX;var dMinY=me.pGridMain.dWgsLowerLeftY;var dMaxX=me.pGridMain.dWgsUpperRightX;var dMaxY=me.pGridMain.dWgsUpperRightY;var iGridWidth=me.GetMapGridWidthInPixel();var iGridHeight=me.GetMapGridHeightInPixel();var CommonParams="";CommonParams+='dMinX='+dMinX;CommonParams+='&dMinY='+dMinY;CommonParams+='&dMaxX='+dMaxX;CommonParams+='&dMaxY='+dMaxY;CommonParams+='&iGridWidth='+iGridWidth;CommonParams+='&iGridHeight='+iGridHeight;if(me.OnPoiDrawBegins)
{try{me.OnPoiDrawBegins();}
catch(exp){if(me.OnError)
me.OnError(exp,'CTopoliszMap.OnPoiDrawBegins');}}
var i=0;var strPoiIDs="";var strPoiXs="";var strPoiYs="";for(i=0;i<me.arrPois.length;i++)
{if(me.arrPois[i]!=null)
{if(strPoiIDs!="")
{strPoiIDs+='|';strPoiXs+='|';strPoiYs+='|';}
strPoiIDs+=me.arrPois[i].strID;strPoiXs+=me.arrPois[i].dX;strPoiYs+=me.arrPois[i].dY;}}
var Params1="";Params1+='bDrawRoute=1';Params1+='&arrPoiIDs='+strPoiIDs;Params1+='&arrPoiX='+strPoiXs;Params1+='&arrPoiY='+strPoiYs;Params1+='&arrMarkerIDs='+me.pMarkers.GetIDs();Params1+='&arrMarkerX='+me.pMarkers.GetWgsXs();Params1+='&arrMarkerY='+me.pMarkers.GetWgsYs();Params1=CommonParams+"&"+Params1;var pDRS1=new DrawRouteStruct();pDRS1.bDrawRoute=true;pDRS1.bNewPoint=false;me.HideRoute();me.HideDistMeasure();me.RemoveAddressLabels();me.ReadSessionServer.CallFunction("DrawMapPersonal",Params1,0,me.DrawRouteCallback,pDRS1);}
this.DrawPois=function()
{me.DrawRoute();}
this.DrawDistMeasure=function(iNewDistancePixelPointX,iNewDistancePixelPointY)
{var bNewPoint=false;if((iNewDistancePixelPointX!=undefined)&&(iNewDistancePixelPointY!=undefined))
bNewPoint=true;me.bDrawDistMeasureHappening=true;var dMinX=me.pGridMain.dWgsLowerLeftX;var dMinY=me.pGridMain.dWgsLowerLeftY;var dMaxX=me.pGridMain.dWgsUpperRightX;var dMaxY=me.pGridMain.dWgsUpperRightY;var iGridWidth=me.GetMapGridWidthInPixel();var iGridHeight=me.GetMapGridHeightInPixel();var CommonParams="";CommonParams+='dMinX='+dMinX;CommonParams+='&dMinY='+dMinY;CommonParams+='&dMaxX='+dMaxX;CommonParams+='&dMaxY='+dMaxY;CommonParams+='&iGridWidth='+iGridWidth;CommonParams+='&iGridHeight='+iGridHeight;if(me.pDistancePoly.PointNum>0||bNewPoint)
{var Params2="";Params2+='bDrawRoute=0';if(me.pDistancePoly.PointNum>0)
{Params2+='&arrDistX='+me.pDistancePoly.GetXs();Params2+='&arrDistY='+me.pDistancePoly.GetYs();}
Params2=CommonParams+"&"+Params2;if(bNewPoint)
{Params2+='&iDistNextPointX='+iNewDistancePixelPointX;Params2+='&iDistNextPointY='+iNewDistancePixelPointY;}
me.NoSessionServer.CallFunction("DrawMapPersonal",Params2,0,me.DrawDistMeasureCallback,bNewPoint);}
else
me.bDrawDistMeasureHappening=false;}
this.DrawPrintPreview=function()
{me.bDrawPrintPreviewHappening=true;var pMapData=me.GetMapData();var dMinX=pMapData.dMinX;var dMinY=pMapData.dMinY;var dMaxX=pMapData.dMaxX;var dMaxY=pMapData.dMaxY;var iGridWidth=me.GetMapViewWidth();var iGridHeight=me.GetMapViewHeight();var CommonParams="";CommonParams+='dMinX='+dMinX;CommonParams+='&dMinY='+dMinY;CommonParams+='&dMaxX='+dMaxX;CommonParams+='&dMaxY='+dMaxY;CommonParams+='&iGridWidth='+iGridWidth;CommonParams+='&iGridHeight='+iGridHeight;var Params1="";Params1+='bDrawRoute=1';Params1+='&bDrawMap=1';Params1=CommonParams+"&"+Params1;me.ReadSessionServer.CallFunction("DrawMapPersonal",Params1,0,me.DrawPrintPreviewCallback);}
this.DrawPrintPreviewCallback=function(result,pClientParam,iCommandID)
{var strImageUrl=result.strUrl;me.divPrintPreview.style.left="0px";me.divPrintPreview.style.top="0px";me.divPrintPreview.style.width=me.GetMapViewWidth()+"px";me.divPrintPreview.style.height=me.GetMapViewHeight()+"px";while(me.divPrintPreview.firstChild)
me.divPrintPreview.removeChild(me.divPrintPreview.firstChild);var img=NewTag('img',me.divPrintPreview);SetImage(img,strImageUrl,me.GetMapViewWidth(),me.GetMapViewHeight(),"");me.divPrintPreview.style.display="block";me.bDrawPrintPreviewHappening=false;}
this.HidePrintPreview=function()
{me.divPrintPreview.style.display="none";}
this.HideRoute=function()
{me.pGridMain.HideMainGridImage();}
this.HideDistMeasure=function()
{me.pGridMain.HideDistMeasure();}
this.ShowDistMeasure=function()
{me.pGridMain.ShowDistMeasure();}
this.ShowRoute=function()
{me.pGridMain.ShowMainGridImage();}
this.DrawRouteCallback=function(result,pClientParam,iCommandID)
{var strImageUrl=result.strUrl;me.pGridMain.SetMainGridImage(strImageUrl);me.RearrangePois();me.ShowPois();var divParent=me.divPoiParent;if(divParent!=null)
{while(divParent.firstChild)
divParent.removeChild(divParent.firstChild);if(me.OnPoiDraw)
{try
{var iPoi;for(iPoi=0;iPoi<result.arrPois.length;iPoi++)
{me.OnPoiDraw(divParent,result.arrPois[iPoi].strID,result.arrPois[iPoi].iX,result.arrPois[iPoi].iY);}}
catch(exp){if(me.OnError)
me.OnError(exp,'CTopoliszMap.OnPoiDraw');}}
if(me.OnPoiDrawEnded)
{try{me.OnPoiDrawEnded();}
catch(exp){if(me.OnError)
me.OnError(exp,'CTopoliszMap.OnPoiDrawEnds');}}}
var iLabel;for(iLabel=0;iLabel<result.arrMapLabels.length;iLabel++)
{var label=result.arrMapLabels[iLabel];var marker=me.pMarkers.Find(label.ID);marker.iPixX=label.iPixX;marker.iPixY=label.iPixY;var addresslabel=me.CreateAddressLabel(marker);addresslabel.Create();}
if(me.OnMarkerListChanged)
me.OnMarkerListChanged();me.ShowRoute();me.bDrawRouteHappening=false;if(me.bHasMiniMap==false)
me.divMap.style.display="";}
this.DrawDistMeasureCallback=function(result,bNewPoint)
{var strImageUrl=result.strUrl;while(me.pGridMain.mainGridDistMeasureImageDiv.firstChild)
me.pGridMain.mainGridDistMeasureImageDiv.removeChild(me.pGridMain.mainGridDistMeasureImageDiv.firstChild);me.pGridMain.SetMainGridDistMeasureImage(strImageUrl);me.DistMeter.SetPixelDensity(me.pixeldensity);me.pDistancePoly.SetPointsPixelX(result.arrDistPolylinePixelX);me.pDistancePoly.SetPointsPixelY(result.arrDistPolylinePixelY);var iMousePosInGridX=me.iMousePosX+me.pGridMain.GetMapViewVectorX();var iMousePosInGridY=me.iMousePosY+me.pGridMain.GetMapViewVectorY();if(bNewPoint)
{me.pDistancePoly.AddPoint(result.dLastDistPointY,result.dLastDistPointX);me.pDistancePoly.dDistanceMeter=result.dDistanceMeter;}
me.DistMeter.ClearRubberLine();me.DistMeter.ClearCursors();if(me.pDistanceDisplay)
me.pDistanceDisplay.displayLastDist.lastChild.nodeValue="0 km";if(result.arrDistPolylinePixelX!=null&&result.arrDistPolylinePixelX.length>0)
{me.DistMeter.Init();me.DistMeter.AddDistPoint(me.pDistancePoly.GetLastPointPixelX(),me.pDistancePoly.GetLastPointPixelY());me.DistMeter.SetEndPoint(iMousePosInGridX,iMousePosInGridY);var divParent=me.pGridMain.mainGridDistMeasureImageDiv;for(var i=0;i<result.arrDistPolylinePixelX.length;i++)
{var divPoint=NewTag("div");divPoint.style.position="absolute";divPoint.style.left=(result.arrDistPolylinePixelX[i]-14)+"px";divPoint.style.top=(result.arrDistPolylinePixelY[i]-14)+"px";var img=NewTag("img");SetTransparentPng(img,GetAbsUrl("graphics/distpoi_2.png"),27,27);AddTag(img,divPoint);AddTag(divPoint,divParent);}}
me.bDrawDistMeasureHappening=false;}
this.GetPoisInView=function()
{var i;var arrPoisInView=new Array();for(i=0;i<me.arrPoisOnGrid.length;i++)
{var poiOnGrid=me.arrPoisOnGrid[i];if(me.IsInView(poiOnGrid.iX,poiOnGrid.iY))
{arrPoisInView.push(poiOnGrid);}}
return arrPoisInView;}
this.SetPoiList=function(arrPois)
{me.arrPois=(arrPois!=null?arrPois:new Array());}
this.GetPoiList=function()
{return me.arrPois;}
this.OnPoiDrawBegins=function()
{}
this.OnPoiDraw=function(divParent,strID,iX,iY)
{}
this.OnPoiDrawEnded=function()
{}
this.OnLabelDraw=function(tmTopoliszMap,pMapLabel,pMarker)
{}
this.SaveState=function()
{var mapdata=me.arrStates[me.iActiveState];var strState="dX="+mapdata.dCenterX
+"&dY="+mapdata.dCenterY
+"&dRadius="+mapdata.dRadius
+"&lang="+me.GetLang();if(me.pTextResult!=null)
{var arrAddressList=me.pTextResult.GetAddressList();var iAddress;var strAddresses='',strX='',strY='';for(iAddress=0;iAddress<arrAddressList.length;iAddress++)
{if(strAddresses!="")
{strAddresses+='|';strX+='|';strY+='|';}
strAddresses+=encodeURIComponent(arrAddressList[iAddress].strAddress);strX+=arrAddressList[iAddress].dX;strY+=arrAddressList[iAddress].dY;}
if(strAddresses!="")
{strState+="&bToll="+(me.pTextResult.bUseTolledRoute?1:0);strState+="&bFerry="+(me.pTextResult.bUseFerry?1:0);strState+="&arrAddresses="+strAddresses+"&arrX="+strX+"&arrY="+strY;}}
if(me.pMarkers!=null)
{var arrMarkers=me.pMarkers.arrMarkers;var iMarker;var strMarkerCaptions='',dMarkersXs='',dMarkersYs='',strMarkerTypes='';for(iMarker=0;iMarker<arrMarkers.length;iMarker++)
{var actMarker=arrMarkers[iMarker];if(actMarker!=null)
{if(actMarker.pAddress!=null)
{if(strMarkerCaptions!="")
{strMarkerCaptions+='|';dMarkersXs+='|';dMarkersYs+='|';strMarkerTypes+='|';}
strMarkerCaptions+=actMarker.pAddress.strAddress;strMarkerTypes+=actMarker.type;dMarkersXs+=actMarker.pAddress.dX;dMarkersYs+=actMarker.pAddress.dY;}}}
if(strMarkerCaptions!="")
{strState+="&strMarkerCaptions="+strMarkerCaptions;strState+="&strMarkerTypes="+strMarkerTypes;strState+="&dMarkerXs="+dMarkersXs;strState+="&dMarkerYs="+dMarkersYs;}}
var the_res="";var i;for(i=0;i<strState.length;++i)
{var to_code_charcode=strState.charCodeAt(i);var char_to_code=strState.charAt(i);var coded_charcode;var coded_char;if((to_code_charcode>=48)&&(to_code_charcode<=57))
{the_res+=String.fromCharCode(57-to_code_charcode+48);}
else if((to_code_charcode>=97)&&(to_code_charcode<=122))
{the_res+=String.fromCharCode(122-to_code_charcode+97);}
else
{var firstOrdNum=Math.floor(to_code_charcode/26);var secOrdNum=to_code_charcode%26;var firstCodedChar=String.fromCharCode(firstOrdNum+65);var secCodedChar=String.fromCharCode(secOrdNum+65);the_res+=firstCodedChar;the_res+=secCodedChar;}}
return the_res;}
this.LoadState=function(encStrState)
{var strState="";var j=0;while(j<encStrState.length)
{var code=encStrState.charCodeAt(j);if((code>=48)&&(code<=57))
{strState+=String.fromCharCode(57-code+48);j++;}
else if((code>=97)&&(code<=122))
{strState+=String.fromCharCode(122-code+97);j++;}
else
{var firstCode=encStrState.charCodeAt(j)-65;var secCode=encStrState.charCodeAt(j+1)-65;var ch=String.fromCharCode(firstCode*26+secCode);strState+=ch;j++;j++;}}
if(strState.length<1)
{me.Reset();return;}
var arrParams=strState.split('&');var dX,dY,dRadius=200;var lang="";var arrAddresses=null;var arrX=null;var arrY=null;var bToll=undefined;var bFerry=undefined;var arrMarkerCaptions=null;var arrMarkerTypes=null;var arrMarkerXs=null;var arrMarkerYs=null;for(var i=0;i<arrParams.length;i++)
{var arrValues=arrParams[i].split('=');if(arrValues.length>=2)
{var strCommand=arrValues[0].toLowerCase();switch(strCommand)
{case'dx':dX=arrValues[1];break;case'dy':dY=arrValues[1];break;case'dradius':dRadius=arrValues[1];break;case'lang':lang=arrValues[1];break;case'btoll':bToll=(parseInt(arrValues)!=0?true:false);break;case'bferry':bFerry=(parseInt(arrValues)!=0?true:false);break;case'arraddresses':arrAddresses=arrValues[1].split('|');break;case'arrx':arrX=arrValues[1].split('|');break;case'arry':arrY=arrValues[1].split('|');break;case'strmarkercaptions':arrMarkerCaptions=arrValues[1].split('|');break;case'strmarkertypes':arrMarkerTypes=arrValues[1].split('|');break;case'dmarkerxs':arrMarkerXs=arrValues[1].split('|');break;case'dmarkerys':arrMarkerYs=arrValues[1].split('|');break;}}}
if(dX!=null&&dY!=null)
me.ZoomToPoint(dX,dY,dRadius);if(me.pTextResult!=null&&arrAddresses!=null&&arrAddresses.length>0)
{var myArr=new Array();for(var i=0;i<arrAddresses.length;i++)
{myArr[i]=new CSimpleAddress();myArr[i].strAddress=decodeURIComponent(arrAddresses[i]);myArr[i].dX=arrX[i];myArr[i].dY=arrY[i];}
me.pTextResult.SetAddressList(myArr);if(arrAddresses.length>1)
me.pTextResult.FindRoute(false);me.pTextResult.Show();}
if(arrMarkerCaptions!=null&&arrMarkerCaptions.length>0)
{var myArr=new Array();for(var i=0;i<arrMarkerCaptions.length;i++)
{var address=new CSimpleAddress();address.strAddress=arrMarkerCaptions[i];address.dX=arrMarkerXs[i];address.dY=arrMarkerYs[i];me.pMarkers.Add(address,arrMarkerTypes[i],0,0,me,null);}}}
this.Reset=function()
{if(me.pTextResult)
me.pTextResult.SetAddressList(null);me.pMarkers.DeleteAll();me.InciServer.CallFunction("DeleteRoute","",0,me.SetMapToDefaultLevelAndPosition());}
this.GetMapData=function()
{if(me.iActiveState>=0)
return me.arrStates[me.iActiveState];return null;}
this.PixelToWgs=function(iX,iY)
{var MapLevel=me.GetLevel();var strParams="";strParams+='iGridX='+(iX);strParams+='&iGridY='+(iY);strParams+='&iLevel='+MapLevel;strParams+='&iGridUpperRow='+me.pGridMain.GetTop();strParams+='&iGridLeftColumn='+me.pGridMain.GetLeft();strParams+='&iGridLowerRow='+me.pGridMain.GetBottom();strParams+='&iGridRightColumn='+me.pGridMain.GetRight();var clientParam=new Object();me.NoSessionServer.CallSyncFunction("Pixel2AC",strParams,0,me.Pixel2ACCallback,clientParam);wgsCoord=clientParam.coord;return wgsCoord;}
me.Pixel2ACCallback=function(result,clientParam)
{clientParam.coord=result;}
this.OnPick=function(pickMode,iX,iY)
{}
this.AddToTrafficList=function(strAddress,dX,dY)
{var address=new CSimpleAddress(strAddress,dX,dY);me.pTextResult.pSearch.SetAddress(address);me.pTextResult.pSearch.Go();}
this.Test=function(dZoomFactor,iBasePointX,iBasePointY)
{if(me.bPreviewIsOn)
this.pGridMain.ZoomPreview(dZoomFactor,iBasePointX,iBasePointY,0,0);}
this.DrawLine=function()
{var boxLeft=me.pGridMain.iLeft*me.GetMapGridItemWidth();var boxTop=me.pGridMain.iTop*me.GetMapGridItemHeight();var boxRight=boxLeft+me.pGridMain.iWidth*me.GetMapGridItemWidth();var boxBottom=boxTop+me.pGridMain.iHeight*me.GetMapGridItemHeight();if(me.polyline)
{me.polyline.UnDraw();me.polyline.Draw(me.graphics,me.pixeldensity,boxTop,boxLeft,boxBottom,boxRight);}}
this.CreateZoomAnim=function()
{me.animDiv=document.createElement('div');me.animDiv.style.visibility='hidden';me.animDiv.className='anim_main';me.animDiv.style.top=0;me.animDiv.style.left=0;me.divFace.appendChild(me.animDiv);var animtlDiv=document.createElement('div');animtlDiv.className='anim_tl';var animtrDiv=document.createElement('div');animtrDiv.className='anim_tr';var animblDiv=document.createElement('div');animblDiv.className='anim_bl';var animbrDiv=document.createElement('div');animbrDiv.className='anim_br';me.animDiv.appendChild(animtlDiv);me.animDiv.appendChild(animtrDiv);me.animDiv.appendChild(animblDiv);me.animDiv.appendChild(animbrDiv);}
this.ShowZoomAnimation=function(iOy,iOx,bIn)
{var border=3;if(me.animDiv!=null)
{if(!bIn)
{me.animDiv.style.height="160px";me.animDiv.style.width="160px";me.animDiv.style.top=(iOy-160/2-border)+"px";me.animDiv.style.left=(iOx-160/2-border)+"px";me.animDiv.style.visibility='visible';window.setTimeout(me.TestAnimPhasesIn,100);}
else
{me.animDiv.style.height="40px";me.animDiv.style.width="40px";me.animDiv.style.top=(iOy-40/2-border)+"px";me.animDiv.style.left=(iOx-40/2-border)+"px";me.animDiv.style.visibility='visible';window.setTimeout(me.TestAnimPhasesOut,50);}}}
this.TestAnimPhasesIn=function()
{var step=25;if(GetLayerWidth(me.animDiv)>40)
{var lw=GetLayerWidth(me.animDiv);var lh=GetLayerHeight(me.animDiv);me.animDiv.style.visibility='hidden';var iOx=GetLayerLeft(me.animDiv)+lw/2;var iOy=GetLayerTop(me.animDiv)+lh/2;me.animDiv.style.height=(lh-step)+"px";me.animDiv.style.width=(lw-step)+"px";me.animDiv.style.top=(iOy-(lh-step)/2)+"px";me.animDiv.style.left=(iOx-(lw-step)/2)+"px";me.animDiv.style.visibility='visible';window.setTimeout(me.TestAnimPhasesIn,70);}
else
{me.animDiv.style.visibility='hidden';}}
this.TestAnimPhasesOut=function()
{var step=25;if(GetLayerWidth(me.animDiv)<160)
{var lw=GetLayerWidth(me.animDiv);var lh=GetLayerHeight(me.animDiv);me.animDiv.style.visibility='hidden';var iOx=GetLayerLeft(me.animDiv)+lw/2;var iOy=GetLayerTop(me.animDiv)+lh/2;me.animDiv.style.height=(lh+step)+"px";me.animDiv.style.width=(lw+step)+"px";me.animDiv.style.top=(iOy-(lw+step)/2)+"px";me.animDiv.style.left=(iOx-(lh+step)/2)+"px";me.animDiv.style.visibility='visible';window.setTimeout(me.TestAnimPhasesOut,70);}
else
{me.animDiv.style.visibility='hidden';}}
this.CreateRatioMeter=function()
{var table=NewTag('table',me.divMap);table.cellPadding=0;table.cellSpacing=0;table.className="ratiometer";me.ratiometerOuterDiv=table;var tbody=NewTag('tbody',table);var tr=NewTag('tr',tbody);var td=NewTag('td',tr);td.className="ratiometerbegin";var img=NewTag('img',td);SetTransparentPng(img,GetAbsUrl('graphics/ratioMeterBegin.png'),6,15);td=NewTag('td',tr);SetTransparentPngAsBg(td,GetAbsUrl('graphics/ratioMeterBg.png'));NewTextTag("",td);me.ratiometerInnerDiv=td;td=NewTag('td',tr);td.className="ratiometerend";img=NewTag('img',td);SetTransparentPng(img,GetAbsUrl('graphics/ratioMeterEnd.png'),6,15);}
this.RearrangeRatioMeter=function()
{var avgPixel=100;var minPixel=70;var iMeterPerPixel=me.GetPixelDensity();var pre_realsize=avgPixel*iMeterPerPixel;var pixelsize=avgPixel;var lg=1;while(pre_realsize>100)
{pre_realsize=pre_realsize/10;lg=lg*10;}
var realsize=0;if(pre_realsize<(10+30)/2)
realsize=10;else if(pre_realsize<(30+40)/2)
realsize=30;else if(pre_realsize<(40+50)/2)
realsize=40;else if(pre_realsize<(50+80)/2)
realsize=50;else if(pre_realsize<(80+100)/2)
realsize=80;else
realsize=100;pixelsize=realsize/pre_realsize*pixelsize;if(pixelsize<minPixel)
{pixelsize=2*pixelsize;realsize=2*realsize;}
var unit="";if(realsize*lg>=1000)
{realsize=realsize*lg/1000;unit="km";}
else
{realsize=realsize*lg;unit="m";}
if(me.ratiometerInnerDiv)
{me.ratiometerOuterDiv.style.width=(pixelsize)+"px";me.ratiometerInnerDiv.lastChild.nodeValue=(realsize)+" "+unit;}}
this.HideRatioMeter=function()
{me.ratiometerOuterDiv.style.visibility="hidden";}
this.ShowRatioMeter=function()
{me.ratiometerOuterDiv.style.visibility="visible";}
this.OnStateChanged=function(sLastRasterMapData,iPixelDeltaX,iPixelDeltaY,caption)
{if((caption==null)||(caption==undefined))
caption="";var mapdata=null;if(sLastRasterMapData)
{mapdata=new CMapData();mapdata.strCaption=sLastRasterMapData.strCaption;mapdata.iMapWidth=me.GetMapViewWidth();mapdata.iMapHeight=me.GetMapViewHeight();mapdata.dCenterX=sLastRasterMapData.dCenterX;mapdata.dCenterY=sLastRasterMapData.dCenterY;mapdata.dRadius=sLastRasterMapData.dMinRadius;mapdata.dMinX=sLastRasterMapData.dViewportLowerLeftX;mapdata.dMinY=sLastRasterMapData.dViewportLowerLeftY;mapdata.dMaxX=sLastRasterMapData.dViewportUpperRightX;mapdata.dMaxY=sLastRasterMapData.dViewportUpperRightY;mapdata.dGridMinX=sLastRasterMapData.dGridLowerLeftX;mapdata.dGridMinY=sLastRasterMapData.dGridLowerLeftY;mapdata.dGridMaxX=sLastRasterMapData.dGridUpperRightX;mapdata.dGridMaxY=sLastRasterMapData.dGridUpperRightY;mapdata.dMeterPerPixelX=mapdata.dMeterPerPixelY=me.GetPixelDensityFromLevel(sLastRasterMapData.iLevel);mapdata.iViewportOffsetX=sLastRasterMapData.iViewportOffsetX;mapdata.iViewportOffsetY=sLastRasterMapData.iViewportOffsetY;}
else
{if(me.iActiveState<0||me.arrStates.length<me.iActiveState||me.arrStates[me.iActiveState]==null)
return;mapdata=new CMapData();mapdata.strCaption=caption;mapdata.iMapWidth=me.arrStates[me.iActiveState].iMapWidth;mapdata.iMapHeight=me.arrStates[me.iActiveState].iMapHeight;mapdata.dCenterX=me.arrStates[me.iActiveState].dCenterX;mapdata.dCenterY=me.arrStates[me.iActiveState].dCenterY;mapdata.dRadius=me.arrStates[me.iActiveState].dRadius;mapdata.dMinX=me.arrStates[me.iActiveState].dMinX;mapdata.dMinY=me.arrStates[me.iActiveState].dMinY;mapdata.dMaxX=me.arrStates[me.iActiveState].dMaxX;mapdata.dMaxY=me.arrStates[me.iActiveState].dMaxY;mapdata.dGridMinX=me.arrStates[me.iActiveState].dGridMinX;mapdata.dGridMinY=me.arrStates[me.iActiveState].dGridMinY;mapdata.dGridMaxX=me.arrStates[me.iActiveState].dGridMaxX;mapdata.dGridMaxY=me.arrStates[me.iActiveState].dGridMaxY;mapdata.dMeterPerPixelX=me.arrStates[me.iActiveState].dMeterPerPixelX;mapdata.dMeterPerPixelY=me.arrStates[me.iActiveState].dMeterPerPixelY;mapdata.iViewportOffsetX=me.arrStates[me.iActiveState].iViewportOffsetX;mapdata.iViewportOffsetY=me.arrStates[me.iActiveState].iViewportOffsetY;}
if(iPixelDeltaX!=0||iPixelDeltaY!=0)
{var dOffsetX=(mapdata.dMaxX-mapdata.dMinX)*iPixelDeltaX/mapdata.iMapWidth;var dOffsetY=(mapdata.dMaxY-mapdata.dMinY)*iPixelDeltaY/mapdata.iMapHeight;mapdata.dCenterX+=dOffsetX;mapdata.dCenterY+=dOffsetY;mapdata.dMinX+=dOffsetX;mapdata.dMinY+=dOffsetY;mapdata.dMaxX+=dOffsetX;mapdata.dMaxY+=dOffsetY;mapdata.dGridMinX+=dOffsetX;mapdata.dGridMinY+=dOffsetY;mapdata.dGridMaxX+=dOffsetX;mapdata.dGridMaxY+=dOffsetY;mapdata.iViewportOffsetX=me.pGridMain.iMapViewVectorX;mapdata.iViewportOffsetY=me.pGridMain.iMapViewVectorY;}
if(!me.bSkipNextStateChange)
{me.arrStates[++me.iActiveState]=mapdata;var i;for(i=me.iActiveState+1;i<me.arrStates.length;i++)
{me.arrStates[i]=null;}}
me.bSkipNextStateChange=false;if(me.OnMapStateChanged)
{try{me.OnMapStateChanged();}
catch(exp)
{if(me.OnError)
me.OnError(exp,'CTopoliszMap.OnMapStateChanged');}}}
this.OnMapStateChanged=function()
{}
this.Undo=function()
{if(me.iActiveState>0)
{var mapdata=me.arrStates[--me.iActiveState];if(mapdata)
{me.bSkipNextStateChange=true;me.ZoomToRect(mapdata.dMinX,mapdata.dMinY,mapdata.dMaxX,mapdata.dMaxY);}}}
this.Redo=function()
{if(me.iActiveState<GetArrayLength(me.arrStates))
{var mapdata=me.arrStates[++me.iActiveState];if(mapdata)
{me.bSkipNextStateChange=true;me.ZoomToRect(mapdata.dMinX,mapdata.dMinY,mapdata.dMaxX,mapdata.dMaxY);}}}
this.OnOffMeasureDistance=function(sSrc)
{if(me.bDistanceMeasuring==false)
{me.bDistanceMeasuring=true;me.SetVisibilityBorders(me.pGridMain.bCanMoveX,me.pGridMain.bCanMoveY);me.pDistancePoly.Init();me.DistMeter.Init();me.pDistanceDisplay=new DistanceDisplay(me);me.DistMeter.onMove=me.pDistanceDisplay.Move;me.DistMeter.DisplayLength=me.pDistanceDisplay.DisplayLength;me.DistMeter.onClose=function(){{me.pDistanceDisplay.Close();}}
if(me.pMapPalette)
{me.pMapPalette.imgbtnDistanceMeasure.SetDefaultSrc(GetAbsUrl("graphics/toolRuler_on.png"));}}
else
{if((sSrc!="button"&&sSrc!="key"))
{var x=me.iMousePosX;var y=me.iMousePosY;x-=GetLayerLeft(me.pGridMain.mainGridDiv)+me.iMapDivBorderWidth;y-=GetLayerTop(me.pGridMain.mainGridDiv)+me.iMapDivBorderWidth;me.DrawDistMeasure(x,y);}
else
{me.DistMeter.ClearRubberLine();me.DistMeter.ClearCursors();}
if(me.pDistanceDisplay)
{if((sSrc=="key")||(sSrc=="button"))
me.pDistanceDisplay.SetLengthAtTheEnd();me.pDistanceDisplay.distTr.style.visibility="hidden";me.pDistanceDisplay.exitTr.style.visibility="hidden";}
me.bDistanceMeasuring=false;me.SetVisibilityBorders(me.pGridMain.bCanMoveX,me.pGridMain.bCanMoveY);SetOpac(me.pGridMain.mainGridDistMeasureImageDiv,99);var i;for(i=0;i<80;i++)
{window.setTimeout(me.OpacityGame,i*40);}
window.setTimeout(me.OffMeasureDistance,3500);}}
this.BlinkDistance=function()
{if(me.pGridMain.mainGridDiv.style.visibility=="visible")
{me.pGridMain.mainGridDiv.style.visibility="hidden";}
else
{me.pGridMain.mainGridDiv.style.visibility="visible";}}
this.OpacityGame=function()
{var o=GetOpac(me.pGridMain.mainGridDistMeasureImageDiv);if(Math.floor(o/2)==Math.ceil(o/2))
{o=o+10;}
else
{o=o-10;}
if(o<0)o=0;if(o>100)o=99;SetOpac(me.pGridMain.mainGridDistMeasureImageDiv,o);}
this.OffMeasureDistance=function()
{SetOpac(me.pGridMain.mainGridDistMeasureImageDiv,100);me.bDistanceMeasuring=false;me.DistMeter.Close();if(me.pMapPalette)
{me.pMapPalette.imgbtnDistanceMeasure.SetDefaultSrc(GetAbsUrl("graphics/toolRuler.png"));}
me.pDistancePoly.Init();me.pGridMain.mainGridDistMeasureImageDiv.style.visibility="hidden";}
this.IsMiniMapVisible=function()
{return me.pConnectedMiniMap!=null&&me.bMiniMapVisible;}
this.HideMiniMap=function()
{if(me.pConnectedMiniMap!=null)
{me.divMiniMap.style.display="none";me.pConnectedMiniMap.SetVisibilityBorders(false,false);me.bMiniMapVisible=false;if(me.pConnectedMiniMap.pGridMain)
me.pConnectedMiniMap.pGridMain.RemoveZoomPreview();}
if(me.OnHideMiniMap)
{try{me.OnHideMiniMap();}
catch(exp){if(me.OnError)
me.OnError(exp,'CTopoliszMap.OnHideMiniMap');}}}
this.ShowMiniMap=function()
{if(me.pConnectedMiniMap!=null)
{me.bMiniMapVisible=true;me.ZoomMiniMapSync(me.GetPixelDensity(),0,0,false);window.setTimeout(function(){me.divMiniMap.style.display="";if(me.pMapPalette)me.pMapPalette.SetHideMiniMapButton();},300);if(me.OnShowMiniMap)
{try{me.OnShowMiniMap();}
catch(exp){if(me.OnError)
me.OnError(exp,'CTopoliszMap.OnShowMiniMap');}}}}
this.OnShowMiniMap=null;this.OnHideMiniMap=null;this.OnKeyDown=function(pEvent)
{if(me.bDistanceMeasuring==true)
{me.OnOffMeasureDistance("key");}}
this.OnRouteChanged=function(sAddress)
{me.pMarkers.DeleteAllWithType("routing");me.pMarkers.DeleteAllWithType("searching");me.pMarkers.DeleteAllWithType("searching_buttonless");me.pMarkers.DeleteAllWithType("searching_labelless");aAddressBlockList=me.pTextResult.arrAddressBlocks;var i;for(i=0;i<aAddressBlockList.length;i++)
{var pAddressBlock=aAddressBlockList[i];if(pAddressBlock!=null)
{var sAddress=pAddressBlock.GetAddress();if(sAddress!=null)
{if(sAddress.strAddress=="")
sAddress.strAddress="< ??? >";var pMarker=me.pMarkers.Add(sAddress,"routing",0,0,me,pAddressBlock);var label=me.CreateAddressLabel(pMarker);label.Create();label.Hide();}}}}
this.OnNewFoundAddress=function(sAddress,strLabelMode)
{me.pMarkers.DeleteAllWithType("searching");me.pMarkers.DeleteAllWithType("searching_buttonless");me.pMarkers.DeleteAllWithType("searching_labelless");if(sAddress.strAddress=="")
sAddress.strAddress="< ??? >";var strMarkerClass="searching";if(strLabelMode!=null&&strLabelMode!=""&&strLabelMode!='normal')
strMarkerClass+="_"+strLabelMode;var pMarker=me.pMarkers.Add(sAddress,strMarkerClass,0,0,me,null);var label=me.CreateAddressLabel(pMarker);label.Create();label.Hide();}
this.OnNewPickedAddress=function(sAddress,iPickPointX,iPickPointY,strMarkerClass)
{if(me.pTextResult)
me.pTextResult.AddStopAddress(sAddress);if(strMarkerClass=="picknolabel")
me.pMarkers.DeleteAllWithType("pick");else if(strMarkerClass=="pick")
me.pMarkers.DeleteAllWithType("picknolabel");me.pMarkers.DeleteAllWithType(strMarkerClass);if(sAddress.strAddress=="")
sAddress.strAddress="< ??? >";var pMarker=me.pMarkers.Add(sAddress,strMarkerClass,iPickPointX,iPickPointY,me,null);var label=me.CreateAddressLabel(pMarker);label.Create();}
this.CreateAddressLabel=function(pMarker)
{var al=new AddressLabel(me,pMarker);me.pAddressLabels[me.pAddressLabels.length]=al;pMarker.pAddressLabel=al;return al;}
this.RemoveAddressLabel=function(pAddressLabel)
{var i;for(i=0;i<me.pAddressLabels.length;i++)
{var al=me.pAddressLabels[i];if(al!=null&&al==pAddressLabel)
{al.Delete();delete al;me.pAddressLabels[i]=null;}}}
this.RemoveAddressLabels=function()
{var i;for(i=0;i<me.pAddressLabels.length;i++)
{var al=me.pAddressLabels[i];if(al!=null)
{al.Delete();delete al;me.pAddressLabels[i]=null;}}
delete me.pAddressLabels;me.pAddressLabels=new Array();}
this.DeleteMarkers=function()
{me.RemoveAddressLabels();delete me.pMarkers;me.pMarkers=new Markers();}
this.RearrangeAddressLabels=function()
{var i;for(i=0;i<me.pAddressLabels.length;i++)
{var al=me.pAddressLabels[i];if(al!=null)
{al.ReArrange();}}
me.RearrangePois();}
this.RearrangePois=function()
{if(me.divPoiParent)
{me.divPoiParent.style.left=-me.pGridMain.GetMapViewVectorX()+"px";me.divPoiParent.style.top=-me.pGridMain.GetMapViewVectorY()+"px";}}
this.HidePois=function()
{if(me.divPoiParent)
{me.divPoiParent.style.visibility="hidden";}}
this.ShowPois=function()
{if(me.divPoiParent)
{me.divPoiParent.style.visibility="visible";}}
this.ShowAddressLabels=function()
{var i;for(i=0;i<me.pAddressLabels.length;i++)
{var al=me.pAddressLabels[i];if(al!=null)
{al.Show();}}}
this.HideAddressLabels=function()
{var i;for(i=0;i<me.pAddressLabels.length;i++)
{var al=me.pAddressLabels[i];if(al!=null)
{al.Hide();}}}
this.HideAddressLabelsLabel=function()
{var i;for(i=0;i<me.pAddressLabels.length;i++)
{var al=me.pAddressLabels[i];if(al!=null)
{al.HideLabel();}}}
this.ChangePickMode=function()
{if(me.bPickMode==true)
me.ResetPickMode();else
me.SetPickMode("internal");}
this.SetPickMode=function(strPickMode)
{me.bPickMode=true;me.strPickMode=strPickMode;me.divFace.style.cursor="crosshair";}
this.ResetPickMode=function()
{me.bPickMode=false;me.strPickMode="internal";me.divFace.style.cursor="pointer";}
this.PickAddress=function(iPickGridX,iPickGridY,callbackFunc,callbackParams)
{var MapLevel=me.GetLevel();AddressLevel="9";var Params='';Params+='iAddressLevel='+AddressLevel;Params+='&iGridX='+iPickGridX;Params+='&iGridY='+iPickGridY;Params+='&iLevel='+MapLevel;Params+='&iGridUpperRow='+me.pGridMain.GetTop();Params+='&iGridLeftColumn='+me.pGridMain.GetLeft();Params+='&iGridLowerRow='+me.pGridMain.GetBottom();Params+='&iGridRightColumn='+me.pGridMain.GetRight();me.NoSessionServer.CallFunction("ReverseGeoCodeAddress",Params,0,callbackFunc,callbackParams);}
this.UserPicked=function(pEvent)
{var xxx=GetEventXNew(pEvent)-GetAbsLayerLeft(me.pGridMain.mainGridDiv);var yyy=GetEventYNew(pEvent)-GetAbsLayerTop(me.pGridMain.mainGridDiv);if(me.strPickMode=="internal"||me.strPickMode=="labelless")
{var clientparam=new Object();clientparam.pickpoint=new CCoordinate(xxx,yyy);clientparam.strMarkerClass=(me.strPickMode=="internal"?"pick":"picknolabel");me.PickAddress(xxx,yyy,me.UserPickedCallback,clientparam);}}
this.UserPickedCallback=function(address,clientparam)
{var pickpoint=clientparam.pickpoint;var strMarkerClass=clientparam.strMarkerClass;if(address!=null)
{me.OnNewPickedAddress(address,pickpoint.dX,pickpoint.dY,strMarkerClass);}}
this.OnReadyStateChange=function(iState)
{}
this.OnCommandReady=function(iCommandID)
{}
this.OnCommandError=function(exp)
{}
this.OnError=function(exp,strSource)
{}
this.Redraw=function()
{if(me.bZoomingHappens==false)
{me.RedrawWithoutZooming();me.iZoomingLevelChange=0;me.ZoomByLevelMain(true);}}
this.RedrawWithoutZooming=function()
{me.RearrangeFaceBorder();me.iDivMapWidth=GetLayerWidth(divMap);me.iDivMapHeight=GetLayerHeight(divMap);var clipLeft=GetLayerLeft(divMap);var clipTop=GetLayerTop(divMap);var clipRight=clipLeft+me.iDivMapWidth;var clipBottom=clipTop+me.iDivMapHeight;me.iMapViewWidth=clipRight-clipLeft-me.iMapDivBorderWidth;me.iMapViewHeight=clipBottom-clipTop-me.iMapDivBorderWidth;me.divFace.style.width=(me.iDivMapWidth-2*me.iMapDivBorderWidth)+"px";me.divFace.style.height=(me.iDivMapHeight-2*me.iMapDivBorderWidth)+"px";if(me.pConnectedMiniMap)
{if(me.pConnectedMiniMap.pMiniMapFrame)
me.pConnectedMiniMap.pMiniMapFrame.ReArrange(true);}}
this.RegisterAddressLabel=function(pAddressLabel)
{me.pRegisteredAddressLabel=pAddressLabel;}
this.TesztResize=function(w,h)
{me.divMap.style.width=w+"px";me.divMap.style.height=h+"px";}
this.SetMapDivBorderWidth=function(iBorderWidth)
{this.iMapDivBorderWidth=iBorderWidth;}
this.ShowViewCenterSettlementCaption=function(strCaption)
{}
this.OnAddressPickInternal=function(address,iAddressGridX,iAddressGridY)
{if(me.OnAddressPick)
{try{me.OnAddressPick(address,iAddressGridX,iAddressGridY);}
catch(exp){if(me.OnError)
me.OnError(exp,'CTopoliszMap.OnAddressPick');}}}
this.OnAddressPick=function(address,iAddressGridX,iAddressGridY)
{}
this.Init();}
TestPrint=function(text)
{var td=GetBlock("testdiv");}

function CMapGrid(iTop,iLeft,iBottom,iRight,tmTopoliszMap,iMapViewVectorY,iMapViewVectorX)
{this.iTop=iTop;this.iLeft=iLeft;this.iWidth=iRight-iLeft+1;this.iHeight=iBottom-iTop+1;this.iMapViewVectorX=iMapViewVectorX;this.iMapViewVectorY=iMapViewVectorY;this.tmTopoliszMap=tmTopoliszMap;this.arrGridItems=new Array();this.iLevel=0;this.i_gHbase=1;this.i_gWbase=1;this.FileNames=null;this.ArgLoad_DiffTop=0;this.ArgLoad_DiffLeft=0;this.LoadedImagesTop=0;this.LoadedImagesLeft=0;this.AllowMove=true;this.MemoMoveX=0;this.MemoMoveY=0;this.bCanMoveX=true;this.bCanMoveY=true;this.sMoveCallbackOn="true";this.mainGridDiv=null;this.mainGridImageDiv=null;this.mainGridImage=null;this.mainGridPrintImage=null;this.mainGridDistMeasureImageDiv=null;this.dWgsLowerLeftX=0.0;this.dWgsLowerLeftY=0.0;this.dWgsUpperRightX=0.0;this.dWgsUpperRightY=0.0;this.iAccMoveMapVectorY=0;this.iAccMoveMapVectorX=0;this.zoomPreviewAnim_Images=null;this.zoomPreviewAnim_Images_Width=null;this.zoomPreviewAnim_Images_Height=null;this.zoomPreviewAnim_Tops=new Array();this.zoomPreviewAnim_Lefts=new Array();this.zoomPreviewAnim_ImageHeight=null;this.zoomPreviewAnim_ImageWidth=null;this.zoomPreviewAnim_ZoomFactor=0;this.zoomPreviewAnim_BasePointX=0;this.zoomPreviewAnim_BasePointY=0;this.zoomPreviewAnim_PhasesLeft=10;this.zoomPreviewAnim_PhasesNum=10;var me=this;this.GetTop=function()
{return me.iTop;}
this.GetLeft=function()
{return me.iLeft;}
this.GetBottom=function()
{return me.iTop+me.iHeight-1;}
this.GetRight=function()
{return me.iLeft+me.iWidth-1;}
this.SetWgs=function(dLowerLeftX,dLowerLeftY,dUpperRightX,dUpperRightY)
{me.dWgsLowerLeftX=dLowerLeftX;me.dWgsLowerLeftY=dLowerLeftY;me.dWgsUpperRightX=dUpperRightX;me.dWgsUpperRightY=dUpperRightY;}
this.SetImageFileNames=function(FileNames)
{me.FileNames=FileNames;}
this.GetImageFileName=function(iRow,iCol)
{var ArrayCoord=me.GetArrayAbsCoordinate(iRow-me.LoadedImagesTop,iCol-me.LoadedImagesLeft);return me.FileNames[ArrayCoord];}
this.GetArrayCoordinate=function(iY,iX)
{return(me.iWidth)*(iY-me.iTop)+iX-me.iLeft;}
this.GetArrayAbsCoordinate=function(iY,iX)
{return(me.iWidth)*(iY)+iX;}
this.GetWidth=function()
{return me.iWidth;}
this.GetHeight=function()
{return me.iHeight;}
this.GetMapViewVectorX=function()
{return me.iMapViewVectorX;}
this.GetMapViewVectorY=function()
{return me.iMapViewVectorY;}
this.GetTopFromAbsCoordY=function(PosY)
{var DivY=PosY/me.tmTopoliszMap.GetMapGridItemHeight();var res=Math.floor(DivY);return res;}
this.GetLeftFromAbsCoordX=function(PosX)
{var DivX=PosX/me.tmTopoliszMap.GetMapGridItemWidth();var res=Math.floor(DivX);return res;}
this.GetMapViewVectorYFromAbsCoordY=function(PosY)
{var DivY=PosY/me.tmTopoliszMap.GetMapGridItemHeight();return Math.floor((DivY-Math.floor(DivY))*me.tmTopoliszMap.GetMapGridItemHeight());}
this.GetMapViewVectorXFromAbsCoordX=function(PosX)
{var DivX=PosX/me.tmTopoliszMap.GetMapGridItemWidth();return Math.floor((DivX-Math.floor(DivX))*me.tmTopoliszMap.GetMapGridItemWidth());}
this.LoadLevel2=function(serverResponse)
{me.SetImageFileNames(serverResponse.arrUrls);me.SetWgs(serverResponse.dGridLowerLeftX,serverResponse.dGridLowerLeftY,serverResponse.dGridUpperRightX,serverResponse.dGridUpperRightY);me.LoadedImagesTop=serverResponse.iGridUpperRow;me.LoadedImagesLeft=serverResponse.iGridLeftColumn;me.iLevel=serverResponse.iLevel;me.iTop=serverResponse.iGridUpperRow;me.iMapViewVectorY=serverResponse.iViewportOffsetY;me.iLeft=serverResponse.iGridLeftColumn;me.iMapViewVectorX=serverResponse.iViewportOffsetX;for(var iYIter=me.iTop;iYIter<=serverResponse.iGridLowerRow;iYIter++)
{for(var iXIter=me.iLeft;iXIter<=serverResponse.iGridRightColumn;iXIter++)
{var GridItem=me.arrGridItems[me.GetArrayCoordinate(iYIter,iXIter)];GridItem.RemoveImg();}}
for(var iYIter=me.iTop;iYIter<=serverResponse.iGridLowerRow;iYIter++)
{for(var iXIter=me.iLeft;iXIter<=serverResponse.iGridRightColumn;iXIter++)
{var iPosY=me.tmTopoliszMap.GetMapGridItemHeight()*(iYIter-me.iTop)-me.iMapViewVectorY;var iPosX=me.tmTopoliszMap.GetMapGridItemWidth()*(iXIter-me.iLeft)-me.iMapViewVectorX;var GridItem=me.arrGridItems[me.GetArrayCoordinate(iYIter,iXIter)];GridItem.Load(me.iLevel,iYIter,iXIter);GridItem.SetPos(iPosY,iPosX);}}
me.SetMainGridDiv();}
this.CreateGrid=function()
{var mgd=me.mainGridDiv=NewTag('div');me.mainGridDiv.className="grid";me.mainGridDiv.id=me.tmTopoliszMap.divMap.id+"grid";me.mainGridImageDiv=NewTag('div');me.mainGridImageDiv.id=me.tmTopoliszMap.divMap.id+"imggrid";me.mainGridImageDiv.style.position="absolute";me.mainGridImageDiv.style.top="0px";me.mainGridImageDiv.style.left="0px";me.mainGridImageDiv.style.zIndex="5";me.mainGridImageDiv.style.backgroundColor="transparent";AddTag(me.mainGridImageDiv,me.mainGridDiv);me.mainGridImage=NewTag('img');me.mainGridImage.style.position="absolute";me.mainGridImage.style.top="0px";me.mainGridImage.style.left="0px";me.mainGridImage.style.backgroundColor="transparent";AddTag(me.mainGridImage,me.mainGridImageDiv);me.mainGridPrintImage=NewTag('img');me.mainGridPrintImage.className="imggridprint";me.mainGridPrintImage.style.position="absolute";me.mainGridPrintImage.style.top="0px";me.mainGridPrintImage.style.left="0px";me.mainGridPrintImage.style.backgroundColor="transparent";AddTag(me.mainGridPrintImage,me.mainGridDiv);me.mainGridDistMeasureImageDiv=NewTag('div');me.mainGridDistMeasureImageDiv.id=me.tmTopoliszMap.divMap.id+"distmeasureimggrid";me.mainGridDistMeasureImageDiv.style.position="absolute";me.mainGridDistMeasureImageDiv.style.top="0px";me.mainGridDistMeasureImageDiv.style.left="0px";me.mainGridDistMeasureImageDiv.style.zIndex="1";AddTag(me.mainGridDistMeasureImageDiv,me.mainGridDiv);AddTag(me.mainGridDiv,me.tmTopoliszMap.divMap);for(var iYIter=me.iTop;iYIter<me.iTop+me.iHeight;iYIter++)
{for(var iXIter=me.iLeft;iXIter<me.iLeft+me.iWidth;iXIter++)
{var NewGridItem=me.tmTopoliszMap.GetMapGridItem();me.arrGridItems[me.GetArrayCoordinate(iYIter,iXIter)]=NewGridItem;}}
return mgd;}
this.SetMainGridDiv=function()
{me.mainGridDiv.style.left=-me.iMapViewVectorX+"px";me.mainGridDiv.style.top=-me.iMapViewVectorY+"px";me.mainGridDiv.style.width=me.iWidth*me.tmTopoliszMap.GetMapGridItemWidth()+"px";me.mainGridDiv.style.height=me.iHeight*me.tmTopoliszMap.GetMapGridItemHeight()+"px";me.mainGridImageDiv.style.width=me.iWidth*me.tmTopoliszMap.GetMapGridItemWidth()+"px";me.mainGridImageDiv.style.height=me.iHeight*me.tmTopoliszMap.GetMapGridItemHeight()+"px";me.mainGridImage.style.width=me.iWidth*me.tmTopoliszMap.GetMapGridItemWidth()+"px";me.mainGridImage.style.height=me.iHeight*me.tmTopoliszMap.GetMapGridItemHeight()+"px";me.mainGridDistMeasureImageDiv.style.width=me.iWidth*me.tmTopoliszMap.GetMapGridItemWidth()+"px";me.mainGridDistMeasureImageDiv.style.height=me.iHeight*me.tmTopoliszMap.GetMapGridItemHeight()+"px";me.tmTopoliszMap.DrawLine();}
this.SetMainGridImage=function(urlImage)
{if((urlImage==null)||(urlImage==""))
urlImage=GetAbsUrl('graphics/transparent.gif');me.mainGridImage.src=urlImage;me.mainGridPrintImage.src=urlImage;SetOpac(me.mainGridImageDiv,70);me.mainGridImageDiv.style.visibility="visible";}
this.SetMainGridDistMeasureImage=function(urlImage)
{if((urlImage==null)||(urlImage==""))
urlImage=GetAbsUrl('graphics/transparent.gif');me.mainGridDistMeasureImageDiv.style.backgroundImage="url('"+urlImage+"')";me.mainGridDistMeasureImageDiv.style.visibility="visible";}
this.HideMainGridImage=function()
{me.mainGridDiv.style.visibility="hidden";me.mainGridImageDiv.style.visibility="hidden";}
this.ShowMainGridImage=function()
{me.mainGridDiv.style.visibility="visible";me.mainGridImageDiv.style.visibility="visible";}
this.HideDistMeasure=function()
{me.mainGridDistMeasureImageDiv.style.visibility="hidden";}
this.ShowDistMeasure=function()
{me.mainGridDistMeasureImageDiv.style.visibility="visible";}
this.StartLoad=function(iDiffTop,iDiffLeft,iNewViewOffsetY,iNewViewOffsetX)
{if(me.tmTopoliszMap.pConnectedMiniMap==null)
TestPrint("MiniS ");else
TestPrint("MainS ");me.ArgLoad_DiffTop=iDiffTop;me.ArgLoad_DiffLeft=iDiffLeft;var iNewLeft=me.iLeft+iDiffLeft;var iNewTop=me.iTop+iDiffTop;if((iDiffTop!=0)||(iDiffLeft!=0))
{var iViewDeltaX=me.tmTopoliszMap.GetMapViewWidth();var iViewDeltaY=me.tmTopoliszMap.GetMapViewHeight();var iGridDeltaX=me.tmTopoliszMap.GetMapGridItemWidth()*me.GetWidth();var iGridDeltaY=me.tmTopoliszMap.GetMapGridItemHeight()*me.GetHeight();var Params="";Params+='iLevel='+me.iLevel;Params+='&iMinRow='+iNewTop;Params+='&iMinCol='+iNewLeft;Params+='&iMaxRow='+(iNewTop+me.iHeight-1);Params+='&iMaxCol='+(iNewLeft+me.iWidth-1);Params+='&iViewDeltaX='+iViewDeltaX;Params+='&iViewDeltaY='+iViewDeltaY;Params+='&iViewOffsetX='+me.iMapViewVectorX;Params+='&iViewOffsetY='+me.iMapViewVectorY;Params+='&iGridDeltaX='+iGridDeltaX;Params+='&iGridDeltaY='+iGridDeltaY;me.tmTopoliszMap.HideRoute();me.tmTopoliszMap.HidePois();me.tmTopoliszMap.HideDistMeasure();me.tmTopoliszMap.NoSessionServer.CallFunction("DrawRasterMap",Params,0,me.EndLoad);}
else
me.EndLoad(null);}
this.EndLoad=function(result)
{if(me.tmTopoliszMap.pConnectedMiniMap==null)
TestPrint("MiniE ");else
TestPrint("MainE ");if(result!=null)
{me.tmTopoliszMap.pLastStateFromServer=result;me.tmTopoliszMap.iMovingSinceLastServerStateX=0;me.tmTopoliszMap.iMovingSinceLastServerStateY=0;}
var iDiffLeft=me.ArgLoad_DiffLeft;var iDiffTop=me.ArgLoad_DiffTop;var iNewLeft=me.iLeft+iDiffLeft;var iNewTop=me.iTop+iDiffTop;if(result!=null)
{me.LoadedImagesTop=iNewTop;me.LoadedImagesLeft=iNewLeft;me.SetImageFileNames(result.arrUrls);me.SetWgs(result.dGridLowerLeftX,result.dGridLowerLeftY,result.dGridUpperRightX,result.dGridUpperRightY);}
var StartY=0;var AfterEndY=me.iHeight;var StartX=0;var AfterEndX=me.iWidth;var iYIter=StartY;var iXIter=StartX;var YDir="pos";var XDir="pos";if(iDiffTop<0)
{var iYIter=me.iHeight-1;var YDir="neg";var AfterEndY=-1;}
if((iDiffLeft<0)&&(iDiffTop>=0))
{var iXIter=me.iWidth-1;var XDir="neg";var AfterEndX=-1;}
if((iDiffLeft>=0)||(iDiffTop<0))
{while(iYIter!=AfterEndY)
{while(iXIter!=AfterEndX)
{me.LoadCycleCore(iYIter,iXIter,iNewTop,iNewLeft);if(XDir=="pos")
iXIter++;else
iXIter--;}
iXIter=StartX;if(YDir=="pos")
iYIter++;else
iYIter--;}}
else
{while(iXIter!=AfterEndX)
{while(iYIter!=AfterEndY)
{me.LoadCycleCore(iYIter,iXIter,iNewTop,iNewLeft);if(YDir=="pos")
iYIter++;else
iYIter--;}
iYIter=StartY;if(XDir=="pos")
iXIter++;else
iXIter--;}}
me.iLeft=iNewLeft;me.iTop=iNewTop;me.MemoMoveX=0;me.MemoMoveX=0;me.SetMainGridDiv();me.AllowMove=true;if(result!=null)
{me.tmTopoliszMap.DrawRoute();me.tmTopoliszMap.DrawDistMeasure();}
else
{me.tmTopoliszMap.RearrangePois();}
if(me.sMoveCallbackOn=="true")
me.tmTopoliszMap.MovedCallback();else if(me.sMoveCallbackOn=="rearrangeframe")
{me.tmTopoliszMap.pMiniMapFrame.ReArrange();}}
this.Load=function(iDiffTop,iDiffLeft)
{me.StartLoad(iDiffTop,iDiffLeft);}
this.LoadCycleCore=function(iYIter,iXIter,iNewTop,iNewLeft)
{var NewIdxX=iNewLeft+iXIter;var NewIdxY=iNewTop+iYIter;var OldIdxX=me.iLeft+iXIter;var OldIdxY=me.iTop+iYIter;if((NewIdxX>=me.iLeft)&&(NewIdxX<me.iLeft+me.iWidth)&&(NewIdxY>=me.iTop)&&(NewIdxY<me.iTop+me.iHeight))
{var iPosY=me.tmTopoliszMap.GetMapGridItemHeight()*iYIter-me.iMapViewVectorY;var iPosX=me.tmTopoliszMap.GetMapGridItemWidth()*iXIter-me.iMapViewVectorX;gridItemTmp=me.arrGridItems[me.GetArrayAbsCoordinate(iYIter,iXIter)];me.arrGridItems[me.GetArrayAbsCoordinate(iYIter,iXIter)]=me.arrGridItems[me.GetArrayCoordinate(NewIdxY,NewIdxX)];me.arrGridItems[me.GetArrayCoordinate(NewIdxY,NewIdxX)]=gridItemTmp;me.arrGridItems[me.GetArrayAbsCoordinate(iYIter,iXIter)].SetPos(iPosY,iPosX);}
else
{var iPosY=me.tmTopoliszMap.GetMapGridItemHeight()*iYIter-me.iMapViewVectorY;var iPosX=me.tmTopoliszMap.GetMapGridItemWidth()*iXIter-me.iMapViewVectorX;me.arrGridItems[me.GetArrayAbsCoordinate(iYIter,iXIter)].SetPos(iPosY,iPosX);me.arrGridItems[me.GetArrayAbsCoordinate(iYIter,iXIter)].Set(me.iLevel,NewIdxY,NewIdxX);}}
this.MoveTo=function(iRow,iCol)
{var iNowAbsX=me.GetViewAbsoluteLeft();var iNowAbsY=me.GetViewAbsoluteTop();var iDX=iCol-iNowAbsX;var iDY=iRow-iNowAbsY;me.Move(iDY,iDX);}
this.MoveToCenter=function()
{var MVW=me.tmTopoliszMap.GetMapViewWidth();var MVH=me.tmTopoliszMap.GetMapViewHeight();var MH=me.tmTopoliszMap.GetMapHeight();var MW=me.tmTopoliszMap.GetMapWidth();me.MoveTo(Math.floor(MH/2-MVH/2),Math.floor(MW/2-MVW/2));}
this.Move=function(iMoveMapVectorY,iMoveMapVectorX)
{var bRealMoveHappened=false;var bMainMapAllowMove=true;if(me.tmTopoliszMap.pConnectedMainMap)
bMainMapAllowMove=me.tmTopoliszMap.pConnectedMainMap.pGridMain.AllowMove;var bMiniMapAllowMove=true;if(me.tmTopoliszMap.pConnectedMiniMap)
bMiniMapAllowMove=me.tmTopoliszMap.pConnectedMiniMap.pGridMain.AllowMove;if(me.AllowMove&&bMainMapAllowMove&&bMiniMapAllowMove)
{me.RemoveZoomPreview();me.AllowMove=false;var iNewMapViewVectorY=me.iMapViewVectorY;var iNewMapViewVectorX=me.iMapViewVectorX;var GIW=me.tmTopoliszMap.GetMapGridItemWidth();var GIH=me.tmTopoliszMap.GetMapGridItemHeight();var GW=GIW*me.GetWidth();var GH=GIH*me.GetHeight();var MVW=me.tmTopoliszMap.GetMapViewWidth();var MVH=me.tmTopoliszMap.GetMapViewHeight();var MH=me.tmTopoliszMap.GetMapHeight();var MW=me.tmTopoliszMap.GetMapWidth();var iFullVectorX=me.iMapViewVectorX+iMoveMapVectorX;var iFullVectorY=me.iMapViewVectorY+iMoveMapVectorY;var iMinCoordX=0;var iMinCoordY=0;var iMaxCoordX=GIW*me.GetWidth()-MVW;if(iMaxCoordX<0)iMaxCoordX=0;var iMaxCoordY=GIH*me.GetHeight()-MVH;if(iMaxCoordY<0)iMaxCoordY=0;var iNewTop=me.iTop;var iNewLeft=me.iLeft;var bHangOut=false;if((iFullVectorX<iMinCoordX)||(iFullVectorX>iMaxCoordX)||(iFullVectorY<iMinCoordY)||(iFullVectorY>iMaxCoordY))
{bHangOut=true;}
if(!bHangOut)
{var iMaxMapViewVectorY=Math.min(GH+me.iTop*GIH,MH)-MVH-GIH*me.iTop;iNewMapViewVectorY=Math.min(iMaxMapViewVectorY,iFullVectorY);var iMaxMapViewVectorX=Math.min(GW+me.iLeft*GIW,MW)-MVW-GIW*me.iLeft;iNewMapViewVectorX=Math.min(iMaxMapViewVectorX,iFullVectorX);}
else
{var cx=iFullVectorX+GIW*me.iLeft;var maxcx=MW-MVW;if(cx>maxcx)cx=maxcx;if(cx<0)
{iNewLeft=0;iNewMapViewVectorX=0;}
else
{var ax=Math.floor(cx/GIW);var bx=Math.floor((GW-MVW)/(GIW*2));iNewLeft=ax-bx;iNewMapViewVectorX=cx-((ax-bx)*GIW);if(iNewLeft<0)
{iNewMapViewVectorX+=iNewLeft*GIW;iNewLeft=0;}}
var cy=iFullVectorY+GIH*me.iTop;var maxcy=MH-MVH;if(cy>maxcy)cy=maxcy;if(cy<0)
{iNewTop=0;iNewMapViewVectorY=0;}
else
{var ay=Math.floor(cy/GIH);var by=Math.floor((GH-MVH)/(GIH*2));iNewTop=ay-by;iNewMapViewVectorY=cy-((ay-by)*GIH);if(iNewTop<0)
{iNewMapViewVectorY+=iNewTop*GIH;iNewTop=0;}}}
if(me.bCanMoveX||me.bCanMoveY)
{me.tmTopoliszMap.iMovingSinceLastServerStateX+=(iNewMapViewVectorX-me.iMapViewVectorX);me.tmTopoliszMap.iMovingSinceLastServerStateY-=(iNewMapViewVectorY-me.iMapViewVectorY);}
if(me.bCanMoveX&&me.bCanMoveY)
{if((me.iMapViewVectorY!=iNewMapViewVectorY)||(me.iMapViewVectorX!=iNewMapViewVectorX)||(iNewTop!=me.iTop)||(iNewLeft!=me.iLeft))
{bRealMoveHappened=true;}
me.iMapViewVectorY=iNewMapViewVectorY;me.iMapViewVectorX=iNewMapViewVectorX;me.Load(iNewTop-me.iTop,iNewLeft-me.iLeft);}
else if(me.bCanMoveX)
{if((me.iMapViewVectorX!=iNewMapViewVectorX)||(iNewLeft!=me.iLeft))
{bRealMoveHappened=true;}
me.iMapViewVectorX=iNewMapViewVectorX;me.Load(0,iNewLeft-me.iLeft);}
else if(me.bCanMoveY)
{if((me.iMapViewVectorY!=iNewMapViewVectorY)||(iNewTop!=me.iTop))
{bRealMoveHappened=true;}
me.iMapViewVectorY=iNewMapViewVectorY;me.Load(iNewTop-me.iTop,0);}
else
{if(me.tmTopoliszMap.pMiniMapFrame)
me.tmTopoliszMap.pMiniMapFrame.ReArrange();me.AllowMove=true;}}
return bRealMoveHappened;}
this.GetLastTileIndexX=function()
{return Math.ceil(me.tmTopoliszMap.GetMapWidth()/me.tmTopoliszMap.GetMapGridItemWidth())-1;}
this.GetLastTileIndexY=function()
{return Math.ceil(me.tmTopoliszMap.GetMapHeight()/me.tmTopoliszMap.GetMapGridItemHeight())-1;}
this.GetMaxGridItemIndexX=function()
{var LastTileIdxX=me.GetLastTileIndexX();var ViewWidthInGrid=me.tmTopoliszMap.GetMapViewWidth()/me.tmTopoliszMap.GetMapGridItemWidth();var MaxGridItemIdxX=LastTileIdxX-Math.ceil(ViewWidthInGrid)-me.i_gWbase+1;return MaxGridItemIdxX;}
this.GetMaxMapViewVectorX=function()
{var i_pGridW=me.tmTopoliszMap.GetMapGridItemWidth();var i_pWbase=me.i_gWbase*i_pGridW;var ViewWidthInGrid=me.tmTopoliszMap.GetMapViewWidth()/me.tmTopoliszMap.GetMapGridItemWidth();var ExtX=(1+Math.floor(ViewWidthInGrid)-ViewWidthInGrid)*me.tmTopoliszMap.GetMapGridItemWidth();var MaxMapViewVectorX=i_pWbase+ExtX;return MaxMapViewVectorX;}
this.GetMaxGridItemIndexY=function()
{var LastTileIdxY=me.GetLastTileIndexY();var ViewHeightInGrid=me.tmTopoliszMap.GetMapViewHeight()/me.tmTopoliszMap.GetMapGridItemHeight();var MaxGridItemIdxY=LastTileIdxY-Math.ceil(ViewHeightInGrid)-me.i_gHbase+1;return MaxGridItemIdxY;}
this.GetMaxMapViewVectorY=function()
{var i_pGridH=me.tmTopoliszMap.GetMapGridItemHeight();var i_pHbase=me.i_gHbase*i_pGridH;var ViewHeightInGrid=me.tmTopoliszMap.GetMapViewHeight()/me.tmTopoliszMap.GetMapGridItemHeight();var ExtY=(1+Math.floor(ViewHeightInGrid)-ViewHeightInGrid)*me.tmTopoliszMap.GetMapGridItemHeight();var MaxMapViewVectorY=i_pHbase+ExtY;return MaxMapViewVectorY;}
this.GetViewAbsoluteTop=function()
{return me.tmTopoliszMap.GetMapGridItemHeight()*me.iTop+me.iMapViewVectorY;}
this.GetViewAbsoluteLeft=function()
{return me.tmTopoliszMap.GetMapGridItemWidth()*me.iLeft+me.iMapViewVectorX;}
this.MoveToAbsolutePos=function(iPosY,iPosX)
{var DY=me.GetViewAbsoluteTop();var DX=me.GetViewAbsoluteLeft();me.Move(iPosY-DY,iPosX-DX);}
this.ZoomPreviewOld=function(dZoomFactor,iBasePointX,iBasePointY)
{me.RemoveZoomPreview();var Idx=1;for(var iYIter=me.iTop;iYIter<me.iTop+me.iHeight;iYIter++)
{for(var iXIter=me.iLeft;iXIter<me.iLeft+me.iWidth;iXIter++)
{var image=me.arrGridItems[me.GetArrayCoordinate(iYIter,iXIter)].img;if(image!=null)
{{var oldLeft=GetLayerLeft(image.parentNode);var oldTop=GetLayerTop(image.parentNode);var oldHeight=GetLayerHeight(image);var oldWidth=GetLayerWidth(image);var iVertVector=4;var iHorizVector=4;image.className="mapPreview";image.id=Idx;Idx++;image.style.visibility="hidden";image.style.position="absolute";image.style.top=Math.floor(((oldTop-iBasePointY)*dZoomFactor+iBasePointY+iVertVector))+"px";image.style.left=Math.floor(((oldLeft-iBasePointX)*dZoomFactor+iBasePointX+iHorizVector))+"px";image.style.width=Math.floor((oldWidth*dZoomFactor))+"px";image.style.height=Math.floor((oldHeight*dZoomFactor))+"px";image.parentNode.removeChild(image);me.tmTopoliszMap.divMap.appendChild(image);me.arrGridItems[me.GetArrayCoordinate(iYIter,iXIter)].img=null;image.style.visibility="visible";StopAnyEvent(image);}}}}
me.MoveBackZoomPreview();}
this.ZoomPreview=function(dZoomFactor,iBasePointX,iBasePointY,iPreviewMoveX,iPreviewMoveY)
{me.ZoomPreview2(dZoomFactor,iBasePointX,iBasePointY,iPreviewMoveX,iPreviewMoveY);}
this.RemoveZoomPreview=function()
{var Idx=1;var fc=me.tmTopoliszMap.divMap.firstChild;var s=fc;while(s)
{var ns=s.nextSibling;if(s.className=="mapPreview")
{s.style.visibility="hidden";me.tmTopoliszMap.divMap.removeChild(s);}
s=ns;}}
this.ZoomPreviewPhase=function()
{var i;for(i=0;i<me.zoomPreviewAnim_Images.length;i++)
{var oldTop=me.zoomPreviewAnim_Tops[i];var oldLeft=me.zoomPreviewAnim_Lefts[i];var oldWidth=me.zoomPreviewAnim_ImageWidth;var oldHeight=me.zoomPreviewAnim_ImageHeight;var iBasePointX=me.zoomPreviewAnim_BasePointX;var iBasePointY=me.zoomPreviewAnim_BasePointY;var iPreviewEMoveX=me.zoomPreviewAnim_MoveX;var iPreviewEMoveY=me.zoomPreviewAnim_MoveY;var DZF=me.zoomPreviewAnim_ZoomFactor;var PN=me.zoomPreviewAnim_PhasesNum;var PL=me.zoomPreviewAnim_PhasesLeft;var PAN=PN-PL;var dZoomFactor=1+((DZF-1)/PN)*PAN;var iStartOpac=100;var iEndOpac=100;var iActOpac;iActOpac=((iEndOpac-iStartOpac)/PN)*PAN+iStartOpac;var image=me.zoomPreviewAnim_Images[i];image.style.visibility="hidden";image.style.top=Math.round(((oldTop-iBasePointY)*dZoomFactor+iBasePointY))+(iPreviewEMoveY*PAN)+"px";image.style.left=Math.round(((oldLeft-iBasePointX)*dZoomFactor+iBasePointX))+(iPreviewEMoveX*PAN)+"px";var iw=Math.round((oldWidth*dZoomFactor));var ih=Math.round((oldHeight*dZoomFactor));image.style.width=iw+"px";image.style.height=ih+"px";me.zoomPreviewAnim_Images_Width[i]=iw;me.zoomPreviewAnim_Images_Height[i]=ih;image.style.visibility="visible";}
me.zoomPreviewAnim_PhasesLeft--;if(me.zoomPreviewAnim_PhasesLeft>0)
window.setTimeout(me.ZoomPreviewPhase,5);else
{me.MoveBackZoomPreview();me.RemoveZoomPreview();}}
this.MoveBackZoomPreview=function()
{if(me.zoomPreviewAnim_Images!=null)
{var i;for(i=0;i<me.zoomPreviewAnim_Images.length;i++)
{var image=me.zoomPreviewAnim_Images[i];image.style.zIndex=3;}}}
this.ZoomPreview2=function(dZoomFactor,iBasePointX,iBasePointY,iPreviewMoveX,iPreviewMoveY)
{if(me.arrGridItems[0].img==null)
return;me.RemoveZoomPreview();if(me.zoomPreviewAnim_Images!=null)
{var i;for(i=0;i<me.zoomPreviewAnim_Images.length;i++)
{delete me.zoomPreviewAnim_Images[i];me.zoomPreviewAnim_Images[i]=null;me.zoomPreviewAnim_Images_Width[i]=null;me.zoomPreviewAnim_Images_Height[i]=null;}
delete me.zoomPreviewAnim_Images;delete me.zoomPreviewAnim_Images_Width;delete me.zoomPreviewAnim_Images_Height;me.zoomPreviewAnim_Images=null;me.zoomPreviewAnim_Images_Width=null;me.zoomPreviewAnim_Images_Height=null;}
if(me.zoomPreviewAnim_Tops!=null)
{delete me.zoomPreviewAnim_Tops;me.zoomPreviewAnim_Tops=null;}
if(me.zoomPreviewAnim_Lefts!=null)
{delete me.zoomPreviewAnim_Lefts;me.zoomPreviewAnim_Lefts=null;}
me.zoomPreviewAnim_Images=new Array();me.zoomPreviewAnim_Images_Width=new Array();me.zoomPreviewAnim_Images_Height=new Array();me.zoomPreviewAnim_Tops=new Array();me.zoomPreviewAnim_Lefts=new Array();me.zoomPreviewAnim_ImageHeight=null;me.zoomPreviewAnim_ImageWidth=null;me.zoomPreviewAnim_ZoomFactor=dZoomFactor;me.zoomPreviewAnim_BasePointX=iBasePointX;me.zoomPreviewAnim_BasePointY=iBasePointY;me.zoomPreviewAnim_PhasesLeft=10;me.zoomPreviewAnim_PhasesNum=10;me.zoomPreviewAnim_MoveX=iPreviewMoveX/me.zoomPreviewAnim_PhasesNum*me.zoomPreviewAnim_ZoomFactor;me.zoomPreviewAnim_MoveY=iPreviewMoveY/me.zoomPreviewAnim_PhasesNum*me.zoomPreviewAnim_ZoomFactor;var imwidth=GetLayerWidth(me.arrGridItems[0].img);var imheight=GetLayerHeight(me.arrGridItems[0].img);var Idx=1;for(var iYIter=me.iTop;iYIter<me.iTop+me.iHeight;iYIter++)
{for(var iXIter=me.iLeft;iXIter<me.iLeft+me.iWidth;iXIter++)
{var arrc=me.GetArrayCoordinate(iYIter,iXIter);var image=me.arrGridItems[arrc].img;if(image!=null)
{me.zoomPreviewAnim_Images[me.zoomPreviewAnim_Images.length]=image;me.zoomPreviewAnim_Tops[me.zoomPreviewAnim_Tops.length]=GetLayerTop(image.parentNode);me.zoomPreviewAnim_Lefts[me.zoomPreviewAnim_Lefts.length]=GetLayerLeft(image.parentNode);me.zoomPreviewAnim_Images_Width[arrc]=imwidth;me.zoomPreviewAnim_Images_Height[arrc]=imheight;me.zoomPreviewAnim_ImageWidth=imwidth;me.zoomPreviewAnim_ImageHeight=imheight;image.className="mapPreview";image.id=Idx;Idx++;image.style.visibility="hidden";image.style.position="absolute";image.parentNode.removeChild(image);me.tmTopoliszMap.divMap.appendChild(image);me.arrGridItems[me.GetArrayCoordinate(iYIter,iXIter)].img=null;image.style.visibility="visible";StopAnyEvent(image);}}}
me.ZoomPreviewPhase();}
this.Hide=function()
{for(var iYIter=me.iTop;iYIter<me.iTop+me.iHeight;iYIter++)
{for(var iXIter=me.iLeft;iXIter<me.iLeft+me.iWidth;iXIter++)
{var image=me.arrGridItems[me.GetArrayCoordinate(iYIter,iXIter)].img;image.style.visibility="hidden";}}}}

function CMapGridItem(tmTopoliszMap)
{this.iLeft=0;this.iTop=0;this.pMap=tmTopoliszMap;this.iWidth=this.pMap.GetMapGridItemWidth();this.iHeight=this.pMap.GetMapGridItemHeight();this.iIdxX=0;this.iIdxY=0;this.iLevel=0;this.strUrl="";this.div=null;this.img=null;this.div=NewTag('div');this.div.className="gridItem";this.div.style.left=this.iLeft+"px";this.div.style.top=this.iTop+"px";this.div.style.width=this.iWidth+"px";this.div.style.height=this.iHeight+"px";this.visible=true;var me=this;this.SetPos=function(iPosY,iPosX)
{me.div.style.left=(Math.floor(iPosX))+"px";me.div.style.top=(Math.floor(iPosY))+"px";}
this.GetImgId=function()
{return me.pMap.divMap.id+"img"+me.iLevel+";"+me.iIdxY+";"+me.iIdxX;}
this.Load=function(iLevel,iIdxY,iIdxX)
{var bNoImg=(me.img==null)?true:false;me.iIdxX=iIdxX;me.iIdxY=iIdxY;me.iLevel=iLevel;if(bNoImg)
{me.img=document.createElement('img');me.img.className="gridItem";}
me.div.style.display="none";me.img.style.display="none";me.img.onload=function()
{if(!me.visible)
{if(me.div)
me.div.style.display="none";if(me.img)
me.img.style.display="none";}
else
{if(me.div)
me.div.style.display="";if(me.img)
me.img.style.display="";}}
me.img.setAttribute("id",me.GetImgId());if(bNoImg)
{me.div.appendChild(me.img);}
var FileName=me.pMap.pGridMain.GetImageFileName(iIdxY,iIdxX);SetImage(me.img,FileName,me.iWidth,me.iHeight,me.iDummy);}
this.Show=function()
{me.visible=true;if(me.div)
me.div.style.display="";if(me.img)
me.img.style.display="";}
this.Hide=function()
{me.visible=false;if(me.div)
me.div.style.display="none";if(me.img)
me.img.style.display="none";}
this.Set=function(iLevel,iIdxY,iIdxX)
{me.Load(iLevel,iIdxY,iIdxX);}
this.RemoveImg=function()
{}}

function CAddressSearchUserState(strInputText,arrAddressList)
{this.strInputText=strInputText;this.arrAddressList=arrAddressList;}
function CAddressSearch(pTopoliszMap)
{this.bAutoSearch=true;this.bAutoHideResultList=true;this.bOKPressed=false;this.strInputText="";this.arrAddressList=null;this.iActive=0;this.strDefaultText="";this.iListOffsetX=5;this.iListOffsetY=20;this.iCommandID=-1;this.bWasDeleteBack=false;this.pTopoliszMap=pTopoliszMap;this.input=null;this.divResult=null;this.killTimer=null;this.bSkipNextBlur=false;this.bListHidden=false;this.OnOK=function()
{}
this.OnAddressFound=function(address)
{}
this.OnSearchBegins=function()
{}
this.OnSearchEnded=function()
{}
var me=this;this.SetTopoliszMap=function(pTopoliszMap)
{me.pTopoliszMap=pTopoliszMap;}
this.SetAddress=function(pAddress)
{me.arrAddressList=new Array();me.strInputText="";me.iActive=0;me.bWasDeleteBack=false;if(pAddress!=null)
{me.strInputText=pAddress.strAddress;if(pAddress.dX>0&&pAddress.dY>0)
me.arrAddressList[0]=pAddress;}
if(me.input)
me.Show();if(me.OnAddressFound)
{try{me.OnAddressFound();}
catch(exp){if(me.pTopoliszMap.OnError)
me.pTopoliszMap.OnError(exp,'AddressSearch.OnAddressFound');}}
if(me.bOKPressed)
me.Go();}
this.GetAddress=function()
{if(GetArrayLength(me.arrAddressList)==1)
return me.arrAddressList[0];return null;}
this.HasAddress=function()
{return GetArrayLength(me.arrAddressList)>0;}
this.IsUnique=function()
{return(GetArrayLength(me.arrAddressList)==1)&&!me.HasUniqueList();}
this.HasList=function()
{return GetArrayLength(me.arrAddressList)>1||me.HasUniqueList();}
this.HasUniqueList=function()
{return(GetArrayLength(me.arrAddressList)==1)&&me.bWasDeleteBack;}
this.SetInput=function(input)
{me.input=input;if(me.input)
{AddEvent(me.input,'focus',me.OnFocus);AddEvent(me.input,'blur',me.OnBlur);AddEvent(me.input,'change',me.OnChange);AddEvent(me.input,'keyup',me.OnKeyUp);AddEvent(me.input,'keypress',me.OnKeyPress);AddEvent(me.input,'click',me.OnClick);}}
this.GetInput=function()
{return me.input;}
this.GetUserState=function()
{return new CAddressSearchUserState(me.strInputText,me.arrAddressList);}
this.SetUserState=function(state)
{me.strInputText=state.strInputText;me.SetInputValue(me.strInputText);me.arrAddressList=state.arrAddressList;}
this.IsAutoSearch=function()
{return me.bAutoSearch;}
this.SetAutoSearch=function(bValue)
{me.bAutoSearch=bValue;}
this.SetDefaultText=function(strDefaultText)
{var strInputValue=me.GetInputValue();me.strDefaultText=strDefaultText;me.SetInputValue(strInputValue);}
this.GetDefaultText=function()
{return me.strDefaultText;}
this.SetListOffset=function(iListOffsetX,iListOffsetY)
{me.iListOffsetX=iListOffsetX;me.iListOffsetY=iListOffsetY;}
this.GetListOffsetX=function()
{return me.iListOffsetX;}
this.GetListOffsetY=function()
{return me.iListOffsetY;}
this.SetInputValue=function(strInputValue)
{if(me.input)
{if(strInputValue!="")
me.input.value=strInputValue;else
me.input.value=me.strDefaultText;}
else
{me.strInputText=strInputValue;}}
this.GetInputValue=function()
{if(me.input)
{if(me.input.value!=me.strDefaultText)
return me.input.value;else
return"";}
else
return me.strInputText;}
this.OnFocus=function(pEvent)
{if(me.input.value==me.strDefaultText)
me.input.value="";if(me.HasList())
{}
else
me.input.select();}
this.HideList=function()
{me.bListHidden=true;if(me.divResult&&me.divResult.parentNode)
{me.divResult.style.display="none";}}
this.ShowList=function()
{me.bListHidden=false;if(me.divResult&&me.divResult.parentNode)
{me.divResult.style.display="";}}
this.OnBlur=function(pEvent)
{if(me.input.value=="")
me.input.value=me.strDefaultText;if(me.HasList())
{{me.killTimer=window.setTimeout(me.HideList,250);}
me.bSkipNextBlur=false;window.setTimeout(me.input.focus,250);return;}
if(me.bAutoSearch)
{if(!me.bOKPressed)
me.FindAddress();}
StopEventPropagation(pEvent);return false;}
this.OnClick=function(pEvent)
{if(me.bAutoHideResultList&&me.HasList())
{if(me.bListHidden)
me.ShowList();else
me.HideList();}}
this.OnBeforeDeactivate=function(pEvent)
{var divTo=GetEventRelatedElement(pEvent);if(divTo&&divTo.nodeName.toLowerCase()=="body")
{return false;}
return true;}
this.OnChange=function(pEvent)
{if(me.arrAddressList!=null&&me.GetInputValue()!=me.strInputText)
{me.arrAddressList=null;}}
this.OnKeyUp=function(pEvent)
{if(me.input.value==me.strDefaultText)
me.input.value="";if(pEvent==null)
pEvent=window.event;if(pEvent.keyCode==38)
{if(me.iActive>0)
me.SetActive(me.iActive-1);else
me.SetActive(GetArrayLength(me.arrAddressList)-1);StopEventPropagation(pEvent);return false;}
if(pEvent.keyCode==40)
{if(me.iActive<GetArrayLength(me.arrAddressList)-1)
me.SetActive(me.iActive+1);else
me.SetActive(0);StopEventPropagation(pEvent);return false;}
if(pEvent.keyCode!=13)
{me.SetActive(-1);}}
this.OnKeyPress=function(pEvent)
{if(me.input.value==me.strDefaultText)
me.input.value="";if(pEvent==null)
pEvent=window.event;if(pEvent.keyCode==13)
{me.bOKPressed=true;if(me.iActive>=0&&me.iActive<GetArrayLength(me.arrAddressList))
{if(!me.bListHidden)
{me.SetAddress(me.arrAddressList[me.iActive]);}
else
{me.ShowList();}
return true;}
else if(true)
{me.FindAddress();if(GetArrayLength(me.arrAddressList)==1)
{return true;}
else
{StopEventPropagation(pEvent);return false;}}}
if(pEvent.keyCode==27)
{me.SetAddress(null);me.input.value="";}}
this.KillTimer=function()
{me.bSkipNextBlur=true;if(me.killTimer)
{window.clearTimeout(me.killTimer);me.killTimer=null;}}
this.SetOnClick=function(a,address,iAddress)
{a.onclick=function()
{me.SetAddress(address);}
a.onmouseover=function()
{me.SetActive(iAddress);}
a.onkeyup=me.OnKeyPress;}
this.Show=function()
{me.ClearResultDiv();me.SetInputValue(me.strInputText);if(me.HasList())
{me.divResult=NewTag("div",me.input.parentNode);me.divResult.className="AddressResult";me.divResult.style.display=(me.bListHidden?"none":"");AddEvent(me.divResult,'blur',me.OnBlur);AddEvent(me.divResult,'keyup',me.OnKeyUp);AddEvent(me.divResult,'keypress',me.OnKeyPress);AddEvent(me.divResult,'mousedown',me.KillTimer);var iTop=GetLayerBottom(me.input);if(iTop>10000)
iTop=GetLayerTop(me.input)+20;me.divResult.style.top=iTop+"px";me.divResult.style.left=(GetLayerLeft(me.input))+"px";var iLength=GetArrayLength(me.arrAddressList);var a;var i;var div=NewTag("div",me.divResult);div.className="AddressResultInner";for(i=0;i<iLength;i++)
{a=NewTag('a',div);a.setAttribute('href','javascript:void(0)');if(i==me.iActive)
a.className="AddressResultActive";else
a.className="AddressResult";a.style.zIndex="5";var pAddress=me.arrAddressList[i];me.SetOnClick(a,me.arrAddressList[i],i);NewTextTag(me.arrAddressList[i].strAddress,a);}}}
this.SetActive=function(iActive)
{me.iActive=iActive;if(me.divResult)
{var aList=me.divResult.getElementsByTagName("a");for(var i=0;i<aList.length;i++)
{if(i==iActive)
{aList[i].className="AddressResultActive";var iTop=GetLayerTop(aList[i]);}
else
aList[i].className="AddressResult";}}}
this.ClearResultDiv=function()
{if(me.divResult)
{if(me.divResult.parentNode)
me.divResult.parentNode.removeChild(me.divResult);delete me.divResult;me.divResult=null;}}
this.FillAddress=function(result,pDummy,iCommandID)
{if(me.OnSearchEnded)
{try{me.OnSearchEnded();}
catch(exp){if(me.pTopoliszMap.OnError)
me.pTopoliszMap.OnError(exp,'AddressSearch.OnSearchEnded');}}
if(result)
{me.arrAddressList=result.arrAddresses;me.bWasDeleteBack=result.bWasDeleteBack;me.SetActive(0);if(me.arrAddressList==null||GetArrayLength(me.arrAddressList)<1)
{me.strInputText="";}
else if(me.IsUnique())
{me.strInputText=me.arrAddressList[0].strAddress;if(me.OnAddressFound)
{try{me.OnAddressFound(me.arrAddressList[0]);}
catch(exp){if(me.pTopoliszMap.OnError)
me.pTopoliszMap.OnError(exp,'CAddressSearch.OnAddressFound');}}}}
else
{me.SetAddress(null);}
me.Show();if(me.bOKPressed)
me.Go();}
this.FindAddress=function()
{me.bListHidden=false;if(me.GetInputValue()!=me.strInputText)
{me.arrAddressList=null;}
if(GetArrayLength(me.arrAddressList)<1)
{me.strInputText=me.GetInputValue();if(me.strInputText!=null&&me.strInputText.length>0)
{if(me.OnSearchBegins)
{try{me.OnSearchBegins();}
catch(exp){if(me.pTopoliszMap.OnError)
me.pTopoliszMap.OnError(exp,'AddressSearch.OnSearchBegins');}}
me.iCommandID=me.pTopoliszMap.NoSessionServer.CallSyncFunction("FindAddress","strAddress="+me.strInputText,0,me.FillAddress);}
else
{if(me.bOKPressed)
me.Go();}}
else if(GetArrayLength(me.arrAddressList)==1)
{if(me.bOKPressed)
me.Go();}}
this.Warning=function(strMessage)
{}
this.Go=function()
{me.bOKPressed=true;if(!me.HasAddress())
{if(me.input&&me.GetInputValue()=="")
{me.bOK=false;if(me.OnOK)
{try{me.OnOK();}
catch(exp){if(me.pTopoliszMap.OnError)
me.pTopoliszMap.OnError(exp,'AddressSearch.OnOK');}}}
else
{me.FindAddress();}}
else if(!me.IsUnique())
{me.input.focus();}
else
{me.bOKPressed=false;if(me.OnOK)
{try{me.OnOK();}
catch(exp){if(me.pTopoliszMap.OnError)
me.pTopoliszMap.OnError(exp,'CAddressSearch.OnOK');}}}}}

function ToolTipData(src,strText,iLevel)
{this.src=src;this.strText=strText;this.iLevel=iLevel;this.div=null;var me=this;this.Show=function()
{me.div=NewTag("div");me.div.className="tooltip";var iLeft=GetLayerRight(me.src);var iTop=GetLayerTop(me.src)+Math.floor((GetLayerHeight(me.src)-13)/2);var src=me.src;if(src.nodeName=="div"||src.nodeName=="DIV")
{iTop+=GetLayerTop(me.src.parentNode);src=src.parentNode;iLeft+=GetLayerRight(src);src=src.parentNode;iLeft=GetLayerRight(src);}
me.div.style.left=iLeft+"px";me.div.style.top=iTop+"px";var table=NewTag('table',me.div);table.cellPadding=0;table.cellSpacing=0;table=NewTag('tbody',table);var tr=NewTag('tr',table);var td=NewTag('td',tr);td.className="tooltipbegin";var img=NewTag("img");SetTransparentPng(img,GetAbsUrl("graphics/tooltipBegin.png"),13,13,"");AddTag(img,td);var td=NewTag('td',tr);td.className="tooltip";SetTransparentPngAsBg(td,GetAbsUrl("graphics/tooltipBg.png"));var span=NewTag("span",td);span.className="tooltip";NewTextTag(me.strText,span);var td=NewTag('td',tr);td.className="tooltipend";var img=NewTag("img");SetTransparentPng(img,GetAbsUrl("graphics/tooltipEnd.png"),3,13,"");AddTag(img,td);AddTag(me.div,src.parentNode,src);return me.div;}}
function CToolTip()
{this.iClearTimeOut=3000;this.timer=null;this.arrToolTips=new Array();var me=this;this.clearToolTips=function(iLevel)
{if(iLevel==null||iLevel==undefined)
iLevel=0;var iLength=GetArrayLength(me.arrToolTips);for(var i=0;i<iLength;i++)
{if(me.arrToolTips[i]!=null&&(iLevel<0||me.arrToolTips[i].iLevel>=iLevel))
{if(me.arrToolTips[i].div!=null&&me.arrToolTips[i].div.parentNode!=null)
{me.arrToolTips[i].div.parentNode.removeChild(me.arrToolTips[i].div);}
delete me.arrToolTips[i];me.arrToolTips[i]=null;}}}
this.clearAllToolTips=function()
{me.clearToolTips(0);}
this.addToolTip=function(src,strText,iLevel,bUnique,iClearLevel)
{if(src.nodeName=='a'||src.nodeName=='A')
src=src.parentNode;if(src.nodeName=='img'||src.nodeName=='IMG')
src=src.parentNode;var iLength=GetArrayLength(me.arrToolTips);for(var i=0;i<iLength;i++)
{if(me.arrToolTips[i]!=null&&me.arrToolTips[i].strText==strText&&me.arrToolTips[i].iLevel==iLevel)
{return me.arrToolTips[i].div;}}
if(bUnique)
me.clearToolTips(iClearLevel);var tooltip=new ToolTipData(src,strText,iLevel);me.arrToolTips[GetArrayLength(me.arrToolTips)]=tooltip;tooltip.Show();return tooltip.div;}}

function CMTTMapPalette(pTopoliszMap,bSliderExists,bMoveButtonsExist,bMiniMap,bSliderOnlyWithButtons,bDistanceMeasureButton,bUndoButton)
{this.div=null;this.divMinimapButton=null;this.pSlider=null;this.pTopoliszMap=pTopoliszMap;this.pTopoliszMap.pMapPalette=this;this.bSliderExists=bSliderExists;this.bMoveButtonsExist=bMoveButtonsExist;this.imgMiniMap=null;if(bSliderOnlyWithButtons==true)
this.bSliderOnlyWithButtons=bSliderOnlyWithButtons;else
this.bSliderOnlyWithButtons=false;if(bDistanceMeasureButton==false)
this.bDistanceMeasureButton=bDistanceMeasureButton;else
this.bDistanceMeasureButton=true;if(bUndoButton==false)
this.bUndoButton=bUndoButton;else
this.bUndoButton=true;this.bMiniMap=bMiniMap;this.imgbtnDistanceMeasure=null;this.pToolTip=new CToolTip();this.onToolTipZoomIn=null;this.onToolTipZoomOut=null;this.onToolTipMiniMap=null;this.onToolTipDefault=null;this.onToolTipUndo=null;this.onToolTipMeasure=null;var me=this;this.OnMouseDown=function(pEvent)
{var iY=GetEventY(pEvent);}
this.SetPixMeterToolTips=function()
{var TickText="";var i=0;var unit="?";for(i=me.pTopoliszMap.GetMaximumLevel();i>=me.pTopoliszMap.GetMinimumLevel();i--)
{var pd=me.pTopoliszMap.GetPixelDensityFromLevel(i);if(pd>=1000)
{pd=(pd)/1000;unit="km";}
else
{pd=Math.round(pd);unit="m";}
TickText+="1 px = "+pd+" "+unit;TickText+=";";}
me.pSlider.TickTexts=TickText;}
this.Init=function()
{me.div=NewTag("div",me.pTopoliszMap.GetMapDiv(),me.pTopoliszMap.GetMapDiv().firstChild);me.div.className="mapPalette";DisableSelection(me.div);var a,div,img;var iBaseLeft=0;if(me.bMoveButtonsExist)
iBaseLeft=23;if(me.bSliderExists)
{a=NewTag("a",me.div);a.className="button";a.setAttribute("href","javascript:void(0)");a.onclick=me.pTopoliszMap.ZoomIn;a.onmouseover=me.onToolTipZoomIn;a.onmouseout=me.pToolTip.clearAllToolTips;img=NewTag("img",a);img.className="imgZoomButton";SetTransparentPng(img,GetAbsUrl("graphics/zoomIn.png"),17,18,"Közelít");new ImgButton(img,GetAbsUrl("graphics/zoomIn.png"),GetAbsUrl("graphics/zoomIn_on.png"),GetAbsUrl("graphics/zoomIn_on.png"),true);if(me.bSliderOnlyWithButtons==false)
{var divSlider=NewTag('div',me.div);divSlider.onmouseover=me.onToolTipSlider;divSlider.onmouseout=null;me.pSlider=new SliderControl(divSlider);me.pSlider.iYTickNumber=me.pTopoliszMap.GetLevelNumber();var innerDiv=NewTag("div",me.pSlider.slider);innerDiv.style.position="absolute";innerDiv.style.top="0px";innerDiv.style.left="0px";innerDiv.style.height="100px";innerDiv.style.width="17px";innerDiv.style.backgroundColor="transparent";innerDiv.style.cursor="pointer";me.pSlider.slider.style.cursor="pointer";me.pSlider.slider.style.backgroundImage="url("+GetAbsUrl("graphics/zoomTrack.gif")+")";SetTransparentPngAsBg(me.pSlider.thumb,GetAbsUrl("graphics/zoomHandle.png"));this.pSlider.setSize(17,100);this.pSlider.setPosition(iBaseLeft,0);this.pSlider.setTracking(false,true);this.pSlider.setValue(0);this.pSlider.setColors('transparent','transparent');this.pSlider.onThumbMoved=this.pTopoliszMap.ZoomModifiedBySlider;this.pSlider.SliderTickOnMouseOver=me.onToolTipSliderTick;}
a=NewTag("a",me.div);a.className="button";a.setAttribute("href","javascript:void(0)");a.onclick=me.pTopoliszMap.ZoomOut;a.onmouseover=me.onToolTipZoomOut;a.onmouseout=me.pToolTip.clearAllToolTips;img=NewTag("img",a);img.className="imgZoomButton";SetTransparentPng(img,GetAbsUrl("graphics/zoomout.png"),17,18,"");new ImgButton(img,GetAbsUrl("graphics/zoomout.png"),GetAbsUrl("graphics/zoomout_on.png"),GetAbsUrl("graphics/zoomout_on.png"),true);}
if(!me.bMiniMap)
{if(me.bDistanceMeasureButton)
{a=NewTag("a",me.div);a.className="button";a.style.marginTop="5px";a.setAttribute("href","javascript:void(0)");a.onclick=function()
{me.pTopoliszMap.OnOffMeasureDistance("button");}
a.onmouseover=me.onToolTipMeasure;a.onmouseout=me.pToolTip.clearAllToolTips;img=NewTag("img",a);img.className="imgZoomButton";SetTransparentPng(img,GetAbsUrl("graphics/toolRuler.png"),17,18,"");me.imgbtnDistanceMeasure=new ImgButton(img,GetAbsUrl("graphics/toolRuler.png"),GetAbsUrl("graphics/toolRuler_on.png"),GetAbsUrl("graphics/toolRuler_on.png"),true);}
if((!me.bMoveButtonsExist)&&(me.bUndoButton))
{a=NewTag("a",me.div);a.className="button";a.style.marginTop="5px";a.setAttribute("href","javascript:void(0)");a.onclick=me.pTopoliszMap.Undo;a.onmouseover=me.onToolTipUndo;a.onmouseout=me.pToolTip.clearAllToolTips;img=NewTag("img",a);img.className="imgZoomButton";SetTransparentPng(img,GetAbsUrl("graphics/toolUndo.png"),17,18,"Vissza");new ImgButton(img,GetAbsUrl("graphics/toolUndo.png"),GetAbsUrl("graphics/toolUndo_on.png"),GetAbsUrl("graphics/toolUndo_on.png"),true);DisableSelection(a);}
me.divMinimapButton=NewTag("div",me.pTopoliszMap.GetMapDiv(),me.pTopoliszMap.GetMapDiv().firstChild);me.divMinimapButton.className="mapPaletteMinimap";var a=NewTag('a',me.divMinimapButton);AddEvent(a,'click',me.SwitchMiniMap);me.imgMiniMap=NewTag("img",a);me.imgMiniMap.style.verticalAlign="bottom";if(me.pTopoliszMap.bMiniMapVisible)
SetImage(me.imgMiniMap,GetAbsUrl("graphics/hideminimap.png"),14,14,"");else
SetImage(me.imgMiniMap,GetAbsUrl("graphics/showminimap.png"),14,14,"");}
me.opacdiv=NewTag("div",me.pTopoliszMap.GetMapDiv(),me.div);me.opacdiv.className="mapPalette";me.opacdiv.style.position="absolute";me.opacdiv.style.height=GetLayerHeight(me.div)+"px";me.opacdiv.style.width="40px";me.opacdiv.style.padding="0px";me.opacdiv.setAttribute("id","opacpalettediv");SetOpac(me.opacdiv,50);me.opacdiv.style.backgroundColor="white";}
this.SetHideMiniMapButton=function()
{if(me.pTopoliszMap.bMiniMapVisible)
SetImage(me.imgMiniMap,GetAbsUrl("graphics/hideminimap.png"),14,14,"");}
this.onToolTipZoomIn=function(pEvent)
{me.pToolTip.addToolTip(GetEventSourceElement(pEvent),g_Babel.GetWord('ZoomIn').toLowerCase(),0,true,-1);}
this.onToolTipZoomOut=function(pEvent)
{me.pToolTip.addToolTip(GetEventSourceElement(pEvent),g_Babel.GetWord('ZoomOut').toLowerCase(),0,true-1);}
this.onToolTipMeasure=function(pEvent)
{me.pToolTip.addToolTip(GetEventSourceElement(pEvent),g_Babel.GetWord('MeasureDistanceTooltip').toLowerCase(),0,true,-1);}
this.onToolTipUndo=function(pEvent)
{me.pToolTip.addToolTip(GetEventSourceElement(pEvent),'visszavonás',0,true,-1);}
this.onToolTipSliderTick=function(pEvent)
{}
this.onToolTipSlider=function(pEvent)
{}
this.SwitchMiniMap=function()
{if(me.pTopoliszMap.bMiniMapVisible)
{me.pTopoliszMap.HideMiniMap();SetImage(me.imgMiniMap,GetAbsUrl("graphics/showminimap.png"),14,14,"");}
else
{me.pTopoliszMap.ShowMiniMap();SetImage(me.imgMiniMap,GetAbsUrl("graphics/hideminimap.png"),14,14,"");}}
this.SliderOnMouseOut=function()
{me.pToolTip.clearAllToolTips();}
this.GetLevelFromLevelName=function(strLevelName)
{var iRadius=me.pTopoliszMap.GetRadiusMeter(strLevelName);var dMul=1.0;var iViewHeight=me.pTopoliszMap.GetMapViewHeight()/2.0*dMul;var dMeterPerPixelY=iRadius/iViewHeight;var iLevelY=me.pTopoliszMap.GetLevelFromPixelDensityNonExact(dMeterPerPixelY);var iViewWidth=me.pTopoliszMap.GetMapViewWidth()/2.0*dMul;var dMeterPerPixelX=iRadius/iViewWidth;var iLevelX=me.pTopoliszMap.GetLevelFromPixelDensityNonExact(dMeterPerPixelX);var iLevel=Math.min(iLevelX,iLevelY);var retval=iLevel-1;var iMinLevel=me.pTopoliszMap.GetMinimumLevel();if(retval<iMinLevel)
retval=retval+1;return retval;}
this.SliderOnMouseOver=function()
{var div;var iMaxLevel=me.pTopoliszMap.GetMaximumLevel();var iTick=iMaxLevel-me.GetLevelFromLevelName("Country");var src=me.pSlider.GetTickDiv(iTick);div=me.pToolTip.addToolTip(src,"ország",0,true,0);iTick=iMaxLevel-me.GetLevelFromLevelName("Region");var src=me.pSlider.GetTickDiv(iTick);div=me.pToolTip.addToolTip(src,"megye",0,false,0);iTick=iMaxLevel-me.GetLevelFromLevelName("Settlement");var src=me.pSlider.GetTickDiv(iTick);div=me.pToolTip.addToolTip(src,"város",0,false,0);iTick=iMaxLevel-me.GetLevelFromLevelName("Street");var src=me.pSlider.GetTickDiv(iTick);div=me.pToolTip.addToolTip(src,"utca",0,false,0);}
me.Init();}

function CMTTAddressSearch(divSearch,pTopoliszMap)
{this.divSearch=divSearch;this.pTopoliszMap=pTopoliszMap;this.pSearch=new CAddressSearch(pTopoliszMap);this.pSearch.SetDefaultText(g_Babel.GetWord('Address'));this.strSkin='normal';this.strLabelMode='normal';var me=this;this.SetDiv=function(div)
{me.divSearch=div;}
this.SetMap=function(pTopoliszMap)
{me.pTopoliszMap=pTopoliszMap;me.pSearch.SetTopoliszMap(pTopoliszMap);}
this.SetSkin=function(strSkin)
{me.strSkin=(strSkin!=null?strSkin.toLowerCase():"normal");if(me.IsVoiceSkin())
me.pSearch.SetDefaultText('');else
me.pSearch.SetDefaultText(g_Babel.GetWord('Address'));}
this.GetSkin=function()
{return me.strSkin;}
this.IsVoiceSkin=function()
{return me.strSkin=="voice";}
this.Show=function()
{if(me.divSearch)
{while(me.divSearch.firstChild)
me.divSearch.removeChild(me.divSearch.firstChild);if(me.IsVoiceSkin())
{var form=NewTag('form',me.divSearch);form.setAttribute('action',"javascript:void(0)");form.setAttribute('autocomplete','off');form.className="nomargin";NewTextTag("Cím",form);var input=NewTag('input',form);input.className="address";input.setAttribute('id',"searchInputAddress");me.pSearch.SetInput(input);me.pSearch.Show()
var button=NewTag('input');button.setAttribute('type','button');button.setAttribute('value','Keresés');button.className="btnok";button.onclick=me.Go;AddTag(button,form);}
else
{var form=NewTag('form',me.divSearch);form.setAttribute('action',"javascript:void(0)");form.setAttribute('autocomplete','off');form.className="nomargin";var divAddressAndExamples=NewTag('div',form);divAddressAndExamples.className="clearfix addressarea";var input=NewTag('input',divAddressAndExamples);input.className="address";input.setAttribute('id',"searchInputAddress");me.pSearch.SetInput(input);me.pSearch.Show()
var a=NewTag('a',divAddressAndExamples);a.setAttribute('href','javascript:void(0)');a.className="btnok";a.onclick=me.Go;var img=NewTag('img',a);SetImage(img,GetAbsUrl('graphics/197TopSearch/ok2.gif'),21,19,"OK");new ImgButton(img,GetAbsUrl('graphics/197TopSearch/ok2.gif'),GetAbsUrl('graphics/197TopSearch/ok2_mover.gif'),GetAbsUrl('images/197TopSearch/ok2_mdown.gif'),false);var spanExamples=NewTag('span',divAddressAndExamples);NewTextTag("pl.: Vác / Vác, Aba tér / Vác, Aba u. 3.",spanExamples);}}}
this.GetAddress=function()
{return me.pSearch.GetAddress();}
this.SetAddress=function(strAddress,dX,dY)
{me.pSearch.SetAddress(strAddress!=null?new CSimpleAddress(strAddress,dX,dY):null);}
this.SetLabelMode=function(strLabelMode)
{me.strLabelMode=strLabelMode;}
this.GetLabelMode=function()
{return me.strLabelMode;}
this.OnOK=function()
{var address=me.pSearch.GetAddress();if(address)
{me.pTopoliszMap.OnNewFoundAddress(address,me.strLabelMode);me.pTopoliszMap.ZoomToAddressSpecial(address,me.OnGo);}}
this.pSearch.OnOK=me.OnOK;this.Go=function()
{me.pSearch.Go();}
this.OnGo=function()
{}
this.OnAddressFoundInternal=function()
{if(me.OnAddressFound)
{try{me.OnAddressFound();}
catch(exp){if(me.pTopoliszMap.OnError)
me.pTopoliszMap.OnError(exp,'AddressSearch.OnAddressFound');}}}
this.pSearch.OnAddressFound=me.OnAddressFoundInternal;this.OnAddressFound=function()
{}
this.Reset=function()
{me.pSearch.SetAddress(null);}
this.GetDefaultText=function()
{return me.pSearch.GetDefaultText();}
this.SetDefaultText=function(strDefaultText)
{me.pSearch.SetDefaultText(strDefaultText);}
this.OnChangeLang=function()
{if(!me.IsVoiceSkin())
me.pSearch.SetDefaultText(g_Babel.GetWord('Address'));var input=me.pSearch.GetInput();if(input)
me.Show();}
g_Babel.AddListener(this.OnChangeLang);}

var SliderControlIsMouseDown=false;function SliderControlMouseDown(e)
{this.parent.isMouseDown=true;SliderControlIsMouseDown=true;this.parent.setThumb();}
function SliderControlMouseUp(e)
{if(this.parent.isMouseDown&&this.parent.bYUseTicks)
{var percentY=this.parent.getPercentY();var newPercentY=(Math.round(percentY/(1/(this.parent.iYTickNumber-1))))*(1/(this.parent.iYTickNumber-1));this.parent.setPercentY(newPercentY);if(this.parent.onThumbMoved)
this.parent.onThumbMoved(newPercentY);}
this.parent.isMouseDown=false;SliderControlIsMouseDown=false;}
function SliderControlMouseOut(e)
{var x=GetEventRelatedElement(e).className;if((x!="sliderthumb")&&(x!="")&&(x!="slidertick"))
{var percentY=this.parent.getPercentY();var newPercentY=(Math.round(percentY/(1/(this.parent.iYTickNumber-1))))*(1/(this.parent.iYTickNumber-1));this.parent.setPercentY(newPercentY);if(this.parent.onThumbMoved)
this.parent.onThumbMoved(newPercentY);}}
function SliderControlMouseMove(e)
{try
{var parent=this.parent;parent.mouseX=GetEventXNew(e)-GetAbsLayerLeft(parent.slider);parent.mouseY=GetEventYNew(e)-GetAbsLayerTop(parent.slider);parent.setThumb();}
catch(e)
{}}
function SliderControlMouseMoveOnThumb(e)
{try
{var parent=this.parent;parent.mouseX=GetEventXNew(e)-GetAbsLayerLeft(parent.slider);parent.mouseY=GetEventYNew(e)-GetAbsLayerTop(parent.slider);parent.setThumb();StopEventPropagation(e);}
catch(e)
{}}
function SliderControlSetThumb()
{if(this.mouseX>this.width||this.mouseX<0||this.mouseY>this.height||this.mouseY<0||SliderControlIsMouseDown==false)
{this.isMouseDown=false;}
if(this.isMouseDown)
{this.UpdateThumbPosition(true);}}
function SliderControlDocMouseUp(e)
{SliderControlIsMouseDown=false;}
function SliderTickOnMouseOver(pEvent)
{}
function SliderTickOnMouseOut(pEvent)
{}
function SliderControlSetSize(w,h)
{this.width=w;this.height=h;this.slider.style.width=this.width+"px";this.slider.style.height=this.height+"px";this.UpdateThumbPosition(true);var i=0;var iStartIdxOfTickText=0;var iThumbHeight=GetLayerHeight(this.thumb);var iTickHeight=-1;var iTickWidth=-1;for(i=0;i<this.iYTickNumber;i++)
{var slidertick=document.createElement('div');slidertick.className="slidertick";var img=NewTag('img',slidertick);SetTransparentPng(img,GetAbsUrl('graphics/zoomTick.png'),17,1,"");slidertick.style.visibility='hidden';slidertick.style.zIndex=6;slidertick.style.position='absolute';slidertick.style.fontSize='0';slidertick.tickpercent=i/(this.iYTickNumber-1);var newidx=this.TickTexts.indexOf(";",iStartIdxOfTickText);slidertick.hinttext=this.TickTexts.substr(iStartIdxOfTickText,newidx-iStartIdxOfTickText);iStartIdxOfTickText=newidx+1;slidertick.onmouseover=this.SliderTickOnMouseOverInternal;slidertick.onmouseout=this.SliderTickOnMouseOutInternal;slidertick.onmousedown=function(pEvent)
{try
{StopEventPropagation(pEvent);}
catch(e)
{}
return false;}
slidertick.onclick=function()
{this.parentNode.parent.setPercentY(this.tickpercent);if(this.parentNode.parent.onThumbMoved)
this.parentNode.parent.onThumbMoved(this.tickpercent);}
this.slider.appendChild(slidertick);if(iTickWidth<0)
iTickWidth=GetLayerWidth(slidertick);if(iTickHeight<0)
iTickHeight=GetLayerHeight(slidertick);slidertick.style.top=Math.round(((this.height-iThumbHeight)/(this.iYTickNumber-1))*i+iThumbHeight/2-iTickHeight/2)+"px";slidertick.style.left=Math.round(this.x+this.width/2-iTickWidth/2)+"px";slidertick.style.visibility='visible';}}
function SliderControlSetPosition(x,y)
{this.x=x;this.y=y;this.slider.style.left=this.x+"px";this.slider.style.top=this.y+"px";this.UpdateThumbPosition(true);}
function SliderControlSetTracking(x,y)
{this.trackX=x;this.trackY=y;this.UpdateThumbPosition(true);}
function SliderControlNotify(x,y)
{}
function SliderControlUpdateThumbPosition(notify)
{if(this.trackX){this.thumbWidth=this.thumbSize;}
else
{this.thumbWidth=this.width;}
if(this.trackY){this.thumbHeight=this.thumbSize;}
else
{this.thumbHeight=this.height;}
this.thumb.style.width=this.thumbWidth+"px";this.thumb.style.height=this.thumbHeight+"px";if(this.mouseX>this.width-this.thumbWidth/2)
{this.mouseX=Math.round(this.width-this.thumbWidth/2);}
if(this.mouseY>this.height-this.thumbHeight/2)
{this.mouseY=Math.round(this.height-this.thumbHeight/2);}
if(this.mouseX<this.thumbWidth/2)
{this.mouseX=Math.round(this.thumbWidth/2);}
if(this.mouseY<this.thumbHeight/2)
{this.mouseY=Math.round(this.thumbHeight/2);}
if(!this.trackX)
{this.mouseX=Math.round(this.width/2);}
if(!this.trackY)
{this.mouseY=Math.round(this.height/2);}
if(this.trackX){this.xValue=Math.round(this.mouseX-this.thumbWidth/2)/(this.width-this.thumbWidth);}
else
{this.xValue=0;}
if(this.trackY){this.yValue=Math.round(this.mouseY-this.thumbHeight/2)/(this.height-this.thumbHeight);}
else
{this.yValue=0;}
this.thumb.style.left=Math.round(this.mouseX-this.thumbWidth/2)+"px";this.thumb.style.top=Math.round(this.mouseY-this.thumbHeight/2)+"px";if(notify)
{if(this.trackY&&this.trackX)
{this.notify(this.xValue,this.yValue);}
if(this.trackY&&!this.trackX)
{this.notify(this.yValue,this.yValue);}
if(!this.trackY&&this.trackX)
{this.notify(this.xValue,this.xValue);}}}
function SliderControlSetColors(color,thumbColor)
{this.color=color;this.thumbColor=thumbColor;this.slider.style.backgroundColor=this.color;this.thumb.style.backgroundColor=this.thumbColor;}
function SliderControlSetValue(x,y,notify)
{this.xValue=x;this.yValue=y;if(x==undefined||isNaN(x))
{x=0.5;}
if(x>1)
{x=1;}
if(x<0)
{x=0;}
if(y==undefined||isNaN(y))
{y=x;}
if(this.trackX){this.xValue=x;this.mouseX=Math.round((this.xValue*(this.width-this.thumbWidth))+this.thumbWidth/2);}
if(this.trackY){this.yValue=y;this.mouseY=Math.round((this.yValue*(this.height-this.thumbHeight))+this.thumbHeight/2);}
if(notify==undefined)
{notify=true;}
this.UpdateThumbPosition(notify);}
function SliderControlSetNotifier(func)
{if(typeof func=='function')
{this.notify=func;}
else
{}}
function SliderControlSetThumbSize(sz)
{this.thumbSize=sz;this.UpdateThumbPosition(true);}
function SliderControlGetPercentY()
{return this.yValue;}
function SliderControlSetPercentY(value)
{this.mouseY=Math.round(value*(this.height-this.thumbHeight)+this.thumbHeight/2);this.UpdateThumbPosition(true);}
function SliderControl(divParent)
{var me=this;this.thumbWidth=15;this.thumbHeight=9;this.thumbSize=9;this.xValue=0;this.yValue=0;this.x=0;this.y=0;this.mouseX=0;this.mouseY=0;this.width=10;this.height=10;this.color='#FFFFFF';this.thumbColor='#000000';this.trackX=true;this.trackY=true;this.isMouseDown=false;this.iYTickNumber=10;this.TickTexts="";this.bYUseTicks=true;this.slider=document.createElement('div');this.slider.className="slider";this.slider.style.zIndex=6;this.slider.style.width=me.width+"px";this.slider.style.height=me.height+"px";this.slider.style.left=me.x+"px";this.slider.style.top=me.y+"px";this.slider.style.backgroundColor=me.color;this.slider.style.visibility='visible';this.slider.style.position='relative';this.slider.style.fontSize='0';this.slider.parent=me;divParent.appendChild(me.slider);this.mouseDown=SliderControlMouseDown;this.setValue=SliderControlSetValue;this.setThumb=SliderControlSetThumb;this.setThumbSize=SliderControlSetThumbSize;this.setSize=SliderControlSetSize;this.setPosition=SliderControlSetPosition;this.setTracking=SliderControlSetTracking;this.setColors=SliderControlSetColors;this.setNotifier=SliderControlSetNotifier;this.setPercentY=SliderControlSetPercentY;this.getPercentY=SliderControlGetPercentY;this.UpdateThumbPosition=SliderControlUpdateThumbPosition;this.mouseUp=SliderControlMouseUp;this.mouseOut=SliderControlMouseOut;this.mouseMove=SliderControlMouseMove;this.notify=SliderControlNotify;this.onThumbMoved=null;this.slider.onmousedown=me.mouseDown;this.slider.onmouseup=me.mouseUp;this.slider.onmouseout=me.mouseOut;this.slider.onmousemove=me.mouseMove;this.thumb=document.createElement('div');this.thumb.className="sliderthumb";this.thumb.style.zIndex=7;this.thumb.style.width=me.thumbWidth+"px";this.thumb.style.height=me.thumbHeight+"px";this.thumb.style.left=me.x+me.mouseX+"px";this.thumb.style.top=me.y+me.mouseY+"px";this.thumb.style.backgroundColor=me.thumbColor;this.thumb.style.visibility='visible';this.thumb.style.position='absolute';this.thumb.style.fontSize='0';this.slider.appendChild(me.thumb);this.thumb.onmousedown=me.mouseDown;this.thumb.onmouseup=me.mouseUp;this.thumb.onmousemove=SliderControlMouseMoveOnThumb;this.thumb.parent=me;this.SliderTickOnMouseOver=SliderTickOnMouseOver;this.SliderTickOnMouseOut=SliderTickOnMouseOut;this.SliderTickOnMouseOverInternal=function(pEvent){if(me.SliderTickOnMouseOver)me.SliderTickOnMouseOver(pEvent);}
this.SliderTickOnMouseOutInternal=function(pEvent){if(me.SliderTickOnMouseOut)me.SliderTickOnMouseOut(pEvent);}
this.GetTickDiv=function(iTick)
{var i=0;for(var div=me.slider.firstChild;div!=null;div=div.nextSibling)
{if(div.className!='slidertick')
continue;if(i==iTick)
return div;i++;}
return;}
document.onmouseup=SliderControlDocMouseUp;}

function DistanceMeter(graphics,dMeterPerPixelX,dMeterPerPixelY,parentDiv,pDistancePolyLine)
{var me=this;this.iMaxRubberLength=750;this.iDistPoints=0;this.iDistance=0;this.iDistX=0;this.iDistY=0;this.iLastMoveX=0;this.iLastMoveY=0;this.graphics=graphics;this.rubberLine=null;this.cursorParent=parentDiv;this.cursorList=new Array();this.divDisplay=null;this.dMeterPerPixelX=dMeterPerPixelX;this.dMeterPerPixelY=dMeterPerPixelY;this.pPolyLine=pDistancePolyLine;this.iMoveToX=0;this.iMoveToY=0;this.bMoving=false;this.onInit=null;this.onMove=null;this.onClose=null;this.DisplayLength=null;this.Init=function()
{me.iDistPoints=0;me.iDistance=0;if(me.onInit)
me.onInit();me.CreateDistCursor("imgDistCursor",0,0,false);}
this.Close=function()
{me.ClearRubberLine();me.ClearCursors();if(me.onClose)
me.onClose();}
this.GetLastDistance=function(iX,iY)
{var x=(iX-me.iDistX)*me.dMeterPerPixelX/1000;var y=(iY-me.iDistY)*me.dMeterPerPixelY/1000;var x2=Math.pow(x,2);var y2=Math.pow(y,2);var res=Math.sqrt(x2+y2)*1000;return res;}
this.AddDistPoint=function(iX,iY)
{++me.iDistPoints;if(me.iDistPoints>1)
{me.graphics.drawLine(me.iDistX,me.iDistY,iX,iY,2,true);me.iDistance+=me.GetLastDistance(iX,iY);}
me.iLastMoveX=me.iDistX=iX;me.iLastMoveY=me.iDistY=iY;}
this.CreateDistCursor=function(id,iX,iY,bShow)
{var img=NewTag("img",me.cursorParent);me.cursorList[me.cursorList.length]=img;img.setAttribute("id",id);img.setAttribute("class","distcursor");if(!bShow)
img.style.visibility="hidden";img.style.position="absolute";SetTransparentPng(img,GetAbsUrl("graphics/distPoi_1.png"),27,27);img.style.left=(iX-14)+"px";img.style.top=(iY-14)+"px";}
this.iCounter=0;this.MoveDistCursor=function(iX,iY)
{me.iMoveToX=iX;me.iMoveToY=iY;if(me.bMoving==false)
{me.bMoving=true;wsto_id=window.setTimeout(me.MoveDistCursorMain,25);}}
this.GetDistXY=function(iLimitL)
{var Len=Math.sqrt((me.iLastMoveX-me.iDistX)*(me.iLastMoveX-me.iDistX)+
(me.iLastMoveY-me.iDistY)*(me.iLastMoveY-me.iDistY));var vex=(me.iLastMoveX-me.iDistX)/Len;var vey=(me.iLastMoveY-me.iDistY)/Len;if(Len>iLimitL)
return[me.iLastMoveX-iLimitL*vex,me.iLastMoveY-iLimitL*vey];else
return[me.iDistX,me.iDistY];}
this.MoveDistCursorMain=function()
{iX=me.iMoveToX;iY=me.iMoveToY;if(iX==me.iLastMoveX&&iY==me.iLastMoveY)
{me.bMoving=false;return;}
me.iLastMoveX=iX;me.iLastMoveY=iY;if(me.rubberLine)
me.graphics.removeShape(me.rubberLine);if(me.onMove)
me.onMove(iX,iY);var id="imgDistCursor";var img=GetBlock(id);if(img)
{img.style.visibility="visible";img.style.left=(iX-14)+"px";img.style.top=(iY-14)+"px";}
if(me.iDistPoints>0)
{me.graphics.penColor="#000000";var drawDistXY=me.GetDistXY(me.iMaxRubberLength);me.rubberLine=me.graphics.drawLine(drawDistXY[0],drawDistXY[1],me.iLastMoveX,me.iLastMoveY,2,true);var lastDist=me.GetLastDistance(iX,iY);if(me.DisplayLength)
me.DisplayLength(me.iDistance+me.pPolyLine.dDistanceMeter+lastDist,lastDist);}
me.bMoving=false;}
this.RefreshDistCursor=function(iNewStartX,iNewStartY,iNewEndX,iNewEndY)
{if(me.rubberLine)
{me.iDistX=iNewStartX;me.iDistY=iNewStartY;me.iLastMoveX=iNewEndX;me.iLastMoveY=iNewEndY;me.graphics.removeShape(me.rubberLine);me.graphics.penColor="#000000";var drawDistXY=me.GetDistXY(me.iMaxRubberLength);me.rubberLine=me.graphics.drawLine(drawDistXY[0],drawDistXY[1],me.iLastMoveX,me.iLastMoveY,2,true);var id="imgDistCursor";var img=GetBlock(id);if(img)
{img.style.visibility="visible";img.style.left=(iNewEndX-14)+"px";img.style.top=(iNewEndY-14)+"px";}}}
this.SetEndPoint=function(iNewEndX,iNewEndY)
{if(me.rubberLine)
{me.iLastMoveX=iNewEndX;me.iLastMoveY=iNewEndY;me.graphics.removeShape(me.rubberLine);me.graphics.penColor="#000000";var drawDistXY=me.GetDistXY(me.iMaxRubberLength);me.rubberLine=me.graphics.drawLine(drawDistXY[0],drawDistXY[1],me.iLastMoveX,me.iLastMoveY,2,true);var id="imgDistCursor";var img=GetBlock(id);if(img)
{img.style.visibility="visible";img.style.left=(iNewEndX-10)+"px";img.style.top=(iNewEndY-10)+"px";}}}
this.SetPixelDensity=function(D)
{me.dMeterPerPixelX=D;me.dMeterPerPixelY=D;}
this.ClearRubberLine=function()
{if(me.rubberLine)
me.graphics.clear();}
this.ClearCursors=function()
{for(var i=0;i<me.cursorList.length;i++)
{if(me.cursorList[i]!=null)
{me.cursorList[i].parentNode.removeChild(me.cursorList[i]);me.cursorList[i]=null;}}}}
function DistanceDisplay(tmTopoliszMap)
{this.tmTopoliszMap=tmTopoliszMap;var parentDiv=tmTopoliszMap.pGridMain.mainGridDiv;this.parentDiv=parentDiv;this.innerDiv=this.outerDiv=NewTag("div",parentDiv);this.innerDiv.className="distpanel";SetTransparentPngAsBg(this.innerDiv,GetAbsUrl("graphics/distPopUpBg.png"));this.outerDiv.style.visibility="hidden";this.distTr=null;this.exitTr=null;this.iTotalDist=0.0;this.iLastDist=0.0;var table,tr,td;table=NewTag("table",this.innerDiv);table.cellPadding="0";table.cellSpacing="0";table.className="distpanel";table=NewTag("tbody",table);tr=NewTag("tr",table);this.distTr=tr;td=NewTag("td",tr);td.className="distcaption";NewTextTag(g_Babel.GetWord('MeasureDistance')+":",td);td.style.paddingRight="5px";td.style.paddingLeft="5px";td=NewTag("td",tr);td.className="distvalue";td.style.whiteSpace="nowrap";this.displayLastDist=td;td.style.paddingRight="5px";NewTextTag("0 km",this.displayLastDist);tr=NewTag("tr",table);tr.className="distTotal";td=NewTag("td",tr);td.className="distcaption";NewTextTag(g_Babel.GetWord('MeasureTotal')+":",td);td.style.paddingRight="5px";td.style.paddingLeft="5px";td=NewTag("td",tr);td.className="distvalue";td.style.whiteSpace="nowrap";this.displaySumDist=td;td.style.paddingRight="5px";NewTextTag("0 km",this.displaySumDist);tr=NewTag("tr",table);tr.style.height="16px";this.exitTr=tr;td=NewTag("td",tr);td.colSpan=2;td.className="distcaption";NewTextTag(g_Babel.GetWord('ExitDistanceMeasuring'),td);td.style.paddingRight="5px";td.style.paddingLeft="5px";td.style.paddingBottom="0px";td.style.paddingTop="15px";td.style.verticalAlign="bottom";td.style.textAlign="right";td.style.whiteSpace="nowrap";var me=this;this.Move=function(iX,iY)
{var mvw=me.tmTopoliszMap.GetMapViewWidth();var mvh=me.tmTopoliszMap.GetMapViewHeight();var mvvx=me.tmTopoliszMap.pGridMain.GetMapViewVectorX();var mvvy=me.tmTopoliszMap.pGridMain.GetMapViewVectorY();var mvt=mvvy;var mvl=mvvx;var mvb=mvt+mvh;var mvr=mvl+mvw;var mdw=GetLayerWidth(me.outerDiv);var mdh=GetLayerHeight(me.outerDiv);var L;if(iX+11+mdw<mvr)
L=iX+11;else
L=mvr-mdw;var H;if(iY+11+mdh<mvb)
H=iY+11;else
H=mvb-mdh;if((iX+11+mdw>=mvr)&&(iY+11+mdh>=mvb))
{L=iX-11-mdw;H=iY-11-mdh;}
me.outerDiv.style.left=L+"px";me.outerDiv.style.top=H+"px";me.outerDiv.style.visibility="visible";}
this.DisplayLength=function(iTotal,iLast)
{me.iTotalDist=iTotal;me.iLastDist=iLast;me.displaySumDist.lastChild.nodeValue=GetLengthText(iTotal);me.displayLastDist.lastChild.nodeValue=GetLengthText(iLast);}
this.SetLengthAtTheEnd=function()
{me.displaySumDist.lastChild.nodeValue=GetLengthText(me.iTotalDist-me.iLastDist);}
this.Close=function()
{if(me.outerDiv)
me.outerDiv.parentNode.removeChild(me.outerDiv);}}
function GetLengthText(iMeter)
{var str;iMeter=parseInt(iMeter,10);if(iMeter<1000)
str=iMeter+" m";else
str=(iMeter/1000)+" km";return str;}

function Graphics(canvas)
{this.canvas=canvas;this.cache=new Array;this.shapes=new Object;this.nObject=0;this.penColor="black";this.zIndex=0;var me=this;this.createPlotElement=function(x,y,w,h)
{if(!me.oCanvas)
{if((me.canvas==undefined)||(me.canvas==""))
me.oCanvas=document.body;else
me.oCanvas=document.getElementById(me.canvas);}
var oDiv;if(me.cache.length)
oDiv=me.cache.pop();else
{oDiv=document.createElement('div');me.oCanvas.appendChild(oDiv);oDiv.style.position="absolute";oDiv.style.margin="0px";oDiv.style.padding="0px";oDiv.style.overflow="hidden";oDiv.style.border="0px";}
oDiv.style.zIndex=me.zIndex;oDiv.style.backgroundColor=me.penColor;oDiv.style.left=x+"px";oDiv.style.top=y+"px";oDiv.style.width=w+"px";oDiv.style.height=h+"px";oDiv.style.visibility="visible";return oDiv;}
this.releasePlotElement=function(oDiv)
{oDiv.style.visibility="hidden";me.cache.push(oDiv);}
this.addShape=function(shape)
{shape.oGraphics=me;shape.graphicsID=me.nObject;me.shapes[me.nObject]=shape;me.nObject++;shape.draw();return shape;}
this.removeShape=function(shape)
{if((shape instanceof Object)&&(shape.oGraphics==me)&&(me.shapes[shape.graphicsID]==shape))
{shape.undraw();me.shapes[shape.graphicsID]=undefined;shape.oGraphics=undefined;}}
this.clear=function()
{for(var i in me.shapes)
me.removeShape(me.shapes[i]);}
this.drawLine=function(x1,y1,x2,y2,width,dotted)
{return me.addShape(new Line(x1,y1,x2,y2,width,dotted))}}
function Line(x1,y1,x2,y2,width,dotted)
{this.x1=x1;this.y1=y1;this.x2=x2;this.y2=y2;this.width=width;this.dotted=dotted;var me=this;this.draw=function()
{me.plots=new Array;var dx=me.x2-me.x1;var dy=me.y2-me.y1;var x=me.x1;var y=me.y1;var n=Math.max(Math.abs(dx),Math.abs(dy));dx=dx/n;dy=dy/n;for(i=0;i<=n;i++)
{if(i%5>2||!me.dotted){me.plots.push(me.oGraphics.createPlotElement(Math.round(x),Math.round(y),me.width,me.width));}
x+=dx;y+=dy;}}
this.undraw=function()
{if(me.plots!=undefined)
{while(me.plots.length)
me.oGraphics.releasePlotElement(me.plots.pop());me.plots=undefined;}}}

function CMiniMapInfo()
{this.iInnerFrameWidth=0;this.iInnerFrameHeight=0;this.iInnerFrameTop=0;this.iInnerFrameLeft=0;}
function CMiniMapFrame(pMainMap,pMiniMap)
{this.pMainMap=pMainMap;this.pMiniMap=pMiniMap;this.divFrameFill=null;this.divFrame=null;this.divSecFrame=null;this.divSecFrameFill=null;var me=this;me.miniMapFrameBorder=1;me.miniMapSecFrameFillBorder=2;this.MouseMoveOnFrame=function(pEvent)
{me.pMiniMap.OnMouseMoveFunc(pEvent);StopEventPropagation(pEvent);return false;}
this.MouseOutOnMovingFrame=function(pEvent)
{me.divSecFrame.style.visibility="hidden";me.divSecFrameFill.style.visibility="hidden";me.pMiniMap.bFrameMouseDown=false;StopEventPropagation(pEvent);return false;}
this.MouseOutOnFrame=function(pEvent)
{StopEventPropagation(pEvent);return false;}
this.MouseUpOnFrame=function(pEvent)
{var x=GetLayerX(pEvent);var y=GetLayerY(pEvent);me.pMiniMap.OnMouseUpFunc(x,y,pEvent);me.pMiniMap.bFrameMouseDown=false;me.divSecFrame.style.visibility="hidden";StopEventPropagation(pEvent);document.onselectstart=function(){return true;};return false;}
this.MouseDownOnFrame=function(pEvent)
{document.onselectstart=function(){return false;};me.ReArrange();var x=GetLayerX(pEvent);var y=GetLayerY(pEvent);var fb=me.miniMapFrameBorder;var ww=GetLayerWidth(me.divFrame);var hh=GetLayerHeight(me.divFrame);if((x<0)||(y<0)||(x>=ww-2*fb)||(y>=hh-2*fb))
return false;me.divSecFrame.style.visibility='visible';me.divSecFrameFill.style.visibility='visible';x+=me.GetFrameLeft();y+=me.GetFrameTop();me.pMiniMap.bFrameMouseDown=true;me.pMiniMap.iFrameMouseX=x;me.pMiniMap.iFrameMouseY=y;me.pMiniMap.iFrameMouseStartX=GetEventXNew(pEvent);me.pMiniMap.iFrameMouseStartY=GetEventYNew(pEvent);StopEventPropagation(pEvent);return false;}
this.Init=function()
{setAlpha(".minimapsecframefill");setAlpha(".minimapframefill");me.divFrameFill=document.createElement("div");me.divFrameFill.id=me.pMiniMap.divMap.id+"_framefill";me.pMiniMap.divFace.appendChild(me.divFrameFill);me.divFrameFill.className="minimapframefill";SetOpac(me.divFrameFill,35);me.divFrame=document.createElement("div");me.divFrame.id=me.pMiniMap.divMap.id+"_frame";me.pMiniMap.divFace.appendChild(me.divFrame);me.divFrame.className="minimapframe";me.divFrame.onmousemove=me.MouseMoveOnFrame;me.divFrame.onmousedown=me.MouseDownOnFrame;me.divFrame.onmouseup=me.MouseUpOnFrame;me.divFrame.onmouseout=me.MouseOutOnFrame;me.divSecFrame=document.createElement("div");me.divSecFrame.style.visibility='hidden';me.divSecFrame.id=me.pMiniMap.divMap.id+"_secframe";me.pMiniMap.divFace.appendChild(me.divSecFrame);me.divSecFrame.className="minimapsecframe";me.divSecFrame.onmouseout=me.MouseOutOnMovingFrame;me.divSecFrameFill=document.createElement("div");me.divSecFrameFill.style.visibility='hidden';me.divSecFrameFill.id=me.pMiniMap.divMap.id+"_secframefill";me.pMiniMap.divFace.appendChild(me.divSecFrameFill);me.divSecFrameFill.className="minimapsecframefill";SetOpac(me.divSecFrameFill,35);}
this.ReArrange=function(bCaseMapResize)
{var mainMapPD=me.pMainMap.GetPixelDensity();var miniMapPD=me.pMiniMap.GetPixelDensity();var ratio=mainMapPD/miniMapPD;var mainAbsLeft=me.pMainMap.pGridMain.GetViewAbsoluteLeft();var mainAbsTop=me.pMainMap.pGridMain.GetViewAbsoluteTop();var miniAbsLeft=me.pMiniMap.pGridMain.GetViewAbsoluteLeft();var miniAbsTop=me.pMiniMap.pGridMain.GetViewAbsoluteTop();var FW=Math.ceil(me.pMainMap.GetMapViewWidth()*ratio);var FH=Math.ceil(me.pMainMap.GetMapViewHeight()*ratio);var SFW=FW;var SFH=FH;var SFFW=SFW-2*me.miniMapSecFrameFillBorder;var SFFH=SFH-2*me.miniMapSecFrameFillBorder;if(SFFW<0)SFFW=0;if(SFFH<0)SFFH=0;var SFW=FW;var SFH=FH;var SFFW=Math.max(SFW-2*me.miniMapSecFrameFillBorder,0);var SFFH=Math.max(SFH-2*me.miniMapSecFrameFillBorder,0);var FL=Math.ceil(mainAbsLeft*ratio)-miniAbsLeft;var FT=Math.ceil(mainAbsTop*ratio)-miniAbsTop;var oldFL=GetLayerLeft(me.divFrame)+me.miniMapFrameBorder;var oldFT=GetLayerTop(me.divFrame)+me.miniMapFrameBorder;if(((Math.abs(FL-oldFL)>1)||(Math.abs(FT-oldFT)>1))||(bCaseMapResize==true))
{me.divFrame.style.width=FW+"px";me.divFrame.style.height=FH+"px";me.divFrame.style.left=(FL-me.miniMapFrameBorder)+"px";me.divFrame.style.top=(FT-me.miniMapFrameBorder)+"px";me.divFrameFill.style.width=FW+"px";me.divFrameFill.style.height=FH+"px";me.divFrameFill.style.left=FL+"px";me.divFrameFill.style.top=FT+"px";me.divSecFrame.style.width=SFW+"px";me.divSecFrame.style.height=SFH+"px";me.divSecFrame.style.left=FL+"px";me.divSecFrame.style.top=FT+"px";me.divSecFrameFill.style.width=SFFW+"px";me.divSecFrameFill.style.height=SFFH+"px";me.divSecFrameFill.style.left=FL+"px";me.divSecFrameFill.style.top=FT+"px";}
else
{me.divSecFrame.style.left=oldFL+"px";me.divSecFrame.style.top=oldFT+"px";me.divSecFrameFill.style.left=oldFL+"px";me.divSecFrameFill.style.top=oldFT+"px";}}
this.GetFrameTop=function()
{return GetLayerTop(me.divFrame);}
this.GetFrameLeft=function()
{return GetLayerLeft(me.divFrame);}
me.Init();}

function CPolyline()
{this.PointsX=new Array();this.PointsY=new Array();this.PointNum=0;this.dDistanceMeter=0;this.arrPointsPixelX=new Array();this.arrPointsPixelY=new Array();var me=this;this.AddPoint=function(y,x)
{me.PointsX[me.PointsX.length]=x;me.PointsY[me.PointsY.length]=y;me.PointNum++;}
this.Init=function()
{me.PointsX=new Array();me.PointsY=new Array();me.PointNum=0;me.dDistanceMeter=0;}
this.GetXs=function()
{var str="";var i;for(i=0;i<me.PointsX.length;i++)
{str+=me.PointsX[i];if(i<me.PointsX.length-1)
str+="|";}
return str;}
this.GetYs=function()
{var str="";var i;for(i=0;i<me.PointsY.length;i++)
{str+=me.PointsY[i];if(i<me.PointsY.length-1)
str+="|";}
return str;}
this.SetPointsPixelX=function(arrX)
{me.arrPointsPixelX=arrX;}
this.SetPointsPixelY=function(arrY)
{me.arrPointsPixelY=arrY;}
this.GetLastPointPixelX=function()
{var iLength=GetArrayLength(me.arrPointsPixelX);if(iLength>0)
return me.arrPointsPixelX[iLength-1];return-1;}
this.GetLastPointPixelY=function()
{var iLength=GetArrayLength(me.arrPointsPixelY);if(iLength>0)
return me.arrPointsPixelY[iLength-1];return-1;}}

function BabelWord(strID,strLangID,strWord)
{this.strID=(strID!=undefined?strID:"");this.strLangID=(strLangID!=undefined?strLangID:"");this.strWord=(strWord!=undefined?strWord:"");};function Babel(arrBabelWords)
{this.strLangID="hu";this.mapWordsByLangAndID=new Object();this.arrChangeListeners=new Array();var me=this;this.AddWord=function(babelWord)
{if(babelWord!=null)
{if(me.mapWordsByLangAndID[babelWord.strLangID]==undefined)
{me.mapWordsByLangAndID[babelWord.strLangID]=new Object();}
me.mapWordsByLangAndID[babelWord.strLangID][babelWord.strID]=babelWord.strWord;}}
this.Init=function()
{var i;var iLength=(arrBabelWords!=null?arrBabelWords.length:0);for(i=0;i<iLength;i++)
{me.AddWord(arrBabelWords[i]);}}
me.Init();this.SetLang=function(strLangID)
{if(me.strLangID!=strLangID)
{me.strLangID=strLangID;var i;for(i=0;i<me.arrChangeListeners.length;i++)
{if(me.arrChangeListeners[i]!=null)
{me.arrChangeListeners[i]();}}}}
this.GetLang=function()
{return me.strLangID;}
this.GetWord=function(strID)
{if(me.mapWordsByLangAndID&&me.mapWordsByLangAndID[me.strLangID]&&me.mapWordsByLangAndID[me.strLangID][strID]!=undefined)
{return me.mapWordsByLangAndID[me.strLangID][strID];}
return"";}
this.AddListener=function(func)
{var i=0;for(i=0;i<me.arrChangeListeners.length;i++)
{if(me.arrChangeListeners[i]==null||me.arrChangeListeners[i]==undefined)
break;}
me.arrChangeListeners[i]=func;return i;}
this.GetListener=function(idListener)
{return me.arrChangeListeners[idListener];}
this.DeleteListener=function(idListener)
{me.arrChangeListeners[idListener]=null;}}

function Marker(id,address,type,iPixX,iPixY,pTopoliszMap,pAddressBlock)
{this.sID=id;this.AddMapIconVisible=true;this.pAddress=address;this.type=type;this.iPixX=iPixX;this.iPixY=iPixY;this.pAddressLabel=null;this.pTopoliszMap=pTopoliszMap;this.pAddressBlock=pAddressBlock;this.bStayVisible=false;var me=this;this.DeleteAddressLabel=function()
{me.pTopoliszMap.RemoveAddressLabel(me.pAddressLabel);}}
function Markers()
{this.arrMarkers=new Array();var me=this;this.Find=function(id)
{var i;for(i=0;i<me.arrMarkers.length;i++)
{if(me.arrMarkers[i]!=null)
{if(id==me.arrMarkers[i].sID)
return me.arrMarkers[i];}}
return null;}
this.FindIdx=function(id)
{var i;for(i=0;i<me.arrMarkers.length;i++)
{if(me.arrMarkers[i]!=null)
{if(id==me.arrMarkers[i].sID)
return i;}}
return-1;}
this.Add=function(address,type,iPixX,iPixY,pTopoliszMap,pAddressBlock)
{var id=me.arrMarkers.length;var m=new Marker(id,address,type,iPixX,iPixY,pTopoliszMap,pAddressBlock);me.arrMarkers[me.arrMarkers.length]=m;if(type=="searching")
m.AddMapIconVisible=true;else
m.AddMapIconVisible=false;return m;}
this.Delete=function(id)
{var idx=me.FindIdx(id);if(idx!=-1)
{me.arrMarkers[idx].DeleteAddressLabel();delete me.arrMarkers[idx];me.arrMarkers[idx]=null;}}
this.DeleteAll=function()
{var i;for(i=0;i<me.arrMarkers.length;i++)
{if(me.arrMarkers[i]!=null)
me.arrMarkers[i].DeleteAddressLabel();}
delete me.arrMarkers;me.arrMarkers=new Array();}
this.DeleteAllWithType=function(type)
{var i;for(i=0;i<me.arrMarkers.length;i++)
{if(me.arrMarkers[i]!=null)
{if(me.arrMarkers[i].type==type)
{me.arrMarkers[i].DeleteAddressLabel();delete me.arrMarkers[i];me.arrMarkers[i]=null;}}}}
this.GetIDs=function()
{var Res="";var i;for(i=0;i<me.arrMarkers.length;i++)
{if(me.arrMarkers[i]!=null)
{Res=Res+me.arrMarkers[i].sID;if(i<me.arrMarkers.length-1)
Res=Res+"|";}}
return Res;}
this.GetWgsXs=function()
{var Res="";var i;for(i=0;i<me.arrMarkers.length;i++)
{if(me.arrMarkers[i]!=null)
{Res=Res+me.arrMarkers[i].pAddress.dX;if(i<me.arrMarkers.length-1)
Res=Res+"|";}}
return Res;}
this.GetWgsYs=function()
{var Res="";var i;for(i=0;i<me.arrMarkers.length;i++)
{if(me.arrMarkers[i]!=null)
{Res=Res+me.arrMarkers[i].pAddress.dY;if(i<me.arrMarkers.length-1)
Res=Res+"|";}}
return Res;}}

function AddressLabel(tmTopoliszMap,pMarker)
{this.AddMapIconVisible=pMarker.AddMapIconVisible;this.divAddMapIcon=null;this.strCssClass="marker";this.strImgUrl="graphics/addressPoi.png";this.iImgWidth=38;this.iImgHeight=37;this.iImgRefX=19;this.iImgRefY=19;this.iLabelRefX=19;this.iLabelRefY=19;this.bAllowLabel=true;this.bAutoShowLabel=false;this.bDeleteMarkerOnLabelClose=false;this.strID=pMarker.sID;this.iPxlX=pMarker.iPixX-tmTopoliszMap.pGridMain.GetMapViewVectorX();this.iPxlY=pMarker.iPixY-tmTopoliszMap.pGridMain.GetMapViewVectorY();this.pMap=tmTopoliszMap;this.divParent=tmTopoliszMap.divMarkerLabel;this.sAddress=pMarker.pAddress.strAddress;this.pMarker=pMarker;this.markerdiv=null;this.labeldiv=null;var me=this;this.OnDelete=function(pEvent)
{me.pMap.pTextResult.OnDeleteAddress(me.pMarker.pAddressBlock);}
this.OnAddRoute=function(pEvent)
{me.pMap.pTextResult.AddStopAddress(me.pMarker.pAddress);me.pMarker.AddMapIconVisible=false;if(me.divAddMapIcon!=null)
me.divAddMapIcon.style.display="none";}
this.OnAddStartAddress=function(pEvent)
{me.pMap.pTextResult.AddStartAddress(me.pMarker.pAddress);me.pMarker.AddMapIconVisible=false;if(me.divAddMapIcon!=null)
me.divAddMapIcon.style.display="none";}
this.OnAddStopAddress=function(pEvent)
{me.OnAddRoute(pEvent)}
this.OnAddressPick=function(pEvent)
{me.pMap.OnAddressPickInternal(me.pMarker.pAddress,me.pMarker.iPixX,me.pMarker.iPixY);}
this.Delete=function()
{if(me.markerdiv)
{me.markerdiv.parentNode.removeChild(me.markerdiv);me.markerdiv=null;}
if(me.labeldiv)
{me.labeldiv.parentNode.removeChild(me.labeldiv);me.labeldiv=null;}}
this.Show=function()
{if(me.markerdiv)
{me.markerdiv.style.visibility="visible";}
if(me.labeldiv)
{me.labeldiv.style.visibility="visible";}}
this.Hide=function()
{if(me.markerdiv)
{me.markerdiv.style.visibility="hidden";}
if(me.labeldiv)
{me.labeldiv.style.visibility="hidden";}}
this.ShowLabel=function()
{if(me.labeldiv)
{me.labeldiv.style.visibility="visible";me.pMap.RegisterAddressLabel(me);}}
this.HideLabel=function()
{if(me.labeldiv)
{me.labeldiv.style.visibility="hidden";}
me.pMap.RegisterAddressLabel(null);me.pMarker.bStayVisible=false;}
this.ReArrange=function()
{var iPxlX=me.GetPxlX();var iPxlY=me.GetPxlY();me.markerdiv.style.left=(iPxlX-me.iImgRefX)+"px";me.markerdiv.style.top=(iPxlY-me.iImgRefY)+"px";if(me.labeldiv)
{me.labeldiv.style.left=(iPxlX-me.iLabelRefX)+"px";me.labeldiv.style.top=(iPxlY-me.iLabelRefY)+"px";}}
this.GetCoords=function(iT,iL,iRX,iRY,iWT,iWL,iWW,iWH,iBW,iBH)
{var mvt=iWT;var mvl=iWL;var mvb=iWT+iWH;var mvr=iWL+iWW;var mdw=iBW;var mdh=iBH;var oL;if(iL+mdw<mvr)
oL=iL;else
oL=mvr-mdw;var oT;if(iT+mdh<mvb)
oT=iT;else
oT=mvb-mdh;if((iL+mdw>=mvr)&&(iT+mdh>=mvb))
{oL=iL-mdw;oT=iT-mdh;}
if(((mvt<=iT+iRY)&&(iT+iRY<=mvb))&&((mvl+iRX<=iL)&&(iL+iRX<=mvr)))
return[oT,oL];else if((mvt<=iT+iRY)&&(iT+iRY<=mvb))
return[oT,iL];else
return[iT,iL];}
this.GetPxlX=function()
{return me.pMarker.iPixX-tmTopoliszMap.pGridMain.GetMapViewVectorX();}
this.GetPxlY=function()
{return me.pMarker.iPixY-tmTopoliszMap.pGridMain.GetMapViewVectorY();}
this.SetSignParams=function(strClass,strImgUrl,iImgWidth,iImgHeight,iImgRefX,iImgRefY,iLabelRefX,iLabelRefY)
{me.strCssClass=strClass;me.strImgUrl=strImgUrl;me.iImgWidth=iImgWidth;me.iImgHeight=iImgHeight;me.iImgRefX=iImgRefX;me.iImgRefY=iImgRefY;me.iLabelRefX=iLabelRefX;me.iLabelRefY=iLabelRefY}
this.SetFixLabel=function()
{if(me.AddMapIconVisible==true)
{me.pMarker.bStayVisible=true;}}
this.HideLabelIfNotFixed=function()
{if(me.pMarker.bStayVisible==false)
{me.HideLabel();}}
this.Create=function()
{var strClass=me.pMarker.type;if(strClass=="routing"){me.SetSignParams("marker",GetAbsUrl("graphics/addressPoi.png"),38,37,19,19,0,11);me.bAutoShowLabel=true;}
else{me.SetSignParams("marker",GetAbsUrl("graphics/addressPoi.png"),38,37,19,19,0,11);me.bAutoShowLabel=true;if(strClass=="pick")
me.bDeleteMarkerOnLabelClose=true;if(strClass=="picknolabel"||strClass=="searching_labelless")
me.bAllowLabel=false;}
me.markerdiv=NewTag("div",me.divParent);me.markerdiv.className=me.strCssClass;me.markerdiv.style.position="absolute";me.markerdiv.style.width=me.iImgWidth+"px";me.markerdiv.style.height=me.iImgHeight+"px";AddEvent(me.markerdiv,'click',me.OnAddressPick);if(me.pMarker.type=="routing")
{var div=NewTag("div",me.markerdiv);div.className="markerLetter";NewTextTag(me.pMarker.pAddressBlock.GetMarkerLetter(),div);}
var imgMarker=NewTag("img");imgMarker.style.paddingTop="0px";AddTag(imgMarker,me.markerdiv);SetTransparentPng(imgMarker,me.strImgUrl,me.iImgWidth,me.iImgHeight,"");me.markerdiv.onmouseover=function(pEvent)
{me.ShowLabel();return false;}
me.markerdiv.onmouseout=function(pEvent)
{me.pMap.HideAddressLabelsLabel();return false;}
me.markerdiv.ondragstart=function(pEvent)
{window.event.returnValue=false;return false;}
me.markerdiv.ondblclick=function(pEvent)
{StopEventPropagation(pEvent);return false;}
if(me.bAllowLabel)
{me.labeldiv=NewTag("div",me.divParent,me.markerdiv);me.labeldiv.className="label";if(window.addEventListener)
{me.markerdiv.addEventListener('click',function(pEvent){me.SetFixLabel();StopEventPropagation(pEvent);return false;},false);me.labeldiv.addEventListener('click',function(pEvent){me.SetFixLabel();StopEventPropagation(pEvent);return false;},false);}
else
{me.markerdiv.attachEvent('onclick',function(pEvent){me.SetFixLabel();StopEventPropagation(pEvent);return false;},false);me.labeldiv.attachEvent('onclick',function(pEvent){me.SetFixLabel();StopEventPropagation(pEvent);return false;},false);}
AddEvent(me.labeldiv,'click',me.OnAddressPick);var table=NewTag("table",me.labeldiv);table.cellPadding=0;table.cellSpacing=0;table=NewTag("tbody",table);var tr=NewTag("tr",table);var td=NewTag("td",tr);var img=NewTag("img");SetTransparentPng(img,GetAbsUrl("graphics/addresslabelBegin.png"),22,22,"");AddTag(img,td);var td=NewTag("td",tr);td.className="labeladdress";SetTransparentPngAsBg(td,GetAbsUrl("graphics/addresslabelBg.png"));NewTextTag(me.sAddress,td);var td=NewTag("td",tr);var img=NewTag("img");SetTransparentPng(img,GetAbsUrl("graphics/addresslabelEnd.png"),8,22,"");AddTag(img,td);}
me.ReArrange();return;if(me.AddMapIconVisible==true)
{var d4=NewTag("div",me.labeldiv);d4.style.position="relative";d4.setAttribute("style","float:left;");d4.style.styleFloat="left";d4.style.padding="2px";me.divAddMapIcon=d4;var a2=NewTag("a",d4);a2.setAttribute("href","javascript:void(0)");var img2=NewTag("img",a2);img2.style.paddingTop="0px";SetImage(img2,GetAbsUrl("graphics/addaddresslabel.gif"),12,12,g_Babel.GetWord('AddAddressLabel'));a2.onclick=me.OnAddRoute;var d5=NewTag("div",me.labeldiv);d5.style.position="relative";d5.setAttribute("style","float:left;");d5.style.styleFloat="left";d5.style.padding="2px";var a3=NewTag("a",d5);a3.setAttribute("href","javascript:void(0)");var img3=NewTag("img",a3);img3.style.paddingTop="0px";SetImage(img3,GetAbsUrl("graphics/closeaddresslabel.gif"),12,12,g_Babel.GetWord('Close'));a3.onclick=me.OnDelete;var d6=NewTag("div",me.labeldiv);d6.style.position="relative";d6.style.styleFloat="left";d6.setAttribute("style","float:left;");d6.style.padding="1px";NewTextTag(me.sAddress,d6);}
else
{var d3=NewTag("div",me.labeldiv);d3.style.position="relative";d3.setAttribute("style","float:left;");d3.style.styleFloat="left";d3.style.padding="2px";var d2=NewTag("div",me.labeldiv);d2.style.position="relative";d2.style.styleFloat="left";d2.style.styleFloat="left";d2.setAttribute("style","float:left;");d2.style.padding="1px";NewTextTag(me.sAddress,d2);}
me.ReArrange();}}

var ToolMan={events:function(){if(!ToolMan.tmEventsFactory)throw"ToolMan Events module isn't loaded";return ToolMan.tmEventsFactory},css:function(){if(!ToolMan.tmCssFactory)throw"ToolMan CSS module isn't loaded";return ToolMan.tmCssFactory},coordinates:function(){if(!ToolMan.tmCoordinatesFactory)throw"ToolMan Coordinates module isn't loaded";return ToolMan.tmCoordinatesFactory},drag:function(){if(!ToolMan.tmDragFactory)throw"ToolMan Drag module isn't loaded";return ToolMan.tmDragFactory},dragsort:function(){if(!ToolMan.tmDragsortFactory)throw"ToolMan DragSort module isn't loaded";return ToolMan.tmDragsortFactory},helpers:function(){return ToolMan.tmHelpers},cookies:function(){if(!ToolMan.tmCookieOven)throw"ToolMan Cookie module isn't loaded";return ToolMan.tmCookieOven},junkdrawer:function(){return ToolMan.tmJunkdrawer}}
ToolMan.tmHelpers={map:function(array,func){for(var i=0,n=array.length;i<n;i++)func(array[i])},nextItem:function(item,nodeName){if(item==null)return
var next=item.nextSibling
while(next!=null){if(next.nodeName==nodeName)return next
next=next.nextSibling}
return null},previousItem:function(item,nodeName){var previous=item.previousSibling
while(previous!=null){if(previous.nodeName==nodeName)return previous
previous=previous.previousSibling}
return null},moveBefore:function(item1,item2){var parent=item1.parentNode
parent.removeChild(item1)
parent.insertBefore(item1,item2)},moveAfter:function(item1,item2){var parent=item1.parentNode
parent.removeChild(item1)
parent.insertBefore(item1,item2?item2.nextSibling:null)}}
ToolMan.tmJunkdrawer={serializeList:function(list){var array=new Array()
if(list!=null)
{var items=list.getElementsByTagName("div")
for(var i=0,n=items.length;i<n;i++){var item=items[i]
array.push(ToolMan.junkdrawer().tmIdentifier(item))}}
return array.join('|')},serializeList2:function(list,objArray){var array=new Array()
if(list!=null)
{var items=list.getElementsByTagName("div")
for(var i=0,n=items.length;i<n;i++){var item=items[i]
var objArrayIdx=ToolMan.junkdrawer().getObjArrayIndex(item,objArray);if(objArrayIdx!=null)
{array.push(objArray[objArrayIdx]);}}}
return array;},inspectListOrder:function(id){alert(ToolMan.junkdrawer().serializeList(document.getElementById(id)))},inspectListOrder2:function(node,objArray){return ToolMan.junkdrawer().serializeList2(node,objArray)},getObjArrayIndex:function(item,objArray){var i;for(i=0;i<objArray.length;i++)
{if(objArray[i])
{if(objArray[i].GetDiv()==item)
return i;}}
return null;},restoreListOrder:function(listID){var list=document.getElementById(listID)
if(list==null)return
var cookie=ToolMan.cookies().get("list-"+listID)
if(!cookie)return;var IDs=cookie.split('|')
var items=ToolMan.junkdrawer().tmItemsByID(list)
for(var i=0,n=IDs.length;i<n;i++){var itemID=IDs[i]
if(itemID in items){var item=items[itemID]
list.removeChild(item)
list.insertBefore(item,null)}}},tmIdentifier:function(item){var trim=ToolMan.junkdrawer().trim
var identifier
identifier=trim(item.getAttribute("id"))
if(identifier!=null&&identifier.length>0)return identifier;identifier=trim(item.getAttribute("itemID"))
if(identifier!=null&&identifier.length>0)return identifier;return trim(item.innerHTML)},tmItemsByID:function(list){var array=new Array()
var items=list.getElementsByTagName('li')
for(var i=0,n=items.length;i<n;i++){var item=items[i]
array[ToolMan.junkdrawer().tmIdentifier(item)]=item}
return array},trim:function(text){if(text==null)return null
return text.replace(/^(\s+)?(.*\S)(\s+)?$/,'$2')}}
ToolMan.tmEventsFactory={fix:function(event){if(!event)event=window.event
if(event.target){if(event.target.nodeType==3)event.target=event.target.parentNode}else if(event.srcElement){event.target=event.srcElement}
return event},register:function(element,type,func){if(element.addEventListener){element.addEventListener(type,func,false)}else if(element.attachEvent){if(!element.tmListeners)element.tmListeners=new Array()
if(!element.tmListeners[type])element.tmListeners[type]=new Array()
var workaroundFunc=function(){func.apply(element,new Array())}
element.tmListeners[type][func]=workaroundFunc
element.attachEvent('on'+type,workaroundFunc)}},unregister:function(element,type,func){if(element.removeEventListener){element.removeEventListener(type,func,false)}else if(element.detachEvent){if(element.tmListeners&&element.tmListeners[type]&&element.tmListeners[type][func]){element.detachEvent('on'+type,element.tmListeners[type][func])}}}}
ToolMan.tmCssFactory={readStyle:function(element,property){if(element.style[property]){return element.style[property]}else if(element.currentStyle){return element.currentStyle[property]}else if(document.defaultView&&document.defaultView.getComputedStyle){var style=document.defaultView.getComputedStyle(element,null)
return style.getPropertyValue(property)}else{return null}}}
ToolMan.tmCoordinatesFactory={create:function(x,y){return new tmToolManCoordinate(this,x,y)},origin:function(){return this.create(0,0)},topLeftPosition:function(element){var left=parseInt(ToolMan.css().readStyle(element,"left"))
var left=isNaN(left)?0:left
var top=parseInt(ToolMan.css().readStyle(element,"top"))
var top=isNaN(top)?0:top
return this.create(left,top)},bottomRightPosition:function(element){return this.topLeftPosition(element).plus(this.tmSize(element))},topLeftOffset:function(element){var offset=this.tmOffset(element)
var parent=element.offsetParent
while(parent){offset=offset.plus(this.tmOffset(parent))
parent=parent.offsetParent}
return offset},bottomRightOffset:function(element){return this.topLeftOffset(element).plus(this.create(element.offsetWidth,element.offsetHeight))},scrollOffset:function(){if(window.pageXOffset){return this.create(window.pageXOffset,window.pageYOffset)}else if(document.documentElement){return this.create(document.body.scrollLeft+document.documentElement.scrollLeft,document.body.scrollTop+document.documentElement.scrollTop)}else if(document.body.scrollLeft>=0){return this.create(document.body.scrollLeft,document.body.scrollTop)}else{return this.create(0,0)}},clientSize:function(){if(window.innerHeight>=0){return this.create(window.innerWidth,window.innerHeight)}else if(document.documentElement){return this.create(document.documentElement.clientWidth,document.documentElement.clientHeight)}else if(document.body.clientHeight>=0){return this.create(document.body.clientWidth,document.body.clientHeight)}else{return this.create(0,0)}},mousePosition:function(event){event=ToolMan.events().fix(event)
return this.create(event.clientX,event.clientY)},mouseOffset:function(event){event=ToolMan.events().fix(event)
if(event.pageX>=0||event.pageX<0){return this.create(event.pageX,event.pageY)}else if(event.clientX>=0||event.clientX<0){return this.mousePosition(event).plus(this.scrollOffset())}},tmSize:function(element){return this.create(element.offsetWidth,element.offsetHeight)},tmOffset:function(element){return this.create(element.offsetLeft,element.offsetTop)}}
function tmToolManCoordinate(factory,x,y){this.factory=factory
this.x=isNaN(x)?0:x
this.y=isNaN(y)?0:y}
tmToolManCoordinate.prototype={toString:function(){return"("+this.x+","+this.y+")"},plus:function(that){return this.factory.create(this.x+that.x,this.y+that.y)},minus:function(that){return this.factory.create(this.x-that.x,this.y-that.y)},min:function(that){return this.factory.create(Math.min(this.x,that.x),Math.min(this.y,that.y))},max:function(that){return this.factory.create(Math.max(this.x,that.x),Math.max(this.y,that.y))},constrainTo:function(one,two){var min=one.min(two)
var max=one.max(two)
return this.max(min).min(max)},distance:function(that){return Math.sqrt(Math.pow(this.x-that.x,2)+Math.pow(this.y-that.y,2))},reposition:function(element){element.style["top"]=this.y+"px"
element.style["left"]=this.x+"px"}}
ToolMan.tmDragFactory={createSimpleGroup:function(element,handle){handle=handle?handle:element
var group=this.createGroup(element)
group.setHandle(handle)
group.transparentDrag()
group.onTopWhileDragging()
return group},createGroup:function(element){var group=new tmToolManDragGroup(this,element)
var position=ToolMan.css().readStyle(element,'position')
if(position=='static'){element.style["position"]='relative'}else if(position=='absolute'){ToolMan.coordinates().topLeftOffset(element).reposition(element)}
group.register('draginit',this.tmShowDragEventStatus)
group.register('dragmove',this.tmShowDragEventStatus)
group.register('dragend',this.tmShowDragEventStatus)
return group},tmShowDragEventStatus:function(dragEvent){},constraints:function(){return this.tmConstraintFactory},tmCreateEvent:function(type,event,group){return new tmToolManDragEvent(type,event,group)}}
function tmToolManDragGroup(factory,element){this.factory=factory
this.element=element
this.tmHandle=null
this.tmThresholdDistance=0
this.tmTransforms=new Array()
this.tmListeners=new Array()
this.tmListeners['draginit']=new Array()
this.tmListeners['dragstart']=new Array()
this.tmListeners['dragmove']=new Array()
this.tmListeners['dragend']=new Array()}
tmToolManDragGroup.prototype={setHandle:function(handle){var events=ToolMan.events()
handle.toolManDragGroup=this
events.register(handle,'mousedown',this.tmDragInit)
handle.onmousedown=function(){return false}
if(this.element!=handle)
events.unregister(this.element,'mousedown',this.tmDragInit)},register:function(type,func){this.tmListeners[type].push(func)},addTransform:function(transformFunc){this.tmTransforms.push(transformFunc)},verticalOnly:function(){this.addTransform(this.factory.constraints().vertical())},horizontalOnly:function(){this.addTransform(this.factory.constraints().horizontal())},setThreshold:function(thresholdDistance){this.tmThresholdDistance=thresholdDistance},transparentDrag:function(opacity){var opacity=typeof(opacity)!="undefined"?opacity:0.75;var originalOpacity=ToolMan.css().readStyle(this.element,"opacity")
var originalBackgroundColor=ToolMan.css().readStyle(this.element,"background-color")
this.register('dragstart',function(dragEvent){var element=dragEvent.group.element
element.style.opacity=opacity
element.style.filter='alpha(opacity='+(opacity*100)+')'
element.style.backgroundColor="#e4cfd9"})
this.register('dragend',function(dragEvent){var element=dragEvent.group.element
element.style.opacity=originalOpacity
element.style.filter='alpha(opacity=100)'
element.style.backgroundColor=originalBackgroundColor;})},onTopWhileDragging:function(zIndex){var zIndex=typeof(zIndex)!="undefined"?zIndex:100000;var originalZIndex=ToolMan.css().readStyle(this.element,"z-index")
this.register('dragstart',function(dragEvent){dragEvent.group.element.style.zIndex=zIndex})
this.register('dragend',function(dragEvent){dragEvent.group.element.style.zIndex=originalZIndex})},tmDragInit:function(event){event=ToolMan.events().fix(event)
var group=document.toolManDragGroup=this.toolManDragGroup
var dragEvent=group.factory.tmCreateEvent('draginit',event,group)
group.tmIsThresholdExceeded=false
group.tmInitialMouseOffset=dragEvent.mouseOffset
group.tmGrabOffset=dragEvent.mouseOffset.minus(dragEvent.topLeftOffset)
ToolMan.events().register(document,'mousemove',group.tmDrag)
document.onmousemove=function(){return false}
ToolMan.events().register(document,'mouseup',group.tmDragEnd)
group.tmNotifyListeners(dragEvent)},tmDrag:function(event){event=ToolMan.events().fix(event)
var coordinates=ToolMan.coordinates()
var group=this.toolManDragGroup
if(!group)return
var dragEvent=group.factory.tmCreateEvent('dragmove',event,group)
var newTopLeftOffset=dragEvent.mouseOffset.minus(group.tmGrabOffset)
if(!group.tmIsThresholdExceeded){var distance=dragEvent.mouseOffset.distance(group.tmInitialMouseOffset)
if(distance<group.tmThresholdDistance)return
group.tmIsThresholdExceeded=true
group.tmNotifyListeners(group.factory.tmCreateEvent('dragstart',event,group))}
for(var i=0;i<group.tmTransforms.length;i++){var myTransform=group.tmTransforms[i];if(myTransform)
newTopLeftOffset=myTransform(newTopLeftOffset,dragEvent)}
var dragDelta=newTopLeftOffset.minus(dragEvent.topLeftOffset)
var newTopLeftPosition=dragEvent.topLeftPosition.plus(dragDelta)
newTopLeftPosition.reposition(group.element)
dragEvent.transformedMouseOffset=newTopLeftOffset.plus(group.tmGrabOffset)
group.tmNotifyListeners(dragEvent)
var errorDelta=newTopLeftOffset.minus(coordinates.topLeftOffset(group.element))
if(errorDelta.x!=0||errorDelta.y!=0){coordinates.topLeftPosition(group.element).plus(errorDelta).reposition(group.element)}},tmDragEnd:function(event){event=ToolMan.events().fix(event)
var group=this.toolManDragGroup
if(group!=null)
{var dragEvent=group.factory.tmCreateEvent('dragend',event,group)
group.tmNotifyListeners(dragEvent)
this.toolManDragGroup=null
ToolMan.events().unregister(document,'mousemove',group.tmDrag)
document.onmousemove=null
ToolMan.events().unregister(document,'mouseup',group.tmDragEnd)}},tmNotifyListeners:function(dragEvent){var listeners=this.tmListeners[dragEvent.type]
for(var i=0;i<listeners.length;i++){if(listeners[i])
listeners[i](dragEvent);}}}
function tmToolManDragEvent(type,event,group){this.type=type
this.group=group
this.mousePosition=ToolMan.coordinates().mousePosition(event)
this.mouseOffset=ToolMan.coordinates().mouseOffset(event)
this.transformedMouseOffset=this.mouseOffset
this.topLeftPosition=ToolMan.coordinates().topLeftPosition(group.element)
this.topLeftOffset=ToolMan.coordinates().topLeftOffset(group.element)}
tmToolManDragEvent.prototype={toString:function(){return"mouse: "+this.mousePosition+this.mouseOffset+"    "+"xmouse: "+this.transformedMouseOffset+"    "+"left,top: "+this.topLeftPosition+this.topLeftOffset}}
ToolMan.tmDragFactory.tmConstraintFactory={vertical:function(){return function(coordinate,dragEvent){var x=dragEvent.topLeftOffset.x
return coordinate.x!=x?coordinate.factory.create(x,coordinate.y):coordinate}},horizontal:function(){return function(coordinate,dragEvent){var y=dragEvent.topLeftOffset.y
return coordinate.y!=y?coordinate.factory.create(coordinate.x,y):coordinate}}}
ToolMan.tmDragsortFactory={makeSortable:function(item){var group=ToolMan.drag().createSimpleGroup(item)
group.register('dragstart',this.tmOnDragStart)
group.register('dragmove',this.tmOnDragMove)
group.register('dragend',this.tmOnDragEnd)
return group},makeListSortable:function(list){var helpers=ToolMan.helpers()
var coordinates=ToolMan.coordinates()
var items=list;helpers.map(items,function(item){var dragGroup=dragsort.makeSortable(item)
dragGroup.setThreshold(4)
var min,max
dragGroup.addTransform(function(coordinate,dragEvent){return coordinate.constrainTo(min,max)})
dragGroup.register('dragstart',function(){var items=list;min=max=coordinates.topLeftOffset(items[0])
for(var i=1,n=items.length;i<n;i++){var offset=coordinates.topLeftOffset(items[i])
min=min.min(offset)
max=max.max(offset)}})})
for(var i=1,n=arguments.length;i<n;i++)
helpers.map(items,arguments[i])},tmOnDragStart:function(dragEvent){},tmOnDragMove:function(dragEvent){var helpers=ToolMan.helpers()
var coordinates=ToolMan.coordinates()
var item=dragEvent.group.element
var xmouse=dragEvent.transformedMouseOffset
var moveTo=null
var previous=helpers.previousItem(item,item.nodeName)
while(previous!=null){var bottomRight=coordinates.bottomRightOffset(previous)
if(xmouse.y<=bottomRight.y&&xmouse.x<=bottomRight.x){moveTo=previous}
previous=helpers.previousItem(previous,item.nodeName)}
if(moveTo!=null){helpers.moveBefore(item,moveTo)
return}
var next=helpers.nextItem(item,item.nodeName)
while(next!=null){var topLeft=coordinates.topLeftOffset(next)
if(topLeft.y<=xmouse.y&&topLeft.x<=xmouse.x){moveTo=next}
next=helpers.nextItem(next,item.nodeName)}
if(moveTo!=null){helpers.moveBefore(item,helpers.nextItem(moveTo,item.nodeName))
return}},tmOnDragEnd:function(dragEvent){ToolMan.coordinates().create(0,0).reposition(dragEvent.group.element)}}
ToolMan.tmCookieOven={set:function(name,value,expirationInDays){if(expirationInDays){var date=new Date()
date.setTime(date.getTime()+(expirationInDays*24*60*60*1000))
var expires="; expires="+date.toGMTString()}else{var expires=""}
document.cookie=name+"="+value+expires+"; path=/"},get:function(name){var namePattern=name+"="
var cookies=document.cookie.split(';')
for(var i=0,n=cookies.length;i<n;i++){var c=cookies[i]
while(c.charAt(0)==' ')c=c.substring(1,c.length)
if(c.indexOf(namePattern)==0)
return c.substring(namePattern.length,c.length)}
return null},eraseCookie:function(name){createCookie(name,"",-1)}}

function CDragAndDrop()
{this.objArray=null;this.parentDiv=null;var me=this;this.OnError=function(exp,strSource){};dragsort=ToolMan.dragsort()
junkdrawer=ToolMan.junkdrawer()
this.SetArray=function(objArray)
{me.objArray=objArray;if(objArray.length>0)
{var i=0;while((objArray[i]==null)&&(i<objArray.length))
{i++;}
if(i<objArray.length)
{me.parentDiv=objArray[i].GetDiv().parentNode;var inputArray=new Array();var j;for(j=i;j<objArray.length;j++)
{if(objArray[j]!=null)
{var actDiv=objArray[j].GetDiv();inputArray.push(actDiv);}}
dragsort.makeListSortable(inputArray,verticalOnly,saveOrder,myOnDragEnd,myOnDragStart);}}}
this.OnDragStart=function()
{}
this.OnArrayChanged=function()
{}
this.GetArray=function()
{var array=junkdrawer.inspectListOrder2(me.parentDiv,me.objArray);return array;}
function verticalOnly(item){item.toolManDragGroup.verticalOnly()}
function saveOrder(item){var group=item.toolManDragGroup
var list=group.element.parentNode
var id=list.getAttribute("id")
if(id==null)return
group.register('dragend',function(){ToolMan.cookies().set("list-"+id,junkdrawer.serializeList(list),365)})}
function myOnDragStart(item){var group=item.toolManDragGroup;group.register('dragstart',function(){if(me.OnDragStart)
{try{me.OnDragStart();}
catch(exp){if(me.OnError)
me.OnError(exp,'CDragAndDrop.OnDragStart');}}});}
function myOnDragEnd(item){var group=item.toolManDragGroup
group.register('dragend',function(){var i;var newArray=me.GetArray();for(i=0;i<newArray.length;i++)
me.objArray[i]=newArray[i];me.OnArrayChanged();})}}

