/**
 * Canvas 2D Map
 *
 * Author: Afutin Dmitry (dim@sevsky.net)
 * Date: 2011
 */

C01=function(a){this.m01(a)};$.extend(C01.prototype,{canvas:null,domCanvas:null,mapper:null,mouseDownFlag:false,mouseOverFlag:false,passedDistance:0,deltaLeft:0,m01:function(a){this.mapper=a;this.canvas=this.mapper.canvasMarker?this.mapper.canvasMarker:this.mapper.canvas;this.domCanvas=this.mapper.domCanvasMarker?this.mapper.domCanvasMarker:this.mapper.domCanvas},m02:function(){var b=this;$(document).bind("mousedown",function(a){b.m04(a)});$(document).bind("mousemove",function(a){b.m05(a)});$(document).bind("mouseup",function(a){b.m06(a)});$(document).bind("dblclick",function(a){b.m07(a)});this.domCanvas.bind("DOMMouseScroll",function(a){b.m08(a.originalEvent)});this.domCanvas.bind("mousewheel",function(a){b.m08(a.originalEvent)});this.domCanvas.bind("mouseover",function(a){b.m09(a)});this.domCanvas.bind("mouseout",function(a){b.m10(a)});$(window).resize(function(a){b.m11(a)})},m03:function(e){var a=this.m405(e);return(a.x>=0&&a.y>=0&&a.x<=this.canvas.width&&a.y<=this.canvas.height)},m04:function(e){if(this.mouseOverFlag){this.mouseDownFlag=true;clearInterval(this.mapper.currSetIntId);this.mapper.dragger.m202(e)}},m05:function(e){var a=true;if(this.mapper.tools&&this.mapper.tools.pointMouseOverFlag)a=false;if(this.mouseDownFlag&&a){clearInterval(this.currSetIntId);if(this.mapper.GlobalParams.miniMap){this.mapper.dragger.m205(e);if(this.mapper.GlobalParams.mini){this.mapper.handler.m602()}else{this.mapper.m414()}}else{this.mapper.dragger.m205(e)}this.passedDistance++}if(this.mouseOverFlag&&this.mouseDownFlag&&this.mapper.tools&&this.mapper.tools.pointMouseOverFlag){this.mapper.tools.m813(e)}else if(this.mouseOverFlag&&this.mapper.tools&&this.mapper.tools.editFlag){this.mapper.tools.m812(e)}},m06:function(e){if(this.mouseDownFlag&&this.passedDistance>0){this.mapper.m403("MoveEnd");this.passedDistance=0}else if(this.mouseOverFlag&&this.passedDistance==0&&!this.mapper.GlobalParams.mini){this.mapper.m403("mouseclick",e)}this.mapper.m403(e.type);this.mouseDownFlag=false;if(this.mouseOverFlag)this.mapper.dragger.m203(e)},m07:function(e){if(this.mapper.tools&&this.mapper.tools.pointMouseOverFlag){this.mapper.tools.m815()}},m08:function(e){if(!this.mapper.GlobalParams.mini){var a=0;if(!e)e=window.event;if(e.wheelDelta){a=e.wheelDelta/120}else if(e.detail){a=-e.detail/3}this.deltaLeft=a;clearInterval(this.mapper.currSetIntId);this.mapper.zoomer.m901(a,e)}},m09:function(e){this.mouseOverFlag=true},m10:function(e){this.mouseOverFlag=false;if(this.mapper.tools)this.mapper.tools.m812(e)},m11:function(){if(!this.mapper.GlobalParams.mini)this.mapper.resizer.m705()}});C02=function(a,b){this.m01(a,b)};$.extend(C02.prototype,{mapper:null,marker:null,zoomer:null,centerCrd:{x:0,y:0},centerCrdShift:{x:0,y:0},mouseServCrd:{x:0,y:0},dragCursorCurrPos:{x:0,y:0},dragCursorPrevPos:{x:0,y:0},newTileLoadCnt:{shiftX:0,shiftY:0,directionCurr:0},stopDrawNewTiles:false,resizingFlag:false,shiftDelta:{},m01:function(a,b){this.mapper=b},m202:function(e){var a=this.mapper.m405(e);this.dragCursorPrevPos.x=a.x;this.dragCursorPrevPos.y=a.y},m203:function(e){var a=this.mapper.m405(e);if(this.marker&&this.marker.markersCnt>0)this.marker.m510({x:a.x,y:a.y})},m204:function(e){},m205:function(e,a){if(e){var b=this.dragCursorCurrPos=this.mapper.m405(e);this.shiftDelta={x:this.dragCursorCurrPos.x-this.dragCursorPrevPos.x,y:this.dragCursorCurrPos.y-this.dragCursorPrevPos.y};this.dragCursorPrevPos=b;this.resizingFlag=false}else if(a){this.shiftDelta=a;this.resizingFlag=a.resizingFlag}if(!this.resizingFlag){this.centerCrd.x+=Math.round(this.shiftDelta.x/this.mapper.currZoom);this.centerCrd.y+=Math.round(this.shiftDelta.y/this.mapper.currZoom)}this.centerCrdShift.x+=this.shiftDelta.x;this.centerCrdShift.y+=this.shiftDelta.y;if(!this.stopDrawNewTiles){while(this.mapper.minimaxCanvCrds.minX>0){this.newTileLoadCnt.directionCurr=1;this.m206({x:0,y:this.centerCrdShift.y},{x:-1,y:0})}while((this.mapper.minimaxCanvCrds.maxX+this.mapper.tileSize<this.canvas.width)){this.newTileLoadCnt.directionCurr=2;this.m206({x:0,y:this.centerCrdShift.y},{x:1,y:0})}while(this.mapper.minimaxCanvCrds.minY>0){this.newTileLoadCnt.directionCurr=3;this.m206({x:this.centerCrdShift.x,y:0},{x:0,y:1})}}while((this.mapper.minimaxCanvCrds.maxY+this.mapper.tileSize<this.canvas.height)){this.newTileLoadCnt.directionCurr=4;this.m206({x:this.centerCrdShift.x,y:0},{x:0,y:-1})}this.mapper.minimaxCanvCrds.minX=this.mapper.minimaxCanvCrds.maxX=this.mapper.__TILES__[0].canvX;this.mapper.minimaxCanvCrds.minY=this.mapper.minimaxCanvCrds.maxY=this.mapper.__TILES__[0].canvY;for(var c=0;c<this.mapper.__TILES__.length;c++){this.mapper.__TILES__[c].canvX+=this.shiftDelta.x;this.mapper.__TILES__[c].canvY+=this.shiftDelta.y;this.mapper.__TILES__[c].drawned=false;if(this.zoomer&&this.zoomer.__ANIM_TILES__[c]){this.zoomer.__ANIM_TILES__[c].shiftCanvX+=this.shiftDelta.x;this.zoomer.__ANIM_TILES__[c].shiftCanvY+=this.shiftDelta.y;this.zoomer.__ANIM_TILES__[c].drawned=false}}if(a&&a.secondCallForSyncMapsFlag){this.centerCrd.x-=Math.round(this.shiftDelta.x/this.mapper.currZoom);this.centerCrd.y-=Math.round(this.shiftDelta.y/this.mapper.currZoom)}this.mapper.m426();this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);if(this.marker){this.marker.m507();this.ctxMarker.clearRect(0,0,this.canvas.width,this.canvas.height)}if(this.mapper.tools)this.mapper.tools.polygonDrawned=false;this.mapper.m421();this.mapper.m419();if(this.marker&&this.marker.balloon.window){var d=this.marker.balloon;this.marker.m515({x:d.canvX+this.shiftDelta.x,y:d.canvY+this.shiftDelta.y})}},m206:function(a,b){this.mapper.m422();if(this.mapper.tilesCnt.total<=this.mapper.__TILES__.length&&this.mapper.ctxReleaseFlag)this.mapper.m429();this.mapper.m427();this.mapper.m424();this.centerCrdShift.x=a.x;this.centerCrdShift.y=a.y;this.newTileLoadCnt.shiftX+=b.x;this.newTileLoadCnt.shiftY+=b.y;this.mapper.m426()}});C03=function(a,b,c){this.m01(a,b,c)};$.extend(C03.prototype,{__TILES__:[],call_back:function(){},processed:0,imgCnt:0,currIndex:-1,loadedCnt:0,m01:function(a,b,c){this.__TILES__=c;this.imgCnt=c.length;if(b){this.cntStart=b.from,this.cntEnd=b.to}else{this.cntStart=0,this.cntEnd=this.imgCnt}for(var i=this.cntStart;i<this.cntEnd;i++)this.m301(i)},m301:function(a){var b=new Image;this.__TILES__[a].src=b;this.currIndex=a;b.onload=this.m302;b.onerror=this.m303;b.onabort=this.m304;b.C03=this;b.loadFlag=false;b.src=this.__TILES__[a].url},m302:function(){var a=this.src.split('&cnt=')[1];this.loadFlag=true;this.C03.call_back(a)},m303:function(){this.loadErrorFl=true},m304:function(){this.loadAbortFl=true}});C04=function(a){this.m01(a)};$.extend(C04.prototype,{__TILES__:[],canvas:null,canvasMarker:null,domCanvas:null,domCanvasMarker:null,ctx:null,ctxMarker:null,ctxReleaseFlag:true,eventer:null,eventList:{'MoveEnd':null,'mouseup':null,'mousewheel':null,'DOMMouseScroll':null,'mouseclick':null},canvasName:'',canvasMarkerName:'',dragger:null,resizer:null,zoomer:null,marker:null,tools:null,GlobalParams:{},position:null,accumShiftCrdMiniMap:{x:0,y:0},drawnTilesCnt:0,tilesCnt:{},tileSize:0,currZoom:0,prevZoom:0,minimaxServCrds:{minX:0,maxX:0,minY:0,maxY:0},minimaxCanvCrds:{minX:0,maxX:0,minY:0,maxY:0},currSetIntId:0,browserCanvSupp:false,alphaImg:new Image(),afterZoom:false,m01:function(a){this.canvasName=a;this.canvasMarkerName=a+'_marker';this.canvas=document.getElementById(a);this.domCanvas=$('#'+a);this.ctx=this.canvas.getContext('2d');if(a.split('_mini').length==1){$('<canvas class="canvasMarker" id="'+this.canvasMarkerName+'"></canvas>').appendTo($('#'+a).parent());this.canvasMarker=document.getElementById(this.canvasMarkerName);this.domCanvasMarker=$('#'+this.canvasMarkerName);this.ctxMarker=this.canvasMarker.getContext('2d')}},m02:function(a){if(a.mini){this.__TILES__=[];this.tilesCnt={};this.minimaxServCrds={minX:0,maxX:0,minY:0,maxY:0};this.minimaxCanvCrds={minX:0,maxX:0,minY:0,maxY:0}}this.eventer=new C01(this);this.eventer.m02();this.dragger=new C02(this.canvasName,this);if(!a.mini){this.zoomer=this.dragger.zoomer=new C09(this.canvas.id);this.zoomer.dragger=this.dragger;this.marker=this.dragger.marker=new C05(this);this.zoomer.mapper=this;this.dragger.canvas=this.zoomer.canvas=this.canvas;this.dragger.ctx=this.zoomer.ctx=this.ctx;this.dragger.ctxMarker=this.zoomer.ctxMarker=this.ctxMarker;this.resizer=new C07(this.canvas.id,this.dragger);if(a.tools){this.tools=new C08(this.ctxMarker,this,this.domCanvasMarker,a.tools)}$('<div class="canvasImgAlpha" id="imgAlpha"></div>').appendTo(this.domCanvas.parent());this.alphaImg.src=$('#imgAlpha').css('background-image').split('"')[1]}else{this.dragger.canvas=this.canvas;this.dragger.ctx=this.ctx}this.position=this.domCanvas.offset();this.m401(a);this.m417();if(a.miniMap&&!a.mini){this.miniMapper=new C06(this.canvas.id,this);this.miniMapper.m02()}},m401:function(a){this.GlobalParams=a;this.tileSize=this.GlobalParams.tilePxlSize;this.currZoom=this.GlobalParams.initZoom;if(!a.mini){this.zoomer.currZoom=this.currZoom;this.zoomer.zoomList=this.GlobalParams.zoomList}this.browserCanvSupp=$.browser.msie&&$.browser.version.indexOf('9')==-1?false:true},m402:function(a,b){this.eventList[a]=b;if(a=='mousewheel')this.eventList['DOMMouseScroll']=b},m403:function(a,b){if(typeof(this.eventList[a])==='function')this.eventList[a](b)},m404:function(a){this.eventList[a]=null},m405:function(e){return{x:e.clientX-this.position.left,y:e.clientY-this.position.top}},m406:function(){return{x:this.GlobalParams.initCrd.x-this.dragger.centerCrd.x,y:this.GlobalParams.initCrd.y+this.dragger.centerCrd.y}},m407:function(){var a=this.m408({x:0,y:0});var b=this.m408({x:this.canvas.width,y:this.canvas.height});return{x0:a.x,y0:a.y,x1:b.x,y1:b.y}},m408:function(a){var b=this.m406();return{x:b.x+(a.x-this.canvas.width/2)/this.currZoom,y:b.y-(a.y-this.canvas.height/2)/this.currZoom}},m409:function(a){var b=this.m406();return{x:Math.round(-this.currZoom*(b.x-a.x-this.canvas.width/(2*this.currZoom))),y:Math.round(this.currZoom*(b.y-a.y+this.canvas.height/(2*this.currZoom)))}},m410:function(a){var b=this.m406(),panToShiftX=(b.x-a.x)*this.currZoom,panToShiftY=(a.y-b.y)*this.currZoom;if(Math.abs(panToShiftX)>(this.canvas.width*2)||Math.abs(panToShiftY)>(this.canvas.height*2)){this.m416(a,true);this.m403('MoveEnd');if(this.miniMapper)this.miniMapper.handler.m416(a,true)}else if(Math.abs(panToShiftX)>0||Math.abs(panToShiftY)>0){this.m411({x:panToShiftX,y:panToShiftY},true)}},m411:function(a,b){var c=this;if(!b){this.dragger.m205(null,{x:a.x,y:a.y,resizingFlag:false});setTimeout(function(){c.dragger.m205(null,{x:0,y:0,resizingFlag:false})},100);if(this.miniMapper&&!(a.x==0&&a.y==0))this.m413()}else if(b&&!(a.x==0&&a.y==0)){var d=1,stepX=0,stepY=0,accumX=0,accumY=0,totalX=0,totalY=0,stepCoord=this.m412(a);this.currSetIntId=setInterval(function(){stepX=stepCoord.x>0?Math.floor(stepCoord.x):Math.ceil(stepCoord.x);accumX+=stepCoord.x-stepX;if(Math.abs(accumX)>=1){stepX+=stepCoord.x>0?Math.floor(accumX):Math.ceil(accumX);accumX-=stepCoord.x>0?Math.floor(accumX):Math.ceil(accumX)}totalX+=stepX;if(Math.abs(totalX)>Math.abs(a.x))stepX=Math.round(a.x-(totalX-stepX));stepY=stepCoord.y>0?Math.floor(stepCoord.y):Math.ceil(stepCoord.y);accumY+=stepCoord.y-stepY;if(Math.abs(accumY)>=1){stepY+=stepCoord.y>0?Math.floor(accumY):Math.ceil(accumY);accumY-=stepCoord.y>0?Math.floor(accumY):Math.ceil(accumY)}totalY+=stepY;if(Math.abs(totalY)>Math.abs(a.y))stepY=Math.round(a.y-(totalY-stepY));c.dragger.m205(null,{x:stepX,y:stepY,resizingFlag:false});if(c.miniMapper)c.m414();if(d==stepCoord.cnt)clearInterval(c.currSetIntId);d++},20)}if(Math.abs(a.x)>0||Math.abs(a.y)>0)this.m403('MoveEnd')},m412:function(a){var b=(Math.abs(a.x)>Math.abs(a.y)?Math.abs(a.x):Math.abs(a.y));if(b<=30)return{x:a.x/b,y:a.y/b,cnt:Math.ceil(b)};return{x:25*a.x/b,y:25*a.y/b,cnt:Math.ceil(b/25)}},m413:function(){this.miniMapper.handler.currZoom=this.miniMapper.m601();this.miniMapper.handler.m416(this.m406(),true)},m414:function(){var a={x:0,y:0};if(!this.dragger.resizingFlag){var b=this.currZoom/this.miniMapper.handler.currZoom;this.accumShiftCrdMiniMap.x+=this.dragger.shiftDelta.x/b;this.accumShiftCrdMiniMap.y+=this.dragger.shiftDelta.y/b;a.x=Math.floor(this.accumShiftCrdMiniMap.x);a.y=Math.floor(this.accumShiftCrdMiniMap.y);this.accumShiftCrdMiniMap.x-=a.x;this.accumShiftCrdMiniMap.y-=a.y}this.miniMapper.dragger.m205(null,{x:a.x,y:a.y,resizingFlag:this.dragger.resizingFlag,secondCallForSyncMapsFlag:true});this.miniMapper.m603()},m415:function(){return this.dragger.mouseCrd},m416:function(a,b){if(b){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);if(this.marker)this.marker.ctxMarker.clearRect(0,0,this.canvas.width,this.canvas.height)}this.__TILES__=[],this.GlobalParams.initCrd.x=parseFloat(a.x),this.GlobalParams.initCrd.y=parseFloat(a.y),this.dragger.centerCrd.x=0,this.dragger.centerCrd.y=0;if(!this.GlobalParams.mini){this.marker.m507();if(this.marker.balloon.window){var c=this.m409({x:this.marker.balloon.servX,y:this.marker.balloon.servY});this.marker.balloon.canvX=c.x;this.marker.balloon.canvY=c.y;this.marker.m515({x:c.x,y:c.y})}}this.m417();if(this.GlobalParams.mini)this.handler.m603()},m417:function(){var b=this;this.m422();this.m423();if(this.GlobalParams.mini){this.m426();this.m4292()}new C03(function(a){b.m420(a)},null,this.__TILES__);this.m418()},m418:function(){var a=this;setTimeout(function(){a.m421()},100)},m419:function(){this.ctx.beginPath();this.ctx.arc(Math.round(this.canvas.width/2),Math.round(this.canvas.height/2),1,0,Math.PI*2,true);this.ctx.stroke()},m420:function(a){var b=this;if(this.__TILES__[a]&&this.__TILES__[a].src.loadFlag){this.ctx.drawImage(this.__TILES__[a].src,this.__TILES__[a].canvX,this.__TILES__[a].canvY);if(this.__TILES__[a].newTile&&!this.afterZoom){this.ctx.drawImage(this.alphaImg,this.__TILES__[a].canvX,this.__TILES__[a].canvY);setTimeout(function(){b.ctx.drawImage(b.__TILES__[a].src,b.__TILES__[a].canvX,b.__TILES__[a].canvY)},50)}this.__TILES__[a].newTile=false;this.__TILES__[a].drawned=true;this.drawnTilesCnt++}},m421:function(){if(!this.GlobalParams.mini)if(this.zoomer.__ANIM_TILES__.drawFlag)for(var i=0;i<this.tilesCnt.total;i++)if(!this.zoomer.__ANIM_TILES__[i].drawned)this.zoomer.m905(i);if(this.ctxReleaseFlag){this.drawnTilesCnt=0;for(i=0;i<this.__TILES__.length;i++){if(!this.__TILES__[i].drawned)this.m420(i);else this.drawnTilesCnt++}if(!this.GlobalParams.mini){this.marker.m506();if(this.tools&&!this.tools.polygonDrawned)this.tools.m806()}if(this.drawnTilesCnt<this.tilesCnt.total){this.m418()}else{this.afterZoom=false;if(!this.GlobalParams.mini){this.zoomer.__ANIM_TILES__=[];this.zoomer.__ANIM_TILES__.drawFlag=false;this.zoomer.currDelta=[]}}}},m422:function(){this.tilesCnt.horiz=Math.ceil(this.canvas.width/this.tileSize)+1;this.tilesCnt.vert=Math.ceil(this.canvas.height/this.tileSize)+1;this.tilesCnt.total=this.tilesCnt.horiz*this.tilesCnt.vert},m423:function(){var a={x:this.GlobalParams.initCrd.x,xInit:this.GlobalParams.initCrd.x,y:this.GlobalParams.initCrd.y,yInit:this.GlobalParams.initCrd.y},tilePositionOnCanvas={x:-100,y:-100},drawTopHalfTilesFlag=true,horizLinePutted=0,vertStepsDone=0;this.minimaxServCrds.minX=this.minimaxServCrds.maxX=a.x;this.minimaxServCrds.minY=this.minimaxServCrds.maxY=a.y;while(true){horizLinePutted=0;vertStepsDone++;while(tilePositionOnCanvas.x<this.canvas.width-this.tileSize){tilePositionOnCanvas=this.m425(a);horizLinePutted++;a.x+=this.tileSize}this.minimaxServCrds.maxX=a.x;a.x=this.GlobalParams.initCrd.x-this.tileSize;while(0<tilePositionOnCanvas.x||horizLinePutted<this.tilesCnt.horiz){tilePositionOnCanvas=this.m425(a);horizLinePutted++;a.x-=this.tileSize}this.minimaxServCrds.minX=a.x;a.x=this.GlobalParams.initCrd.x;if(0<tilePositionOnCanvas.y&&drawTopHalfTilesFlag){a.y+=this.tileSize;this.minimaxServCrds.maxY=a.y}else if(0>tilePositionOnCanvas.y){drawTopHalfTilesFlag=false;a.y=this.GlobalParams.initCrd.y-this.tileSize}else if(!drawTopHalfTilesFlag){a.y-=this.tileSize;this.minimaxServCrds.minY=a.y;if(tilePositionOnCanvas.y>(this.canvas.height-this.tileSize)&&vertStepsDone>=this.tilesCnt.vert){this.m426();return}}if(this.__TILES__.length>this.tilesCnt.total)return}},m424:function(){var b=this,tilePositionSrvSide={},newTilesIndexFrom=this.__TILES__.length,newTilesIndexTo,directCurr=this.dragger.newTileLoadCnt.directionCurr;if(directCurr==1){tilePositionSrvSide={x:this.minimaxServCrds.minX,y:this.minimaxServCrds.minY+this.tileSize};this.minimaxServCrds.maxX-=this.tileSize;this.minimaxServCrds.minX-=this.tileSize}else if(directCurr==2){tilePositionSrvSide={x:this.minimaxServCrds.maxX,y:this.minimaxServCrds.minY+this.tileSize};this.minimaxServCrds.maxX+=this.tileSize;this.minimaxServCrds.minX+=this.tileSize}else if(directCurr==3){tilePositionSrvSide={x:this.minimaxServCrds.minX+this.tileSize,y:this.minimaxServCrds.maxY+this.tileSize};this.minimaxServCrds.maxY=tilePositionSrvSide.y;this.minimaxServCrds.minY+=this.tileSize}else if(directCurr==4){tilePositionSrvSide={x:this.minimaxServCrds.minX+this.tileSize,y:this.minimaxServCrds.minY};this.minimaxServCrds.maxY-=this.tileSize;this.minimaxServCrds.minY-=this.tileSize}tilePositionSrvSide.xInit=this.GlobalParams.initCrd.x;tilePositionSrvSide.yInit=this.GlobalParams.initCrd.y;this.m426();if(directCurr<=2){for(var c=0;c<this.tilesCnt.vert;c++){this.m425(tilePositionSrvSide,c);tilePositionSrvSide.y+=this.tileSize}}else{for(var d=0;d<this.tilesCnt.horiz;d++){this.m425(tilePositionSrvSide,d);tilePositionSrvSide.x+=this.tileSize}}newTilesIndexTo=this.__TILES__.length;new C03(function(a){b.m420(a)},{from:newTilesIndexFrom,to:newTilesIndexTo},this.__TILES__)},m425:function(a,b){var c=this.__TILES__.length,maxIndexOfUrl=this.GlobalParams.staticMapUrl.length-1,tilePositionOnUrl=this.m428(a),tilePositionOnCanvas={},directCurr=this.dragger.newTileLoadCnt.directionCurr;if(typeof(b)=='undefined'){tilePositionOnCanvas.x=Math.round(this.canvas.width/2)-parseInt(this.GlobalParams.initCrd.x*this.currZoom)+tilePositionOnUrl.x*this.tileSize;tilePositionOnCanvas.y=Math.round(this.canvas.height/2-this.tileSize)+parseInt(this.GlobalParams.initCrd.y*this.currZoom)-tilePositionOnUrl.y*this.tileSize}else{if(directCurr==1){tilePositionOnCanvas.x=this.minimaxCanvCrds.minX-this.tileSize;tilePositionOnCanvas.y=this.minimaxCanvCrds.maxY-(b*this.tileSize)}else if(directCurr==2){tilePositionOnCanvas.x=this.minimaxCanvCrds.maxX+this.tileSize;tilePositionOnCanvas.y=this.minimaxCanvCrds.maxY-(b*this.tileSize)}else if(directCurr==3){tilePositionOnCanvas.x=this.minimaxCanvCrds.minX+(b*this.tileSize);tilePositionOnCanvas.y=this.minimaxCanvCrds.minY-this.tileSize}else if(directCurr==4){tilePositionOnCanvas.x=this.minimaxCanvCrds.minX+(b*this.tileSize);tilePositionOnCanvas.y=this.minimaxCanvCrds.maxY+this.tileSize}}this.__TILES__[c]={canvX:tilePositionOnCanvas.x,canvY:tilePositionOnCanvas.y,servX:a.x,servY:a.y,src:null,newTile:true,url:(this.browserCanvSupp?this.GlobalParams.staticMapUrl[$.randomNumber(maxIndexOfUrl)]:'/live/remotemap')+"?x="+tilePositionOnUrl.x+"&y="+tilePositionOnUrl.y+"&z="+this.currZoom+"&l=color&cnt="+c};return tilePositionOnCanvas},m426:function(){var a=this.__TILES__.length;this.minimaxCanvCrds.minX=this.minimaxCanvCrds.maxX=this.__TILES__[0].canvX;this.minimaxCanvCrds.minY=this.minimaxCanvCrds.maxY=this.__TILES__[0].canvY;for(var b=0;b<a;b++){if(this.__TILES__[b].canvX>this.minimaxCanvCrds.maxX)this.minimaxCanvCrds.maxX=this.__TILES__[b].canvX;if(this.__TILES__[b].canvY>this.minimaxCanvCrds.maxY)this.minimaxCanvCrds.maxY=this.__TILES__[b].canvY;if(this.__TILES__[b].canvX<this.minimaxCanvCrds.minX)this.minimaxCanvCrds.minX=this.__TILES__[b].canvX;if(this.__TILES__[b].canvY<this.minimaxCanvCrds.minY)this.minimaxCanvCrds.minY=this.__TILES__[b].canvY}},m427:function(){var a=this.__TILES__.length;this.minimaxServCrds.minX=this.minimaxServCrds.maxX=this.__TILES__[0].servX;this.minimaxServCrds.minY=this.minimaxServCrds.maxY=this.__TILES__[0].servY;for(var b=0;b<a;b++){if(this.__TILES__[b].servX>this.minimaxServCrds.maxX)this.minimaxServCrds.maxX=this.__TILES__[b].servX;if(this.__TILES__[b].servY>this.minimaxServCrds.maxY)this.minimaxServCrds.maxY=this.__TILES__[b].servY;if(this.__TILES__[b].servX<this.minimaxServCrds.minX)this.minimaxServCrds.minX=this.__TILES__[b].servX;if(this.__TILES__[b].servY<this.minimaxServCrds.minY)this.minimaxServCrds.minY=this.__TILES__[b].servY}this.minimaxServCrds.maxX+=this.tileSize;this.minimaxServCrds.minX-=this.tileSize;this.minimaxServCrds.minY-=this.tileSize},m428:function(a){var b={},initCrdCalc={x:0,y:0},tmpInitCrd={x:a.xInit*this.currZoom+(a.x-a.xInit),y:a.yInit*this.currZoom+(a.y-a.yInit)};if(tmpInitCrd.x<0){initCrdCalc.x=tmpInitCrd.x-this.tileSize;b.x=Math.ceil(initCrdCalc.x/this.tileSize)}else{initCrdCalc.x=tmpInitCrd.x;b.x=Math.floor(initCrdCalc.x/this.tileSize)}if(tmpInitCrd.y<0){initCrdCalc.y=tmpInitCrd.y-this.tileSize;b.y=Math.ceil(initCrdCalc.y/this.tileSize)}else{initCrdCalc.y=tmpInitCrd.y;b.y=Math.floor(initCrdCalc.y/this.tileSize)}return b},m429:function(){var a=this.dragger.newTileLoadCnt.directionCurr;for(var b=0;b<this.__TILES__.length;b++){if(a==1&&this.__TILES__[b].canvX==this.minimaxCanvCrds.maxX||a==2&&this.__TILES__[b].canvX==this.minimaxCanvCrds.minX||a==3&&this.__TILES__[b].canvY==this.minimaxCanvCrds.maxY||a==4&&this.__TILES__[b].canvY==this.minimaxCanvCrds.minY){this.__TILES__.splice(b,1);b--}}this.m426();if(this.__TILES__.length>this.tilesCnt.total){if(a==2||a==4)this.dragger.newTileLoadCnt.directionCurr-=1;else this.dragger.newTileLoadCnt.directionCurr+=1;this.m429()}},m4292:function(){for(var a=0;a<this.__TILES__.length;a++){if((this.__TILES__[a].canvX+this.tileSize)<0||this.__TILES__[a].canvX>this.canvas.width||this.__TILES__[a].canvY>this.canvas.height||(this.__TILES__[a].canvY+this.tileSize)<0){this.__TILES__.splice(a,1);a--}}},m430:function(){this.position=this.domCanvas.offset();this.resizer.m705()}});C05=function(a){this.m01(a)};$.extend(C05.prototype,{mapper:null,ctx:null,ctxMarker:null,canvas:null,canvasMarker:null,domCanvas:null,domCanvasMarker:null,markers:[],userMarkerFlag:false,markersCnt:0,markersDrawnCnt:0,balloon:{window:null,canvX:0,canvY:0,servX:0,servY:0},defMarkerImg:new Image(),defMarkerImgPath:"styles/images/marker",m01:function(a){this.mapper=a;this.ctxMarker=a.ctxMarker;this.canvasMarker=a.canvasMarker;this.domCanvasMarker=a.domCanvasMarker;this.ctxMarker.fillStyle="rgb(0,0,0)"},m02:function(){},m503:function(a){this.markersCnt++;this.markers.push({x:a.crd.x,y:a.crd.y,id:(a.id?a.id:this.markersCnt),type:a.type,open:false,drawn:true,name:a.name,description:a.description,openOnClick:(a.openOnClick?a.openOnClick:false),callBackFunc:a.callBackFunc});this.m504(a.crd,a.name,a.type);return this.markersCnt},m504:function(a,b,c){var d=this.mapper.m409(a);if(d.x<-20||(d.x-13)>this.canvasMarker.width)return;if(d.y<0||(d.y-40)>this.canvasMarker.height)return;this.defMarkerImg.src=this.defMarkerImgPath+c+'.png';this.ctxMarker.drawImage(this.defMarkerImg,d.x-11,d.y-40);if(b.toString().length<3)this.ctxMarker.font="11pt Licida Sans";else this.ctxMarker.font="8pt Licida Sans";this.ctxMarker.fillStyle='Black';this.ctxMarker.textAlign='center';this.ctxMarker.fillText(b,d.x-1,d.y-24)},m505:function(d){var e=this;this.domCanvasMarker.css('cursor','crosshair');this.userMarkerFlag=true;this.mapper.m402('mouseclick',function(a){var b=e.mapper.m405(a),servCrd=e.mapper.m408(b);e.m503({crd:{x:servCrd.x,y:servCrd.y},id:-1,type:'1002',open:false,drawn:true,name:'',description:'',openOnClick:false,callBackFunc:null});var c={x:0,y:0};if(b.x<170)c.x=170-b.x;else if(b.x>(e.canvasMarker.width-170))c.x-=170-(e.canvasMarker.width-b.x);if(b.y<300)c.y=300-b.y;e.mapper.m411(c,true);e.mapper.m404('mouseclick');e.domCanvasMarker.css('cursor','');d({event:a,canvCrd:b,servCrd:servCrd,gotoCrd:c})})},m506:function(){var c=this;if(this.markersCnt>this.markersDrawnCnt){$.each(this.markers,function(a,b){if(!b.drawn&&!b.open){c.m504({x:b.x,y:b.y},b.name,b.type);c.markersDrawnCnt++;b.drawn=true}})}},m507:function(){$.each(this.markers,function(a,b){b.drawn=false});this.markersDrawnCnt=0},m508:function(){$.each(this.markers,function(a,b){b.open=false})},m509:function(c,d){var e=this,removeFlag=false;$.each(this.markers,function(a,b){if(eval('val.'+c)==d){e.markers.splice(a,1);e.markersCnt--;e.markersDrawnCnt--;removeFlag=true}});if(removeFlag){this.mapper.m411({x:0,y:0},false)}},m510:function(c){var d=this,canvCrd={};$.each(this.markers,function(a,b){canvCrd=d.mapper.m409({x:b.x,y:b.y});if(c.x>=(canvCrd.x-11)&&c.x<=(canvCrd.x+11)&&c.y<=(canvCrd.y-20)&&c.y>=(canvCrd.y-40)){if(b.openOnClick){d.m514({pos:{x:b.x,y:b.y},context:'<div>'+b.description+'</div>',oncloseFunc:b.oncloseFunc});b.open=true;d.mapper.m411({x:0,y:0},false)}if(typeof(b.callBackFunc)==='function')b.callBackFunc(d.balloon)}})},m511:function(){this.markers=[];this.markersCnt=0;this.markersDrawnCnt=0;this.m513();this.mapper.m411({x:0,y:0},false)},m512:function(c){var d=this;$.each(this.markers,function(a,b){if(b.id==c){d.m514({pos:{x:b.x,y:b.y},context:'<div>'+b.description+'</div>',oncloseFunc:b.oncloseFunc});if(typeof(b.callBackFunc)==='function')b.callBackFunc(d.balloon);b.open=true}})},m513:function(){if(this.balloon.window){this.m508();this.balloon.window.remove();this.balloon.window=null}},m514:function(c){var d=this;this.m513();this.balloon.window=$(c.context).dialog({autoOpen:false,dialogClass:'ui-dialog-balloon',minHeight:50,minWidth:100,draggable:false,open:function(a,b){if(d.mapper.miniMapper)d.mapper.miniMapper.domCanvas.css('z-index',parseInt($('.ui-dialog-balloon').css('z-index'))+1)},resizeStart:function(a,b){d.mapper.dragger.m202(a)},resize:function(a,b){d.m515({x:d.balloon.canvX,y:d.balloon.canvY})},resizeStop:function(a,b){},close:function(a,b){d.m508();d.balloon.window.remove();d.mapper.marker.balloon.window=null;d.mapper.m411({x:0,y:0},false);if(typeof(c.oncloseFunc)==='function')c.oncloseFunc()}});$('.ui-dialog-balloon .ui-dialog-titlebar a').appendTo($('.ui-dialog-balloon'));$('.ui-dialog-balloon .ui-dialog-titlebar').remove();$('.ui-dialog-balloon').appendTo(this.canvasMarker.parentNode);$('<div id="balloon-foot" class="ui-balloon-foot"></div>').appendTo($('.ui-dialog-balloon'));this.balloon.window.dialog('open');this.balloon.servX=c.pos.x;this.balloon.servY=c.pos.y;this.m515(this.mapper.m409(c.pos))},m515:function(a){this.balloon.canvX=a.x;this.balloon.canvY=a.y;$('.ui-dialog-balloon').position({of:this.canvasMarker,my:'center bottom',at:'left top',offset:a.x+' '+(a.y-15),collision:'none none'});$('.ui-balloon-foot').position({of:this.canvasMarker,my:'center top',at:'left top',offset:a.x+' '+(a.y-16),collision:'none none'});var b=$('.ui-balloon-foot').css('left').split('.')[0],needleTop=$('.ui-balloon-foot').css('top').split('.')[0];if(b.indexOf('px')==-1)$('.ui-balloon-foot').css('left',b+'px');if(needleTop.indexOf('px')==-1)$('.ui-balloon-foot').css('top',needleTop+'px')}});C06=function(a,b){this.m01(a,b)};$.extend(C06.prototype,{canvas:null,domCanvas:null,ctx:null,handler:null,mapper:null,dragger:null,GlobalParams:{},needleDiffIndx:4,m01:function(a,b){this.canvasID=a;this.mapper=b;$.extend(this.GlobalParams,this.mapper.GlobalParams)},m02:function(){var a=this.canvasID+'_mini';$('<canvas class="canvasMiniMap" id="'+a+'" width="200" height="150"></canvas>').appendTo(this.mapper.domCanvas.parent());this.canvas=document.getElementById(a);this.domCanvas=$('#'+a);this.GlobalParams.mini=true;this.GlobalParams.initZoom=this.m601();this.handler=new C04(a);this.handler.m02(this.GlobalParams);this.handler.maxiMapper=this.mapper;this.handler.handler=this;this.dragger=this.handler.dragger;this.ctx=this.handler.ctx;this.ctx.fillStyle='blue';this.ctx.strokeStyle='black';this.ctx.lineWidth=0.5;this.m603()},m601:function(){var a=this.GlobalParams.zoomList,currIndx=a.indexOf(this.mapper.currZoom),realDiffIndx=this.needleDiffIndx;while(realDiffIndx>=0){if(!isNaN(a[currIndx+realDiffIndx]))return a[currIndx+realDiffIndx];realDiffIndx--}},m602:function(){var a=this.mapper.currZoom/this.handler.currZoom;this.mapper.dragger.m205(null,{x:this.handler.dragger.shiftDelta.x*a,y:this.handler.dragger.shiftDelta.y*a,resizingFlag:false,secondCallForSyncMapsFlag:true});this.m603()},m603:function(){if(this.handler.currZoom!=this.mapper.currZoom){var a=this.mapper.m407(),x0y0=this.handler.m409({x:a.x0,y:a.y0}),x1y1=this.handler.m409({x:a.x1,y:a.y1});this.ctx.globalCompositeOperation='source-over';this.ctx.beginPath();this.ctx.globalAlpha=0.1;this.ctx.moveTo(x0y0.x,x0y0.y);this.ctx.lineTo(x1y1.x,x0y0.y);this.ctx.lineTo(x1y1.x,x1y1.y);this.ctx.lineTo(x0y0.x,x1y1.y);this.ctx.lineTo(x0y0.x,x0y0.y);this.ctx.fill();this.ctx.globalAlpha=1;this.ctx.closePath();this.ctx.stroke();this.ctx.globalCompositeOperation='destination-over'}}});C07=function(a,b){this.m01(a,b)};$.extend(C07.prototype,{mapper:null,dragger:null,marker:null,markerFlag:false,m01:function(a,b){this.dragger=b;this.mapper=this.dragger.mapper;this.canvas=document.getElementById(a);this.domCanvas=$('#'+a);if(this.mapper.marker){this.markerFlag=true;this.marker=this.mapper.marker}this.m702(this.m703(),this.m704())},m701:function(){return{width:this.canvas.width,height:this.canvas.height}},m702:function(w,h){this.canvas.width=w;this.canvas.height=h;if(this.markerFlag){this.marker.canvasMarker.width=w;this.marker.canvasMarker.height=h}},m703:function(){return this.canvas.parentNode.clientWidth},m704:function(){return this.canvas.parentNode.clientHeight},m705:function(){var a=this,needleH=this.m704(),needleW=this.m703(),shiftH=shiftW=0;if(needleH!=this.canvas.height||needleW!=this.canvas.width){var b=(needleH!=this.canvas.height?4:2);shiftH=Math.round((needleH-this.canvas.height)/2);shiftW=Math.round((needleW-this.canvas.width)/2);this.m702(needleW,needleH);this.dragger.m205(null,{x:shiftW,y:shiftH,resizingFlag:true,direction:b});if(this.dragger.mapper.miniMapper)this.dragger.mapper.m414();setTimeout(function(){a.dragger.m205(null,{x:0,y:0,resizingFlag:true,direction:b})},10)}else{setTimeout(function(){a.dragger.m205(null,{x:0,y:0,resizingFlag:false,direction:0})},10)}}});C08=function(a,b,c,d){this.m01(a,b,c,d)};$.extend(C08.prototype,{mapper:null,ctx:null,canvas:null,domCanvas:null,tools:null,toolsActiveFlag:[],dragger:null,editFlag:false,pointMouseOverFlag:false,pointSelectedNdx:0,points:{},polygonDrawned:false,allPolygonVisible:false,lineColor:'green',lineFillColor:'green',linePlumeColor:"rgba(0,128,0,0.3)",pointBorderColor:'black',pointFillColor:'red',pointSelectedFillColor:"rgba(255,128,0,1)",shadowColor:"rgba(0, 0, 0, 0.5)",fontStyle:"bold 12px Courier New",textColor:"Black",m01:function(c,d,e,f){this.ctx=c;this.mapper=d;this.domCanvas=e;this.tools=f;var g=this,toolsPanel='';var h=this.mapper.canvas.id+'_toolsPanel';$('<div class="canvasTools" id="'+h+'"></div>').appendTo(g.mapper.domCanvas.parent());$.each(f,function(b){$.data(g.points,b,[]);g.toolsActiveFlag[b]=false;toolsPanel='<div id="'+b+'"><span class="btnLeftBg"></span><span class="btnCenterBg"><span class="img '+b+'"></span></span><span class="btnRightBg"></span></div>';$(toolsPanel).appendTo($('.canvasTools'));$("div#"+b).mouseover(function(){$(this).toggleClass("toolHover")}).mouseout(function(){$(this).toggleClass("toolHover")});$('div#'+b).click(function(a){$(this).toggleClass("toolActive");g.m801(b,($('#'+b+'.toolActive').length>0));g.m802(a,b)});$('div#'+b).mouseup(function(a){g.m801(b,false);g.m802(a,b)})})},m801:function(b,c){var d=this;$.each($.data(this.points),function(a){if(a==b){d.toolsActiveFlag[a]=c}else if(a!='toJSON'){if(d.toolsActiveFlag[a])$('#'+a).click();d.toolsActiveFlag[a]=false}})},m802:function(a,b){var c=this;if(a.type=='mouseup'&&!c.toolsActiveFlag[b]){this.editFlag=false;this.m805(b);this.mapper.m430()}else if(a.type=='click'&&c.toolsActiveFlag[b]){this.editFlag=true;this.m804(b)}},m803:function(){var a=[];$.each($.data(this.points,'polygoner'),function(){a.push({x:this.crdServ.x,y:this.crdServ.y})});return a},m804:function(b){var c=this,crdCanv={},crdServ={};this.domCanvas.css('cursor','crosshair');this.mapper.m402('mouseclick',function(a){if(!c.pointMouseOverFlag){crdCanv=c.mapper.m405(a),crdServ=c.mapper.m408(crdCanv);$.data(c.points,b).push({crdServ:{x:crdServ.x,y:crdServ.y},selected:false});c.mapper.m430()}})},m805:function(){this.mapper.m404('mouseclick');this.domCanvas.css('cursor','')},m806:function(){this.m807();this.m808($.data(this.points,'polygoner'),'polygoner');this.m808($.data(this.points,'scaler'),'scaler');this.polygonDrawned=true},m807:function(){var c=this,crdCanvFrom={},crdCanvTo={};$.each($.data(this.points),function(b){if(this.length>0){crdCanvFrom=c.mapper.m409($.data(c.points,b)[0].crdServ);c.ctx.strokeStyle=c.lineColor;c.ctx.fillStyle=c.lineFillColor;c.ctx.lineWidth=3;c.ctx.beginPath();c.ctx.globalAlpha=0.3;c.ctx.moveTo(crdCanvFrom.x,crdCanvFrom.y);$.each(this,function(a){if(a>0){crdCanvTo=c.mapper.m409(this.crdServ);c.ctx.lineTo(crdCanvTo.x,crdCanvTo.y)}});if(b=='polygoner'){c.ctx.fill();c.ctx.closePath()}c.ctx.globalAlpha=1;c.ctx.stroke()}})},m808:function(b,c){var d=this,crdCanv={},x0y0={},x1y1={},currWidth=0,selPointNdx=0;this.ctx.strokeStyle=this.pointBorderColor;this.ctx.fillStyle=this.pointFillColor;this.ctx.lineWidth=2;this.ctx.beginPath();$.each(b,function(a){crdCanv=d.mapper.m409(this.crdServ);if(this.selected){currWidth=6;selPointNdx=a}else currWidth=4;if(a==0&&c=='scaler'){d.ctx.moveTo(crdCanv.x+currWidth+1,crdCanv.y);d.ctx.arc(crdCanv.x,crdCanv.y,currWidth+1,0,Math.PI*2,false)}else{x0y0={x:crdCanv.x-currWidth,y:crdCanv.y-currWidth};x1y1={x:crdCanv.x+currWidth,y:crdCanv.y+currWidth};d.ctx.moveTo(x0y0.x,x0y0.y);d.ctx.lineTo(x1y1.x,x0y0.y);d.ctx.lineTo(x1y1.x,x1y1.y);d.ctx.lineTo(x0y0.x,x1y1.y);d.ctx.lineTo(x0y0.x,x0y0.y)}d.ctx.fill();d.ctx.closePath()});this.ctx.stroke();if(c=='scaler'){var e=$.data(this.points,'scaler').length;if(e>1)this.m809($.data(this.points,'scaler')[e-1],(e-1));if(selPointNdx!=0&&selPointNdx!=e-1)this.m809($.data(this.points,'scaler')[selPointNdx],selPointNdx)}},m809:function(a,b){var c=this.mapper.m409(a.crdServ),distance=this.m810(b),dist=distance.dist,pw=(dist.toString().length+4)*7;c.x=c.x+4;c.y=c.y-8;this.ctx.shadowOffsetX=2;this.ctx.shadowOffsetY=2;this.ctx.shadowBlur=2;this.ctx.shadowColor=this.shadowColor;this.ctx.lineWidth=1;this.ctx.fillStyle='rgba(240,240,190,0.8)';this.ctx.beginPath();this.ctx.moveTo(c.x,c.y);this.ctx.quadraticCurveTo(c.x,c.y-10,c.x+10,c.y-10);this.ctx.lineTo(c.x+pw,c.y-10);this.ctx.quadraticCurveTo(c.x+pw+10,c.y-10,c.x+pw+10,c.y);this.ctx.quadraticCurveTo(c.x+pw+10,c.y+10,c.x+pw,c.y+10);this.ctx.lineTo(c.x+10,c.y+10);this.ctx.quadraticCurveTo(c.x,c.y+10,c.x,c.y);this.ctx.fill();this.ctx.stroke();this.ctx.shadowOffsetX=0;this.ctx.shadowOffsetY=0;this.ctx.shadowBlur=0;this.ctx.font=this.fontStyle;this.ctx.fillStyle=this.textColor;this.ctx.textAlign='left';this.ctx.fillText(dist+' '+distance.metric,c.x+6,c.y+4)},m810:function(b){var c=this,dist=0,metric='м.',diffX=0,diffY=0;$.each($.data(this.points,'scaler'),function(a){if(b==a)return false;diffX=this.crdServ.x-$.data(c.points,'scaler')[a+1].crdServ.x;diffY=this.crdServ.y-$.data(c.points,'scaler')[a+1].crdServ.y;dist+=Math.sqrt(diffX*diffX+diffY*diffY)});dist=Math.round(dist*10)/10;if(dist>100000){dist=Math.round(dist/1000);metric='км'}else if(dist>10000){dist=(dist/1000).toFixed(1);metric='км'}else if(dist>1000){dist=(dist/1000).toFixed(2);metric='км'}return{dist:dist,metric:metric}},m811:function(c){var d=this;$.each($.data(this.points),function(a){if(d.toolsActiveFlag[a]&&this.length>0){var b=d.mapper.m409(this[0].crdServ),crdCanvPnt2=c.crdCanv,crdCanvPnt1=d.mapper.m409(this[this.length-1].crdServ);d.ctx.strokeStyle=d.linePlumeColor;d.ctx.lineJoin='round';d.ctx.lineWidth=3;d.ctx.beginPath();d.ctx.moveTo(crdCanvPnt1.x,crdCanvPnt1.y);d.ctx.lineTo(crdCanvPnt2.x,crdCanvPnt2.y);if(a=='polygoner')d.ctx.lineTo(b.x,b.y);d.ctx.stroke()}})},m812:function(e){var a=this,toolName='',crdCanv=this.mapper.m405(e),crdServ=this.mapper.m408(crdCanv),mousePoint=[{crdServ:crdServ,crdCanv:crdCanv}];this.mapper.m430();if(!this.mapper.eventer.mouseOverFlag)return;this.pointMouseOverFlag=this.m814(mousePoint[0]);if(!this.pointMouseOverFlag){this.domCanvas.css('cursor','crosshair');if(this.toolsActiveFlag['polygoner'])toolName='polygoner';else if(this.toolsActiveFlag['scaler']&&$.data(a.points,'scaler').length==0)toolName='scaler';setTimeout(function(){a.m808(mousePoint,toolName)},10);setTimeout(function(){a.m811(mousePoint[0])},10)}else{this.domCanvas.css('cursor','pointer')}},m813:function(e){var b=this,crdCanv=this.mapper.m405(e),crdServ=this.mapper.m408(crdCanv);this.mapper.m430();$.each($.data(this.points),function(a){if(b.toolsActiveFlag[a]){this[b.pointSelectedNdx].crdServ.x=crdServ.x;this[b.pointSelectedNdx].crdServ.y=crdServ.y}})},m814:function(c){var d=this,res=false,borderDist=Math.floor(9/this.mapper.currZoom),crdCanv={};this.allPolygonVisible=true;$.each($.data(this.points),function(b){if(d.toolsActiveFlag[b]){$.each(this,function(a){if(this.crdServ.x>=(c.crdServ.x-borderDist)&&this.crdServ.x<=(c.crdServ.x+borderDist)&&this.crdServ.y>=(c.crdServ.y-borderDist)&&this.crdServ.y<=(c.crdServ.y+borderDist)){this.selected=true;res=true;d.pointSelectedNdx=a;return null}else{this.selected=false}crdCanv=d.mapper.m409(this.crdServ);if(crdCanv.x<0||crdCanv.y<0&&crdCanv.x>d.mapper.canvas.width&&crdCanv.y>d.mapper.canvas.height)d.allPolygonVisible=false})}});return res},m815:function(){var c=this;$.each($.data(this.points),function(b){if(c.toolsActiveFlag[b]){$.each(this,function(a){if(this.selected){$.data(c.points,b).splice(a,1);return false}});return false}});this.mapper.m430()}});C09=function(a){this.m01(a)};$.extend(C09.prototype,{mapper:null,dragger:null,ctx:null,canvas:null,__ANIM_TILES__:[],zoomList:[],currZoom:1,prevZoom:1,zoomInProcFlag:false,animSteps:4,currDelta:[],mouseCanvCrd:{x:0,y:0},mouseServCrd:{x:0,y:0},m01:function(a){},m901:function(a,b){var c=a>0?1:-1;for(var d=1;d<=Math.abs(a);d++){var e=this.zoomList.indexOf(this.currZoom);this.prevZoom=this.mapper.prevZoom=this.currZoom;this.currZoom=this.mapper.currZoom=$.grep(this.zoomList,function(n,i){return(i==e-c)})[0];if(typeof(this.currZoom)=="undefined"){this.currZoom=this.mapper.currZoom=this.prevZoom;break}this.currDelta.push({scale:c,prevZoom:this.prevZoom,currZoom:this.currZoom})}if((this.prevZoom==this.zoomList[0]&&c==1)||(this.prevZoom==this.zoomList[this.zoomList.length-1]&&c==-1))return;if(this.currDelta.length==1)this.m902(b)},m902:function(a){var b=this.currDelta[0],scale=b.scale,prevZoom=b.prevZoom,currZoom=b.currZoom;if(!this.__ANIM_TILES__.drawFlag){$.extend(this.__ANIM_TILES__,this.mapper.__TILES__);this.__ANIM_TILES__.animScale=this.mapper.tileSize;this.__ANIM_TILES__.drawFlag=true}var c=this,animScale=animScaleStart=this.__ANIM_TILES__.animScale,delay=60,cnt=0,stepScale=1,zoomFactor=1;if(scale<0){zoomFactor=2-currZoom*2/prevZoom;stepScale=animScale/this.animSteps/2*zoomFactor}else{zoomFactor=currZoom/prevZoom-1;stepScale=animScale/this.animSteps*zoomFactor}this.mapper.ctxReleaseFlag=false;$('.ui-dialog-balloon').hide();for(cnt;cnt<this.animSteps;cnt++){setTimeout(function(){c.ctx.clearRect(0,0,c.canvas.width,c.canvas.height);c.ctxMarker.clearRect(0,0,c.canvas.width,c.canvas.height);animScale+=scale*stepScale;c.m903(a,{animScale:animScale,stepCurrNum:Math.round(Math.abs(animScaleStart-animScale)/stepScale),stepScale:stepScale})},delay*cnt)}var d=this.__ANIM_TILES__.scaledCenterCrd?this.__ANIM_TILES__.scaledCenterCrd:this.mapper.m406(),centerCanvCrd={x:this.canvas.width/2,y:this.canvas.height/2},mousePosCanvCrd=this.mapper.m405(a),zoomFactorCenterCrd=(scale<0?(2-currZoom*2/prevZoom):(2-prevZoom*2/currZoom));this.__ANIM_TILES__.scaledCenterCrd={x:(d.x-(mousePosCanvCrd.x-centerCanvCrd.x)/(scale>0?-prevZoom:currZoom)/2*zoomFactorCenterCrd),y:(d.y+(mousePosCanvCrd.y-centerCanvCrd.y)/(scale>0?-prevZoom:currZoom)/2*zoomFactorCenterCrd)}},m903:function(a,b){var c=this.__ANIM_TILES__.length;this.__ANIM_TILES__.animScale=b.animScale;this.__ANIM_TILES__.stepCurrNum=b.stepCurrNum;this.__ANIM_TILES__.stepScale=b.stepScale;for(var i=0;i<c;i++){this.m904(a,i,b.animScale)}if(b.stepCurrNum==this.animSteps){this.currDelta.splice(0,1);if(this.currDelta.length>0)this.m902(a);else{this.mapper.ctxReleaseFlag=true;$('.ui-dialog-balloon').show();if(this.mapper.tools)this.mapper.tools.polygonDrawned=false;this.mapper.afterZoom=true;this.mapper.m416(this.__ANIM_TILES__.scaledCenterCrd,false);if(this.mapper.miniMapper){this.mapper.m413()}this.mapper.m403(a.type)}}this.mapper.m419()},m904:function(a,b,c){var d=this.mapper.tileSize,mousePos=this.mapper.mouseDownFlag?this.mouseCanvCrd:this.mapper.m405(a),canvCenterCrd={x:(this.canvas.width+d*2)/2+(mousePos.x-this.canvas.width/2),y:(this.canvas.height+d*2)/2+(mousePos.y-this.canvas.height/2)},animShift=c-d,animShiftX=animShift-animShift*(canvCenterCrd.x-this.__ANIM_TILES__[b].canvX)/d,animShiftY=animShift-animShift*(canvCenterCrd.y-this.__ANIM_TILES__[b].canvY)/d;if(this.__ANIM_TILES__[b]&&this.__ANIM_TILES__[b].src.loadFlag){var e=this.__ANIM_TILES__[b].canvX+Math.round(animShiftX),shiftCanvY=this.__ANIM_TILES__[b].canvY+Math.round(animShiftY);this.ctx.drawImage(this.__ANIM_TILES__[b].src,e,shiftCanvY,c+1,c+1);this.__ANIM_TILES__[b].shiftCanvX=e;this.__ANIM_TILES__[b].shiftCanvY=shiftCanvY}},m905:function(a){if(this.__ANIM_TILES__[a]&&this.__ANIM_TILES__[a].src.loadFlag&&this.__ANIM_TILES__[a].shiftCanvX&&this.__ANIM_TILES__[a].shiftCanvY){this.ctx.drawImage(this.__ANIM_TILES__[a].src,this.__ANIM_TILES__[a].shiftCanvX,this.__ANIM_TILES__[a].shiftCanvY,this.__ANIM_TILES__.animScale+1,this.__ANIM_TILES__.animScale+1);this.__ANIM_TILES__[a].drawned=true}}});
