	
// © 2002-2004 Supernavigator s.r.o., Vsetky prava vyhradene!
// Riesenie je priemyselno-pravne chranene a je predmetom chraneneho autorskeho diela!	
// Precitajte si podmienky pouzitia (http://www.supernavigator.sk/navigator/conditions.php)	
	
Map=function(level,city,folder,count_x,count_y,koef,displace_x,displace_y,alpha,alpha_x,alpha_y,mirror){var cityID=city?city.id:null;var akUzJe=Map.getByLevel(level,cityID,true);if(!akUzJe){if(haveParent()&&parent.self.Map&&parent.self!==self&&parent.mapCity&&parent.mapCity.length>0&&city&&!parent.Map.getByLevel(level,city.id))new parent.Map(level,parent.mapCity[city.id],folder,count_x,count_y,koef,displace_x,displace_y,alpha,alpha_x,alpha_y,mirror);this.level=level;this.city=city;this.folder=folder;this.count=new Position(count_x,count_y);this.koef=koef;this.displace=new Position(displace_x,displace_y);this.alpha=alpha;this.alphaDisplace=new Position(alpha_x,alpha_y);this.mirror=new Position(1,mirror?-1:1);if(Map.last_map){if(city==Map.last_map.city)this.previous_map=Map.last_map;else this.previous_map=Map.getByLevel(level-1);if(city==Map.last_map.city)Map.last_map.next_map=this;if(city!=null){if(!city.haveLoadedMaps())city.first_map=this;city.last_map=this}}else{Map.first_map=this}if(Map.max_level<level&&city==null)Map.max_level=level;if(city==null)Map.max_level_statu=Map.max_level;Map.last_map=this}};Map.onStateMapsLoaded=function(){};Map.onAfterInit=function(){};Map.onChangeCity=function(){};Map.dontLoadMaps=false;Map.firstMapKoef=SuperNavigator.firstMapKoef;Map.init=function(){Map.base_folder=SuperNavigator.mapsFolder;MapView.init();if(!Map.dontLoadMaps){if(arguments.length==0)stack.addProcess(Map.load_mapy_statu_a_mesta,1);else stack.addProcess(Map.load_mapy_statu_a_mesta,1,arguments[0],arguments[1],arguments[2],arguments[3])}if(SuperNavigator.quickNavMapFrame){var QNMFrame=eval('parent.'+SuperNavigator.quickNavMapFrame);if(QNMFrame&&QNMFrame.QuickNavMap)QNMFrame.QuickNavMap.init()}if(Cookie.get('cookieMapSize')){SuperNavigator.MapChangeSize(MapView.size);Map.initSizeTimeouted()}return false};Map.initSizeTimeouted=function(){if(MapView.actual){var size=Cookie.get('cookieMapSize').split('x');MapView.changeSize(new Position(size[0],size[1]))}else setTimeout('Map.initSizeTimeouted();',4000)};Map.puzzle=new Size(222,184);Map.max_level=0;Map.max_level_statu=0;Map.isWorking=false;Map.processCode=null;Map.setProcessCode=function(code){Map.processCode=code};Map.processCodeTable=new Array();Map.processCodeTable["-1-1"]=3;Map.processCodeTable["0-1"]=4;Map.processCodeTable["1-1"]=5;Map.processCodeTable["-10"]=6;Map.processCodeTable["10"]=7;Map.processCodeTable["-11"]=8;Map.processCodeTable["01"]=9;Map.processCodeTable["11"]=10;Map.getMoveProcessCode=function(direction){var plusX=direction.x/Map.puzzle.width;var plusY=direction.y/Map.puzzle.height;if((plusX==0||Math.abs(plusX)==1)&&(plusY==0||Math.abs(plusY)==1))return Map.processCodeTable[plusX+""+plusY];else return 0};Map.getByLevel=function(level,cityID,real){if(cityID){var mapa=mapCity[cityID].first_map;if(!mapa)return false;if(level<mapa.level)while(mapa&&mapa.level!=level)mapa=mapa.previous_map;else while(mapa&&mapa.level!=level)mapa=mapa.next_map}else{var mapa=Map.first_map;while(mapa&&mapa.next_map&&mapa.level!=level)mapa=mapa.next_map;if(real&&(!mapa||mapa.level!=level))return null}return mapa};Map.prototype.getArea=function(){return new Area(new Position(0,0).toBase(this),this.count.getCopy().multiply(Map.puzzle).toBase(this))};Map.load_mapy_statu_a_mesta=function(){this.block(SuperNavigator.loadFrame);if(haveParent()&&parent.mapCity&&parent.mapCity!=""){if(arguments.length==0){Map.copyFromParent();new MapView(Map.first_map,MapView.defaultPosition.getCopy()).display();MapView.initControls();this.free();return true}else{var x=arguments[0];var y=arguments[1];var mestoID=arguments[2];var level=arguments[3];Map.copyFromParent(mestoID);if(!level)MapView.zoom2max(new Position(x,y),mestoID);else new MapView(Map.getByLevel(level,mestoID),new Position(x,y)).display();MapView.initControls();this.free();return true}}var level=arguments[3]?"&defaultLevel="+arguments[3]:"";var zero=(SuperNavigator.zeroLevel)?"&zeroLevel=true":"";if(arguments.length==0)SuperNavigator.load(SuperNavigator.pathToRoot+"/navigator/getmaps.php?"+SuperNavigator.SID+zero);else SuperNavigator.load(SuperNavigator.pathToRoot+"/navigator/getmaps.php?defaultX="+arguments[0]+"&defaultY="+arguments[1]+(arguments[2]?"&defaultCity="+arguments[2]:'')+level+"&"+SuperNavigator.SID+zero)};Map.load_mapu_mesta=function(mestoID,level,x,y){this.block(SuperNavigator.loadFrame);if(!mapCity[mestoID].haveLoadedMaps()){if(level||level===0)var level="&level="+level;else var level="";if(x&&y)var pos="&x="+x+"&y="+y;else var pos="";SuperNavigator.load(SuperNavigator.pathToRoot+"/navigator/getmaps.php?mesto="+mestoID+level+pos+"&"+SuperNavigator.SID)}else{this.free();if(level==0)level=mapCity[mestoID].last_map.level;if(!x||!y){var x=MapView.actual.position.x;var y=MapView.actual.position.y}new MapView(Map.getByLevel(level,mestoID),new Position(x,y)).display()}};Map.copyFromParent=function(){if(haveParent()&&parent.mapCity){for(var level=1;level<=parent.Map.max_level_statu;level++){var mapa=parent.Map.getByLevel(level);new Map(mapa.level,mapa.city,mapa.folder,mapa.count.x,mapa.count.y,mapa.koef,mapa.displace.x,mapa.displace.y,mapa.alpha,mapa.alphaDisplace.x,mapa.alphaDisplace.y,mapa.mirror)}for(var id in parent.mapCity)if(typeof(parent.mapCity[id])=="object")mapCity[id]=new MapCity(parent.mapCity[id].nazov,parent.mapCity[id].id,parent.mapCity[id].position.x,parent.mapCity[id].position.y,parent.mapCity[id].size.width*Map.firstMapKoef,parent.mapCity[id].size.height*Map.firstMapKoef,parent.mapCity[id].vip,parent.mapCity[id].level_count,parent.mapCity[id].first_koef);MapCity.count=parent.MapCity.count;if(arguments.length>0&&mapCity[arguments[0]]){var mapa=parent.Map.getByLevel(parent.Map.max_level_statu+1,arguments[0]);var city;while(mapa){city=mapCity[mapa.city.id];new Map(mapa.level,city,mapa.folder,mapa.count.x,mapa.count.y,mapa.koef,mapa.displace.x,mapa.displace.y,mapa.alpha,mapa.alphaDisplace.x,mapa.alphaDisplace.y,mapa.mirror);mapa=mapa.next_map}}}};function MapCity(nazov,id,x,y,width,height,vip,level_count,first_koef){this.nazov=nazov;this.id=id;this.position=new Position(x,y);this.size=new Size(width,height).divide(Map.firstMapKoef);this.size.setLimit(new Position(1,1),null);this.first_map=null;this.last_map=null;this.level_count=level_count;this.first_koef=first_koef;this.vip=vip;MapCity.add2select(id,nazov,vip);mapCity[id]=this;MapCity.count++};MapCity.count=0;var mapCity=Array();MapCity.prototype.haveLoadedMaps=function(){return this.first_map};MapCity.prototype.getArea=function(){return Area.make(this.position,this.size)};MapCity.selectMesta=null;MapCity.add2select=function(id,nazov,vip){if(MapCity.selectMesta){MapCity.selectMesta.options.add(document.createElement("OPTION"));MapCity.selectMesta.options[MapCity.selectMesta.options.length-1].text=nazov;MapCity.selectMesta.options[MapCity.selectMesta.options.length-1].value=id;if(vip==1)MapCity.selectMesta.options[MapCity.selectMesta.options.length-1].className="vip"}};MapCity.selectCity=function(cityID){if(MapCity.selectMesta){if(!cityID)MapCity.selectMesta.options[0].selected=true;else for(var i=0;i<MapCity.selectMesta.options.length;i++)if(MapCity.selectMesta.options[i].value==cityID)MapCity.selectMesta.options[i].selected=true;Map.onChangeCity()}};MapCity.selectActualCity=function(){if(MapView.actualCity)MapCity.selectCity(MapView.actualCity.id);else MapCity.selectCity()};MapCity.updateCityCount=function(){if(MapCity.selectMesta)MapCity.selectMesta.options[0].text=MapCity.selectMesta.options[0].text.replace('???',MapCity.count)};Position.prototype.toBase=Size.prototype.toBase=function(map){if(SuperNavigator.newMapSystem)return this.getCopy().multiply(map.mirror).rotate(map.alpha).minus(map.displace).divide(map.koef);else return this.getCopy().minus(map.displace).minus(map.alphaDisplace).rotate(map.alpha).plus(map.alphaDisplace).divide(map.koef)};Position.prototype.toThisMap=Size.prototype.toThisMap=function(map){if(SuperNavigator.newMapSystem)return this.getCopy().multiply(map.koef).plus(map.displace).rotate(-map.alpha).multiply(map.mirror);else return this.getCopy().multiply(map.koef).minus(map.alphaDisplace).rotate(-map.alpha).plus(map.alphaDisplace).plus(map.displace)};Position.prototype.inMapViewDiv=Size.prototype.inMapViewDiv=function(mapView){return this.minus(mapView.getPositionOfStartPuzzleInThisLevel()).plus(mapView.displace)};Position.prototype.outaMapViewDiv=Size.prototype.outaMapViewDiv=function(mapView){return this.plus(mapView.getPositionOfStartPuzzleInThisLevel()).minus(mapView.displace)};Position.prototype.toScreenFromBase=Size.prototype.toScreenFromBase=function(){return this.toThisMap(MapView.actual.map).inMapViewDiv(MapView.actual)};function MapView(map,position){this.map=map;this.startPuzzle=new Position(0,0);this.displace=new Position(0,0);this.rotation=new Angle(0);this.size=MapView.size.getCopy();this.setPosition(position)};MapView.actual;MapView.previous;MapView.next;MapView.map_was_displayed=false;MapView.setActual=function(mapView){MapView.previous=MapView.actual;MapView.actual=mapView;MapView.next=null};MapView.actualCity=null;MapView.size=new Position(2,2);if(Cookie.get('cookieMapSize')){var size=Cookie.get('cookieMapSize').split('x');MapView.size=new Position(size[0],size[1])}MapView.wholeArea=new Area(new Position(0,0),new Position(444,368));MapView.specialPos=new Position(0,0);MapView.mesta=new Array();MapView.smoothMove=new Object();MapView.smoothMove.DefaultStep=15;MapView.smoothZoom=new Object();MapView.smoothZoom.DefaultStep=10;MapView.roundStartPuzzleDefault=false;MapView.withoutPuzzlePreload=false;MapView.activateWithoutPuzzlePreload=function(){MapView.withoutPuzzlePreload=true;MapView.smoothZoom.enabled=false};MapView.stopWatchForPuzzlePreload=new StopWatch();MapView.activateWithoutPuzzlePreloadOnFreeze=function(){MapView.stopProcessForPuzzlePreload();stack.clear(0,24);stack.free();MapView.activateWithoutPuzzlePreload();SuperNavigator.loadDone(100);MapView.activatedFlagWithoutPuzzlePreload=true;if(MapView.actual)MapView.actual.display();MapView.activatedFlagWithoutPuzzlePreload=false};MapView.checkPuzzlePreloadOnFreeze=function(){return MapView.stopWatchForPuzzlePreload.startTime!=0&&MapView.stopWatchForPuzzlePreload.getActualTime()>MapView.maxTimeForPuzzlePreload/(MapView.size.getX()*MapView.size.getY()/4)};MapView.checkIfPuzzlePreloadFreezed=function(){if(MapView.checkPuzzlePreloadOnFreeze())MapView.activateWithoutPuzzlePreloadOnFreeze()};MapView.processForPuzzlePreload=null;MapView.stopProcessForPuzzlePreload=function(){if(MapView.processForPuzzlePreload){clearInterval(MapView.processForPuzzlePreload);MapView.processForPuzzlePreload=null}};MapView.startProcessForPuzzlePreload=function(){{MapView.stopProcessForPuzzlePreload();MapView.processForPuzzlePreload=setInterval("MapView.checkIfPuzzlePreloadFreezed();",1000);MapView.stopWatchForPuzzlePreload.start()}};MapView.doNotShowMapAtStart=false;MapView.init=function(){MapView.mainDiv=getById('map');if(MapView.mainDiv){MapView.mainDiv.oncontextmenu=nocontextmenu;MapView.mainDiv.onselectstart=return_false;MapView.mainDiv.ondrag=return_false;if(browser.isNS)MapView.mainDiv.style.overflow="-moz-scrollbars-none"}MapView.gizmoDiv=vytvorHTMLElement("div","gizmomap",MapView.mainDiv);MapView.Div=vytvorHTMLElement("a","mainmap",MapView.mainDiv);MapView.mapArrow=vytvorHTMLElement("div","mapArrow",MapView.mainDiv);MapView.distanceDiv=vytvorHTMLElement("div","distanceDiv",MapView.mainDiv);MapView.distanceDiv.size=offsetSize_objektu(MapView.distanceDiv);MapView.distanceDiv.halfSize=MapView.distanceDiv.size.getCopy().divide(2).round();MapView.distanceDiv.onmousedown=MapView.drag.start;MapView.Div.onclick=return_false;MapView.Div.onmousedown=MapView.drag.start;MapView.Div.setPosition=MapView.gizmoDiv.setPosition=Position.setPositionHTML;MapView.Div.setSize=MapView.gizmoDiv.setSize=Position.setSizeHTML;MapView.Div.setAllAtributes=MapView.gizmoDiv.setAllAtributes=function(position,size,HTML){this.setPosition(position);this.setSize(size);this.innerHTML=HTML};MapView.objectsDiv=vytvorHTMLElement("div","mapobjects",MapView.mainDiv);if(window.DrawTemplate){Draw=VML.isSupported()?new VML():(Canvas.isSupported()?new Canvas():null);var size=MapView.getSize();var canvas=MapView.canvas=Draw.createCanvas(size.getX(),size.getY());canvas.className='canvas';MapView.mainDiv.appendChild(canvas);canvas.style.visibility='hidden';Draw.transformCoordinates=function(x,y){var pos=new Position(x,y);pos=pos.toThisMap(MapView.actual.map).inMapViewDiv(MapView.actual).round();return{x:pos.getX(),y:pos.getY()}};Draw.transformStroke=function(width){var w=Math.round(width*MapView.actual.map.koef/(SuperNavigator.baseMapUnitToMetersKoef*Map.firstMapKoef));if(w<1)w=1;return w}}MapView.objectsDiv.show=function(){if(MapView.canvas)MapView.canvas.style.display="block";MapView.objectsDiv.style.display="block"};MapView.objectsDiv.hide=function(){if(MapView.canvas)MapView.canvas.style.display="none";MapView.objectsDiv.style.display="none"};if(MapView.canvas)MapView.canvas.onmousedown=MapView.drag.start;MapView.objectsDiv.onmousedown=MapView.drag.start;MapView.Div.setZoom=MapView.gizmoDiv.setZoom=HTMLElementWithPicturesZoom;MapView.Div.setOpacity=MapView.gizmoDiv.setOpacity=HTMLElementOpacity;MapView.selectMapDiv=vytvorHTMLElement("div","selectmap",MapView.mainDiv);MapView.selectMapDiv.onclick=return_false;MapView.selectMapDiv.style.position="absolute";MapView.selectMapDiv.style.left="-2000px";MapView.defaultPosition=new Position(SuperNavigator.defaultPosition.x,SuperNavigator.defaultPosition.y);MapView.smoothMove.enabled=browser.speed>250?true:false;MapView.smoothMove.steps=MapView.smoothMove.DefaultStep;MapView.smoothMove.time=15;if(browser.isNS)MapView.smoothZoom.enabled=browser.speed>800?true:false;else MapView.smoothZoom.enabled=browser.speed>250?true:false;if(browser.isNS)MapView.smoothZoom.DefaultStep=Math.round(MapView.smoothZoom.DefaultStep/3);MapView.smoothZoom.steps=MapView.smoothZoom.DefaultStep;MapView.smoothZoom.time=15;MapView.smoothZoom.max_koef=4.5;MapView.slowDownKoef=1.5;MapView.CPUkoef=1700/browser.speed;if(MapView.CPUkoef<1)MapView.CPUkoef=1;MapView.smoothTime=600*MapView.CPUkoef;MapView.smoothTimeMaxKoef=4;if(document.forms["mestaForm"]){MapCity.selectMesta=document.forms["mestaForm"].mesta;MapCity.selectMesta.onchange=function(){MapView.gotoCity(mapCity[MapCity.selectMesta.value]);SuperNavigator.lostFocus();Map.onChangeCity()}}SuperNavigator.keysEnabled=true;SuperNavigator.keydownAddFn(MapView.keyDown);document.onkeyup=MapView.keyUp;MapView.roundStartPuzzle=MapView.roundStartPuzzleDefault;MapView.maxTimeForPuzzlePreload=10000};MapView.createFromMap=function(map,position){return new MapView(map,position)};MapView.changeSize=function(newSize){SuperNavigator.MapChangeSize(newSize);MapView.actual.changeSize(newSize);MapView.actual.precalc();if(MapView.previous)MapView.previous.mapHTML="";MapView.clearGizmo();new MapView(MapView.actual.map,MapView.actual.position.getCopy().plus(0.001)).display()};MapView.getSize=function(){return new Size(MapView.size.x*Map.puzzle.width,MapView.size.y*Map.puzzle.height)};MapView.getWidth=function(){return MapView.size.x*Map.puzzle.width};MapView.getHeight=function(){return MapView.size.y*Map.puzzle.height};MapView.prototype.setPosition=function(position){if(position)this.position=position;else this.position=Map.puzzle.getCopy().multiply(this.map.count).divide(2).toBase(this.map);this.precalc()};MapView.prototype.getPosition=function(){return this.position};MapView.prototype.changeSize=function(newSize){this.size.set(newSize);this.size.round();this.precalc()};MapView.prototype.getAreaInThisLevel=function(){var cornerUL=this.startPuzzle.getCopy().minus(1).multiply(Map.puzzle);var cornerBR=new Position(this.startPuzzle.x-1+MapView.size.x>this.map.count.x?this.map.count.x:this.startPuzzle.x-1+MapView.size.x,this.startPuzzle.y-1+MapView.size.y>this.map.count.y?this.map.count.y:this.startPuzzle.y-1+MapView.size.y).multiply(Map.puzzle);var startTemp=this.startPuzzle.getCopy().minus(1);if(MapView.size.x<this.map.count.x){var specX=MapView.specialPos.getCopy().multiply(1,0);if(startTemp.getX()>0)cornerUL.minus(specX);if(this.startPuzzle.x-1+MapView.size.x<this.map.count.x)cornerBR.plus(specX)}if(MapView.size.y<this.map.count.y){var specY=MapView.specialPos.getCopy().multiply(0,1);if(startTemp.getY()>0)cornerUL.minus(specY);if(this.startPuzzle.y-1+MapView.size.y<this.map.count.y)cornerBR.plus(specY)}return new Area(cornerUL,cornerBR)};MapView._calculateAreaOfCurrentView=function(){this._areaOfCurrentView=MapView.actual.getAreaInThisLevel();this._areaOfCurrentView.cornerBR.minus(this._areaOfCurrentView.cornerUL);this._areaOfCurrentView.cornerUL.set(0,0)};MapView.getAreaOfCurrentView=function(){return this._areaOfCurrentView};MapView.prototype.getArea=function(){var area=this.getAreaInThisLevel();return new Area(area.cornerUL.toBase(this.map),area.cornerBR.toBase(this.map))};MapView.prototype.isInArea=function(position,koef){var area=this.getArea();if(koef)area.resize(koef);return area.cornerUL.x<=position.x&&area.cornerUL.y<=position.y&&area.cornerBR.x>=position.x&&area.cornerBR.y>=position.y};MapView.prototype.display=function(){var fromView=MapView.actual;var toView=this;MapView.roundStartPuzzle=MapView.roundStartPuzzleDefault;if(MapView.roundStartPuzzleDefault)toView.precalc();if(!MapView.withoutPuzzlePreload)MapView.startProcessForPuzzlePreload();if(!MapView.doNotShowMapAtStart&&!stack.actualProcessCode()||stack.actualProcessCode()!==Map.processCode){if(MapView.events2clientURL)MapView.events2client(this);if(stack.actualProcessCode()<=30)stack.clear();if(fromView===toView||MapView.withoutPuzzlePreload||!fromView||(!fromView.canZoomSmoothTo(toView)&&!fromView.canMoveSmoothTo(toView))||(fromView.map===toView.map&&fromView.position.isSameWith(toView.position)))this._display();else if(fromView.canMoveSmoothTo(toView))this._move();else if(fromView.canZoomSmoothTo(toView))this._zoom()}if(MapView.doNotShowMapAtStart){MapView.doNotShowMapAtStart=false;MapView.whenFinished()}};MapView.prototype.recalcTranformation=function(){var mapView=this;var map=mapView.map;var positionOfStartPuzzleInThisLevel=mapView.startPuzzle.getCopy().minus(1).multiply(Map.puzzle).minus(mapView.displace);var cos=Math.cos(-map.alpha*Angle.deg2rad);var sin=Math.sin(-map.alpha*Angle.deg2rad);this.m11=map.koef*cos*map.mirror.x;this.m21=-map.koef*sin*map.mirror.y;this.m12=map.koef*sin*map.mirror.x;this.m22=map.koef*cos*map.mirror.y;this.m13=(map.displace.x*cos+map.displace.y*sin)*map.mirror.x-positionOfStartPuzzleInThisLevel.x;this.m23=(-map.displace.x*sin+map.displace.y*cos)*map.mirror.y-positionOfStartPuzzleInThisLevel.y};MapView.prototype.transformIn=function(posObj){var x=Math.round(posObj.x*this.m11+posObj.y*this.m12+this.m13);var y=Math.round(posObj.x*this.m21+posObj.y*this.m22+this.m23);posObj.x=x;posObj.y=y;return posObj};MapView.prototype.getPositionOfStartPuzzleInThisLevel=function(floor){var pos=this.startPuzzle.getCopy();if(floor)pos.floor();return pos.minus(1).multiply(Map.puzzle)};MapView.prototype.getPositionOfStartPuzzleInBase=function(floor){return this.getPositionOfStartPuzzleInThisLevel(floor).toBase(this.map)};MapView.prototype.precalc=function(){this.getStartPuzzle();if(this.map.count.x>=this.size.x)this.displace.x=MapView.specialPos.x;else this.displace.x=Math.round((this.size.x-this.map.count.x)*Map.puzzle.width*0.5+MapView.specialPos.x);if(this.map.count.y>=this.size.y)this.displace.y=MapView.specialPos.y;else this.displace.y=Math.round((this.size.y-this.map.count.y)*Map.puzzle.height*0.5+MapView.specialPos.y);this.center=MapView.size.getCopy().divide(2).plus(this.startPuzzle).minus(1).multiply(Map.puzzle).toBase(this.map)};MapView.prototype.getStartPuzzle=function(){var position=this.position.getCopy();if(SuperNavigator.zeroLevel&&this.map.level==1)position=this.size.getCopy().divide(2).multiply(Map.puzzle).toBase(this.map);this.startPuzzle=position.toThisMap(this.map).divide(Map.puzzle).minus(this.size.getCopy().divide(2)).plus(1);this.startPuzzle.setLimit(new Area(null,null));if(MapView.roundStartPuzzle)this.startPuzzle.round();else this.startPuzzle.multiply(200).round().divide(200);var minSize=new Position(1,1).plus(MapView.specialPos.getCopy().divide(Map.puzzle));if(this.map.count.getX()<MapView.size.getX())minSize.x=1;if(this.map.count.getY()<MapView.size.getY())minSize.y=1;var maxSize=this.map.count.getCopy().minus(this.size).plus(1).minus(MapView.specialPos.getCopy().divide(Map.puzzle));maxSize.setLimit(new Area(new Position(1,1),null));this.startPuzzle.setLimit(new Area(minSize,maxSize));if(this.map.level==1&&window.clientsMapFn)this.startPuzzle=new Position(1,1);return this.startPuzzle};MapView.prototype.canMoveSmoothTo=function(targetView){return MapView.smoothMove.enabled&&this.map==targetView.map&&this.isInArea(targetView.position,1.2)};MapView.prototype.canZoomSmoothTo=function(targetView){var zoom_koef=this.map.koef/targetView.map.koef;return MapView.smoothZoom.enabled&&this.map.level!=targetView.map.level&&zoom_koef>1/MapView.smoothZoom.max_koef&&zoom_koef<MapView.smoothZoom.max_koef&&this.isInArea(targetView.position)};MapView.prototype.getDokolko=function(){var kolkoPuzzle=this.size.getCopy();if(!this.startPuzzle.x.isCeil())kolkoPuzzle.plus(1,0);if(!this.startPuzzle.y.isCeil())kolkoPuzzle.plus(0,1);var ret=new Position((this.map.count.x>=kolkoPuzzle.x)?kolkoPuzzle.x:this.map.count.x,(this.map.count.y>=kolkoPuzzle.y)?kolkoPuzzle.y:this.map.count.y);var temp=this.startPuzzle.getCopy().floor().plus(ret).minus(1);if(temp.x>this.map.count.x)ret.x=this.size.x;if(temp.y>this.map.count.y)ret.y=this.size.y;if(this.startPuzzle.x<1)ret.plus(1,0);if(this.startPuzzle.y<1)ret.plus(0,1);return ret};MapView.prototype._getLoadPuzzlesArray=function(){var dokolko=this.getDokolko();var px,py,px3,py3;var krok=100/(dokolko.x*dokolko.y+2);var puzzleArray=new Array();this.mapHTML="";for(var y=0;y<dokolko.y;y++){py=Math.floor(this.startPuzzle.y)+y;py3=py.zerofill(3);for(var x=0;x<dokolko.x;x++){px=Math.floor(this.startPuzzle.x)+x;px3=px.zerofill(3);if(px>0&&py>0&&px<=this.map.count.x&&py<=this.map.count.y)puzzleArray[puzzleArray.length]=Map.base_folder+this.map.folder+"/"+px3+py3+".gif";else puzzleArray[puzzleArray.length]=Map.base_folder+"blank.gif";this.mapHTML+='<img src="'+puzzleArray[puzzleArray.length-1]+'" width="'+Map.puzzle.width+'" height="'+Map.puzzle.height+'" />'}}return puzzleArray};MapView.prototype._getLoadPuzzlesArrayRemainder=function(){if(!MapView.actual)return this._getLoadPuzzlesArray();var actualPuzzleArray=(!MapView.withoutPuzzlePreload)?MapView.actual._getLoadPuzzlesArray():new Array();var newPuzzleArray=this._getLoadPuzzlesArray();var remainder=new Array();var multiple=false;for(var k=0;k<newPuzzleArray.length;k++){multiple=false;for(var l=0;l<actualPuzzleArray.length;l++)if(newPuzzleArray[k]==actualPuzzleArray[l]){multiple=true;break}if(!multiple)remainder[remainder.length]=newPuzzleArray[k]}return remainder};MapView.prototype.loadPuzzles=function(){var puzzleArray=this._getLoadPuzzlesArrayRemainder();if(!MapView.withoutPuzzlePreload){stack.addProcess(SuperNavigator.load_picture,Map.processCode,Map.base_folder+"blank.gif",4);stack.addProcess(MapView.stopky.spusti,Map.processCode);MapView.stopky.pocetObrazkov=puzzleArray.length;var dokolko=this.getDokolko();var krok=100/(puzzleArray.length+2);for(var i=2;i<puzzleArray.length+2;i++)stack.addProcess(SuperNavigator.load_picture,Map.processCode,puzzleArray[i-2],Math.round(krok*i));stack.addProcess(MapView.stopky.zastav,Map.processCode);stack.addProcess(SuperNavigator.load_picture,Map.processCode,Map.base_folder+"blank.gif",100);if(!MapView.map_is_displayed)stack.addProcess(SuperNavigator.load_picture,Map.processCode,Map.base_folder+"blank.gif",100)}};MapView.stopky=new Object();MapView.stopky.pocetObrazkov=0;MapView.stopky.spusti=function(){this.block(MapView.stopky);stopWatch.start();this.free()};MapView.stopky.zastav=function(){this.block(MapView.stopky);var cas=stopWatch.stop();MapView.minimalny_cas_kedy_musel_nahravat=0.6*(((MapView.CPUkoef-1)/2)+1);if(MapView.stopky.pocetObrazkov>0&&MapView.roundStartPuzzleDefault&&cas/500>MapView.minimalny_cas_kedy_musel_nahravat)MapView.roundStartPuzzleDefault=false;if(MapView.stopky.pocetObrazkov>0&&!MapView.roundStartPuzzleDefault&&cas/500>MapView.stopky.pocetObrazkov)MapView.roundStartPuzzleDefault=true;MapView.stopProcessForPuzzlePreload();if(!MapView.withoutPuzzlePreload&&cas>MapView.maxTimeForPuzzlePreload/(MapView.size.getX()*MapView.size.getY()/4)){MapView.stopWatchForPuzzlePreload.stop();MapView.activateWithoutPuzzlePreload()}this.free()};MapView.prototype._display=function(){MapView.whenStarted();if(MapView.withoutPuzzlePreload){this._displayFast()}else{this.loadPuzzles();MapView.setActual(this);MapView.clearGizmo();MapView.forceExactDraw=true;stack.addProcess(MapView._draw,Map.processCode)}MapView.dispatchOnchange()};MapView.prototype._displayFast=function(){this._getLoadPuzzlesArray();if(MapView.actual&&MapView.actual.startPuzzle.getCopy().multiply(200).round().isSameWith(this.startPuzzle.getCopy().multiply(200).round()))this.startPuzzle=MapView.actual.startPuzzle;MapView.setActual(this);MapView._draw()};MapView._draw=function(){if(this.isStack){MapView.whenStarted();this.block(Map)}var info=MapView.actual._getInfoToDraw();if(!MapView.forceExactDraw&&MapView.previous&&MapView.actual.mapHTML==MapView.previous.mapHTML&&!MapView.activatedFlagWithoutPuzzlePreload){MapView.Div.setPosition(info.position)}else{MapView.Div.setAllAtributes(info.position,info.size.plus(5,5),MapView.actual.mapHTML)}MapView.forceExactDraw=false;if(MapView.withoutPuzzlePreload)MapView.whenFinished();if(this.isStack){MapView.whenFinished();this.free()}};MapView.prototype._getInfoToDraw=function(){var position=this.startPuzzle.getCopy().floor().minus(this.startPuzzle).multiply(Map.puzzle).plus(this.displace);var size=Map.puzzle.getCopy().multiply(this.getDokolko());return{position:position,size:size}};MapView.compound=function(mapViewOne,mapViewTwo){if(mapViewOne.map!==mapViewTwo.map)return false;var compoundArea=Area.compound(mapViewOne.getAreaInThisLevel(),mapViewTwo.getAreaInThisLevel());var newMapView=new MapView(mapViewOne.map,compoundArea.getCenter().toBase(mapViewOne.map));var newSize=compoundArea.getSize().divide(Map.puzzle);newMapView.changeSize(newSize);return newMapView};MapView.cancelAllEvents=function(){if(MapView.Div)MapView.Div.onmousedown=MapView.Div.onclick=null;if(MapView.mainDiv)MapView.mainDiv.onmousedown=MapView.mainDiv.onclick=null};MapView.initControls=function(){if(getById('arrowup')){getById('arrowup').onclick=MapView.moveUp;getById('arrowleft').onclick=MapView.moveLeft;getById('arrowright').onclick=MapView.moveRight;getById('arrowdown').onclick=MapView.moveDown;getById('arrowup').onmousedown=MapView.moveSlowUp;getById('arrowleft').onmousedown=MapView.moveSlowLeft;getById('arrowright').onmousedown=MapView.moveSlowRight;getById('arrowdown').onmousedown=MapView.moveSlowDown}if(getById('arrowleftup')){getById('arrowleftup').onclick=MapView.moveLeftUp;getById('arrowrightup').onclick=MapView.moveRightUp;getById('arrowleftdown').onclick=MapView.moveLeftDown;getById('arrowrightdown').onclick=MapView.moveRightDown;getById('arrowleftup').onmousedown=MapView.moveSlowLeftUp;getById('arrowrightup').onmousedown=MapView.moveSlowRightUp;getById('arrowleftdown').onmousedown=MapView.moveSlowLeftDown;getById('arrowrightdown').onmousedown=MapView.moveSlowRightDown}if(getById('zoomin'))getById('zoomin').onclick=MapView.zoomIn;if(getById('zoomout'))getById('zoomout').onclick=MapView.zoomOut};MapView.blockControls=function(){getById('arrowleftup').onclick=getById('arrowup').onclick=getById('arrowrightup').onclick=getById('arrowleft').onclick=getById('arrowright').onclick=getById('arrowleftdown').onclick=getById('arrowdown').onclick=getById('arrowrightdown').onclick=getById('zoomin').onclick=getById('zoomout').onclick=MapView.Div.onclick=return_false};MapView.redraw=function(){if(MapView.actual)MapView.actual.display()};MapView.moveLeftUp=function(){return MapView.move(Map.puzzle.getCopy().plus(MapView.specialPos).multiply(new Position(-1,-1)))};MapView.moveUp=function(){return MapView.move(Map.puzzle.getCopy().plus(MapView.specialPos).multiply(new Position(0,-1)))};MapView.moveRightUp=function(){return MapView.move(Map.puzzle.getCopy().plus(MapView.specialPos).multiply(new Position(1,-1)))};MapView.moveLeft=function(){return MapView.move(Map.puzzle.getCopy().plus(MapView.specialPos).multiply(new Position(-1,0)))};MapView.moveRight=function(){return MapView.move(Map.puzzle.getCopy().plus(MapView.specialPos).multiply(new Position(1,0)))};MapView.moveLeftDown=function(){return MapView.move(Map.puzzle.getCopy().plus(MapView.specialPos).multiply(new Position(-1,1)))};MapView.moveDown=function(){return MapView.move(Map.puzzle.getCopy().plus(MapView.specialPos).multiply(new Position(0,1)))};MapView.moveRightDown=function(){return MapView.move(Map.puzzle.getCopy().plus(MapView.specialPos).multiply(new Position(1,1)))};MapView.slowMoveStep=4;MapView.slowMoveStepMultiply=1.02;MapView.moveSlowLeftUp=function(e){MapView.moveSlow.clickedElement=eventElement(e);return MapView.moveSlow(new Position(-MapView.slowMoveStep,-MapView.slowMoveStep))};MapView.moveSlowUp=function(e){MapView.moveSlow.clickedElement=eventElement(e);return MapView.moveSlow(new Position(0,-MapView.slowMoveStep))};MapView.moveSlowRightUp=function(e){MapView.moveSlow.clickedElement=eventElement(e);return MapView.moveSlow(new Position(MapView.slowMoveStep,-MapView.slowMoveStep))};MapView.moveSlowLeft=function(e){MapView.moveSlow.clickedElement=eventElement(e);return MapView.moveSlow(new Position(-MapView.slowMoveStep,0))};MapView.moveSlowRight=function(e){MapView.moveSlow.clickedElement=eventElement(e);return MapView.moveSlow(new Position(MapView.slowMoveStep,0))};MapView.moveSlowLeftDown=function(e){MapView.moveSlow.clickedElement=eventElement(e);return MapView.moveSlow(new Position(-MapView.slowMoveStep,MapView.slowMoveStep))};MapView.moveSlowDown=function(e){MapView.moveSlow.clickedElement=eventElement(e);return MapView.moveSlow(new Position(0,MapView.slowMoveStep))};MapView.moveSlowRightDown=function(e){MapView.moveSlow.clickedElement=eventElement(e);return MapView.moveSlow(new Position(MapView.slowMoveStep,MapView.slowMoveStep))};MapView.move=function(direction){if(MapView.moveSlow.mouseStillDown||MapView.keyIsDown||MapView.externalCallingEnabled||stack.actualProcessCode()||Map.isWorking){var mapV=(MapView.next)?MapView.next:MapView.actual;if(stack.actualProcessCode()===0)stack.clear(0);Map.setProcessCode(Map.getMoveProcessCode(direction));var realDir=direction.getCopy().multiply(mapV.map.mirror).rotate(mapV.map.alpha).divide(mapV.map.koef);var newPos=mapV.center.getCopy().plus(realDir);var newView=MapView.createFromMap(mapV.map,newPos);newView.startPuzzle.roundMinimum();if(!mapV.center.isSameWith(newView.center)){newView.display();MapView.dispatchOnchange()}}MapView.keyIsDown=false;MapView.moveSlow.mouseStillDown=false;SuperNavigator.lostFocus();return false};MapView.prototype._move=function(){MapView.next=this;var compoundMapView=MapView.compound(MapView.actual,this);if(browser.isNS){MapView.copyDiv2Gizmo();MapView.gizmoDiv.style.zIndex=2;MapView.Div.style.zIndex=1}compoundMapView.loadPuzzles();stack.addProcess(MapView._makeSmoothMove,Map.processCode,this)};MapView._makeSmoothMove=function(targetMapView){MapView.whenStarted();this.block(MapView.Div);var compoundMapView=MapView.compound(MapView.actual,targetMapView);var vectorOfDisplace=MapView.actual.getPositionOfStartPuzzleInThisLevel().getVectorTo(compoundMapView.getPositionOfStartPuzzleInThisLevel());compoundMapView._getLoadPuzzlesArrayRemainder();var info=compoundMapView._getInfoToDraw();MapView.Div.setAllAtributes(info.position.plus(vectorOfDisplace),info.size.plus(5,5),compoundMapView.mapHTML);if(browser.isNS){MapView.gizmoDiv.style.zIndex=1;MapView.Div.style.zIndex=2}MapView._makeSmoothMove.stack=this;MapView._makeSmoothMove.targetMapView=targetMapView;MapView._makeSmoothMove.vectorOfMove=MapView.actual.getPositionOfStartPuzzleInThisLevel().getVectorTo(targetMapView.getPositionOfStartPuzzleInThisLevel()).round();MapView._makeSmoothMove.fromPos=MapView.actual.position.getCopy();MapView._makeSmoothMove.backupPos=info.position;var lengthOfMove=MapView._makeSmoothMove.vectorOfMove.getCopy().getLength();MapView._makeSmoothMove.smoothMove_steps=Math.floor(MapView.smoothMove.steps*(lengthOfMove/Map.puzzle.width));if(MapView._makeSmoothMove.smoothMove_steps<MapView.smoothMove.steps/2)MapView._makeSmoothMove.smoothMove_steps=Math.round(MapView.smoothMove.steps/2);stopWatch.start();setTimeout("MapView._move_process(1)",MapView.smoothMove.time*2)};MapView._move_process=function(step){var mainFn=MapView._makeSmoothMove;var sinus=(Math.cos((step/mainFn.smoothMove_steps)*180*(Math.PI/180))-1)/-2;var pos=mainFn.backupPos.getCopy();var vector=mainFn.vectorOfMove.getCopy();vector.multiply(sinus);pos.minus(vector);MapView.Div.setPosition(pos);var newPos=MapView._makeSmoothMove.fromPos.getCopy().plus(vector.multiply(MapView.actual.map.mirror).rotate(MapView.actual.map.alpha).divide(MapView.actual.map.koef));MapView.actual.setPosition(newPos);SuperNavigator.refresh_quick_navigation();MapView.whenMoving();MapView.dispatchOnchange();if(step<mainFn.smoothMove_steps)setTimeout("MapView._move_process("+(++step)+")",MapView.smoothMove.time);else{MapView.actual.setPosition(MapView._makeSmoothMove.fromPos);MapView._precalc_smooth_steps(MapView.smoothMove);mainFn.stack.free();MapView.copyDiv2Gizmo();Map.setProcessCode(0);mainFn.targetMapView._display();MapView.dispatchOnchange()}};MapView.moveSlow=function(direction){if(!Map.isWorking){stack.clear(0,22);MapView.moveSlow.mouseStillDown=true;MapView.moveSlow.direction=direction.divide(MapView.actual.map.koef).multiply(MapView.actual.map.mirror).rotate(MapView.actual.map.alpha);MapView.moveSlow.maxSpeed=12;MapView.moveSlow.direction.setLimit(new Area(Position.make(MapView.moveSlow.maxSpeed).divide(MapView.actual.map.koef),Position.make(-MapView.moveSlow.maxSpeed).divide(MapView.actual.map.koef)));MapView.moveSlow.clickedElement.onmouseout=MapView.moveSlow.clickedElement.onmouseup=null;MapView.clearGizmo();setTimeout("MapView._moveSlow()",200)}SuperNavigator.lostFocus();return false};MapView._moveSlow=function(){if(MapView.moveSlow.mouseStillDown){if(!Map.isWorking)MapView.whenStarted();if(!MapView.moveSlow.clickedElement.onmouseup){MapView.roundStartPuzzle=false;MapView.moveSlow.clickedElement.onmouseout=document.onmouseup=MapView._moveSlow.endFn;MapView.moveSlow.clickedElement.onselectstart=return_false;MapView.moveSlow.clickedElement.ondrag=return_false}var newMapView=new MapView(MapView.actual.map,MapView.actual.center.getCopy().plus(MapView.moveSlow.direction.multiply(MapView.slowMoveStepMultiply)));newMapView._displayFast();SuperNavigator.refresh_quick_navigation();MapView.whenMoving();MapView.dispatchOnchange();setTimeout("MapView._moveSlow()",MapView.smoothMove.time)}else Map.isWorking=false;return false};MapView._moveSlow.endFn=function(){MapView.roundStartPuzzle=MapView.roundStartPuzzleDefault;MapView.moveSlow.mouseStillDown=false;MapView.dispatchOnchange();MapView.whenFinished();MapView.moveSlow.clickedElement.onmouseout=document.onmouseup=null};MapView.zoomIn=function(e){if(!Map.isWorking&&(MapView.actual.map.next_map||(MapView.actual.map.level<=Map.max_level_statu&&MapView.actualCity))){if(MapView.actualCity&&!MapView.actual.map.next_map){if(!MapView.actualCity.haveLoadedMaps()){MapView.afterCityLoad.Set(MapView.gotoCity,MapView.actualCity,null,MapView.actual.position.getCopy());stack.addProcess(Map.load_mapu_mesta,25.5,MapView.actualCity.id);return false}else var newMapView=MapView.actualCity.first_map}else var newMapView=MapView.actual.map.next_map;new MapView(newMapView,MapView.actual.position.getCopy()).display();MapView.dispatchOnchange()}return false};MapView.zoomOut=function(e){if(MapView.actual.map.previous_map&&!Map.isWorking&&(!MapView.minLevel||MapView.actual.map.level>MapView.minLevel)){var newMap=MapView.actual.map;while(MapView.actual.map.koef<=newMap.koef&&newMap.previous_map)newMap=newMap.previous_map;new MapView(newMap,MapView.actual.position.getCopy()).display();MapView.dispatchOnchange()}return false};MapView.zoomClickOut=function(e){if(rightMouse(e))MapView.zoomOut()};MapView.zoomClick=function(e){if(!Map.isWorking&&!isCtrlPressed(e)){var nextMap=MapView.actual.map.next_map?MapView.actual.map.next_map:MapView.actual.map;var realPos=MapView.getMousePosition(e).outaMapViewDiv(MapView.actual).toBase(MapView.actual.map);if(MapView.actual.map.level>2&&(!MapView.actualCity||MapView.actual.map.level==Map.max_level_statu)){var area=new Area(realPos.getCopy(),realPos.getCopy());var city=new MapView(Map.first_map,MapView.defaultPosition).isInCity(area);if(city&&(!MapView.actual.map.next_map||city.first_koef<MapView.actual.map.next_map.koef)){MapView.gotoCity(city,Map.max_level_statu+1,realPos,true);return false}}if(MapView.actualCity&&MapView.actual.map.level>Map.max_level_statu){var clickCity=MapView.actual.isInCity(new Area(realPos,realPos));if(clickCity&&clickCity!=MapView.actual.map.city){MapView.gotoCity(clickCity);return false}if(!clickCity)if(text["confirm_v_meste_mimo"]&&confirm(text["confirm_v_meste_mimo"])){new MapView(Map.getByLevel(Map.max_level_statu),realPos).display();MapView.dispatchOnchange();return false}}new MapView(nextMap,realPos).display();MapView.dispatchOnchange()}if(!MapView.actual.map.next_map){if(MapView.actual.map.level==Map.max_level_statu)SuperNavigator.message(text["priblizit_uz_nejde_stat"]);else SuperNavigator.message(text["priblizit_uz_nejde"])}};MapView.zoomToLevel=function(level,position){var cityID=(MapView.actualCity)?MapView.actualCity.id:null;if(MapView.actualCity&&!MapView.actualCity.haveLoadedMaps()){MapView.afterCityLoad.Set(MapView.zoomToLevel,level,position);stack.addProcess(Map.load_mapu_mesta,25.5,MapView.actualCity.id,level)}var map=Map.getByLevel(level,cityID);if(!position)var position=MapView.actual.position.getCopy();if(map){new MapView(map,position).display();MapView.dispatchOnchange()}};MapView.afterCityLoad=function(){if(MapView.afterCityLoad.fn)MapView.afterCityLoad.fn(MapView.afterCityLoad.param[0],MapView.afterCityLoad.param[1],MapView.afterCityLoad.param[2],MapView.afterCityLoad.param[3])};MapView.afterCityLoad.Set=function(funkcia,param1,param2,param3,param4){MapView.afterCityLoad.fn=funkcia;MapView.afterCityLoad.param=new Array(param1,param2,param3,param4)};MapView.gotoCity=function(mapCityObj,level,position,progressive){if(!level)var level=Map.max_level_statu+1;if(mapCityObj){stack.clear(0);stack.clear(25);if(!mapCityObj.haveLoadedMaps()){MapView.afterCityLoad.Set(MapView.gotoCity,mapCityObj,level,position,progressive);stack.addProcess(Map.load_mapu_mesta,25.5,mapCityObj.id,level)}else{var mapTo=level?Map.getByLevel(level,mapCityObj.id):mapCityObj.first_map;if(!position)var position=mapCityObj.position.getCopy();if(progressive)while(mapTo.next_map&&(MapView.actual.map.koef*1.1)>mapTo.koef)mapTo=mapTo.next_map;new MapView(mapTo,position).display();MapView.dispatchOnchange();MapView.setActualCity()}}};MapView.zoomInCity=function(mapCityObj,position){if(!level)var level=Map.max_level_statu+1;if(mapCityObj){stack.clear(25);if(!mapCityObj.haveLoadedMaps()){MapView.afterCityLoad.Set(MapView.zoomInCity,mapCityObj,position);stack.addProcess(Map.load_mapu_mesta,25.5,mapCityObj.id,level)}else{var mapTo=mapCityObj.first_map;while(mapTo.next_map&&mapTo.koef<MapView.actual.map.koef)mapTo=mapTo.next_map;if(!position)var position=mapCityObj.position.getCopy();new MapView(mapTo,position).display();MapView.dispatchOnchange()}}};MapView.prototype._zoom=function(){this.loadPuzzles();stack.addProcess(MapView._makeSmoothZoom,Map.processCode,this);MapView.keyIsDown=false;MapView.moveSlow.mouseStillDown=false;SuperNavigator.lostFocus();return false};MapView._makeSmoothZoom=function(targetMapView){var thisFn=MapView._makeSmoothZoom;MapView.whenStarted();this.block(MapView.Div);MapView.copyDiv2Gizmo();MapView.gizmoDiv.dokolko=MapView.actual.getDokolko();MapView.gizmoDiv.setOpacity(100);thisFn.koef=targetMapView.map.koef/MapView.actual.map.koef; thisFn.koefInPercent=Math.round(1/thisFn.koef*100);if(thisFn.koefInPercent<100){MapView.Div.setOpacity(0);MapView.Div.style.zIndex=2;MapView.gizmoDiv.style.zIndex=1}else{MapView.Div.setOpacity(100);MapView.Div.style.zIndex=1;MapView.gizmoDiv.style.zIndex=2}var info=MapView.actual._getInfoToDraw();thisFn.stack=this;thisFn.targetMapView=targetMapView;thisFn.startKoef=thisFn.koefInPercent;thisFn.startView=new Object();thisFn.startView.startPosition=info.position;thisFn.startView.vector=thisFn.startView.startPosition.getVectorTo(MapView.actual.getPositionOfStartPuzzleInBase(true).toThisMap(targetMapView.map).inMapViewDiv(targetMapView));thisFn.targetView=new Object();thisFn.targetView.startPosition=targetMapView.getPositionOfStartPuzzleInBase(true).toThisMap(MapView.actual.map).inMapViewDiv(MapView.actual);thisFn.targetView.vector=thisFn.targetView.startPosition.getVectorTo(targetMapView.getPositionOfStartPuzzleInThisLevel(true).inMapViewDiv(targetMapView));thisFn.quickNavDisplace=MapView.actual.center.getVectorTo(targetMapView.center).multiply(Map.first_map.koef).rotate(-Map.first_map.alpha).multiply(Map.first_map.mirror);targetMapView._displayFast();MapView.Div.setZoom(thisFn.startKoef);MapView.Div.setPosition(thisFn.targetView.startPosition);MapView.Div.dokolko=targetMapView.getDokolko();thisFn.patternMapFrom=MapView.gizmoDiv.cloneNode(true);thisFn.patternMapFrom.id="";thisFn.patternMapFrom.style.zIndex="";thisFn.patternMapTo=MapView.Div.cloneNode(true);thisFn.patternMapTo.id="";thisFn.patternMapTo.style.zIndex="";thisFn.mapFromStack=new Array();thisFn.mapToStack=new Array();MapView.gizmoDiv.style.zIndex=2;MapView.Div.innerHTML="";MapView.Div.setPosition(new Position(0,0));MapView.Div.style.width="2000px";MapView.Div.style.height="2000px";MapView.Div.setOpacity(100);var mainFn,progress,pi90,zoomKoef,gizmoZoomKoef,posGiz,posDiv;var MapToDiv,MapFromDiv;for(var step=0;step<=MapView.smoothZoom.steps;step++){mainFn=MapView._makeSmoothZoom;progress=step/MapView.smoothZoom.steps; pi90=1-Math.pow(Math.cos(progress*90*Math.PI/180),2);zoomKoef=thisFn.koefInPercent+Math.round((100-thisFn.koefInPercent)*pi90);gizmoZoomKoef=Math.round(100/thisFn.koefInPercent*zoomKoef);posGiz=thisFn.startView.startPosition.getCopy().plus(thisFn.startView.vector.getCopy().multiply(pi90));posDiv=thisFn.targetView.startPosition.getCopy().plus(thisFn.targetView.vector.getCopy().multiply(pi90));MapFromDiv=thisFn.patternMapFrom.cloneNode(true);MapToDiv=thisFn.patternMapTo.cloneNode(true);MapFromDiv.style.position="absolute";MapToDiv.style.position="absolute";MapFromDiv.setPosition=MapToDiv.setPosition=Position.setPositionHTML;MapFromDiv.setZoom=MapToDiv.setZoom=HTMLElementWithPicturesZoom;MapFromDiv.setOpacity=MapToDiv.setOpacity=HTMLElementOpacity;thisFn.mapFromStack[step]=MapFromDiv;thisFn.mapToStack[step]=thisFn.lastMapTo=MapToDiv;MapToDiv.setZoom(zoomKoef,MapView.Div.dokolko.x);MapToDiv.setPosition(posDiv);MapFromDiv.setZoom(gizmoZoomKoef,MapView.gizmoDiv.dokolko.x);MapFromDiv.setPosition(posGiz);MapFromDiv.style.display="none";MapToDiv.style.display="none";if(thisFn.koefInPercent>=100){if(!browser.tooSlowNS)MapFromDiv.setOpacity(100-Math.round(100*pi90));MapView.Div.appendChild(MapToDiv);if(!browser.tooSlowNS)MapView.Div.appendChild(MapFromDiv);MapFromDiv.style.zIndex=1-step*2;MapToDiv.style.zIndex=1-step*2-1}if(thisFn.koefInPercent<100){if(!browser.tooSlowNS)MapToDiv.setOpacity(Math.round(100*pi90));MapView.Div.appendChild(MapFromDiv);if(!browser.tooSlowNS)MapView.Div.appendChild(MapToDiv);MapFromDiv.style.zIndex=1-step;MapToDiv.style.zIndex=1-step}}stopWatch.start();setTimeout("MapView._zoom_process(0)",MapView.smoothMove.time*2);Map.isWorking=false};MapView._zoom_process=function(step){if(step==1)MapView.clearGizmo();var mainFn=MapView._makeSmoothZoom;if(MapView._makeSmoothZoom.mapFromStack[step])MapView._makeSmoothZoom.mapFromStack[step].style.display="block";if(MapView._makeSmoothZoom.mapToStack[step])MapView._makeSmoothZoom.mapToStack[step].style.display="block";if(browser.isNS&&step+1<=MapView.smoothZoom.steps){if(MapView._makeSmoothZoom.mapFromStack[step+1])MapView._makeSmoothZoom.mapFromStack[step+1].style.display="block";if(MapView._makeSmoothZoom.mapToStack[step+1])MapView._makeSmoothZoom.mapToStack[step+1].style.display="block"}for(var i=0;i<=MapView.smoothZoom.steps;i++)if((browser.isNS&&i!=step&&i!=step+1)||(!browser.isNS&&i!=step)){if(MapView._makeSmoothZoom.mapFromStack[i])MapView._makeSmoothZoom.mapFromStack[i].style.display="none";if(MapView._makeSmoothZoom.mapToStack[i])MapView._makeSmoothZoom.mapToStack[i].style.display="none"}var progress=step/MapView.smoothZoom.steps; var pi90=1-Math.pow(Math.cos(progress*90*Math.PI/180),2);var koef=mainFn.koef-(mainFn.koef-1)*pi90;var displace=mainFn.quickNavDisplace.getCopy().multiply(1-pi90).multiply(-1);SuperNavigator.refresh_quick_navigation(displace,koef);if(step<MapView.smoothZoom.steps)setTimeout("MapView._zoom_process("+(++step)+")",MapView.smoothZoom.time);else{MapView.Div.innerHTML=mainFn.lastMapTo.innerHTML;MapView.Div.style.width=mainFn.lastMapTo.style.width;MapView.Div.style.height=mainFn.lastMapTo.style.height;MapView.Div.style.left=mainFn.lastMapTo.style.left;MapView.Div.style.top=mainFn.lastMapTo.style.top;if(mainFn.koefInPercent>=100){MapView.Div.style.zIndex=2;MapView.gizmoDiv.style.zIndex=1}else{MapView.gizmoDiv.setOpacity(0);MapView.Div.setOpacity(100);MapView.copyDiv2Gizmo()}MapView._precalc_smooth_steps(MapView.smoothZoom);mainFn.stack.free();Map.setProcessCode(0);mainFn.targetMapView._display();MapView.dispatchOnchange()}};MapView._precalc_smooth_steps=function(smoothWhat){var cas=stopWatch.stop();if(cas>(MapView.smoothTime*1.4)*MapView.smoothTimeMaxKoef&&(!browser.isNS||(browser.isNS&&browser.tooSlowNS)))smoothWhat.enabled=false;smoothWhat.steps=Math.round(smoothWhat.steps*(MapView.smoothTime*1.4)/cas);if(browser.isNS&&cas>(MapView.smoothTime*1.4)*MapView.smoothTimeMaxKoef&&browser.tooSlowNS)smoothWhat.enabled=false;if(smoothWhat==MapView.smoothZoom&&browser.isNS&&!browser.tooSlowNS&&smoothWhat.steps<=1){browser.tooSlowNS=true;smoothWhat.steps=smoothWhat.DefaultStep}if(smoothWhat.enabled&&smoothWhat.steps<=1)smoothWhat.steps=3;if(smoothWhat.steps/2>smoothWhat.DefaultStep)smoothWhat.steps=smoothWhat.DefaultStep*2};MapView.copyGizmo2Div=function(){MapView.Div.style.width=MapView.gizmoDiv.style.width;MapView.Div.setPosition(new Position(parseInt(MapView.gizmoDiv.style.left),parseInt(MapView.gizmoDiv.style.top)));if(MapView.gizmoDiv.html!="")MapView.Div.innerHTML=MapView.gizmoDiv.html;else MapView.Div.innerHTML=MapView.gizmoDiv.innerHTML;MapView.gizmoDiv.html=""};MapView.clearGizmo=function(){MapView.gizmoDiv.innerHTML=""};MapView.copyDiv2Gizmo=function(){MapView.gizmoDiv.style.width=MapView.Div.style.width;MapView.gizmoDiv.setPosition(new Position(parseInt(MapView.Div.style.left),parseInt(MapView.Div.style.top)));MapView.gizmoDiv.innerHTML=MapView.Div.innerHTML};MapView.whenStarted=function(){MapView.hidePointer();if(!Map.isWorking){Map.isWorking=true;if(MapView.objectsDiv)MapView.objectsDiv.hide();if(MapView.showOnProfile)MapView.showOnProfile.style.display="none";if(MapView.distanceDiv)MapView.distanceDiv.style.display="none";if(MapView.addObjects)MapView.addObjects(true);if(window.MyPosition&&SuperNavigator.loggedFirm&&SuperNavigator.loggedFirm.id)MyPosition.redraw(true)}};MapView.setFnWhenFinished=function(fn){MapView.addObjects=fn};MapView.addObjects=null;MapView.whenMovingFn=null;MapView.whenMoving=function(){if(MapView.whenMovingFn)MapView.whenMovingFn()};MapView.setFnWhenMoving=function(fn){MapView.whenMovingFn=fn};MapView.whenFinished=function(){if(MapView.actual)MapView.actual.recalcTranformation();MapView.map_was_displayed=true;MapView.gizmoDiv.style.zIndex=-1;Map.isWorking=false;MapView.addCitiesEntries();MapView.objectsDiv.show();MapView.setActualCity();MapCity.selectActualCity();SuperNavigator.showLevels();SuperNavigator.refresh_quick_navigation();setTimeout("if (MapView.addObjects && typeof(MapView.addObjects)=='function') MapView.addObjects();",100);if(SuperNavigator.distancePosition)MapView.showDistanceToPosition(SuperNavigator.distancePosition);if(window.MyPosition&&!MapView.addObjects&&(MyPosition.ONLY_GIZMO_POSITIONS||(SuperNavigator.loggedFirm&&SuperNavigator.loggedFirm.id)))MyPosition.redraw();Map.setProcessCode(null)};MapView.clear=function(){MapView.whenFinished();MapView.hidePointer()};MapView.addCitiesEntries=function(plus){if(MapView.actual&&MapView.actual.map.level==Map.max_level_statu){var size,pos;var objekt="";var obsah="";var mesta=MapView.mesta=MapView.actual.isIn();if(!browser.isNS)for(var i=0;i<mesta.length;i++){size=mesta[i].size.getCopy().multiply(MapView.actual.map.koef);objekt='<a href="" ';objekt+="onmousemove=\"SuperNavigator.message('"+mesta[i].nazov+"')\" ";objekt+='onclick="MapView.zoomInCity( mapCity['+mesta[i].id+'], MapView.getRealMousePosition() ); return false;" style="';objekt+="border: 0;";objekt+=size.printToStyleHTML();pos=mesta[i].position.toThisMap(MapView.actual.map).inMapViewDiv(MapView.actual).minus(size.getCopy().divide(2));objekt+=pos.printToStyleHTML();objekt+='" class="city">';objekt+='<img src="../img/s.gif" width="'+Math.round(size.width)+'" height="'+Math.round(size.height)+'" border="0" />';objekt+='</a>';obsah+=objekt}MapView.objectsDiv.innerHTML=obsah}else{MapView.mesta=new Array();MapView.objectsDiv.innerHTML=""}};MapView.setActualCity=function(){if(MapView.actual){var mesto;if(MapView.mesta.length>0){var min_distance=10000;var min_i=0;var compare_distance=0;for(var i=0;i<MapView.mesta.length;i++){compare_distance=Position.getDistance(MapView.actual.position,MapView.mesta[i].position);if(compare_distance<min_distance){min_i=i;min_distance=compare_distance}}var mesto=MapView.mesta[min_i];MapCity.selectCity(mesto.id);if(MapCity.selectMesta)MapCity.selectMesta.onclick=function(){MapView.gotoCity(mesto);SuperNavigator.lostFocus()}}else if(MapCity.selectMesta)MapCity.selectMesta.onclick=null;if(!mesto&&MapView.actual.map.city)var mesto=MapView.actual.map.city;if(!mesto)MapCity.selectCity();MapView.actualCity=mesto}};MapView.keyDown=function(e){if(!e)e=window.event;var key=getKeyCode(e);if((key>=33&&key<=40)||(key>=48&&key<=57)||(key>=96&&key<=105)||key==107||key==109||key==187||key==189||e.ctrlKey){MapView.keyIsDown=true;if(e.ctrlKey){document.body.style.cursor='move';if(document.getElementById('mainmap'))document.getElementById('mainmap').style.cursor='move';if(document.getElementById('gizmomap'))document.getElementById('gizmomap').style.cursor='move';if(document.getElementById('mapobjects'))document.getElementById('mapobjects').style.cursor='move';if(document.getElementById('distanceDiv'))document.getElementById('distanceDiv').style.cursor='move';if(document.getElementById('spadove_oblasti'))document.getElementById('spadove_oblasti').style.cursor='move'}if(key==36)MapView.moveLeftUp();if(key==38)MapView.moveUp();if(key==33)MapView.moveRightUp();if(key==37)MapView.moveLeft();if(key==39)MapView.moveRight();if(key==35)MapView.moveLeftDown();if(key==40)MapView.moveDown();if(key==34)MapView.moveRightDown();if(key==187||key==107)MapView.zoomIn();if(key==109||key==189)MapView.zoomOut();if(key>=96&&key<=105)key-=48;if(key==48)key+=10;for(var level=1;level<=Map.max_level_statu;level++)if(level==key-48)MapView.zoomToLevel(level);if(MapView.actualCity)for(var level=Map.max_level_statu+1;level<=Map.max_level_statu+MapView.actualCity.level_count;level++)if(level==key-48)MapView.zoomToLevel(level);return false}if(key==123&&!e.ctrlKey){var text="";if(window.Firm)text+="Firms: "+Firm.allCount()+"\n\n";if(window.Street)text+="Streets: "+Street.allCount()+"\n\n";if(window.City)text+="Cities: "+City.allCount()+"\n\n";if(window.Category)text+="Categories: "+Category.allCount()+"\n\n";text+="Loaded maps: ";var a=0;for(var i in mapCity){a++;if(typeof(mapCity[i])=="object"&&mapCity[i].haveLoadedMaps())text+=mapCity[i].nazov+"; "}text+=" ("+a+")";alert(text)}};MapView.keyUp=function(e){if(!e)e=window.event;var key=getKeyCode(e);if(key=17){document.body.style.cursor='default';if(document.getElementById('mainmap'))document.getElementById('mainmap').style.cursor='';if(document.getElementById('gizmomap'))document.getElementById('gizmomap').style.cursor='';if(document.getElementById('mapobjects'))document.getElementById('mapobjects').style.cursor='';if(document.getElementById('distanceDiv'))document.getElementById('distanceDiv').style.cursor='';if(document.getElementById('spadove_oblasti'))document.getElementById('spadove_oblasti').style.cursor=''}MapView.keyIsDown=false};MapView.getMousePosition=function(e){SuperNavigator.mouse=new Position((browser.isNS)?e.pageX:event.clientX,(browser.isNS)?e.pageY:event.clientY);if(!browser.isNS)SuperNavigator.mouse.plus(getScrollPosition());if(browser.isIE&&browser.version>=6)SuperNavigator.mouse.minus(2);SuperNavigator.mouse.minus(offset_objektu(getById('map')));return SuperNavigator.mouse};MapView.getRealMousePosition=function(e){return MapView.getMousePosition(e).outaMapViewDiv(MapView.actual).toBase(MapView.actual.map)};MapView.drag=new Object();MapView.drag.min=new Area();MapView.drag.max=new Area();MapView.drag.specialKoef=1;MapView.drag.specialDisplace=new Position(0,0);MapView.drag.setValidArea=function(area){MapView.drag.validArea=area};MapView.drag.mainGetPos=function(e){var mousePos=MapView.getMousePosition(e);mousePos.setLimit(MapView.drag.validArea);return mousePos};MapView.drag.quickGetPos=function(e){var mousePos=getMousePosition(e).minus(offset_objektu(getById('quick_navigation_map')));mousePos.setLimit(MapView.drag.validArea);return mousePos};MapView.drag.isQuickMap=function(){if(!MapView.drag.obj.parentNode)return false;return MapView.drag.obj&&(MapView.drag.obj.id=="quick_navigation_map"||MapView.drag.obj.parentNode.id=="quick_navigation_map")};MapView.ENABLE_ZOOMING=true;MapView.drag.start=function(e){if((window.MyPosition&&MyPosition.countWhileMoving>0)||(window.AdminPortal&&AdminPortal.countWhileMoving>0))return false;MapView.drag.obj=eventElement(e);if(!Map.isWorking&&MapView.drag.obj.parentNode.className=="city"&&!rightMouse(e))return false;if(rightMouse(e)&&!Map.isWorking&&(MapView.drag.obj.parentNode.className=="i"))MapView.zoomOut();if(!Map.isWorking&&((MapView.drag.obj.parentNode&&MapView.drag.obj.parentNode.className!="i")||(SuperNavigator.cannotOpenProfiles&&!SuperNavigator.clientsProfileFn))){MapView.drag.isSelectingNotMoving=!isCtrlPressed(e)&&MapView.ENABLE_ZOOMING;if(rightMouse(e)){if(!MapView.drag.isQuickMap())MapView.zoomClickOut(e);else MapView.zoomOut()}else{if(MapView.drag.isQuickMap()){if(!(MapView.drag.object=getById('quicknavbox')))return false;MapView.drag.object.setOpacity(100);MapView.drag.object.finish=function(){this.style.display="none"};MapView.drag.setValidArea(new Area(new Position(0,0),new Position(getById('quick_navigation_map').offsetWidth,getById('quick_navigation_map').offsetHeight)));MapView.drag.koef=MapView.drag.specialKoef;MapView.drag.displace=MapView.drag.specialDisplace;MapView.drag.getMousePosition=MapView.drag.quickGetPos}else{if(!(MapView.drag.object=MapView.selectMapDiv))return false;MapView.drag.object.finish=function(){this.style.zIndex="0";this.style.left="-2000px"};MapView.drag.setValidArea(new Area(new Position(0,0),new Position(MapView.getWidth(),MapView.getHeight())));MapView.drag.koef=1;MapView.drag.displace=new Position(0,0);MapView.drag.getMousePosition=MapView.drag.mainGetPos}MapView.drag.onmousemoveBackup=document.onmousemove;document.onmousemove=MapView.drag.onMove;document.onmouseup=MapView.drag.end;if(MapView.drag.isSelectingNotMoving)MapView.drag.start=MapView.drag.finish=MapView.drag.getMousePosition(e);else{MapView.whenStarted();MapView.clearGizmo();MapView.Div.style.cursor="move";MapView.drag.start=MapView.drag.finish=getMousePosition(e);if(MapView.onbeforedrag)MapView.onbeforedrag()}MapView.drag.lastTime=new Date().getTime();MapView.drag.e=e;MapView.drag.countMove=0;MapView.drag.object.innerHTML='';MapView.drag.object.style.zIndex="10"}}return false};MapView.drag.onMove=function(e){MapView.drag.countMove++;if(MapView.drag.isSelectingNotMoving){MapView.drag.finish=MapView.drag.getMousePosition(e);MapView.drag.draw()}else if(MapView.drag.countMove%3==0||MapView.drag.lastTime+(50*1700/browser.speed)<new Date().getTime()){if(MapView.objectsDiv)MapView.objectsDiv.hide();MapView.drag.lastTime=new Date().getTime();MapView.roundStartPuzzle=false;MapView.drag.finish=getMousePosition(e);MapView.drag.move=MapView.drag.finish.getCopy().minus(MapView.drag.start).multiply(MapView.actual.map.mirror);MapView.drag.start=MapView.drag.finish.getCopy();new MapView(MapView.actual.map,MapView.actual.center.getCopy().minus(MapView.drag.move.getCopy().divide(MapView.actual.map.koef)))._displayFast();MapView.whenMoving();MapView.dispatchOnchange();SuperNavigator.refresh_quick_navigation()}return false};MapView.drag.end=function(e){MapView.drag.maxMoveForClick=4;document.onmousemove=MapView.drag.onmousemoveBackup;document.onmouseup=null;MapView.drag.draw();MapView.drag.object.finish();if(MapView.drag.isSelectingNotMoving){if(MapView.drag.countMove<MapView.drag.maxMoveForClick&&!MapView.drag.isQuickMap()){MapView.zoomClick(e)}else{var areaCenter=MapView.drag.area.getCenter().plus(MapView.drag.displace).multiply(MapView.drag.koef);var size=MapView.drag.area.getSize().multiply(MapView.drag.koef);var koef=0.8/2; var selectFromView=(MapView.drag.getMousePosition==MapView.drag.quickGetPos)?new MapView(Map.first_map,MapView.defaultPosition):MapView.actual;if(MapView.drag.getMousePosition==MapView.drag.quickGetPos)selectFromView.changeSize(new Size(2,2));if(!MapView.drag.isQuickMap())areaCenter.minus(selectFromView.displace).plus(MapView.specialPos);var halfSize=size.getCopy().multiply(koef);var pos1=areaCenter.getCopy().minus(halfSize).outaMapViewDiv(selectFromView);var pos2=areaCenter.getCopy().plus(halfSize).outaMapViewDiv(selectFromView);var area=new Area(pos1,pos2).toBase(selectFromView.map);if(MapView.drag.countMove<MapView.drag.maxMoveForClick&&MapView.drag.isQuickMap()){area=new Area(area.getCenter(),area.getCenter());var city=selectFromView.isInVipCity(area);if(city){MapView.gotoCity(city)}else{SuperNavigator.refresh_quick_navigation();MapView.createFromMap(Map.getByLevel(Math.floor(Map.max_level_statu/2)),area.getCenter()).display();MapView.dispatchOnchange()}}else MapView.zoom2optimum(area,!MapView.drag.isQuickMap())}}else{MapView.whenFinished();if(MapView.events2clientURL)MapView.events2client(MapView.actual);MapView.dispatchOnchange();if(MapView.onafterdrag)MapView.onafterdrag()}MapView.Div.style.cursor="";SuperNavigator.lostFocus();return false};MapView.drag.getSize=function(){var size=MapView.drag.area.getSize();size.setLimit(new Area(new Position(1,1),null));return size};MapView.drag.draw=function(){MapView.drag.area=new Area(MapView.drag.start,MapView.drag.finish);var pos=MapView.drag.area.cornerUL.getCopy().minus(browser.isOP?Position.make(-5):Position.make(1));var size=MapView.drag.getSize().minus(1);pos.setLimit(new Area(new Position(0,0),null));MapView.drag.object.style.left=parseInt(pos.x)+'px';MapView.drag.object.style.top=parseInt(pos.y)+'px';MapView.drag.object.style.width=parseInt(size.width)+'px';MapView.drag.object.style.height=parseInt(size.height)+'px';MapView.drag.object.style.borderWidth="1px";MapView.drag.object.style.display="block"};MapView.zoom2optimum=function(area,progressive){var dist=62;area.cornerUL.x-=dist;area.cornerBR.x+=dist;area.cornerUL.y-=dist;area.cornerBR.y+=dist;var city=new MapView(Map.first_map,MapView.defaultPosition).isInCity(area);if(city){if(!city.haveLoadedMaps()){MapView.afterCityLoad.Set(null);stack.addProcess(Map.load_mapu_mesta,25.5,city.id,-1);stack.addProcess(MapView.zoom2optimum_stack,25.5,area);return false}var mapa=city.last_map}else var mapa=Map.getByLevel(Map.max_level_statu);var stred=area.getCenter();while(mapa){if(area.isInArea(new MapView(mapa,stred).getArea()))break;mapa=mapa.previous_map}if(!mapa)mapa=Map.first_map;if(progressive&&MapView.actual&&MapView.actual.map==mapa&&mapa.next_map)mapa=mapa.next_map;new MapView(mapa,stred).display();MapView.dispatchOnchange()};MapView.zoom2optimum_stack=function(area){this.block(SuperNavigator.loadFrame);MapView.zoom2optimum(area);this.free()};MapView.zoom2max=function(position,cityID){if(!Map.isWorking){if(stack.actualProcessCode()!=22){if(stack.actualProcessCode()<=30)stack.clear();Map.setProcessCode(22);if(cityID&&mapCity[cityID]){MapView.gotoCity(mapCity[cityID],Map.max_level_statu+mapCity[cityID].level_count,position);return false}new MapView(Map.getByLevel(Map.max_level_statu),position).display();MapView.dispatchOnchange()}}};MapView.showPointer=function(pos){SuperNavigator.showPointerOnMap(pos)};MapView.hidePointer=function(){SuperNavigator.hidePointerOnMap()};MapView.prototype.isIn=function(vip){var area=this.getArea();var mesta=new Array();for(var i in mapCity){if(typeof(mapCity[i])=="object"&&(!vip||mapCity[i].vip))if(mapCity[i].getArea().isPartlyInArea(area))mesta[mesta.length]=mapCity[i]}mesta=mesta.sort(MapView.isInCityOrder);return mesta};MapView.prototype.isInCity=function(area){return MapView.whichCityInArea(this.isIn(),area)};MapView.prototype.isInVipCity=function(area){return MapView.whichCityInArea(this.isIn(true),area,2)};MapView.isInCityOrder=function(a,b){return(a.size.width+a.size.height)-(b.size.width+b.size.height)};MapView.whichCityInArea=function(mesta,area,specialKoef){if(!specialKoef)var specialKoef=1;newArea=area.getCopy().resize(1/specialKoef);for(var i=0;i<mesta.length;i++)if(newArea.isInArea(mesta[i].getArea()))return mesta[i];return null};
MapView.showDistanceToPosition=function(position)
{
	if(browser.isIE&&browser.version>5.5&&MapView.distanceDiv.filters.length>0&&MapView.distanceDiv.filters.item(0))
	{
		MapView.showDistance2=MapView.showDistance+(500/MapView.actual.map.koef)*6;
		if(MapView.showDistance2<MapView.showDistanceMinimal)MapView.showDistance2=MapView.showDistanceMinimal;
		if(MapView.showDistance2>MapView.showDistanceMaximal)MapView.showDistance2=MapView.showDistanceMaximal;
		var pos=position.getCopy().toThisMap(MapView.actual.map).inMapViewDiv(MapView.actual);
		var center=MapView.getSize().divide(2).plus(MapView.specialPos);
		var vector=center.getCopy().getVectorTo(pos);
		var uhol=Angle.getFromVectors(vector,new Position(1,0));
		var dist=Position.getDistance(MapView.actual.center,position);
		var sin2=Math.sin(uhol.alfa*2);var opacity=((dist*MapView.actual.map.koef)-MapView.showDistance2)/4;
		if(opacity<0)opacity=0;
		if(opacity>80)opacity=80;
		MapView.distanceDiv.filters.item(0).M11=uhol.cos;MapView.distanceDiv.filters.item(0).M12=-uhol.sin;
		MapView.distanceDiv.filters.item(0).M21=uhol.sin;MapView.distanceDiv.filters.item(0).M22=uhol.cos;
		MapView.distanceDiv.filters.item(1).Opacity=parseInt(opacity);
		center.minus(MapView.distanceDiv.halfSize);
		MapView.distanceDiv.style.left=parseInt(center.getX())+"px";
		MapView.distanceDiv.style.top=parseInt(center.getY())+"px";
		MapView.distanceDiv.style.display="block";
		var jednotky="m";
		dist*=SuperNavigator.baseMapUnitToMetersKoef*Map.firstMapKoef;
		dist=Math.round(dist);
		if(dist>1000){jednotky="km";dist/=1000;dist=Math.round(dist*10)/10}
		if(dist>10)dist=Math.round(dist);
		MapView.distanceDiv.innerHTML=dist+" "+jednotky
	}
};
MapView.showDistanceMaximal=MapView.showDistance=180;MapView.showDistanceMinimal=10;MapView.getActualKoefInMeters=function(length){return parseInt(MapView.actual.map.koef*length*0.00351*1.71/Map.firstMapKoef)+1};MapView.getFirstKoefInMeters=function(length){return length*0.00351*0.25*0.84};MapView.getLocationStateURLParams=function(){return(MapView.actual.map.city?"cityID="+MapView.actual.map.city.id+"&":"")+"level="+MapView.actual.map.level+"&x="+MapView.actual.position.getX()+"&y="+MapView.actual.position.getY()};MapView.onchange=null;MapView.dispatchOnchange=function(){MapView._calculateAreaOfCurrentView();MapView.actual.recalcTranformation();if(MapView.onchange)MapView.onchange()};MapView.onbeforezoom=function(){};MapView.onafterzoom=function(){};MapView.onbeforezoomin=function(){};MapView.onafterzoomin=function(){};MapView.onbeforezoomout=function(){};MapView.onafterzoomout=function(){};MapView.onbeforemove=function(){};MapView.onaftermove=function(){};MapView.onbeforedrag=null;MapView.onafterdrag=null;MapView.events2clientURL=null;MapView.events2clientIFrame=null;MapView.createEvents2clientIFrame=function(){var divContainer=document.createElement('div');divContainer.id='events2clientContainer';divContainer.style.position='absolute';divContainer.style.left='-1000px';divContainer.style.top='-1000px';document.body.appendChild(divContainer);divContainer.innerHTML+='<iframe src="blank.php" id="events2clientIFrame"></iframe>';MapView.events2clientIFrame=getById('events2clientIFrame')};MapView.loadToEvents2clientIFrame=function(url){if(MapView.events2clientIFrame.contentWindow)MapView.events2clientIFrame.contentWindow.location.replace(url);else MapView.events2clientIFrame.src=url};MapView.events2client=function(area,level,cityID){if(arguments.length==1){var mv=area;area=mv.getArea();level=mv.map.level;cityID=mv.map.city?mv.map.city.id:0}var oldArea=MapView.events2client.oldArea;if(oldArea&&(typeof(oldArea)=='boolean'||!oldArea.cornerUL.isSameWith(area.cornerUL)||!oldArea.cornerBR.isSameWith(area.cornerBR)||MapView.events2client.oldLevel!=level||MapView.events2client.oldCityID!=cityID)){MapView.loadToEvents2clientIFrame(MapView.events2clientURL+'?x1='+area.cornerUL.getX()+'&y1='+area.cornerUL.getY()+'&x2='+area.cornerBR.getX()+'&y2='+area.cornerBR.getY()+'&level='+level+'&cityID='+cityID);MapView.events2client.oldArea=area;MapView.events2client.oldLevel=level;MapView.events2client.oldCityID=cityID}if(!oldArea)MapView.events2client.oldArea=true};MapView.events2client.oldArea=null;MapView.events2client.oldLevel=null;MapView.events2client.oldCityID=null;