function DHTMLapi(){}function initDHTMLAPI(){if(document.images){DHTMLapi.isCSS=(document.body&&document.body.style)?true:false;DHTMLapi.isW3C=(DHTMLapi.isCSS&&document.getElementById)?true:false;DHTMLapi.isIE4=(DHTMLapi.isCSS&&document.all)?true:false;DHTMLapi.isNN4=(document.layers)?true:false;DHTMLapi.isIE6CSS=(document.compatMode&&document.compatMode.indexOf("CSS1")>=0)?true:false;}}function seekLayer(doc,name){var theObj;for(var i=0;i<doc.layers.length;i++){if(doc.layers[i].name==name){theObj=doc.layers[i];break;}if(doc.layers[i].document.layers.length>0){theObj=seekLayer(document.layers[i].document,name);}}return theObj;}function getRawObject(obj){var theObj;if(typeof obj=="string"){if(DHTMLapi.isW3C){theObj=document.getElementById(obj);}else if(DHTMLapi.isIE4){theObj=document.all(obj);}else if(DHTMLapi.isNN4){theObj=seekLayer(document,obj);}}else{theObj=obj;}return theObj;}function getObject(obj){var theObj=getRawObject(obj);if(theObj&&DHTMLapi.isCSS){theObj=theObj.style;}return theObj;}function shiftTo(obj,x,y){var theObj=getObject(obj);if(theObj){if(DHTMLapi.isCSS){var units=(typeof theObj.left=="string")?"px":0;theObj.left=x+units;theObj.top=y+units;}else if(DHTMLapi.isNN4){theObj.moveTo(x,y)}}}function shiftBy(obj,deltaX,deltaY){var theObj=getObject(obj);if(theObj){if(DHTMLapi.isCSS){var units=(typeof theObj.left=="string")?"px":0;theObj.left=getObjectLeft(obj)+deltaX+units;theObj.top=getObjectTop(obj)+deltaY+units;}else if(DHTMLapi.isNN4){theObj.moveBy(deltaX,deltaY);}}}function setZIndex(obj,zOrder){var theObj=getObject(obj);if(theObj){theObj.zIndex=zOrder;}}function setBGColor(obj,color){var theObj=getObject(obj);if(theObj){if(DHTMLapi.isNN4){theObj.bgColor=color;}else if(DHTMLapi.isCSS){theObj.backgroundColor=color;}}}function show(obj){var theObj=getObject(obj);if(theObj){theObj.visibility="visible";}}function hide(obj){var theObj=getObject(obj);if(theObj){theObj.visibility="hidden";}}function getObjectLeft(obj){var elem=getRawObject(obj);var result=0;if(document.defaultView){var style=document.defaultView;var cssDecl=style.getComputedStyle(elem,"");result=cssDecl.getPropertyValue("left");}else if(elem.currentStyle){result=elem.currentStyle.left;}else if(elem.style){result=elem.style.left;}else if(DHTMLapi.isNN4){result=elem.left;}return parseInt(result);}function getObjectTop(obj){if(!obj){return 0;}var elem=getRawObject(obj);if(!elem){return 0;}var result=0;if(document.defaultView){var style=document.defaultView;var cssDecl=style.getComputedStyle(elem,"");result=cssDecl.getPropertyValue("top");}else if(elem.currentStyle){result=elem.currentStyle.top;}else if(elem.style){result=elem.style.top;}else if(DHTMLapi.isNN4){result=elem.top;}return parseInt(result);}function getObjectWidth(obj){if(!obj){return 0;}var elem=getRawObject(obj);if(!elem){return 0;}var result=0;if(elem.offsetWidth){result=elem.offsetWidth;}else if(elem.clip&&elem.clip.width){result=elem.clip.width;}else if(elem.style&&elem.style.pixelWidth){result=elem.style.pixelWidth;}return parseInt(result);}function getObjectHeight(obj){if(!obj){return 0;}var elem=getRawObject(obj);var result=0;if(!elem){return 0;}if(elem.offsetHeight){result=elem.offsetHeight;}else if(elem.clip&&elem.clip.height){result=elem.clip.height;}else if(elem.style&&elem.style.pixelHeight){result=elem.style.pixelHeight;}return parseInt(result);}function getInsideWindowWidth(){if(window.innerWidth){return window.innerWidth;}else if(DHTMLapi.isIE6CSS){return document.body.parentElement.clientWidth;}else if(document.body&&document.body.clientWidth){return document.body.clientWidth;}return 0;}function getInsideWindowHeight(){if(window.innerHeight){return window.innerHeight;}else if(DHTMLapi.isIE6CSS){return document.body.parentElement.clientHeight;}else if(document.body&&document.body.clientHeight){return document.body.clientHeight;}return 0;}function kaMap(szID,initialPos){this.HALFPI=1.5707963267948966;this.FORTPI=0.78539816339744833;this.PI=3.14159265358979323846;this.TWOPI=6.2831853071795864769;this.RAD_TO_DEG=57.29577951308232;this.DEG_TO_RAD=.0174532925199432958;this.isCSS=false;this.isW3C=false;this.isIE4=false;this.isNN4=false;this.isIE6CSS=false;this.isIE=navigator.appName=="Microsoft Internet Explorer";if(document.images){this.isCSS=(document.body&&document.body.style)?true:false;this.isW3C=(this.isCSS&&document.getElementById)?true:false;this.isIE4=(this.isCSS&&document.all)?true:false;this.isNN4=(document.layers)?true:false;this.isIE6CSS=(document.compatMode&&document.compatMode.indexOf("CSS1")>=0)?true:false;}this.domObj=kaMap.f_createUnselectableElement('div');this.domObj.style.overflow='hidden';this.domObj.style.position='absolute';this.domObj.style.cursor='auto';this.domObj.style.MozBoxSizing='border-box';this.domObj.style.zIndex=0;this.parentDomObj=this.getRawObject(szID);this.domObj.style.width=this.getObjectClientWidth(this.parentDomObj)+'px';this.domObj.style.height=this.getObjectClientHeight(this.parentDomObj)+'px';this.parentDomObj.appendChild(this.domObj);kaMap.f_setUnselectable(this.domObj);this.hideLayersOnMove=false;this.loadUnchecked=false;this.initializationState=0;this.bMouseDown=false;this.lastx=0;this.lasty=0;this.theInsideLayer=null;this.viewportWidth=safeParseInt(this.domObj.style.width);this.viewportHeight=safeParseInt(this.domObj.style.height);this.viewportLeft=null;this.viewportTop=null;this.xOffset=0;this.yOffset=0;this.xOrigin=0;this.yOrigin=0;this.currentMap='';this.nWide=0;this.nHigh=0;this.nCurrentTop=0;this.nCurrentLeft=0;this.aPixel=new Image(1,1);this.aPixel.src=kaMap.serv_host+'/api-new/images/a_pixel.gif';this.imgScalebar=new Image;this.imgScalebar.src=kaMap.serv_host+'/api-new/images/scalebar.gif';this.imgControls=new Image;this.imgControls.src=kaMap.serv_host+'/api-new/images/controller.png';this.imgCross=new Image;this.imgCross.src=kaMap.serv_host+"/api-new/images/cross.png";this.imgErrors=new Array();this.aMaps=new Array();this.tileWidth=null;this.tileHeight=null;this.nBuffer=1;this.baseURL='';this.cellSize=null;this.gImageID=0;this.eventManager=new _eventManager();this.as=slideid=null;this.accelerationFactor=1;this.pixelsPerStep=30;this.timePerStep=25;this.server=kaMap.cgi_base;this.init=kaMap.init_cgi;this.tileURL=kaMap.tile_cgi;this.retryURL=kaMap.retry_cgi;this.keymapURL=kaMap.keymap_cgi;this.checkIPC_URL=kaMap.check_ipc_cgi;this.serv_host=kaMap.serv_host;this.enableMouseWheel=kaMap.enable_mouse_wheel;this.enableKeyboardInterface=true;if(kaMap.license_key){this.init+='?key='+kaMap.license_key;this.tileURL+='?key='+kaMap.license_key+'&k='+kaMap.add_key;this.retryURL+='?key='+kaMap.license_key+'&k='+kaMap.add_key;this.checkIPC_URL+='?key='+kaMap.license_key;}this.aObjects=[];this.aCanvases=[];this.layersHidden=false;this.aTools=[];this.reserve_to_zoom_x=0;this.reserve_to_zoom_y=0;this.reserve_to_scale=-1;this.reserve_to_scale_code=-1;for(var i=0;i<kaMap.gnLastEventId;i++){this.registerEventID(i);}this.createLayers();this.orgPos=null;this.graph=[];this.graph.sessionid=null;this.initialPos=initialPos;this.isLocked=false;this.coordForwardX=this.BL2BLX;this.coordForwardY=this.BL2BLY;this.coordInverseX=this.BL2BLX;this.coordInverseY=this.BL2BLY;this.onmousemove_obj=null;}kaMap.prototype.seekLayer=function(doc,name){var theObj;for(var i=0;i<doc.layers.length;i++){if(doc.layers[i].name==name){theObj=doc.layers[i];break;}if(doc.layers[i].document.layers.length>0){theObj=this.seekLayer(document.layers[i].document,name);}}return theObj;};kaMap.prototype.getRawObject=function(obj){var theObj;if(typeof obj=="string"){if(this.isW3C){theObj=document.getElementById(obj);}else if(this.isIE4){theObj=document.all(obj);}else if(this.isNN4){theObj=seekLayer(document,obj);}}else{theObj=obj;}return theObj;};kaMap.prototype.getObject=function(obj){var theObj=this.getRawObject(obj);if(theObj&&this.isCSS){theObj=theObj.style;}return theObj;};kaMap.prototype.getObjectWidth=function(obj){var elem=this.getRawObject(obj);var result=0;if(elem.offsetWidth){result=elem.offsetWidth;}else if(elem.clip&&elem.clip.width){result=elem.clip.width;}else if(elem.style&&elem.style.pixelWidth){result=elem.style.pixelWidth;}return parseInt(result);};kaMap.prototype.getObjectHeight=function(obj){if(obj==null){return 0;}var elem=this.getRawObject(obj);if(!elem){return 0;}var result=0;if(elem.offsetHeight){result=elem.offsetHeight;}else if(elem.clip&&elem.clip.height){result=elem.clip.height;}else if(elem.style&&elem.style.pixelHeight){result=elem.style.pixelHeight;}return parseInt(result);};kaMap.prototype.getObjectClientWidth=function(obj){var elem=this.getRawObject(obj);var result=0;if(elem.clientWidth){result=elem.clientWidth;}else if(elem.offsetWidth){result=elem.offsetWidth;}return parseInt(result);};kaMap.prototype.getObjectClientHeight=function(obj){var elem=this.getRawObject(obj);var result=0;if(elem.clientHeight){result=elem.clientHeight;}else if(elem.offsetHeight){result=elem.offsetHeight;}return parseInt(result);};kaMap.prototype.getWidth=function(obj){var elem=this.getRawObject(obj);return parseInt(elem.style.width);};kaMap.prototype.getHeight=function(obj){var elem=this.getRawObject(obj);return parseInt(elem.style.height);};kaMap.prototype.getScale=function(scale_code){var oMap=this.getCurrentMap();if(!oMap)return;if(oMap.aScales.length<=scale_code){scale_code=oMap.aScales.length-1;}return oMap.aScales[scale_code];};kaMap.prototype.getRefScale=function(scale_code){var oMap=this.getCurrentMap();if(!oMap)return;if(scale_code>=oMap.aRefScales.length){return;}return oMap.aRefScales[scale_code];};kaMap.prototype.getCellSize=function(scale,oMap){var inchesPerUnit=new Array(1,12,63360.0,39.3701,39370.1,4374754);return scale/(oMap.resolution*inchesPerUnit[oMap.units])*this.coordCorrectionValue;};kaMap.prototype.zoomToByCode=function(cgX,cgY,scaleCode){if(this.initializationState==1){this.reserve_to_zoom_x=cgX;this.reserve_to_zoom_y=cgY;this.reserve_to_scale_code=scaleCode;return;}else{this.zoomTo(cgX,cgY,scaleCode!=null?this.getScale(scaleCode):null);}};kaMap.prototype.zoomTo=function(cgX,cgY,scale){if(this.initializationState==1){this.reserve_to_zoom_x=cgX;this.reserve_to_zoom_y=cgY;this.reserve_to_scale=arguments[2];return;}if(cgX==null)cgX=this.getGeoCenter()[1];if(cgY==null)cgY=this.getGeoCenter()[0];var oMap=this.getCurrentMap();if(!oMap)return;var newScale;var bScaleChanged=false;if(scale!=null){newScale=scale;bScaleChanged=(newScale!=this.getCurrentScale());}else{newScale=this.getCurrentScale();}this.cellSize=this.getCellSize(newScale,oMap);cgX=this.coordForwardX(cgX);cgY=this.coordForwardY(cgY);var nFactor=oMap.zoomToScale(newScale);this.setMapLayers();var cpX=cgX/this.cellSize;var cpY=cgY/this.cellSize;var vpLeft=Math.round(cpX-this.viewportWidth/2);var vpTop=Math.round(cpY+this.viewportHeight/2);var cTileX=Math.floor(cpX/this.tileWidth)*this.tileWidth;var cTileY=Math.floor(cpY/this.tileHeight)*this.tileHeight;var nTilesLeft=Math.ceil(this.viewportWidth/(2*this.tileWidth))*this.tileWidth;var nTilesUp=Math.ceil(this.viewportHeight/(2*this.tileHeight))*this.tileHeight;this.nCurrentLeft=cTileX-nTilesLeft;this.nCurrentTop=-1*(cTileY+nTilesUp);this.xOrigin=this.nCurrentLeft;this.yOrigin=this.nCurrentTop;this.theInsideLayer.style.left=-1*(vpLeft-this.xOrigin)+"px";this.theInsideLayer.style.top=(vpTop+this.yOrigin)+"px";var layers=oMap.getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;for(var j=0;j<this.nHigh;j++){for(var i=0;i<this.nWide;i++){var img=d.childNodes[(j*this.nWide)+i];kaMap.setTileImg(img,this.aPixel.src);img.style.top=(this.nCurrentTop+j*this.tileHeight-this.yOrigin)+"px";img.style.left=(this.nCurrentLeft+i*this.tileWidth-this.xOrigin)+"px";layers[k].setTile(img);}}}this.checkWrap();this.updateObjects();if(bScaleChanged)this.triggerEvent(kaMap.SCALE_CHANGED,this.getCurrentScale());var ext=this.getGeoExtents();ext.isScaleChanged=bScaleChanged;this.triggerEvent(kaMap.EXTENTS_CHANGED,ext);};kaMap.prototype.zoomToExtents=function(minx,miny,maxx,maxy){minx=this.coordForwardX(minx);miny=this.coordForwardY(miny);maxx=this.coordForwardX(maxx);maxy=this.coordForwardY(maxy);var inchesPerUnit=new Array(1,12,63360.0,39.3701,39370.1,4374754);var oMap=this.getCurrentMap();var cgX=(maxx+minx)/2;var cgY=(maxy+miny)/2;var tmpCellSizeX=(maxx-minx)/this.viewportWidth;var tmpCellSizeY=(maxy-miny)/this.viewportHeight;var tmpCellSize=Math.max(tmpCellSizeX,tmpCellSizeY);var tmpScale=tmpCellSize*oMap.resolution*inchesPerUnit[oMap.units];var newScale=oMap.aScales[0];for(var i=0;i<oMap.aScales.length;i++){if(tmpScale>=oMap.aScales[i]){break;}newScale=oMap.aScales[i];}newScale=oMap.aScales[oMap.currentScale];this.cellSize=newScale/(oMap.resolution*inchesPerUnit[oMap.units])*this.coordCorrectionValue;var nFactor=oMap.zoomToScale(newScale);this.setMapLayers();var cpX=cgX/this.cellSize;var cpY=cgY/this.cellSize;var vpLeft=Math.round(cpX-this.viewportWidth/2);var vpTop=Math.round(cpY+this.viewportHeight/2);var cTileX=Math.floor(cpX/this.tileWidth)*this.tileWidth;var cTileY=Math.floor(cpY/this.tileHeight)*this.tileHeight;var nTilesLeft=Math.ceil(this.viewportWidth/(2*this.tileWidth))*this.tileWidth;var nTilesUp=Math.ceil(this.viewportHeight/(2*this.tileHeight))*this.tileHeight;this.nCurrentLeft=cTileX-nTilesLeft;this.nCurrentTop=-1*(cTileY+nTilesUp);this.xOrigin=this.nCurrentLeft;this.yOrigin=this.nCurrentTop;this.theInsideLayer.style.left=-1*(vpLeft-this.xOrigin)+"px";this.theInsideLayer.style.top=(vpTop+this.yOrigin)+"px";var layers=oMap.getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;for(var j=0;j<this.nHigh;j++){for(var i=0;i<this.nWide;i++){var img=d.childNodes[(j*this.nWide)+i];kaMap.setTileImg(img,this.aPixel.src);img.style.top=(this.nCurrentTop+j*this.tileHeight-this.yOrigin)+"px";img.style.left=(this.nCurrentLeft+i*this.tileWidth-this.xOrigin)+"px";layers[k].setTile(img);}}}this.checkWrap();this.updateObjects();this.triggerEvent(kaMap.SCALE_CHANGED,this.getCurrentScale());var ext=this.getGeoExtents();ext.isScaleChanged=1;this.triggerEvent(kaMap.EXTENTS_CHANGED,ext);};kaMap.prototype.createDrawingCanvas=function(idx){var d=kaMap.f_createUnselectableElement('div');d.style.position='absolute';d.style.left='0px';d.style.top='0px';d.style.width='1200px';d.style.height='800px';d.style.zIndex=idx;this.theInsideLayer.appendChild(d);this.aCanvases.push(d);d.kaMap=this;return d;};kaMap.prototype.createDrawingCanvas2=function(idx,w,h){var d=kaMap.f_createUnselectableElement('div');d.style.position='absolute';d.style.left='0px';d.style.top='0px';d.style.width=w+'px';d.style.height=h+'px';d.style.zIndex=idx;this.theInsideLayer.appendChild(d);this.aCanvases.push(d);d.kaMap=this;return d;};kaMap.prototype.removeDrawingCanvas=function(canvas){for(var i=0;i<this.aCanvases.length;i++){if(this.aCanvases[i]==canvas){this.aCanvases.splice(i,1);}}this.theInsideLayer.removeChild(canvas);canvas.kaMap=null;return true;};kaMap.prototype.addObjectGeo=function(canvas,lon,lat,obj){obj.lon=lon;obj.lat=lat;var aPix=this.geoToPix(lon,lat);return this.addObjectPix(canvas,aPix[0],aPix[1],obj);};kaMap.prototype.addObjectPix=function(canvas,x,y,obj){var xOffset=(obj.xOffset)?obj.xOffset:0;var yOffset=(obj.yOffset)?obj.yOffset:0;var top=(y-this.yOrigin+yOffset);var left=(x-this.xOrigin+xOffset);obj.style.position='absolute';obj.style.top=top+"px";obj.style.left=left+"px";obj.canvas=canvas;canvas.appendChild(obj);this.aObjects.push(obj);return true;};kaMap.prototype.shiftObject=function(x,y,obj){var top=safeParseInt(obj.style.top);var left=safeParseInt(obj.style.left);obj.style.top=(top+y)+"px";obj.style.left=(left+x)+"px";return true;};kaMap.prototype.removeObject=function(obj){for(var i=0;i<this.aObjects.length;i++){if(this.aObjects[i]==obj||obj==null){if(!obj)obj=this.aObjects[i];if(obj.canvas){obj.canvas.removeChild(obj);obj.canvas=null;}this.aObjects.splice(i,1);return true;}}return false;};kaMap.prototype.centerObject=function(obj){var vpX=-safeParseInt(this.theInsideLayer.style.left)+this.viewportWidth/2;var vpY=-safeParseInt(this.theInsideLayer.style.top)+this.viewportHeight/2;var xOffset=(obj.xOffset)?obj.xOffset:0;var yOffset=(obj.yOffset)?obj.yOffset:0;var dx=safeParseInt(obj.style.left)-xOffset-vpX;var dy=safeParseInt(obj.style.top)-yOffset-vpY;this.slideBy(-dx,-dy);return true;};kaMap.prototype.geoToPix=function(gX,gY){gX=this.coordForwardX(gX);gY=this.coordForwardY(gY);var pX=gX/this.cellSize;var pY=-1*gY/this.cellSize;return[Math.floor(pX),Math.floor(pY)];};kaMap.prototype.pixToGeo=function(pX,pY){var bAdjust=(arguments.length==3&&arguments[2])?true:false;if(bAdjust){pX=pX+this.xOrigin;pY=pY+this.yOrigin;}var gX=-1*pX*this.cellSize;var gY=pY*this.cellSize;gX=this.coordInverseX(gX);gY=this.coordInverseY(gY);return[gX,gY];};kaMap.prototype.mkurl=function(server,cgi,param_str){if(param_str!=''){param_str=(cgi.indexOf('?')<0?'?':'&')+param_str;}return server+cgi+param_str;};kaMap.prototype.initialize=function(){if(this.initializationState==2){this.triggerEvent(kaMap.ERROR,'ERROR: ka-Map! is already initialized!');return false;}else if(this.intializationState==1){this.triggerEvent(kaMap.WARNING,'WARNING: ka-Map! is currently initializing ... wait for the kaMap.INITIALIZED event to be triggered.');return false;}this.initializationState=1;if(window.opera){var self=this;setTimeout(function(){self.asyncInitialize.apply(self);},0);}else{this.asyncInitialize();}return true;};kaMap.prototype.asyncInitialize=function(){var arg_keys=['map','extents','centerPoint'];var parr=[];for(var i=0;i<arguments.length;i++){if(arguments[i]!=''){parr.push(arg_keys[i]+'='+arguments[i]);}}var pstr=parr.join('&');var szURL=this.mkurl(this.server,this.init,pstr);calljs(szURL,this,this.initializeCallback);return true;};kaMap.prototype.initialized=function(){return this.initializationState==2;};kaMap.prototype.initializeCallback=function(szInit){if(this.aReq){this.aReq.removeScriptTag();}if(szInit.substr(0,1)!="/"){this.triggerEvent(kaMap.ERROR,'ERROR: ka-Map! initialization failed on the server.  Message returned was:\n'+szInit);return false;}eval(szInit);this.initializationState=2;this.triggerEvent(kaMap.INITIALIZED);var scale_val=-1;if(this.reserve_to_scale_code>=0){scale_val=this.getScale(this.reserve_to_scale_code);}else if(this.reserve_to_scale>0){scale_val=this.reserve_to_scale;}if(scale_val>0){this.zoomTo(this.reserve_to_zoom_x,this.reserve_to_zoom_y,scale_val);this.reserve_to_zoom_x=this.reserve_to_zoom_y=0;this.reserve_to_scale=this.reserve_to_scale_code=-1;}if(this.reserve_forceUpdateGraphLayers){this.reserve_forceUpdateGraphLayers=false;this.forceUpdateGraphLayers();}if(this.useIPC){this.aIPC_scales=new Array();for(var s in this.IPC_scales){this.aIPC_scales.push(s);}this.aIPC_scales.sort().reverse();this.check_ipc=function(){var ipc_status='';var current_scale=this.getCurrentScale();if(this.IPC_scales[current_scale]||this.NoIPC){var ext=this.getGeoExtents();var gX=(ext[0]+ext[2])/2;var gY=(ext[1]+ext[3])/2;var ipc_params=new Array();for(var scale in this.IPC_scales){var tile_id=this.getCenterTileID(scale,gX,gY);ipc_params.push({s:scale,t:tile_id});}var result=this.ask_ipc(ipc_params);if(result[0]=='done'){this.set_ipc_status(result[1],current_scale);}}};this.registerForEvent(kaMap.EXTENTS_CHANGED,this,this.check_ipc);}};kaMap.prototype.getCenterTileID=function(){var cp;if(arguments.length==3){var scale=arguments[0];var gX=arguments[1];var gY=arguments[2];gX=this.coordForwardX(gX);gY=this.coordForwardY(gY);var resolution=72;var inches_per_meter=39.3701;var cell_size=scale/(resolution*inches_per_meter)*this.coordCorrectionValue;cp=[gX/cell_size,-1*gY/cell_size];}else{cp=this.getCenter();}var cTileX=Math.floor(cp[0]/this.tileWidth)*this.tileWidth;var cTileY=Math.floor(cp[1]/this.tileHeight)*this.tileHeight;return "t"+cTileY+"l"+cTileX;};kaMap.prototype.ask_ipc=function(scales){var min_scale_value=this.noIPC_scales[this.noIPC_scales.length-1];var min_determined=false;var require_server_check=false;var req_params=new Array();for(var i=0;i<scales.length;i++){var scale=scales[i].s;var tile_id=scales[i].t;if(!this.IPC_cache){this.IPC_cache=[];}if(!this.IPC_cache[scale]){this.IPC_cache[scale]=[];}if(!this.IPC_cache[scale][tile_id]){this.IPC_cache[scale][tile_id]='waiting';require_server_check=true;}else if(!min_determined){if(this.IPC_cache[scale][tile_id]=='waiting'){return['waiting'];}else if(this.IPC_cache[scale][tile_id]=='exists'&&scale<min_scale_value){min_scale_value=scale;}else if(this.IPC_cache[scale][tile_id]=='nodata'){min_determined=true;}}req_params.push("s:"+scale+"t:"+tile_id);}if(!require_server_check){return['done',min_scale_value];}var param_str='tiles='+req_params.join(',')+'&org_scale='+this.getCurrentScale()+'&org_tile='+this.getCenterTileID();var req=this.mkurl(this.server,this.checkIPC_URL,param_str);calljs(req,this,this.check_ipc_callback);return['waiting'];};kaMap.prototype.ipc_limit_scale=function(min_scale,current_scale){if(!this.noIPC_scales||this.noIPC_scales.length<=0||!this.aIPC_scales||this.aIPC_scales.length<=0){return;}if(!this.currentMap){return;}var a_map=this.aMaps[this.currentMap];if(!a_map){return;}if(!a_map.aOrgScales){a_map.aOrgScales=a_map.aScales;}var tmp_scales=this.noIPC_scales.slice(0);for(var i=0;i<this.aIPC_scales.length;i++){var s=this.aIPC_scales[i];if(s<min_scale){break;}tmp_scales.push(s);}if(current_scale<min_scale){this.zoomToScale(min_scale);}a_map.aScales=tmp_scales;};kaMap.prototype.ipc_restore_scale=function(){if(!this.currentMap){return;}var a_map=this.aMaps[this.currentMap];if(!a_map){return;}if(!a_map.aOrgScales){return;}a_map.aScales=a_map.aOrgScales;};kaMap.prototype.set_ipc_status=function(min_scale_value,current_scale){var ipc_min=this.aIPC_scales[this.aIPC_scales.length-1];if(min_scale_value>ipc_min){this.NoIPC=true;this.ipc_limit_scale(min_scale_value,current_scale);}else{this.NoIPC=false;this.ipc_restore_scale();}};kaMap.prototype.check_ipc_callback=function(json){var tiles=json.tiles;var org_scale=json.org_scale;var org_tile=json.org_tile;var min_scale_value=this.noIPC_scales[this.noIPC_scales.length-1];var min_determined=false;if(tiles&&tiles.length){for(var i=0;i<tiles.length;i++){var t=tiles[i];if(t.cache_exists){this.IPC_cache[t.scale][t.tile_id]='exists';if(!min_determined&&t.scale<min_scale_value){min_scale_value=t.scale;}}else{this.IPC_cache[t.scale][t.tile_id]='nodata';if(!min_determined){min_determined=true;}}}}if(org_scale==this.getCurrentScale()&&org_tile==this.getCenterTileID()){this.set_ipc_status(min_scale_value,org_scale);}return true;};kaMap.prototype.getFullScaleLength=function(){if(!this.currentMap){return;}var a_map=this.aMaps[this.currentMap];if(!a_map){return;}return a_map.aOrgScales?a_map.aOrgScales.length:a_map.aScales?a_map.aScales.length:0;};kaMap.prototype.getFullScale=function(idx){if(!this.currentMap){return;}var a_map=this.aMaps[this.currentMap];if(!a_map){return;}return a_map.aOrgScales?a_map.aOrgScales[idx]:a_map.aScales?a_map.aScales[idx]:0;};kaMap.prototype._preInitialize=function(map){if(this.customize_config){var custom='custom='+escape(this.customize_config);this.tileURL=this.mkurl('',this.tileURL,custom);this.retryURL=this.mkurl('',this.retryURL,custom);this.keymapURL=this.mkurl('',this.keymapURL,custom);this.checkIPC_URL=this.mkurl('',this.checkIPC_URL,custom);}this.coordForwardX=this.useMerc?this.BL2MercX:this.BL2BLX;this.coordForwardY=this.useMerc?this.BL2MercY:this.BL2BLY;this.coordInverseX=this.useMerc?this.Merc2BLX:this.BL2BLX;this.coordInverseY=this.useMerc?this.Merc2BLY:this.BL2BLY;this.coordCorrectionValue=this.useMerc?(this.mercR*this.DEG_TO_RAD):1.0;if(map&&this.initialPos!=null){var initialPos=this.initialPos;if(initialPos['lat']!=null||initialPos['lon']!=null){var w=(map.currentExtents[2]-map.currentExtents[0])/2;var h=(map.currentExtents[3]-map.currentExtents[1])/2;var lat=initialPos['lat'];var lon=initialPos['lon'];if(lat==null)lat=(map.currentExtents[3]+map.currentExtents[1])/2;if(lon==null)lon=(map.currentExtents[2]+map.currentExtents[0])/2;map.currentExtents=[lon-w,lat-h,lon+w,lat+h];}if(initialPos['scale']!=null){var s=initialPos['scale'];var max=map.aScales.length-1;map.currentScale=s<0?0:(max<s?max:s);}}};kaMap.prototype.setBackgroundColor=function(color){this.domObj.style.backgroundColor=color;return true;};kaMap.prototype.createLayers=function(){this.theInsideLayer=kaMap.f_createUnselectableElement('div');this.theInsideLayer.id='theInsideLayer';this.theInsideLayer.style.position='absolute';this.theInsideLayer.style.left='0px';this.theInsideLayer.style.top='0px';this.theInsideLayer.style.zIndex='1';this.theInsideLayer.kaMap=this;if(this.currentTool)this.theInsideLayer.style.cursor=this.currentTool.cursor;this.domObj.appendChild(this.theInsideLayer);this.domObj.kaMap=this;this.theInsideLayer.onmousedown=kaMap_onmousedown;this.theInsideLayer.onmouseup=kaMap_onmouseup;this.theInsideLayer.onmousemove=kaMap_onmousemove;this.theInsideLayer.onmouseover=kaMap_onmouseover;this.domObj.onmouseout=kaMap_onmouseout;this.theInsideLayer.onkeypress=kaMap_onkeypress;this.theInsideLayer.ondblclick=kaMap_ondblclick;this.theInsideLayer.oncontextmenu=kaMap_oncontextmenu;if(this.enableMouseWheel){this.theInsideLayer.onmousewheel=kaMap_onmousewheel;if(window.addEventListener&&navigator.product&&navigator.product=="Gecko"){this.domObj.addEventListener("DOMMouseScroll",kaMap_onmousewheel,false);}}this.theInsideLayer.ondragstart=new Function([],'var e=e?e:event;e.cancelBubble=true;e.returnValue=false;return false;');};kaMap.prototype.initializeLayers=function(nFactor){var deltaMouseX=this.nCurrentLeft+safeParseInt(this.theInsideLayer.style.left)-this.xOrigin;var deltaMouseY=this.nCurrentTop+safeParseInt(this.theInsideLayer.style.top)-this.yOrigin;var vpTop=this.nCurrentTop-deltaMouseY;var vpLeft=this.nCurrentLeft-deltaMouseX;var vpCenterX=vpLeft+this.viewportWidth/2;var vpCenterY=vpTop+this.viewportHeight/2;var currentTileX=Math.floor(vpCenterX/this.tileWidth)*this.tileWidth;var currentTileY=Math.floor(vpCenterY/this.tileHeight)*this.tileHeight;var tileDeltaX=currentTileX-this.nCurrentLeft;var tileDeltaY=currentTileY-this.nCurrentTop;var newVpCenterX=vpCenterX*nFactor;var newVpCenterY=vpCenterY*nFactor;var newTileX=Math.floor(newVpCenterX/this.tileWidth)*this.tileWidth;var newTileY=Math.floor(newVpCenterY/this.tileHeight)*this.tileHeight;var newCurrentLeft=newTileX-tileDeltaX;var newCurrentTop=newTileY-tileDeltaY;this.nCurrentLeft=newCurrentLeft;this.nCurrentTop=newCurrentTop;var newTilLeft=-newVpCenterX+this.viewportWidth/2;var newTilTop=-newVpCenterY+this.viewportHeight/2;var xOldOrigin=this.xOrigin;var yOldOrigin=this.yOrigin;this.xOrigin=this.nCurrentLeft;this.yOrigin=this.nCurrentTop;this.theInsideLayer.style.left=(newTilLeft+this.xOrigin)+"px";this.theInsideLayer.style.top=(newTilTop+this.yOrigin)+"px";var layers=this.aMaps[this.currentMap].getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;for(var j=0;j<this.nHigh;j++){for(var i=0;i<this.nWide;i++){var img=d.childNodes[(j*this.nWide)+i];kaMap.setTileImg(img,this.aPixel.src);img.style.top=(this.nCurrentTop+j*this.tileHeight-this.yOrigin)+"px";img.style.left=(this.nCurrentLeft+i*this.tileWidth-this.xOrigin)+"px";layers[k].setTile(img);}}}this.checkWrap();this.updateObjects();};kaMap.prototype.paintLayer=function(l){var d=l.domObj;for(var j=0;j<this.nHigh;j++){for(var i=0;i<this.nWide;i++){var img=d.childNodes[(j*this.nWide)+i];img.style.top=(this.nCurrentTop+j*this.tileHeight-this.yOrigin)+"px";img.style.left=(this.nCurrentLeft+i*this.tileWidth-this.xOrigin)+"px";l.setTile(img);}}this.checkWrap();};kaMap.prototype.updateObjects=function(){for(var i=0;i<this.aObjects.length;i++){var obj=this.aObjects[i];var xOffset=(obj.xOffset)?obj.xOffset:0;var yOffset=(obj.yOffset)?obj.yOffset:0;var aPix=this.geoToPix(obj.lon,obj.lat);var top=(aPix[1]-this.yOrigin+yOffset);var left=(aPix[0]-this.xOrigin+xOffset);obj.style.top=top+"px";obj.style.left=left+"px";}};kaMap.prototype.resize=function(){if(this.initializationState!=2){return false;}this.domObj.style.width=this.getObjectClientWidth(this.parentDomObj)+'px';this.domObj.style.height=this.getObjectClientHeight(this.parentDomObj)+'px';var newViewportWidth=this.getWidth(this.domObj);var newViewportHeight=this.getHeight(this.domObj);if(this.viewportWidth==null){this.theInsideLayer.style.top=(-1*this.nCurrentTop+this.yOrigin)+"px";this.theInsideLayer.style.left=(-1*this.nCurrentLeft+this.xOrigin)+"px";this.viewportWidth=newViewportWidth;this.viewportHeight=newViewportHeight;}var newWide=Math.ceil((newViewportWidth/this.tileWidth)+2*this.nBuffer);var newHigh=Math.ceil((newViewportHeight/this.tileHeight)+2*this.nBuffer);this.viewportWidth=newViewportWidth;this.viewportHeight=newViewportHeight;if(this.nHigh==0&&this.nWide==0)this.nWide=newWide;while(this.nHigh<newHigh)this.appendRow();while(this.nHigh>newHigh&&newHigh>3)this.removeRow();while(this.nWide<newWide)this.appendColumn();while(this.nWide>newWide&&newWide>3)this.removeColumn();var map=this.getCurrentMap();var layers=map.getLayers();for(i=0;i<layers.length;i++)layers[i].setTileLayer();this.triggerEvent(kaMap.EXTENTS_CHANGED,this.getGeoExtents());};kaMap.prototype.createImage=function(top,left,obj){var img=kaMap.f_createUnselectableElement('img');img.width=this.tileWidth;img.height=this.tileHeight;img.setAttribute('style','position:absolute; top:'+top+'px; left:'+left+'px;');img.style.position='absolute';img.style.top=(top-this.yOrigin)+'px';img.style.left=(left-this.xOrigin)+'px';img.style.width=this.tileWidth+"px";img.style.height=this.tileHeight+"px";img.style.visibility='hidden';img.galleryimg="no";img.onerror=kaMap_imgOnError;img.onload=kaMap_imgOnLoad;img.errorCount=0;img.id="i"+this.gImageID;img.layer=obj;img.kaMap=this;kaMap.setTileImg(img,this.aPixel.src);this.gImageID=this.gImageID+1;return img;};kaMap.prototype.resetTile=function(id,bForce){var img=this.DHTMLapi.getRawObject(id);if(img.layer)img.layer.setTile(this,bForce);};kaMap.prototype.reloadImage=function(id){};kaMap.prototype.resetImage=function(id){};kaMap.setTileImg=function(img,src){if(img==null)return;if(img.src==src)return;if(src!=img.layer._map.kaMap.aPixel.src){img.src=src;}};kaMap.normalize_string=function(s){return String(s).replace(new RegExp("(\\W)","g"),"_");};kaMap_imgOnError=function(e){if(this.retry_src){var retry_src=this.retry_src;this.retry_src=null;this.src=retry_src;}};kaMap_imgOnLoad=function(e){this.style.visibility='visible';};kaMap.prototype.appendRow=function(layer){if(this.nWide==0)return;if(arguments.length==1)var layers=Array(layer);else var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){var obj=layers[i].domObj;for(var j=0;j<this.nWide;j++){var top=this.nCurrentTop+(this.nHigh*this.tileHeight);var left=this.nCurrentLeft+(j*this.tileWidth);var img=this.createImage(top,left,layers[i]);if(this.isIE4)kaMap.f_setFilterAlpha(img,layers[i].opacity);obj.appendChild(img);}}this.nHigh=this.nHigh+1;};kaMap.prototype.appendColumn=function(layer){if(this.nHigh==0)return;if(arguments.length==1)var layers=Array(layer);else var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){var obj=layers[i].domObj;for(var j=this.nHigh-1;j>=0;j--){var top=this.nCurrentTop+(j*this.tileHeight);var left=this.nCurrentLeft+(this.nWide*this.tileWidth);var img=this.createImage(top,left,layers[i]);if(this.isIE4)kaMap.f_setFilterAlpha(img,layers[i].opacity);if(j<this.nHigh-1)obj.insertBefore(img,obj.childNodes[((j+1)*this.nWide)]);else obj.appendChild(img);}}this.nWide=this.nWide+1;};kaMap.prototype.removeColumn=function(layer){if(this.nWide<3)return;if(arguments.length==1)var layers=Array(layer);else var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){var d=layers[i].domObj;for(var j=this.nHigh-1;j>=0;j--){var img=d.childNodes[((j+1)*this.nWide)-1];d.removeChild(img);img.onload=null;img.onerror=null;img.src=this.aPixel.src;}}this.nWide=this.nWide-1;};kaMap.prototype.removeRow=function(layer){if(this.nHigh<3)return;if(arguments.length==1)var layers=Array(layer);else var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){var d=layers[i].domObj;for(var j=this.nWide-1;j>=0;j--){var img=d.childNodes[((this.nHigh-1)*this.nWide)+j];d.removeChild(img);img.onload=null;img.onerror=null;img.src=this.aPixel.src;}}this.nHigh=this.nHigh-1;};kaMap.prototype.hideLayers=function(){if(!this.hideLayersOnMove)return;if(this.layersHidden)return;var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){layers[i]._visible=layers[i].visible;if(layers[i].name!='__base__'){layers[i].setVisibility(false);}}for(var i=0;i<this.aCanvases.length;i++){this.aCanvases[i].style.visibility='hidden';this.aCanvases[i].style.display='none';}this.layersHidden=true;};kaMap.prototype.showLayers=function(){if(!this.hideLayersOnMove)return;if(!this.layersHidden)return;var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){layers[i].setVisibility(layers[i]._visible);}for(var i=0;i<this.aCanvases.length;i++){this.aCanvases[i].style.visibility='visible';this.aCanvases[i].style.display='block';}this.layersHidden=false;};kaMap.prototype.moveBy=function(x,y){var til=this.theInsideLayer;til.style.top=(safeParseInt(til.style.top)+y)+'px';til.style.left=(safeParseInt(til.style.left)+x)+'px';this.checkWrap();};kaMap.prototype.slideBy=function(x,y){if(this.slideid!=null){kaMap.goQueueManager.dequeue(this.slideid);}this.as=[];var absX=Math.abs(x);var absY=Math.abs(y);var signX=x/absX;var signY=y/absY;var distance=absX>absY?absX:absY;var steps=Math.floor(distance/this.pixelsPerStep);var dx=dy=0;if(steps>0){dx=(x)/(steps*this.pixelsPerStep);dy=(y)/(steps*this.pixelsPerStep);}var remainderX=x-dx*steps*this.pixelsPerStep;var remainderY=y-dy*steps*this.pixelsPerStep;var px=py=0;var curspeed=this.accelerationFactor;var i=0;while(i<steps){if(i>0){px+=this.as[i-1][0];py+=this.as[i-1][1];}var cx=px+Math.round(dx*this.pixelsPerStep);var cy=py+Math.round(dy*this.pixelsPerStep);this.as[i]=new Array(cx-px,cy-py);i++;}if(remainderX!=0||remainderY!=0){this.as[i]=[remainderX,remainderY];}this.hideLayers();this.slideid=kaMap.goQueueManager.enqueue(this.timePerStep,this,this.slide,[0]);};kaMap.prototype.slide=function(pos){if(pos>=this.as.length){this.as=slideid=null;this.showLayers();this.triggerEvent(kaMap.EXTENTS_CHANGED,this.getGeoExtents());return;}this.moveBy(this.as[pos][0],this.as[pos][1]);pos++;this.slideid=kaMap.goQueueManager.enqueue(this.timePerStep,this,this.slide,[pos]);};kaMap_onkeypress=function(e){if(this.kaMap.enableKeyboardInterface&&this.kaMap.currentTool)this.kaMap.currentTool.onkeypress(e);};kaMap_onmousemove=function(e){e=(e)?e:((event)?event:null);if(e.button==2){this.kaMap.triggerEvent(kaMap.CONTEXT_MENU);}if(this.kaMap.currentTool)this.kaMap.currentTool.onmousemove(e);};kaMap_onmousedown=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onmousedown(e);};kaMap_onmouseup=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onmouseup(e);};kaMap_onmouseover=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onmouseover(e);};kaMap_onmouseout=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onmouseout(e);};kaMap_oncontextmenu=function(e){e=e?e:event;if(e.preventDefault)e.preventDefault();return false;};kaMap_ondblclick=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.ondblclick(e);};kaMap_onmousewheel=function(e){if(this.kaMap.enableMouseWheel&&this.kaMap.currentTool)this.kaMap.currentTool.onmousewheel(e);};kaMap.prototype.cancelEvent=function(e){e=(e)?e:((event)?event:null);e.returnValue=false;if(e.preventDefault)e.preventDefault();return false;};kaMap.prototype.registerTool=function(toolObj){this.aTools.push(toolObj);};kaMap.prototype.activateTool=function(toolObj){if(this.currentTool){this.currentTool.deactivate();}this.currentTool=toolObj;if(this.theInsideLayer)this.setCursor(this.currentTool.cursor);};kaMap.prototype.deactivateTool=function(toolObj){if(this.currentTool==toolObj)this.currentTool=null;if(this.theInsideLayer)this.theInsideLayer.style.cursor='auto';};kaMap.prototype.setCursor=function(cursor){if(cursor&&cursor.length&&typeof cursor=='object'){for(var i=0;i<cursor.length;i++){this.theInsideLayer.style.cursor=cursor[i];if(this.theInsideLayer.style.cursor==cursor[i]){break;}}}else if(typeof cursor=='string'){this.theInsideLayer.style.cursor=cursor;}else{this.theInsideLayer.style.cursor='auto';}};kaMap.prototype.getCursor=function(){return this.theInsideLayer?this.theInsideLayer.style.cursor:'auto';};kaMap.prototype.checkWrap=function(){this.xOffset=safeParseInt(this.theInsideLayer.style.left)+this.nCurrentLeft-this.xOrigin;this.yOffset=safeParseInt(this.theInsideLayer.style.top)+this.nCurrentTop-this.yOrigin;while(this.xOffset>0){this.wrapR2L();}while(this.xOffset<-(this.nBuffer*this.tileWidth)){this.wrapL2R();}while(this.yOffset>-(this.nBuffer*this.tileHeight)){this.wrapB2T();}while(this.yOffset<-(2*this.nBuffer*this.tileHeight)){this.wrapT2B();}var layer=this.aMaps[this.currentMap].aLayers[0].domObj;if(layer){var img=layer.childNodes[0].style;this.nCurrentTop=safeParseInt(img.top)+this.yOrigin;this.nCurrentLeft=safeParseInt(img.left)+this.xOrigin;}};kaMap.prototype.wrapR2L=function(){this.xOffset=this.xOffset-(this.nBuffer*this.tileWidth);var layers=this.aMaps[this.currentMap].getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;var refLeft=safeParseInt(d.childNodes[0].style.left);for(var j=0;j<this.nHigh;j++){var imgLast=d.childNodes[((j+1)*this.nWide)-1];var imgNext=d.childNodes[j*this.nWide];imgLast.style.left=(refLeft-this.tileWidth)+'px';kaMap.setTileImg(imgLast,this.aPixel.src);d.removeChild(imgLast);d.insertBefore(imgLast,imgNext);if(layers[k].visible)layers[k].setTile(imgLast);}}};kaMap.prototype.wrapL2R=function(){this.xOffset=this.xOffset+(this.nBuffer*this.tileWidth);var layers=this.aMaps[this.currentMap].getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;var refLeft=safeParseInt(d.childNodes[this.nWide-1].style.left);for(var j=0;j<this.nHigh;j++){var imgFirst=d.childNodes[j*this.nWide];var imgNext;if(j<this.nHigh-1)imgNext=d.childNodes[((j+1)*this.nWide)];else imgNext=null;imgFirst.style.left=(refLeft+this.tileWidth)+'px';kaMap.setTileImg(imgFirst,this.aPixel.src);d.removeChild(imgFirst);if(imgNext)d.insertBefore(imgFirst,imgNext);else d.appendChild(imgFirst);if(layers[k].visible)layers[k].setTile(imgFirst);}}};kaMap.prototype.wrapT2B=function(){this.yOffset=this.yOffset+(this.nBuffer*this.tileHeight);var layers=this.aMaps[this.currentMap].getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;var refTop=safeParseInt(d.childNodes[(this.nHigh*this.nWide)-1].style.top);for(var i=0;i<this.nWide;i++){var imgBottom=d.childNodes[0];imgBottom.style.top=(refTop+this.tileHeight)+'px';kaMap.setTileImg(imgBottom,this.aPixel.src);d.removeChild(imgBottom);d.appendChild(imgBottom);if(layers[k].visible)layers[k].setTile(imgBottom);}}};kaMap.prototype.wrapB2T=function(){this.yOffset=this.yOffset-(this.nBuffer*this.tileHeight);var layers=this.aMaps[this.currentMap].getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;var refTop=safeParseInt(d.childNodes[0].style.top);for(var i=0;i<this.nWide;i++){var imgTop=d.childNodes[(this.nHigh*this.nWide)-1];imgTop.style.top=(refTop-this.tileHeight)+'px';kaMap.setTileImg(imgTop,this.aPixel.src);d.removeChild(imgTop);d.insertBefore(imgTop,d.childNodes[0]);if(layers[k].visible)layers[k].setTile(imgTop);}}};kaMap.prototype.addMap=function(oMap){oMap.kaMap=this;this.aMaps[oMap.name]=oMap;};kaMap.prototype.getMaps=function(){return this.aMaps;};kaMap.prototype.getCurrentMap=function(){return this.aMaps[this.currentMap];};kaMap.prototype.selectMap=function(name){if(!this.aMaps[name]){return false;}else{this.currentMap=name;var oMap=this.getCurrentMap();this.setBackgroundColor(oMap.backgroundColor);this.setMapLayers();if(oMap.aZoomTo.length!=0){this.zoomTo(oMap.aZoomTo[0],oMap.aZoomTo[1],oMap.aZoomTo[2]);oMap.aZoomTo.length=0;}else{this.zoomToExtents(oMap.currentExtents[0],oMap.currentExtents[1],oMap.currentExtents[2],oMap.currentExtents[3]);}this.triggerEvent(kaMap.MAP_INITIALIZED,this.currentMap);return true;}};kaMap.prototype.setMapLayers=function(){var oMap=this.getCurrentMap();for(var i=this.theInsideLayer.childNodes.length-1;i>=0;i--){if(this.theInsideLayer.childNodes[i].className=='mapLayer'){this.theInsideLayer.childNodes[i].appended=false;this.theInsideLayer.removeChild(this.theInsideLayer.childNodes[i]);}}layers=oMap.getLayers();for(var i=0;i<layers.length;i++){if(!layers[i].domObj){var d=this.createMapLayer(layers[i].name);this.theInsideLayer.appendChild(d);d.appended=true;layers[i].domObj=d;layers[i].setOpacity(layers[i].opacity);layers[i].setZIndex(layers[i].zIndex);layers[i].setVisibility(layers[i].visible);this.nWide=0;this.nHigh=0;this.drawGroup(layers[i]);}else if(!layers[i].domObj.appended){this.theInsideLayer.appendChild(layers[i].domObj);layers[i].domObj.appended=true;layers[i].setZIndex(layers[i].zIndex);}}return true;};kaMap.prototype.drawGroup=function(group){this.domObj.style.width=this.getObjectClientWidth(this.parentDomObj)+'px';this.domObj.style.height=this.getObjectClientHeight(this.parentDomObj)+'px';var newViewportWidth=this.getWidth(this.domObj);var newViewportHeight=this.getHeight(this.domObj);if(this.viewportWidth==null){this.theInsideLayer.style.top=(-1*this.nCurrentTop+this.yOrigin)+"px";this.theInsideLayer.style.left=(-1*this.nCurrentLeft+this.xOrigin)+"px";this.viewportWidth=newViewportWidth;this.viewportHeight=newViewportHeight;}var newWide=Math.ceil((newViewportWidth/this.tileWidth)+2*this.nBuffer);var newHigh=Math.ceil((newViewportHeight/this.tileHeight)+2*this.nBuffer);this.viewportWidth=newViewportWidth;this.viewportHeight=newViewportHeight;if(this.nHigh==0&&this.nWide==0)this.nWide=newWide;while(this.nHigh<newHigh)this.appendRow(group);while(this.nHigh>newHigh)this.removeRow(group);while(this.nWide<newWide)this.appendColumn(group);while(this.nWide>newWide)this.removeColumn(group);return true;};kaMap.prototype.createMapLayer=function(id){var d=kaMap.f_createUnselectableElement('div');d.id=id;d.className='mapLayer';d.style.position='absolute';d.style.visibility='visible';d.style.left='0px';d.style.top='0px';d.style.width='1200px';d.style.height='800px';d.appended=false;return d;};kaMap.prototype.addMapLayer=function(l){var map=this.getCurrentMap();map.addLayer(l);this.setMapLayers();this.paintLayer(l);this.triggerEvent(kaMap.LAYERS_CHANGED,this.currentMap);};kaMap.prototype.removeMapLayer=function(id){var map=this.getCurrentMap();var layer=map.getLayer(id);if(!layer)return false;if(map.removeLayer(map.getLayer(id))){this.setMapLayers();this.triggerEvent(kaMap.LAYERS_CHANGED,this.currentMap);}};kaMap.prototype.getCenter=function(){var deltaMouseX=this.nCurrentLeft-this.xOrigin+safeParseInt(this.theInsideLayer.style.left);var deltaMouseY=this.nCurrentTop-this.yOrigin+safeParseInt(this.theInsideLayer.style.top);var vpTop=this.nCurrentTop-deltaMouseY;var vpLeft=this.nCurrentLeft-deltaMouseX;var vpCenterX=vpLeft+this.viewportWidth/2;var vpCenterY=vpTop+this.viewportHeight/2;return new Array(vpCenterX,vpCenterY);};kaMap.prototype.getGeoCenter=function(){var ext=this.getGeoExtentsMinMax();return[ext.miny+(ext.maxy-ext.miny)/2.0,ext.minx+(ext.maxx-ext.minx)/2.0];};kaMap.prototype.getGeoCenterLatLon=function(){var c=this.getGeoCenter();return{lat:c[0],lon:c[1]};};kaMap.prototype.getGeoExtents=function(){var minx=-1*(safeParseInt(this.theInsideLayer.style.left)-this.xOrigin)*this.cellSize;var maxx=minx+this.viewportWidth*this.cellSize;var maxy=(safeParseInt(this.theInsideLayer.style.top)-this.yOrigin)*this.cellSize;var miny=maxy-this.viewportHeight*this.cellSize;minx=this.coordInverseX(minx);miny=this.coordInverseY(miny);maxx=this.coordInverseX(maxx);maxy=this.coordInverseY(maxy);return[minx,miny,maxx,maxy];};kaMap.prototype.getGeoExtentsMinMax=function(){var e=this.getGeoExtents();return{minx:e[0],miny:e[1],maxx:e[2],maxy:e[3]};};kaMap.prototype.getGeoPoint=function(x,y){var p=this.getGeoPointLatLon(x,y);return[p.lat,p.lon];};kaMap.prototype.getGeoPointLatLon=function(x,y){var pixsize=this.getSize();var ext=this.getGeoExtentsMinMax();return{lat:ext.miny+(ext.maxy-ext.miny)*(pixsize.height-y)/pixsize.height,lon:ext.minx+(ext.maxx-ext.minx)*x/pixsize.width};};kaMap.prototype.zoomIn=function(){this.zoomByFactor(this.aMaps[this.currentMap].zoomIn());};kaMap.prototype.zoomOut=function(){this.zoomByFactor(this.aMaps[this.currentMap].zoomOut());};kaMap.prototype.zoomToScale=function(scale){this.zoomByFactor(this.aMaps[this.currentMap].zoomToScale(scale));};kaMap.prototype.zoomByFactor=function(nZoomFactor){if(nZoomFactor==1){this.triggerEvent(kaMap.NOTICE,"NOTICE: changing to current scale aborted");return;}this.cellSize=this.cellSize/nZoomFactor;this.setMapLayers();this.initializeLayers(nZoomFactor);this.triggerEvent(kaMap.SCALE_CHANGED,this.getCurrentScale());var ext=this.getGeoExtents();ext.isScaleChanged=1;this.triggerEvent(kaMap.EXTENTS_CHANGED,ext);};kaMap.prototype.getCurrentScaleCode=function(){var current_map=this.currentMap;if(!current_map){return 0;}var a_map=this.aMaps[current_map];if(!a_map){return 0;}return a_map.currentScale;};kaMap.prototype.getCurrentScale=function(){var current_map=this.currentMap;if(!current_map){return 0;}var a_map=this.aMaps[current_map];if(!a_map){return 0;}var current_scale=a_map.currentScale;return a_map.aScales[current_scale];};kaMap.prototype.getScaleBarLength=function(scale_code){var current_map=this.currentMap;if(!current_map){return 0;}var a_map=this.aMaps[current_map];if(!a_map){return 0;}if(scale_code<0){var current_scale=a_map.currentScale;if(!current_scale){return 0;}else{scale_code=current_scale;}}return a_map.aScaleBars[scale_code];};kaMap.prototype.meter2pixel=function(meters){return 125;};kaMap.prototype.setLayerQueryable=function(name,bQueryable){this.aMaps[this.currentMap].setLayerQueryable(name,bQueryable);};kaMap.prototype.setLayerVisibility=function(name,bVisible){if(!this.loadUnchecked&&bVisible){layer=this.aMaps[this.currentMap].getLayer(name);layer.visible=true;this.setMapLayers();this.aMaps[this.currentMap].setLayerVisibility(name,bVisible);this.paintLayer(layer);}else{this.aMaps[this.currentMap].setLayerVisibility(name,bVisible);}};kaMap.prototype.setLayerOpacity=function(name,opacity){this.aMaps[this.currentMap].setLayerOpacity(name,opacity);};kaMap.prototype.registerEventID=function(eventID){return this.eventManager.registerEventID(eventID);};kaMap.prototype.registerForEvent=function(eventID,obj,func){return this.eventManager.registerForEvent(eventID,obj,func);};kaMap.prototype.deregisterForEvent=function(eventID,obj,func){return this.eventManager.deregisterForEvent(eventID,obj,func);};kaMap.prototype.triggerEvent=function(eventID){return this.eventManager.triggerEvent.apply(this.eventManager,arguments);};kaMap.prototype.setOrgPos=function(p){if(this.orgPos==null){this.orgPos=p;}};kaMap.prototype.revertPos=function(){var pos=this.orgPos;if(pos){this.zoomToByCode(pos['lon'],pos['lat'],pos['scale']);}};kaMap.prototype.getSize=function(){return{width:this.viewportWidth,height:this.viewportHeight};};kaMap.prototype.getResolution=function(){var oMap=this.getCurrentMap();if(!oMap)return;return oMap.resolution;};kaMap.prototype.getUnits=function(){var oMap=this.getCurrentMap();if(!oMap)return;return oMap.units;};kaMap.prototype.forceUpdateGraphLayers=function(){if(this.initializationState!=2){this.reserve_forceUpdateGraphLayers=true;return;}var map=this.getCurrentMap();var layers=map.getLayers();for(var i=0;i<layers.length;i++){var layer=layers[i];if(layer.visible&&layer.isGraphLayer()){layer.graph.seqNo++;layer.setTileLayer();}}};kaMap.f_addListener=function(elem,event_type,func){if(elem.addEventListener){elem.addEventListener(event_type,func,false);}else if(elem.attachEvent){elem.attachEvent('on'+event_type,func);}else{elem['on'+event_type]=func;}};kaMap.f_removeListener=function(elem,event_type,func){if(elem.removeEventListener){elem.removeEventListener(event_type,func,false);}else if(elem.attachEvent){elem.detachEvent('on'+event_type,func);}else{elem['on'+event_type]=null;}};kaMap.f_createUnselectableElement=function(name){var elem=document.createElement(name);kaMap.f_setUnselectable(elem);return elem;};kaMap.f_setUnselectable=function(elem){if(elem){elem.setAttribute('unselectable','on');elem.style.MozUserSelect='none';elem.style.KhtmlUserSelect='none';elem.onmousedown=function(){return false;};elem.onselectstart=function(){return false;};}};kaMap.f_setFilterAlpha=function(obj,opacity){obj.style.filter=(opacity==null||opacity==100)?"":"Alpha(opacity="+opacity+")";};kaMap.prototype.mouseEventOffsetPos=function(e){var x=e.pageX||(e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));var y=e.pageY||(e.clientY+(document.documentElement.scrollTop||document.body.scrollTop));var offset=kaMap.cumulativeOffset(this.domObj);return{x:x-offset[0],y:y-offset[1]};};kaMap.prototype.isDragging=function(){return this.currentTool&&this.currentTool.bMouseDown;};kaMap.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return[valueL,valueT];};kaMap.prototype.BL2BLX=function(lon){return lon;};kaMap.prototype.BL2BLY=function(lat){return lat;};kaMap.prototype.BL2MercX=function(lon){lon=lon*this.DEG_TO_RAD;var x=this.mercR*lon;return x;};kaMap.prototype.BL2MercY=function(lat){lat=lat*this.DEG_TO_RAD;var y=this.mercR*Math.log(Math.tan(this.FORTPI+.5*lat));return y;};kaMap.prototype.Merc2BLX=function(x){var lon=(x/this.mercR);lon=lon*this.RAD_TO_DEG;return lon;};kaMap.prototype.Merc2BLY=function(y){var lat=this.HALFPI-2.*Math.atan(Math.exp(-(y/this.mercR)));lat=lat*this.RAD_TO_DEG;return lat;};kaMap.prototype.internal_onmousemove=function(x,y){if(this.onmousemove_obj){this.onmousemove_obj.onmousemove(x,y);}};kaMap.toTileURL=function(n){return(""+n).replace(new RegExp("((?:^[-+])?\\d{3})(?=..)","g"),"$1/");};kaMap.browser_versions_cache=null;kaMap.getBrowserVersions=function(){if(kaMap.browser_versions_cache!=null)return kaMap.browser_versions_cache;var r={};var ua=navigator.userAgent?navigator.userAgent:'';var m=null;r.ua=ua;m=ua.match(new RegExp("\\bMSIE ([0-9]+)\.([0-9]+)"));r.ie=m!=null;r.ie_ver=m?parseFloat(RegExp.$1+"."+RegExp.$2):null;m=ua.match(new RegExp("\\bFirefox/([0-9]+)\.([0-9]+)"));r.ff=m!=null;r.ff_ver=m?parseFloat(RegExp.$1+"."+RegExp.$2):null;m=ua.match(new RegExp("\\bSafari/([0-9]+)\.([0-9]+)"));r.safari=m!=null;r.safari_ver=m?parseFloat(RegExp.$1+"."+RegExp.$2):null;kaMap.browser_versions_cache=r;return kaMap.browser_versions_cache;};function safeParseInt(val){return Math.round(parseFloat(val));}function _map(szName,szTitle,nCurrentScale,units,aszScales,aszRefScales,aszScaleBars){this.name=szName;this.title=szTitle;this.aScales=aszScales;this.aRefScales=aszRefScales;this.aScaleBars=aszScaleBars;this.currentScale=parseFloat(nCurrentScale);this.units=units;this.resolution=72;this.aLayers=[];this.defaultExtents=[];this.currentExtents=[];this.maxExtents=[];this.backgroundColor='#ffffff';this.version="0";this.aZoomTo=[];this.kaMap=null;}_map.prototype.addLayer=function(layer){layer._map=this;layer.zIndex=this.aLayers.length;this.aLayers.push(layer);};_map.prototype.removeLayer=function(l){var alayer=Array();for(i=0,a=0;i<this.aLayers.length;i++)if(this.aLayers[i]!=l){alayer[a]=this.aLayers[i];a++;}this.aLayers=alayer;return true;};_map.prototype.getQueryableLayers=function(){var r=[];var l=this.getLayers();for(var i=0;i<l.length;i++){if(l[i].isQueryable())r.push(l[i]);}return r;};_map.prototype.getLayers=function(){var r=[];for(var i=0;i<this.aLayers.length;i++){if(this.aLayers[i].isVisible()&&(this.aLayers[i].visible||this.kaMap.loadUnchecked))r.push(this.aLayers[i]);}return r;};_map.prototype.getAllQueryableLayers=function(){var r=[];for(var i=0;i<this.aLayers.length;i++){if(this.aLayers[i].isQueryable())r.push(this.aLayers[i]);}return r;};_map.prototype.getAllLayers=function(){return this.aLayers;};_map.prototype.getLayer=function(name){for(var i=0;i<this.aLayers.length;i++){if(this.aLayers[i].name==name){return this.aLayers[i];}}};_map.prototype.getScales=function(){return this.aScales;};_map.prototype.zoomIn=function(){var nZoomFactor=1;if(this.currentScale<this.aScales.length-1){nZoomFactor=this.aScales[this.currentScale]/this.aScales[this.currentScale+1];this.currentScale=this.currentScale+1;}return nZoomFactor;};_map.prototype.zoomOut=function(){var nZoomFactor=1;if(this.currentScale>0){nZoomFactor=this.aScales[this.currentScale]/this.aScales[this.currentScale-1];this.currentScale=this.currentScale-1;}return nZoomFactor;};_map.prototype.zoomToScale=function(scale){var nZoomFactor=1;for(var i=0;i<this.aScales.length;i++){if(this.aScales[i]==scale){nZoomFactor=this.aScales[this.currentScale]/scale;this.currentScale=parseInt(i);}}return nZoomFactor;};_map.prototype.setLayerQueryable=function(name,bQueryable){var layer=this.getLayer(name);layer.setQueryable(bQueryable);};_map.prototype.setLayerVisibility=function(name,bVisible){var layer=this.getLayer(name);layer.setVisibility(bVisible);};_map.prototype.setLayerOpacity=function(name,opacity){var layer=this.getLayer(name);layer.setOpacity(opacity);};_map.prototype.setDefaultExtents=function(minx,miny,maxx,maxy){this.defaultExtents=[minx,miny,maxx,maxy];if(this.currentExtents.length==0)this.setCurrentExtents(minx,miny,maxx,maxy);};_map.prototype.setCurrentExtents=function(minx,miny,maxx,maxy){this.currentExtents=[minx,miny,maxx,maxy];};_map.prototype.setMaxExtents=function(minx,miny,maxx,maxy){this.maxExtents=[minx,miny,maxx,maxy];};_map.prototype.setBackgroundColor=function(szBgColor){this.backgroundColor=szBgColor;};function _layer(szName,bVisible,opacity,imageformat,bQueryable,scales,jname,type,paintType,graphFixed,graphSerial,graphParams,graphNo,tileUrls){this.name=szName;this.jname=jname?jname:'';this.type=type?type:'map';this.visible=bVisible;this.opacity=opacity;this.domObj=null;this._map=null;this.imageformat=imageformat;this.queryable=bQueryable;this.queryState=bQueryable;if(scales)this.scales=scales;else this.scales=Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);this.toLoad=0;this.tileUrls=tileUrls;this.graph=[];this.graph.paintType=paintType;this.graph.fixed=graphFixed;this.graph.serial=graphSerial;this.graph.seqNo=0;this.graph.org_params=graphParams;this.graph.params=graphParams;this.graph.graph_no=graphNo;this.graph.status=null;this.graph.pending_visible=bVisible;}_layer.prototype.isQueryable=function(){return this.queryState;};_layer.prototype.setQueryable=function(bQueryable){if(this.queryable)this.queryState=bQueryable;};_layer.prototype.isVisible=function(){return(this.scales[this._map.currentScale]==1)?true:false;};_layer.prototype.setOpacity=function(amount){this.opacity=amount;if(this.domObj){this.domObj.style.opacity=amount/100;this.domObj.style.MozOpacity=amount/100;for(var i=0;i<this.domObj.childNodes.length;i++){kaMap.f_setFilterAlpha(this.domObj.childNodes[i],amount);}}};_layer.prototype.setTile=function(img){var szForce='';var szLayers='';if(arguments[1])szForce='&force=true';var szGroup="&g="+img.layer.domObj.id;var szScale='&s='+this._map.aScales[this._map.currentScale];var szImageformat='';var image_format='';if(img.layer.imageformat&&img.layer.imageformat!=''){image_format=img.layer.imageformat;szImageformat='&i='+image_format;}var l=safeParseInt(img.style.left)+this._map.kaMap.xOrigin;var t=safeParseInt(img.style.top)+this._map.kaMap.yOrigin;var src=this._buildImgSrcUrl(t,l,szScale,szForce,szGroup,szImageformat,0);var retry_src=this._buildImgSrcUrl(t,l,szScale,szForce,szGroup,szImageformat,1);if((this.isIE4)&&(image_format.toLowerCase()=="png24")){img.retry_src=null;img.style.visibility='hidden';kaMap.setTileImg(img,this._map.kaMap.aPixel.src);img.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='scale')";}else{if(img.src!=src){img.retry_src=retry_src;img.style.visibility='hidden';kaMap.setTileImg(img,src);if(kaMap.getBrowserVersions().safari&&img.complete)img.style.visibility='visible';if(this._map.kaMap.isIE&&image_format.toLowerCase()=="png24"){img.style.filter="chroma(color="+this._map.backgroundColor+")";}}}};_layer.prototype.setVisibility=function(bVisible){this.visible=bVisible;if(this.domObj){this.domObj.style.visibility=bVisible?'visible':'hidden';this.domObj.style.display=bVisible?'block':'none';for(var i=0;i<this.domObj.childNodes.length;i++){this.setTile(this.domObj.childNodes[i]);}}};_layer.prototype.setZIndex=function(zIndex){this.zIndex=zIndex;if(this.domObj){this.domObj.style.zIndex=zIndex;}};_layer.prototype.setTileLayer=function(){var szForce='';var szLayers='';this.loaded=0;if(arguments[0]){szForce='&force=true';}var szGroup="&g="+this.name;var szScale='&s='+this._map.aScales[this._map.currentScale];var szImageformat='';var image_format='';if(this.imageformat&&this.imageformat!=''){image_format=this.imageformat;szImageformat='&i='+image_format;}for(i=0;i<this.domObj.childNodes.length;i++){img=this.domObj.childNodes[i];var l=safeParseInt(img.style.left)+this._map.kaMap.xOrigin;var t=safeParseInt(img.style.top)+this._map.kaMap.yOrigin;var src=this._buildImgSrcUrl(t,l,szScale,szForce,szGroup,szImageformat,0);var retry_src=this._buildImgSrcUrl(t,l,szScale,szForce,szGroup,szImageformat,1);if(this.isIE4&&image_format.toLowerCase()=="png24"){img.retry_src=null;img.style.visibility='hidden';kaMap.setTileImg(img,this._map.kaMap.aPixel.src);img.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='scale')";}else{if(img.src!=src){img.retry_src=retry_src;img.style.visibility='hidden';kaMap.setTileImg(img,src);if(kaMap.getBrowserVersions().safari&&img.complete)img.style.visibility='visible';if(this._map.kaMap.isIE&&image_format.toLowerCase()=="png24"){img.style.filter="chroma(color="+this._map.backgroundColor+")";}}}}};_layer.prototype.getGraphParams=function(){var params=[];var p=this.graph.params;p=p==null?'':p.replace(' ','');var items=p.split(';');for(var i=0;i<items.length;i++){var pv=items[i].split(':');if(2<=pv.length){params.push({p:pv[0],v:pv[1]});}}return params;};_layer.prototype._buildImgSrcUrl=function(t,l,szScale,szForce,szGroup,szImageformat,type){var kamap=this._map.kaMap;var tile_urls=this.tileUrls?this.tileUrls:{};var meta_w=kamap.tileWidth*kamap.metaWidth;var meta_h=kamap.tileHeight*kamap.metaHeight;var meta_t=Math.floor(t/meta_h)*meta_h;var meta_l=Math.floor(l/meta_w)*meta_w;var g=szGroup.substr(3);var s=szScale.substr(3);var f=szImageformat.substr(3);var key=g+":"+s;if(tile_urls[':']&&tile_urls[':'].url)key=':';else if(tile_urls[g+':']&&tile_urls[g+':'].url)key=g+':';else if(tile_urls[':'+s]&&tile_urls[':'+s].url)key=':'+s;else if(tile_urls[g+':'+s]&&tile_urls[g+':'+s].url)key=g+':'+s;var tile_url=tile_urls[key];var retry=type==1&&tile_url&&tile_url.retry;var url=kamap.server+(retry?kamap.retryURL:kamap.tileURL)+'&map='+this._map.name+'&t='+t+'&l='+l+'&mapid='+szScale+szForce+szGroup+szImageformat+'&type='+this.type;if(this.isGraphLayer()){if(type==0&&tile_url){var serial=this.graph.serial;var gseq=this.graph.seqNo;var subdir=tile_url.subdir?tile_url.subdir(this._gparams2hash(this.getGraphParams())):'';url=tile_url.url;url+='/'+serial;url+='/'+s+'/'+kaMap.normalize_string(g)+subdir+'/def';url+='/t'+kaMap.toTileURL(meta_t);url+='/l'+kaMap.toTileURL(meta_l);url+='/t'+t+'l'+l+'-'+gseq+'.'+f;if(tile_url.ver)url+='?ver='+tile_url.ver;}else if((type==0&&!tile_url)||(type==1&&tile_url&&tile_url.retry)){url+='&gserial='+this.graph.serial;if(!this.graph.fixed)url+='&gsession='+this._map.kaMap.graph.sessionid;url+='&gseq='+this.graph.seqNo;url+='&gno='+this.graph.graph_no;if(this.graph.params)url+='&gparams='+escape(this.graph.params);}else{url=null;}}else{if(type==0&&tile_url){url=tile_url.url;url+='/'+s+'/'+kaMap.normalize_string(g)+'/def';url+='/t'+kaMap.toTileURL(meta_t);url+='/l'+kaMap.toTileURL(meta_l);url+='/t'+t+'l'+l+'.'+f;if(tile_url.ver){url+='?ver='+tile_url.ver;}}else if((type==0&&!tile_url)||(type==1&&tile_url&&tile_url.retry)){}else{url='null';}}return url;};_layer.prototype.isGraphLayer=function(){return this.type=='graph'||this.type=='dgraph';};_layer.prototype._gparams2hash=function(gp){var hash={};for(var i=0;i<gp.length;i++){hash[gp[i].p]=gp[i].v;}return hash;};function _eventManager(){this.events=[];this.lastEventID=0;}_eventManager.prototype.registerEventID=function(eventID){var ev=new String(eventID);if(!this.events[eventID]){this.events[eventID]=[];}};_eventManager.prototype.registerForEvent=function(eventID,obj,func){var ev=new String(eventID);this.events[eventID].push([obj,func]);};_eventManager.prototype.deregisterForEvent=function(eventID,obj,func){var ev=new String(eventID);var bResult=false;if(!this.events[eventID])return false;for(var i=0;i<this.events[eventID].length;i++){if(this.events[eventID][i][0]==obj&&this.events[eventID][i][1]==func){this.events[eventID].splice(i,1);bResult=true;}}return bResult;};_eventManager.prototype.triggerEvent=function(eventID){var ev=new String(eventID);if(!this.events[eventID])return false;var args=new Array();for(i=1;i<arguments.length;i++){args[args.length]=arguments[i];}for(var i=0;i<this.events[eventID].length;i++){this.events[eventID][i][1].apply(this.events[eventID][i][0],arguments);}return true;};kaMap.goQueueManager=new _queueManager();function _queueManager(){this.queue=new Array();}_queueManager.prototype.enqueue=function(timeout,obj,func,args){var pos=this.queue.length;for(var i=0;i<this.queue.length;i++){if(this.queue[i]==null){pos=i;break;}}var id=window.setTimeout("_queueManager_execute("+pos+")",timeout);this.queue[pos]=new Array(id,obj,func,args);return pos;};_queueManager.prototype.dequeue=function(pos){if(this.queue[pos]!=null){window.clearTimeout(this.queue[pos][0]);this.queue[pos]=null;}};function _queueManager_execute(pos){if(kaMap.goQueueManager.queue[pos]!=null){var obj=kaMap.goQueueManager.queue[pos][1];var func=kaMap.goQueueManager.queue[pos][2];if(kaMap.goQueueManager.queue[pos][3]!=null){func.apply(obj,kaMap.goQueueManager.queue[pos][3]);}else{func.apply(obj);}kaMap.goQueueManager.queue[pos]=null;}};kaMap.debuglog=function(text){if(kaMap.enable_debuglog&&document.getElementById('debug')){document.getElementById('debug').innerHTML+=text+"<br>";}};kaMap.cleardebuglog=function(text){if(kaMap.enable_debuglog&&document.getElementById('debug')){document.getElementById('debug').innerHTML='';}};if(!kaMap.gnLastEventId){kaMap.gnLastEventId=0;kaMap.ERROR=kaMap.gnLastEventId++;kaMap.WARNING=kaMap.gnLastEventId++;kaMap.NOTICE=kaMap.gnLastEventId++;kaMap.INITIALIZED=kaMap.gnLastEventId++;kaMap.MAP_INITIALIZED=kaMap.gnLastEventId++;kaMap.EXTENTS_CHANGED=kaMap.gnLastEventId++;kaMap.SCALE_CHANGED=kaMap.gnLastEventId++;kaMap.LAYERS_CHANGED=kaMap.gnLastEventId++;kaMap.CONTEXT_MENU=kaMap.gnLastEventId++;kaMap.CLICKED=kaMap.gnLastEventId++;kaMap.DOUBLE_CLICKED=kaMap.gnLastEventId++;kaMap.INDEXMAP_MOVED=kaMap.gnLastEventId++;kaMap.CANVAS_EXTENTS_CHANGED=kaMap.gnLastEventId++;kaMap.CANVAS_EXTENTS_PRE_CHANGED=kaMap.gnLastEventId++;kaMap.FIGURE_XML_DOWNLOADED=kaMap.gnLastEventId++;kaMap.LAYER_ADDED=kaMap.gnLastEventId++;kaMap.GRAPH_DATA_UPDATED=kaMap.gnLastEventId++;}function kaTool(oKaMap){this.kaMap=oKaMap;this.kaMap.registerTool(this);this.name='kaTool';}kaTool.prototype.activate=function(){this.kaMap.activateTool(this);document.kaCurrentTool=this;};kaTool.prototype.deactivate=function(){this.kaMap.deactivateTool(this);document.kaCurrentTool=null;};kaTool.prototype.onmousemove=function(e){return false;};kaTool.prototype.onmousedown=function(e){return false;};kaTool.prototype.onmouseup=function(e){return false;};kaTool.prototype.ondblclick=function(e){return false;};kaTool.prototype.onmousewheel=function(e){if(this.isLocked())return;e=(e)?e:((event)?event:null);var wheelDelta=e.wheelDelta?e.wheelDelta:e.detail*-1;if(wheelDelta>0)this.kaMap.zoomIn();else this.kaMap.zoomOut();};kaTool.prototype.adjustPixPosition=function(x,y){var obj=this.kaMap.domObj;var offsetLeft=0;var offsetTop=0;while(obj){offsetLeft+=parseInt(obj.offsetLeft);offsetTop+=parseInt(obj.offsetTop);obj=obj.offsetParent;}var pX=parseInt(this.kaMap.theInsideLayer.style.left)+offsetLeft-this.kaMap.xOrigin-x;var pY=parseInt(this.kaMap.theInsideLayer.style.top)+offsetTop-this.kaMap.yOrigin-y;return[pX,pY];};function kaTool_redirect_onkeypress(e){if(document.kaCurrentTool)document.kaCurrentTool.onkeypress(e);}kaTool.prototype.onkeypress=function(e){if(this.isLocked())return false;if(!this.kaMap.enableKeyboardInterface)return false;e=(e)?e:((event)?event:null);if(e){var charCode=(e.charCode)?e.charCode:e.keyCode;var b=true;var nStep=16;switch(charCode){case 38:this.kaMap.moveBy(0,nStep);this.kaMap.triggerEvent(kaMap.EXTENTS_CHANGED,this.kaMap.getGeoExtents());break;case 40:this.kaMap.moveBy(0,-nStep);this.kaMap.triggerEvent(kaMap.EXTENTS_CHANGED,this.kaMap.getGeoExtents());break;case 37:this.kaMap.moveBy(nStep,0);this.kaMap.triggerEvent(kaMap.EXTENTS_CHANGED,this.kaMap.getGeoExtents());break;case 39:this.kaMap.moveBy(-nStep,0);this.kaMap.triggerEvent(kaMap.EXTENTS_CHANGED,this.kaMap.getGeoExtents());break;case 33:this.kaMap.slideBy(0,this.kaMap.viewportHeight/2);break;case 34:this.kaMap.slideBy(0,-this.kaMap.viewportHeight/2);break;case 36:this.kaMap.slideBy(this.kaMap.viewportWidth/2,0);break;case 35:this.kaMap.slideBy(-this.kaMap.viewportWidth/2,0);break;case 43:this.kaMap.zoomIn();break;case 45:this.kaMap.zoomOut();break;default:b=false;}if(b){return this.cancelEvent(e);}return true;}};kaTool.prototype.onmouseover=function(e){return false;};kaTool.prototype.onmouseout=function(e){if(this.kaMap.isIE4)document.onkeydown=null;document.onkeypress=null;return false;};kaTool.prototype.cancelEvent=function(e){e=(e)?e:((event)?event:null);e.cancelBubble=true;e.returnValue=false;if(e.stopPropogation)e.stopPropogation();if(e.preventDefault)e.preventDefault();return false;};function kaNavigator(oKaMap){kaTool.apply(this,[oKaMap]);this.name='kaNavigator';this.cursorNormal=['auto'];this.cursorDrag=['auto'];this.cursor=this.cursorNormal;this.lastx=null;this.lasty=null;this.bMouseDown=false;for(var p in kaTool.prototype){if(!kaNavigator.prototype[p])kaNavigator.prototype[p]=kaTool.prototype[p];}}kaNavigator.prototype.onmouseout=function(e){e=(e)?e:((event)?event:null);if(!e.target){e.target=e.srcElement;}};kaNavigator.prototype.onmousemove=function(e){if(this.isLocked())return false;e=(e)?e:((event)?event:null);var x=e.pageX||(e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));var y=e.pageY||(e.clientY+(document.documentElement.scrollTop||document.body.scrollTop));if(!this.bMouseDown){if(this.kaMap.internal_onmousemove){var pos=this._mouseEvent2GeoPoint(e);this.kaMap.internal_onmousemove(pos.lon,pos.lat);}return false;}if(!this.kaMap.layersHidden){this.kaMap.hideLayers();}var newTop=safeParseInt(this.kaMap.theInsideLayer.style.top);var newLeft=safeParseInt(this.kaMap.theInsideLayer.style.left);newTop=newTop-this.lasty+y;newLeft=newLeft-this.lastx+x;this.kaMap.theInsideLayer.style.top=newTop+'px';this.kaMap.theInsideLayer.style.left=newLeft+'px';this.kaMap.checkWrap.apply(this.kaMap,[]);this.lastx=x;this.lasty=y;return false;};kaNavigator.prototype.onmousedown=function(e){if(this.isLocked())return false;e=(e)?e:((event)?event:null);if(e.button==2){return this.cancelEvent(e);}else{this.cursor=this.cursorDrag;this.kaMap.setCursor(this.cursorDrag);if(this.kaMap.isIE4){document.onkeydown=kaTool_redirect_onkeypress;}document.onkeypress=kaTool_redirect_onkeypress;this.on_mouse_move=(function(obj){return function(e){obj.onmousemove(e);};})(this);this.on_mouse_up=(function(obj){return function(e){obj.onmouseup(e);};})(this);kaMap.f_addListener(document,'mousemove',this.on_mouse_move);kaMap.f_addListener(document,'mouseup',this.on_mouse_up);this.bMouseDown=true;var x=e.pageX||(e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));var y=e.pageY||(e.clientY+(document.documentElement.scrollTop||document.body.scrollTop));this.lastx=x;this.lasty=y;this.startx=this.lastx;this.starty=this.lasty;if(this.kaMap.viewLeft==null){var _pos=element_pos(this.kaMap.domObj);this.kaMap.viewportLeft=_pos.x;this.kaMap.viewportTop=_pos.y;}e.cancelBubble=true;e.returnValue=false;if(e.stopPropogation)e.stopPropogation();if(e.preventDefault)e.preventDefault();return false;}};kaNavigator.prototype.onmouseup=function(e){var moved=false;e=(e)?e:((event)?event:null);if(!this.isLocked()){this.cursor=this.cursorNormal;this.kaMap.setCursor(this.cursorNormal);this.bMouseDown=false;if(this.on_mouse_move)kaMap.f_removeListener(document,'mousemove',this.on_mouse_move);if(this.on_mouse_up)kaMap.f_removeListener(document,'mouseup',this.on_mouse_up);this.on_mouse_move=null;this.on_mouse_up=null;var x=e.pageX||(e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));var y=e.pageY||(e.clientY+(document.documentElement.scrollTop||document.body.scrollTop));if(Math.abs(x-this.startx)<2&&Math.abs(y-this.starty)<2){}else{this.kaMap.showLayers();this.kaMap.triggerEvent(kaMap.EXTENTS_CHANGED,this.kaMap.getGeoExtents());moved=true;}}if(!moved){this.kaMap.triggerEvent(kaMap.CLICKED,this._mouseEvent2GeoPoint(e));}return false;};kaNavigator.prototype.ondblclick=function(e){e=(e)?e:((event)?event:null);var pos=this.kaMap.mouseEventOffsetPos(e);pos=this.kaMap.getGeoPointLatLon(pos.x,pos.y);if(!this.isLocked()){var x=e.pageX||(e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));var y=e.pageY||(e.clientY+(document.documentElement.scrollTop||document.body.scrollTop));var a=this.adjustPixPosition(x,y);var p=this.kaMap.pixToGeo(a[0],a[1]);this.kaMap.triggerEvent(kaMap.DOUBLE_CLICKED,this._mouseEvent2GeoPoint(e));this.kaMap.zoomTo(p[0],p[1]);}else{this.kaMap.triggerEvent(kaMap.DOUBLE_CLICKED,this._mouseEvent2GeoPoint(e));}};kaNavigator.prototype._mouseEvent2GeoPoint=function(e){var x=e.pageX||(e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));var y=e.pageY||(e.clientY+(document.documentElement.scrollTop||document.body.scrollTop));var a=this.adjustPixPosition(x,y);var p=this.kaMap.pixToGeo(a[0],a[1]);return{lon:p[0],lat:p[1]};};function bind(m,o){var __method=arguments[0];var __object=arguments[1];var args=[];for(var i=2;i<arguments.length;i++){args.push(arguments[i])}return function(){return __method.apply(__object,args);}}function element_pos(elem){var obj=new Object();obj.x=elem.offsetLeft;obj.y=elem.offsetTop;while(elem=elem.offsetParent){obj.x+=elem.offsetLeft;obj.y+=elem.offsetTop;}return obj;}kaTool.prototype.isLocked=function(){return this.kaMap?this.kaMap.isLocked:true;};function Slider(a_init,kaMap){this.kaMap=kaMap;this.get_element=new Function('s_id',document.all?'return document.all[s_id];':'return document.getElementById(s_id);');for(var s_key in a_init){this[s_key]=a_init[s_key];}this.n_pix2value=this.n_pathLength/(this.n_maxValue-this.n_minValue);if(this.n_value==null){this.n_value=this.n_minValue;}this.e_base=this.get_element(this.tracker_elem);this.e_slider=this.get_element(this.slider_elem);var on_mouse_down=(function(obj){return function(e){obj.f_sliderMouseDown(e);};})(this);this.f_addListener(this.e_slider,'mousedown',on_mouse_down);var on_mouse_move=(function(obj){return function(e){obj.f_sliderMouseMove(e);};})(this);this.f_addListener(document,'mousemove',on_mouse_move);var on_mouse_up=(function(obj){return function(e){obj.f_sliderMouseUp(e);};})(this);this.f_addListener(document,'mouseup',on_mouse_up);var sv_dropFunc=this.dropFunc;this.dropFunc=null;this.f_setValue(this.n_value+1);this.dropFunc=sv_dropFunc;if(this.e_slider&&this.e_slider.style){this.e_slider.style.visibility='visible';}}Slider.prototype.f_addListener=function(elem,event_type,func){if(elem.addEventListener){elem.addEventListener(event_type,func,false);}else if(elem.attachEvent){elem.attachEvent('on'+event_type,func);}else{elem['on'+event_type]=func;}};Slider.prototype.f_setValue=function(n_value,b_noInputCheck){if(n_value==null){n_value=this.n_value==null?this.n_minValue:this.n_value;}if(isNaN(n_value)){return false;}if(this.n_step){n_value=Math.round((n_value-this.n_minValue)/this.n_step)*this.n_step+this.n_minValue;}if(n_value%1){n_value=Math.round(n_value*1e5)/1e5;}if(n_value<this.n_minValue){n_value=this.n_minValue;}if(n_value>this.n_maxValue){n_value=this.n_maxValue;}this.n_value=n_value;if(this.e_slider&&this.e_slider.style){if(this.b_vertical){this.e_slider.style.top=(this.n_pathTop+this.n_pathLength-Math.round((n_value-this.n_minValue)*this.n_pix2value))+'px';}else{this.e_slider.style.left=(this.n_pathLeft+Math.round((n_value-this.n_minValue)*this.n_pix2value))+'px';}}if(this.dropFunc){this.dropFunc(n_value);}};Slider.prototype.slideTo=function(n_value){this.f_setValue(n_value);};Slider.prototype.setMaxValue=function(max_value){this.n_maxValue=max_value;};Slider.prototype.f_getPos=function(b_vertical,b_base){var n_pos=0,s_coord=(b_vertical?'Top':'Left');var o_elem=o_elem2=b_base?this.e_base:this.e_slider;while(o_elem){n_pos+=o_elem["offset"+s_coord];o_elem=o_elem.offsetParent;}o_elem=o_elem2;var n_offset;while(o_elem.tagName!="BODY"){n_offset=o_elem["scroll"+s_coord];if(n_offset)n_pos-=o_elem["scroll"+s_coord];o_elem=o_elem.parentNode;}return n_pos;};Slider.prototype.f_sliderMouseDown=function(e){if(this.isLocked())return false;this.tracking=true;this.f_stopPropagation(e);return false;};Slider.prototype.f_sliderMouseUp=function(e_event,b_watching){if(this.isLocked())return false;if(this.tracking){var o_slider=this;o_slider.f_setValue(o_slider.n_minValue+(o_slider.b_vertical?(o_slider.n_pathLength-parseInt(o_slider.e_slider.style.top)+o_slider.n_pathTop):(parseInt(o_slider.e_slider.style.left)-o_slider.n_pathLeft))/o_slider.n_pix2value);if(b_watching){return;}this.tracking=false;}if(window.f_savedMouseUp){return window.f_savedMouseUp(e_event);}};Slider.prototype.f_sliderMouseMove=function(e_event){if(this.isLocked())return false;var org_event=e_event;if(!e_event&&window.event){e_event=window.event;}if(this.tracking){var o_slider=this;var n_pxOffset;if(o_slider.b_vertical){var n_mouseY=e_event.clientY+o_slider.f_scrollTop();var n_sliderTop=Math.round(n_mouseY-o_slider.n_sliderHeight/2-o_slider.f_getPos(1,1));if(n_sliderTop<o_slider.n_pathTop)n_sliderTop=o_slider.n_pathTop;var n_pxMax=o_slider.n_pathTop+o_slider.n_pathLength;if(n_sliderTop>n_pxMax)n_sliderTop=n_pxMax;o_slider.e_slider.style.top=n_sliderTop+'px';n_pxOffset=o_slider.n_pathLength-n_sliderTop+o_slider.n_pathTop;}else{var n_mouseX=e_event.clientX+o_slider.f_scrollLeft();var n_sliderLeft=n_mouseX-o_slider.n_sliderWidth/2-o_slider.f_getPos(0,1)-3;if(n_sliderLeft<o_slider.n_pathLeft)n_sliderLeft=o_slider.n_pathLeft;var n_pxMax=o_slider.n_pathLeft+o_slider.n_pathLength;if(n_sliderLeft>n_pxMax)n_sliderLeft=n_pxMax;o_slider.e_slider.style.left=n_sliderLeft+'px';n_pxOffset=n_sliderLeft-o_slider.n_pathLeft;}if(o_slider.b_watch)this.f_sliderMouseUp(e_event,1);this.f_stopPropagation(org_event);return false;}};Slider.prototype.f_stopPropagation=function(e){if(e.stopPropagation){e.stopPropagation();}if(window.event){window.event.cancelBubble=true;window.event.returnValue=false;}if(e.preventDefault){e.preventDefault();}};Slider.prototype.f_scrollLeft=function(){return this.f_filterResults(window.pageXOffset?window.pageXOffset:0,document.documentElement?document.documentElement.scrollLeft:0,document.body?document.body.scrollLeft:0);};Slider.prototype.f_scrollTop=function(){return this.f_filterResults(window.pageYOffset?window.pageYOffset:0,document.documentElement?document.documentElement.scrollTop:0,document.body?document.body.scrollTop:0);};Slider.prototype.f_filterResults=function(n_win,n_docel,n_body){var n_result=n_win?n_win:0;if(n_docel&&(!n_result||(n_result>n_docel)))n_result=n_docel;return n_body&&(!n_result||(n_result>n_body))?n_body:n_result;};Slider.prototype.isLocked=function(){return this.kaMap?this.kaMap.isLocked:true;};function kaZoomer(oKaMap){this.kaMap=oKaMap;this.domObj=oKaMap.domObj;this.nZoomImageHeight=18;this.nZoomImageWidth=18;this.sliderImageHeight=11;this.sliderImageWidth=18;this.opacity=100;this.left=20;this.top=62;this.right=null;this.bottom=null;this.zoomControlObj=null;this.draw=(function(obj){return function(){obj.kaZoomer_draw_controller();};})(this);this.update=(function(obj){return function(){obj.kaZoomer_update();};})(this);this.displayController=true;if(this.kaMap.initialized()){this.draw();}else{this.kaMap.registerForEvent(kaMap.MAP_INITIALIZED,this,this.draw);}}function kaZoomer_setPosition(left,top,right,bottom){this.left=left;this.top=top;this.right=right;this.bottom=bottom;if(this.zoomControlObj!=null){if(this.left!=null){oZoomControl.style.left=this.left+'px';}else if(this.right!=null){oZoomControl.style.right=this.right+'px';}if(this.top!=null){oZoomControl.style.top=this.top+'px';}else if(this.bottom!=null){oZoomControl.style.bottom=this.bottom+'px';}}}kaZoomer.prototype.kaZoomer_update=function(){var oKaMap=this.kaMap;var oMap=oKaMap.getCurrentMap();var nCurrentScale=parseInt(oMap.currentScale);if(this.maxScale!=oMap.aScales.length){this.maxScale=oMap.aScales.length;this.slider.setMaxValue(this.maxScale);}this.slider.slideTo(nCurrentScale+1);};kaZoomer.prototype.kaZoomer_draw_controller=function(){this.controllerObj=this.kaMap.controllPadObj;if(!this.controllerObj){this.controllerObj=document.getElementById('controllPad');if(!this.controllerObj){this.controllerObj=kaMap.f_createUnselectableElement('div');this.controllerObj.id='controllPad';}}this.controllerObj.style.position='absolute';this.controllerObj.style.left='20px';this.controllerObj.style.top='20px';this.controllerObj.style.width='58px';this.controllerObj.style.padding='0px';this.controllerObj.style.margin='0px';this.controllerObj.style.cursor='pointer';this.controllerObj.style.zIndex=300;if(this.displayController){this.controllerObj.style.visibility='visible';}else{this.controllerObj.style.visibility='hidden';}this.kaMap.controllPadObj=this.controllerObj;this.kaMap.domObj.appendChild(this.controllerObj);this.kaZoomer_draw_scroller();this.kaZoomer_draw();};kaZoomer.prototype.kaZoomer_draw_scroller=function(){this.scrollPadObj=this.kaMap.scrollPadObj;if(!this.scrollPadObj){this.scrollPadObj=document.getElementById('scrollPad');if(!this.scrollPadObj){this.scrollPadObj=kaMap.f_createUnselectableElement('div');this.scrollPadObj.id='scrollPad';}}this.scrollPadObj.style.position='absolute';this.scrollPadObj.style.left='0px';this.scrollPadObj.style.top='0px';this.scrollPadObj.style.width='58px';this.scrollPadObj.style.padding='0px';this.scrollPadObj.style.margin='0px';this.scrollPadObj.style.cursor='pointer';this.scrollPadObj.style.zIndex=300;var bgurl=this.kaMap.imgControls.src;var parentTop=kaMap.f_createUnselectableElement('div');var parentMiddle=kaMap.f_createUnselectableElement('div');var parentBottom=kaMap.f_createUnselectableElement('div');this.createScrollButton(parentTop,"scroll_nw",0,0,18,18,bgurl,0);this.createScrollButton(parentTop,"scroll_n",0,20,18,18,bgurl,-18);this.createScrollButton(parentTop,"scroll_ne",0,40,18,18,bgurl,-36);this.createScrollButton(parentMiddle,"scroll_w",20,0,18,18,bgurl,-54);this.createScrollButton(parentMiddle,"scroll_c",20,20,18,18,bgurl,-72);this.createScrollButton(parentMiddle,"scroll_e",20,40,18,18,bgurl,-90);this.createScrollButton(parentBottom,"scroll_sw",40,0,18,18,bgurl,-108);this.createScrollButton(parentBottom,"scroll_s",40,20,18,18,bgurl,-126);this.createScrollButton(parentBottom,"scroll_se",40,40,18,18,bgurl,-144);this.scrollPadObj=kaMap.f_createUnselectableElement('div');this.scrollPadObj.appendChild(parentTop);this.scrollPadObj.appendChild(parentMiddle);this.scrollPadObj.appendChild(parentBottom);this.controllerObj.appendChild(this.scrollPadObj);this.addListener(getRawObject('scroll_c'),'click',(function(obj){return function(){obj.myOrgExtent();};})(this));var dirs=['nw','n','ne','w','e','sw','s','se'];for(var i in dirs){var scroll_button='scroll_'+dirs[i];var dir=dirs[i].toUpperCase();this.addListener(getRawObject(scroll_button),'click',(function(obj,direction){return function(){obj.myScroll(direction);};})(this,dir));}};kaZoomer.prototype.myOrgExtent=function(){if(this.isLocked())return;this.kaMap.revertPos();};kaZoomer.prototype.myScroll=function(dir){if(this.isLocked())return;var x=0;var y=0;var distance_x=this.kaMap.viewportWidth/2;var distance_y=this.kaMap.viewportHeight/2;switch(dir.charAt(0)){case 'N':y=distance_y;break;case 'S':y=-distance_y;break;case 'E':x=-distance_x;break;case 'W':x=distance_x;break;}switch(dir.charAt(1)){case 'E':x=-distance_x;break;case 'W':x=distance_x;break;}this.kaMap.slideBy(x,y);};kaZoomer.prototype.addListener=function(elem,event_type,func){if(!elem){return;}if(elem.addEventListener){elem.addEventListener(event_type,func,false);}else if(elem.attachEvent){elem.attachEvent('on'+event_type,func);}else{elem['on'+event_type]=func;}};kaZoomer.prototype.kaZoomer_draw=function(){var oMap=this.kaMap.getCurrentMap();var nScales=this.kaMap.getFullScaleLength();this.maxScale=nScales;var nCurrentScale=oMap.currentScale;var nTrackHeight=this.sliderImageHeight*nScales;var nTrackHeightMiddle=this.sliderImageHeight*(nScales-2);var nTrackMaxPosition=this.sliderImageHeight*(nScales-1);var szZoomBG=this.kaMap.imgControls.src;this.zoomControlObj=document.getElementById('zoomControl');if(!this.zoomControlObj){this.zoomControlObj=kaMap.f_createUnselectableElement('div');this.zoomControlObj.id='zoomControl';}this.zoomControlObj.style.position='absolute';this.zoomControlObj.style.padding='0px';this.zoomControlObj.style.margin='0px';if(this.left!=null){this.zoomControlObj.style.left=this.left+'px';}else if(this.right!=null){this.zoomControlObj.style.right=this.right+'px';}if(this.top!=null){this.zoomControlObj.style.top=this.top+'px';}else if(this.bottom!=null){this.zoomControlObj.style.bottom=this.bottom+'px';}this.zoomControlObj.style.width=this.nZoomImageWidth+"px";this.zoomControlObj.style.height=(nTrackHeight+2*this.nZoomImageHeight)+"px";this.zoomControlObj.style.cursor='pointer';this.zoomControlObj.style.zIndex=300;this.zoomControlObj.kaZoomer=this;if(this.kaMap.controllPadObj){this.kaMap.controllPadObj.appendChild(this.zoomControlObj);}else if(this.controllPadObj){this.controllPadObj.appendChild(this.zoomControlObj);}else{this.kaMap.domObj.appendChild(this.zoomControlObj);}var oZoomTrack=kaMap.f_createUnselectableElement('div');oZoomTrack.id='zoomTrack';oZoomTrack.kaZoomer=this;oZoomTrack.style.position='absolute';oZoomTrack.style.padding='0px';oZoomTrack.style.margin='0px';oZoomTrack.style.left='0px';oZoomTrack.style.top=this.nZoomImageHeight+'px';oZoomTrack.style.height=parseInt(nTrackHeight)+'px';oZoomTrack.style.width=this.sliderImageWidth+'px';{var oZoomTrackTop=kaMap.f_createUnselectableElement('div');oZoomTrackTop.id='zoomTrackTop';oZoomTrackTop.style.fontSize='8px';oZoomTrackTop.style.position='absolute';oZoomTrackTop.style.padding='0px';oZoomTrackTop.style.margin='0px';oZoomTrackTop.style.left='0px';oZoomTrackTop.style.top='0px';oZoomTrackTop.style.width=this.sliderImageWidth+'px';oZoomTrackTop.style.height=this.sliderImageHeight+'px';oZoomTrackTop.style.zIndex=301;oZoomTrackTop.style.backgroundImage='url('+szZoomBG+')';oZoomTrackTop.style.backgroundPosition='0px -220px';oZoomTrack.appendChild(oZoomTrackTop);for(var i=2;i<nScales-1;i++){var oZoomTrackMiddle=kaMap.f_createUnselectableElement('span');oZoomTrackMiddle.style.fontSize='8px';oZoomTrackMiddle.style.backgroundImage='url('+szZoomBG+')';oZoomTrackMiddle.style.backgroundPosition='0px -231px';oZoomTrackMiddle.style.position='absolute';oZoomTrackMiddle.style.left='0px';oZoomTrackMiddle.style.top=this.sliderImageHeight*i+'px';oZoomTrackMiddle.style.width=this.sliderImageWidth+'px';oZoomTrackMiddle.style.height=this.sliderImageHeight+'px';oZoomTrackMiddle.style.zIndex=301;oZoomTrack.appendChild(oZoomTrackMiddle);}var oZoomTrackMiddle=kaMap.f_createUnselectableElement('div');oZoomTrackMiddle.id='zoomTrackMiddle';oZoomTrackMiddle.style.fontSize='8px';oZoomTrackMiddle.style.backgroundImage='url('+szZoomBG+')';oZoomTrackMiddle.style.backgroundPosition='0px -231px';oZoomTrackMiddle.style.backgroundRepeat='no-repeat';oZoomTrackMiddle.style.position='absolute';oZoomTrackMiddle.style.padding='0px';oZoomTrackMiddle.style.margin='0px';oZoomTrackMiddle.style.left='0px';oZoomTrackMiddle.style.top=this.sliderImageHeight+'px';oZoomTrackMiddle.style.width=this.sliderImageWidth+'px';oZoomTrackMiddle.style.height=nTrackHeightMiddle+'px';oZoomTrackMiddle.style.zIndex=302;oZoomTrack.appendChild(oZoomTrackMiddle);var oZoomTrackBottom=kaMap.f_createUnselectableElement('div');oZoomTrackBottom.id='zoomTrackBottom';oZoomTrackBottom.style.fontSize='8px';oZoomTrackBottom.style.position='absolute';oZoomTrackBottom.style.padding='0px';oZoomTrackBottom.style.margin='0px';oZoomTrackBottom.style.left='0px';oZoomTrackBottom.style.top=(nTrackHeight-this.sliderImageHeight)+'px';oZoomTrackBottom.style.width=this.sliderImageWidth+'px';oZoomTrackBottom.style.height=this.sliderImageHeight+'px';oZoomTrackBottom.style.zIndex=301;oZoomTrackBottom.style.backgroundImage="url("+szZoomBG+")";oZoomTrackBottom.style.backgroundPosition="0px -209px";oZoomTrack.appendChild(oZoomTrackBottom);}oZoomTrack.elementHeight=this.sliderImageHeight;oZoomTrackTop.onclick=(function(obj){return function(e){obj.kaZoomer_zoomToTop(e);};})(this);oZoomTrackMiddle.onclick=(function(obj){return function(e){obj.kaZoomer_zoomToMiddle(e);};})(this);oZoomTrackBottom.onclick=(function(obj){return function(e){obj.kaZoomer_zoomToBottom(e);};})(this);this.zoomControlObj.appendChild(oZoomTrack);var oZoomThumb=kaMap.f_createUnselectableElement('span');oZoomThumb.id="zoomThumb";oZoomThumb.setAttribute('style','position:absolute; top: 0px; left: 0px; padding: 0px; margin: 0px; z-index: 302; visibility: hidden; cursor: pointer;');oZoomThumb.style.fontSize='8px';oZoomThumb.style.position='absolute';oZoomThumb.style.top='0px';oZoomThumb.style.left='0px';oZoomThumb.style.width=this.sliderImageWidth+'px';oZoomThumb.style.height=this.sliderImageHeight+'px';oZoomThumb.style.padding='0px';oZoomThumb.style.margin='0px';oZoomThumb.style.zIndex=303;oZoomThumb.style.backgroundImage='url('+szZoomBG+')';oZoomThumb.style.backgroundPosition='0px -198px';oZoomThumb.style.visibility='hidden';oZoomThumb.style.cursor='pointer';oZoomThumb.galleryimg="no";oZoomTrack.appendChild(oZoomThumb);var oZoomIn=kaMap.f_createUnselectableElement('div');oZoomIn.id='zoomIn';oZoomIn.style.fontSize='8px';oZoomIn.style.position='absolute';oZoomIn.style.padding='0px';oZoomIn.style.margin='0px';oZoomIn.style.top='0px';oZoomIn.style.left='0px';oZoomIn.style.width=this.nZoomImageWidth+'px';oZoomIn.style.height=this.nZoomImageHeight+'px';oZoomIn.style.backgroundImage='url('+szZoomBG+')';oZoomIn.style.backgroundPosition='0px -162px';oZoomIn.kaZoomer=this;oZoomIn.onclick=kaZoomer_zoomIn;this.zoomControlObj.appendChild(oZoomIn);var oZoomOut=kaMap.f_createUnselectableElement('div');oZoomOut.id='zoomOut';oZoomOut.style.fontSize='8px';oZoomOut.style.position='absolute';oZoomOut.style.padding='0px';oZoomOut.style.margin='0px';oZoomOut.style.top=(this.nZoomImageHeight+nTrackHeight)+'px';oZoomOut.style.left='0px';oZoomOut.style.width=this.nZoomImageWidth+'px';oZoomOut.style.height=this.nZoomImageHeight+'px';oZoomOut.style.backgroundImage='url('+szZoomBG+')';oZoomOut.style.backgroundPosition='0px -180px';oZoomOut.kaZoomer=this;oZoomOut.onclick=kaZoomer_zoomOut;this.zoomControlObj.appendChild(oZoomOut);var dropFunc=(function(obj){return function(slide){obj.kaZoomer_DropFunc(slide);};})(this);var a_init={b_vertical:true,b_watch:false,n_controlWidth:this.nZoomImageWidth,n_controlHeight:nTrackHeight,n_sliderWidth:this.sliderImageWidth,n_sliderHeight:this.sliderImageHeight,n_pathLeft:0,n_pathLength:nTrackHeight-this.sliderImageHeight,n_pathTop:0,tracker_elem:'zoomTrack',slider_elem:'zoomThumb',n_minValue:1,n_maxValue:nScales,n_value:nCurrentScale,n_step:1,dropFunc:dropFunc};this.slider=new Slider(a_init,this.kaMap);this.kaZoomer_update();this.kaMap.registerForEvent(kaMap.SCALE_CHANGED,this,this.update);};kaZoomer.prototype.hideController=function(){if(this.controllerObj){this.controllerObj.style.display='none';this.controllerObj.style.visibility='hidden';}};kaZoomer.prototype.showController=function(){if(this.controllerObj){this.controllerObj.style.display='block';this.controllerObj.style.visibility='visible';}else{this.displayController=true;}};kaZoomer.prototype.kaZoomer_DropFunc=function(slide_val){var oKaMap=this.kaMap;var oMap=this.kaMap.getCurrentMap();var nCurrentScale=oMap.aScales[slide_val-1];oKaMap.zoomToScale(nCurrentScale);};function kaZoomer_dragStart(e){document.ommousemove=function(e){kaZoomer_drag(e);};document.ommouseup=function(e){kaZoomer_endDrag(e);};}function kaZoomer_drag(e){var relativePos=e.clientY-sliderOffset}kaZoomer.prototype.kaZoomer_zoomToMiddle=function(e){if(this.isLocked())return;e=(e)?e:((event)?event:null);var nClickTop=(e.layerY)?e.layerY:e.offsetY;var oKaMap=this.kaMap;var oMap=oKaMap.getCurrentMap();var nScales=oKaMap.getFullScaleLength();var nTrackHeight=this.sliderImageHeight*nScales;var nNearestIndex=Math.floor(nClickTop/nTrackHeight*nScales)+1;if(nNearestIndex<nScales-oMap.aScales.length){nNearestIndex=nScales-oMap.aScales.length;}var nNewScale=oKaMap.getFullScale(nScales-nNearestIndex-1);oKaMap.zoomToScale(nNewScale);};kaZoomer.prototype.kaZoomer_zoomToTop=function(e){if(this.isLocked())return;var oKaMap=this.kaMap;var oMap=oKaMap.getCurrentMap();var nNearestIndex=oMap.aScales.length-1;var nNewScale=oMap.aScales[nNearestIndex];oKaMap.zoomToScale(nNewScale);};kaZoomer.prototype.kaZoomer_zoomToBottom=function(e){if(this.isLocked())return;var oKaMap=this.kaMap;var oMap=oKaMap.getCurrentMap();var nNewScale=oMap.aScales[0];oKaMap.zoomToScale(nNewScale);};function kaZoomer_onmouseover(e){this.style.opacity=1;this.style.MozOpacity=1;this.style.filter="Alpha(opacity=100)";}function kaZoomer_onmouseout(e){this.style.opacity=this.kaZoomer.opacity/100;this.style.MozOpacity=this.kaZoomer.opacity/100;this.style.filter="Alpha(opacity="+this.kaZoomer.opacity+")";}function kaZoomer_zoomIn(){if(this.kaZoomer.isLocked())return;this.kaZoomer.kaMap.zoomIn();}function kaZoomer_zoomOut(){if(this.kaZoomer.isLocked())return;this.kaZoomer.kaMap.zoomOut();}function kaZoomer_alert(){alert('here');}kaZoomer.prototype.isLocked=function(){return this.kaMap?this.kaMap.isLocked:true;};kaZoomer.prototype.createScrollButton=function(parent,id,top,left,width,height,bgurl,bgpos){var b=kaMap.f_createUnselectableElement('span');b.id=id;b.style.position='absolute';b.style.margin=0;b.style.padding=0;b.style.top=''+top+'px';b.style.left=''+left+'px';b.style.width=''+width+'px';b.style.height=''+height+'px';b.style.fontSize='8px';b.style.backgroundImage='url('+bgurl+')';b.style.backgroundPosition='0 '+bgpos+'px';parent.appendChild(b);};function kaScalebar(oKaMap,szID,bBackgroundVisibile){this.kaMap=oKaMap;this.domObj=this.kaMap.getRawObject(szID);if(!this.domObj){this.domObj=kaMap.f_createUnselectableElement('div');this.domObj.id='scalebar';}this.domObj.style.position='absolute';this.domObj.style.left='0px';this.domObj.style.bottom='0px';this.domObj.style.width='168px';this.domObj.style.height='30px';this.domObj.style.paddingTop='3px';this.domObj.style.paddingLeft='16px';if(bBackgroundVisibile){this.domObj.style.backgroundColor='#f0f0f0';this.domObj.style.opacity=0.75;this.domObj.style.filter='Alpha(opacity=75)';this.domObj.style.MozOpacity=0.75;}this.domObj.style.zIndex=3;this.domObj.style.fontFamily='Helvetica';this.domObj.style.fontSize='8px';this.domObj.style.fontWeight='bold';this.kaMap.scalebarObj=this.domObj;this.kaMap.domObj.appendChild(this.domObj);this.update=kaScalebar_update;if(this.kaMap.initialized()){this.update();}this.kaMap.registerForEvent(kaMap.SCALE_CHANGED,this,this.update);this.kaMap.registerForEvent(kaMap.MAP_INITIALIZED,this,this.update);}kaScalebar.prototype.remove=function(){if(this.domObj&&this.kaMap&&this.kaMap.domObj){this.kaMap.domObj.removeChild(this.domObj);}};function kaScalebar_update(){var bar_len=this.kaMap.getScaleBarLength(this.kaMap.getCurrentScaleCode());var caption;if(bar_len%10000==0){caption=(bar_len/1000)+'km';}else{caption=bar_len+'m';}var pixel_len=this.kaMap.meter2pixel(bar_len);var spacer_len=pixel_len-2-((caption.length-2)*10);this.domObj.innerHTML='';{var root=kaMap.f_createUnselectableElement('div');root.style.fontSize='11px';root.style.fontFamily='Helvetica,sans-serif';var leftimg=kaMap.f_createUnselectableElement('img');leftimg.src=this.kaMap.aPixel.src;leftimg.width=2;leftimg.height=1;var zeroText=kaMap.f_createUnselectableElement('span');zeroText.innerHTML='0';var rightimg=kaMap.f_createUnselectableElement('img');rightimg.src=this.kaMap.aPixel.src;rightimg.width=spacer_len;rightimg.height=1;var captionText=kaMap.f_createUnselectableElement('span');captionText.innerHTML=caption;root.appendChild(leftimg);root.appendChild(zeroText);root.appendChild(rightimg);root.appendChild(captionText);this.domObj.appendChild(root);}{var root=kaMap.f_createUnselectableElement('div');this.domObj.appendChild(root);var img=kaMap.f_createUnselectableElement('img');img.src=this.kaMap.serv_host+'/api-new/images/scalebar.gif';img.width=125;img.height=11;img.border=0;root.appendChild(img);this.domObj.appendChild(root);}}function kaKeymap(oKaMap,szID){var default_width=180;var default_height=180;var max_width=400;var max_height=400;this.kaMap=oKaMap;this.domObj=this.kaMap.getRawObject(szID);this.domObj.kaKeymap=this;this.r_width=getObjectWidth(szID);if(!this.r_width){this.r_width=default_width;}else if(this.r_width>max_width){this.r_width=max_width;}this.width=this.r_width+"px";this.r_height=getObjectHeight(szID);if(!this.r_height){this.r_height=default_height;}else if(this.r_height>max_height){this.r_height=max_height;}this.height=this.r_height+"px";this.pxExtent=null;this.domExtents=null;this.aExtents=null;this.domImg=null;this.domImg2=null;this.imgSrc=null;this.imgWidth=this.r_width;this.imgHeight=this.r_height;this.cellWidth=null;this.cellHeight=null;this.initialExtents=null;this.domObj.ondblclick=this.ondblclick;if(this.domObj.captureEvents){this.domObj.captureEvents(Event.DBLCLICK);}if(!this.kaMap.initialized()){this.kaMap.registerForEvent(kaMap.MAP_INITIALIZED,this,this.draw);}else{this.draw();}this.kaMap.registerForEvent(kaMap.EXTENTS_CHANGED,this,this.update);this.kaMap.registerForEvent(kaMap.SCALE_CHANGED,this,this.draw);}kaKeymap.prototype.remove=function(){if(this.kaMap){this.kaMap.deregisterForEvent(kaMap.EXTENTS_CHANGED,this,this.update);this.kaMap.deregisterForEvent(kaMap.MAP_INITIALIZED,this,this.draw);this.kaMap.deregisterForEvent(kaMap.SCALE_CHANGED,this,this.draw);}if(this.domObj){if(this.domExtents){if(this.domCross){this.domExtents.removeChild(this.domCross);}this.domObj.removeChild(this.domExtents);}if(this.domEvent){this.domObj.removeChild(this.domEvent);}if(this.domImg){this.domObj.removeChild(this.domImg);}if(this.domImg2){this.domObj.removeChild(this.domImg2);}}};kaKeymap.prototype.draw=function(szResult){this.pxExtent=null;this.initialExtents=this.kaMap.getGeoExtents();var lat=(this.initialExtents[1]+this.initialExtents[3])/2;var lon=(this.initialExtents[0]+this.initialExtents[2])/2;var scale_code=this.kaMap.getCurrentScaleCode();var ref_scale=this.kaMap.getRefScale(scale_code);var inchesPerUnit=new Array(1,12,63360.0,39.3701,39370.1,4374754);this.cellWidth=ref_scale/(this.kaMap.getResolution()*inchesPerUnit[this.kaMap.getUnits()]);this.cellHeight=this.cellWidth;var px=this.bl2kaX(lon);var py=this.bl2kaY(lat);this.aExtents=new Array(this.ka2blX(px-this.imgWidth/2),this.ka2blY(py+this.imgHeight/2),this.ka2blX(px+this.imgWidth/2),this.ka2blY(py-this.imgHeight/2));this.imgSrc=this.kaMap.mkurl(this.kaMap.server,this.kaMap.keymapURL,'lat='+lat+'&lon='+lon+'&s='+scale_code+'&w='+this.imgWidth+'&h='+this.imgHeight);for(var i=this.domObj.childNodes.length-1;i>=0;i--){this.domObj.removeChild(this.domObj.childNodes[i]);}this.domObj.style.width=this.imgWidth+"px";this.domObj.style.height=this.imgHeight+"px";this.domObj.style.backgroundColor='rgb(126, 213, 241)';if(this.domImg!=null){this.domImg.src=this.kaMap.aPixel.src;this.domImg.onload=null;}if(this.domImg2!=null){for(var i=this.domImg2.childNodes.length-1;i>=0;i--){this.domImg2.childNodes[i].src=this.kaMap.aPixel.src;this.domImg2.childNodes[i].onload=null;this.domImg2.removeChild(this.domImg2.childNodes[i]);}}if(this.kaMap.ref&&this.kaMap.ref.url){this._buildKeymapByFileAccess({px:px,py:py,scale:ref_scale});}else{this.domImg=kaMap.f_createUnselectableElement('img');this.domImg.id="keymapImage";this.domImg.width=this.imgWidth;this.domImg.height=this.imgHeight;this.domImg.onload=function(e){this.style.visibility='visible';};this.domImg.style.visibility='hidden';this.domObj.appendChild(this.domImg);this.domImg.src=this.imgSrc+'&map='+this.kaMap.currentMap;}this.domExtents=kaMap.f_createUnselectableElement('div');this.domExtents.kaKeymap=this;this.domExtents.id="keymapDomExtents";this.domExtents.style.position='absolute';this.domExtents.style.border='1px solid red';this.domExtents.style.top="1px";this.domExtents.style.left="1px";this.domExtents.style.width="1px";this.domExtents.style.height="1px";this.domExtents.style.backgroundColor='transparent';this.domExtents.style.visibility='visible';this.domObj.appendChild(this.domExtents);this.domEvent=kaMap.f_createUnselectableElement('div');this.domEvent.kaKeymap=this;this.domEvent.onmousedown=this.mousedown;this.domEvent.onmouseup=this.mouseup;this.domEvent.onmousemove=this.mousemove;if(this.domEvent.captureEvents){this.domEvent.captureEvents(Event.MOUSEDOWN);this.domEvent.captureEvents(Event.MOUSEUP);this.domEvent.captureEvents(Event.MOUSEMOVE);this.domEvent.captureEvents(Event.MOUSEOUT);}this.domEvent.on_mouse_up=(function(obj){return function(e){obj.domEvent.onmouseup(e);};})(this);kaMap.f_addListener(document,'mouseup',this.domEvent.on_mouse_up);this.domEvent.style.position='absolute';this.domEvent.id='keymapDomEvent';this.domEvent.style.border='1px solid red';this.domEvent.style.top="1px";this.domEvent.style.left="1px";this.domEvent.style.width="1px";this.domEvent.style.height="1px";this.domEvent.style.backgroundColor='white';this.domEvent.style.visibility='visible';this.domEvent.style.opacity=0.01;this.domEvent.style.MozOpacity=0.01;this.domEvent.style.filter="Alpha(opacity=0.01)";this.domObj.appendChild(this.domEvent);var d=kaMap.f_createUnselectableElement('img');d.id="keymapCrossImage";d.src=this.kaMap.serv_host+"/api-new/images/cross.png";d.style.position='absolute';d.style.top='0px';d.style.left='0px';d.style.width="19px";d.style.height="19px";d.style.visibility='hidden';this.domExtents.appendChild(d);this.domCross=d;if(this.initialExtents!=null){this.update(null,this.initialExtents);}};kaKeymap.prototype.update=function(eventID,extents){if(!this.aExtents||!this.aExtents[0]||!this.domExtents){this.initialExtents=extents;return;}var pcx=this.bl2kaX(this.aExtents[0]);var pcy=this.bl2kaY(this.aExtents[3]);var pminx=this.bl2kaX(extents[0]);var pminy=this.bl2kaY(extents[3]);var pmaxx=this.bl2kaX(extents[2]);var pmaxy=this.bl2kaY(extents[1]);var left=pminx-pcx;var top=pminy-pcy;var width=pmaxx-pminx;var height=pmaxy-pminy;left=parseInt(left+0.5);top=parseInt(top+0.5);width=parseInt(width+0.5);height=parseInt(height+0.5);if(width>=this.imgWidth||height>=this.imgHeight){this.domExtents.style.visibility='hidden';return;}else if(left<0||top<0||(left+width)>=this.imgWidth||(top+height>=this.imgHeight)){this.draw();return;}this.pxExtent=new Array(left,top,width,height);this.domExtents.style.top=top+"px";this.domExtents.style.left=left+"px";this.domEvent.style.top=top+"px";this.domEvent.style.left=left+"px";if(width<parseInt(this.domCross.style.width)||height<parseInt(this.domCross.style.height)){var ix=parseInt(this.domCross.style.width)/2;var iy=parseInt(this.domCross.style.height)/2;var ox=width/2;var oy=height/2;this.domExtents.style.width=this.domCross.style.width;this.domExtents.style.height=this.domCross.style.height;this.domEvent.style.width=this.domCross.style.width;this.domEvent.style.height=this.domCross.style.height;this.domExtents.style.top=(parseInt(this.domExtents.style.top)-iy+oy)+'px';this.domExtents.style.left=(parseInt(this.domExtents.style.left)-ix+ox)+'px';this.domEvent.style.top=(parseInt(this.domEvent.style.top)-iy+oy)+'px';this.domEvent.style.left=(parseInt(this.domEvent.style.left)-ix+ox)+'px';this.domCross.style.visibility='visible';this.domExtents.style.border='1px solid white';this.domEvent.style.border='none';}else{this.domExtents.style.width=parseInt(width+0.5)+"px";this.domExtents.style.height=parseInt(height+0.5)+"px";this.domEvent.style.width=parseInt(width+0.5)+"px";this.domEvent.style.height=parseInt(height+0.5)+"px";this.domCross.style.visibility='hidden';this.domExtents.style.border='1px solid red';this.domEvent.style.border='1px solid red';this.domEvent.style.visibility='visible';this.domExtents.style.visibility='visible';}};kaKeymap.prototype.ondblclick=function(e){if(this.kaKeymap.isLocked())return;e=(e)?e:((event)?event:null);this.kaKeymap.centerMap(e);};kaKeymap.prototype.centerMap=function(e){var pos=this.aPixPos(e.clientX,e.clientY);this.kaMap.zoomTo(pos[0],pos[1]);};kaKeymap.prototype.aPixPos=function(x,y){var obj=this.domObj;var offsetLeft=0;var offsetTop=0;while(obj){offsetLeft+=parseFloat(obj.offsetLeft);offsetTop+=parseFloat(obj.offsetTop);obj=obj.offsetParent;}var pX=x-offsetLeft;var pY=y-offsetTop;pX=this.ka2blX(this.bl2kaX(this.aExtents[0])+pX);pY=this.ka2blY(this.bl2kaY(this.aExtents[3])+pY);return[pX,pY];};kaKeymap.prototype.mousedown=function(e){if(this.kaKeymap.isLocked())return;e=(e)?e:((event)?event:null);this.kaKeymap.domEvent.style.top="0px";this.kaKeymap.domEvent.style.left="0px";this.kaKeymap.domEvent.style.width=this.kaKeymap.domObj.style.width;this.kaKeymap.domEvent.style.height=this.kaKeymap.domObj.style.height;this.kaKeymap.domExtents.init=1;this.kaKeymap.domExtents.oX=e.clientX;this.kaKeymap.domExtents.oY=e.clientY;var amount=50;this.kaKeymap.domExtents.style.backgroundColor='pink';if(this.kaKeymap.kaMap.isIE4){this.kaKeymap.domExtents.style.filter="Alpha(opacity="+amount+")";}else{this.kaKeymap.domExtents.style.opacity=amount/100;}e.cancelBubble=true;e.returnValue=false;if(e.stopPropogation)e.stopPropogation();if(e.preventDefault)e.preventDefault();return false;};kaKeymap.prototype.mouseup=function(e){if(this.kaKeymap.isLocked())return;if(this.kaKeymap.domExtents.init){e=(e)?e:((event)?event:null);this.kaKeymap.domExtents.style.backgroundColor='transparent';this.kaKeymap.domExtents.style.opacity=1;if(this.kaKeymap.kaMap.isIE4)this.kaKeymap.domExtents.style.filter="Alpha(opacity=100)";this.kaKeymap.domExtents.init=0;cG=this.kaKeymap.geoCentCoord();this.kaKeymap.kaMap.triggerEvent(kaMap.INDEXMAP_MOVED,this.kaKeymap.kaMap.getGeoExtents());this.kaKeymap.kaMap.zoomTo(cG[0],cG[1]);}return false;};kaKeymap.prototype.mousemove=function(e){if(this.kaKeymap.isLocked())return;e=(e)?e:((event)?event:null);if(this.kaKeymap.domExtents.init){var xMov=(this.kaKeymap.domExtents.oX-e.clientX);var yMov=(this.kaKeymap.domExtents.oY-e.clientY);var oX=this.kaKeymap.pxExtent[0];var oY=this.kaKeymap.pxExtent[1];var nX=oX-xMov;var nY=oY-yMov;this.kaKeymap.domExtents.oX=e.clientX;this.kaKeymap.domExtents.oY=e.clientY;this.kaKeymap.pxExtent[0]=nX;this.kaKeymap.pxExtent[1]=nY;if(this.kaKeymap.domCross.style.visibility=='visible'){var ix=parseInt(this.kaKeymap.domCross.style.width)/2;var iy=parseInt(this.kaKeymap.domCross.style.height)/2;var ox=this.kaKeymap.pxExtent[2]/2;var oy=this.kaKeymap.pxExtent[3]/2;this.kaKeymap.domExtents.style.top=parseInt((nY+0.5)-iy+oy)+"px";this.kaKeymap.domExtents.style.left=parseInt((nX+0.5)-ix+ox)+"px";}else{this.kaKeymap.domExtents.style.top=parseInt(nY+0.5)+"px";this.kaKeymap.domExtents.style.left=parseInt(nX+0.5)+"px";}}return false;};kaKeymap.prototype.geoCentCoord=function(){var l=this.bl2kaX(this.aExtents[0]);var t=this.bl2kaY(this.aExtents[3]);l+=this.pxExtent[0]+this.pxExtent[2]/2;t+=this.pxExtent[1]+this.pxExtent[3]/2;var lon=this.ka2blX(l);var lat=this.ka2blY(t);return[lon,lat];};kaKeymap.prototype.isLocked=function(){return this.kaMap?this.kaMap.isLocked:true;};kaKeymap.prototype.bl2kaX=function(lon){return this.kaMap.coordForwardX(lon)/(this.cellWidth*this.kaMap.coordCorrectionValue);};kaKeymap.prototype.bl2kaY=function(lat){return-this.kaMap.coordForwardY(lat)/(this.cellHeight*this.kaMap.coordCorrectionValue);};kaKeymap.prototype.ka2blX=function(px){return this.kaMap.coordInverseX(px*(this.cellWidth*this.kaMap.coordCorrectionValue));};kaKeymap.prototype.ka2blY=function(py){return-this.kaMap.coordInverseY(py*(this.cellHeight*this.kaMap.coordCorrectionValue));};kaKeymap.prototype._buildKeymapByFileAccess=function(params){this.domImg=kaMap.f_createUnselectableElement('img');this.domImg.id="keymapImage";this.domImg.width=this.imgWidth;this.domImg.height=this.imgHeight;this.domImg.style.visibility='hidden';this.domObj.appendChild(this.domImg);this.domImg2=kaMap.f_createUnselectableElement('div');this.domImg2.style.position='absolute';this.domImg2.style.overflow='hidden';this.domImg2.style.left=0+'px';this.domImg2.style.top=0+'px';this.domImg2.style.width=this.imgWidth+'px';this.domImg2.style.height=this.imgHeight+'px';this.domObj.appendChild(this.domImg2);var ref=this.kaMap.ref;var px=params.px;var py=params.py;var w=this.imgWidth;var h=this.imgHeight;var left=Math.floor(px-w/2);var top=Math.floor(py-h/2);var right=left+w;var bottom=top+h;var x0=Math.floor(left/ref.width)*ref.width;var y0=Math.floor(top/ref.height)*ref.height;var x1=Math.floor(right/ref.width)*ref.width;var y1=Math.floor(bottom/ref.height)*ref.height;for(var t=y0;t<=y1;t+=ref.height){for(var l=x0;l<=x1;l+=ref.width){var meta_w=ref.width*ref.meta[params.scale].width;var meta_h=ref.height*ref.meta[params.scale].height;var meta_t=Math.floor(t/meta_h)*meta_h;var meta_l=Math.floor(l/meta_w)*meta_w;var url=ref.url;url+='/'+params.scale;url+='/t'+kaMap.toTileURL(meta_t);url+='/l'+kaMap.toTileURL(meta_l);url+='/t'+t+'l'+l+'.png';if(ref.ver)url+='?ver='+ref.ver;var img=kaMap.f_createUnselectableElement('img');img.id="keymapImage-t"+t+"l"+l;img.width=ref.width;img.height=ref.height;img.onload=function(e){this.style.visibility='visible';};img.style.visibility='hidden';img.style.position='absolute';img.style.left=(l-left)+'px';img.style.top=(t-top)+'px';img.src=url;this.domImg2.appendChild(img);}}};var aXmlHttp=new Array();var aXmlResponse=new Array();function xmlResult(){for(var i=0;i<aXmlHttp.length;i++){if(aXmlHttp[i]&&aXmlHttp[i][0]&&aXmlHttp[i][0].readyState==4&&aXmlHttp[i][0].responseText){var f=aXmlHttp[i][2];var o=aXmlHttp[i][1];var s=aXmlHttp[i][0].responseText;aXmlHttp[i][0]=null;aXmlHttp[i][1]=null;aXmlHttp[i]=null;f.apply(o,new Array(s));}}}function call(u,o,f){var method="GET";var dat;if(arguments.length==4){method="POST";tmp=u.split(/\?/);u=tmp[0];dat=tmp[1];}var idx=aXmlHttp.length;for(var i=0;i<idx;i++)if(aXmlHttp[i]==null){idx=i;break;}aXmlHttp[idx]=new Array(2);aXmlHttp[idx][0]=getXMLHTTP();aXmlHttp[idx][1]=o;aXmlHttp[idx][2]=f;if(aXmlHttp[idx]){aXmlHttp[idx][0].open(method,u,true);if(method=="POST"){aXmlHttp[idx][0].setRequestHeader("Content-Type","application/x-www-form-urlencoded");aXmlHttp[idx][0].send(dat);}aXmlHttp[idx][0].onreadystatechange=xmlResult;if(method=="GET"){aXmlHttp[idx][0].send(null);}}}function getXMLHTTP(){var A=null;if(!A&&typeof XMLHttpRequest!="undefined"){A=new XMLHttpRequest();}if(!A){try{A=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{A=new ActiveXObject("Microsoft.XMLHTTP");}catch(oc){A=null}}}return A;}calljs.scriptCounter=0;calljs.jsonReq=new Array();function calljs(url,o,callback){var func_no=calljs.scriptCounter++;var func_name='f'+func_no;url+=(url.indexOf('?')<0?'?':'&')+'callback='+encodeURIComponent('calljs.jsonReq.'+func_name);var req=new JSONscriptRequest(url);calljs.jsonReq[func_name]=function(json){calljs.jsonReq[func_name].reqobj.removeScriptTag();callback.apply(o,new Array(json));delete calljs.jsonReq[func_name];};calljs.jsonReq[func_name].reqobj=req;req.buildScriptTag();req.addScriptTag();}Netmap.Canvas={};Netmap.Canvas.create=function(kamap,parent,width,height){var impl=null;impl=kamap.isIE?Netmap.Canvas.createVMLImpl():Netmap.Canvas.createSVGImpl();impl.createRoot(parent,width,height);return impl;};Netmap.Canvas._createDiv=function(root,id,x,y,w,h,opacity){var div=document.createElement('div');div.id=id;div.style.position='absolute';div.style.left=parseInt(x)+'px';div.style.top=parseInt(y)+'px';div.style.width=parseInt(w)+'px';div.style.height=parseInt(h)+'px';if(opacity!=null){Netmap.Canvas.setOpacity(div,opacity);}root.appendChild(div);var op={setY:function(y){this._div.style.top=parseInt(y)+'px';},setSrc:function(src){var url='url("'+src+'")';this._div.style.backgroundImage=url;},_div:div};return op;};Netmap.Canvas.setOpacity=function(obj,opacity){if(obj.style){opacity=parseFloat(opacity);opacity=Math.max(0.0,Math.min(opacity,1.0));obj.style.opacity=opacity;obj.style.MozOpacity=opacity;obj.style.filter='Alpha(opacity='+Math.floor(opacity*100)+')';}};Netmap.Canvas.createSVGImpl=function(){return{XMLNS_SVG:'http://www.w3.org/2000/svg',XMLNS_XLINK:'http://www.w3.org/1999/xlink',m_root:null,m_width:0,m_height:0,createRoot:function(parent,width,height){this.m_parent=parent;this.m_root=document.createElementNS(this.XMLNS_SVG,'svg');this.setSize(width,height);parent.appendChild(this.m_root);},destroy:function(){if(this.m_parent&&this.m_root){this.m_parent.removeChild(this.m_root);}},setSize:function(width,height){this.m_width=width;this.m_height=height;this.m_root.setAttribute("width",this.m_width+'px');this.m_root.setAttribute("height",this.m_height+'px');},polyline:function(id,points,stroke_width,stroke_color,opacity){var e=document.createElementNS(this.XMLNS_SVG,'polyline');this._setAttributeIf(e,'id',id);this._setAttributeIf(e,'stroke-width',stroke_width);this._setAttributeIf(e,'stroke',stroke_color);this._setAttributeIf(e,'fill','none');this._setAttributeIf(e,'stroke-linecap','round');this._setAttributeIf(e,'stroke-linejoin','round');this._setAttributeIf(e,'opacity',opacity);var p='';for(var i=0;i<points.length;i++)p+=points[i][0]+','+points[i][1]+' ';this._setAttributeIf(e,'points',p);this.m_root.appendChild(e);},polygon:function(id,points,stroke_width,stroke_color,fill_color,opacity){var e=document.createElementNS(this.XMLNS_SVG,'polygon');this._setAttributeIf(e,'id',id);this._setAttributeIf(e,'stroke-width',stroke_width);this._setAttributeIf(e,'stroke',stroke_color);this._setAttributeIf(e,'fill',fill_color?fill_color:'none');this._setAttributeIf(e,'stroke-linecap','round');this._setAttributeIf(e,'stroke-linejoin','round');this._setAttributeIf(e,'opacity',opacity);var p='';for(var i=0;i<points.length;i++)p+=points[i][0]+','+points[i][1]+' ';this._setAttributeIf(e,'points',p);this.m_root.appendChild(e);},ellipse:function(id,x,y,rx,ry,stroke_width,stroke_color,fill_color,opacity){var e=document.createElementNS(this.XMLNS_SVG,'ellipse');this._setAttributeIf(e,'id',id);this._setAttributeIf(e,'stroke-width',stroke_width);this._setAttributeIf(e,'stroke',stroke_color);this._setAttributeIf(e,'fill',fill_color?fill_color:'none');this._setAttributeIf(e,'stroke-linecap','round');this._setAttributeIf(e,'stroke-linejoin','round');this._setAttributeIf(e,'cx',x);this._setAttributeIf(e,'cy',y);this._setAttributeIf(e,'rx',rx);this._setAttributeIf(e,'ry',ry);this._setAttributeIf(e,'opacity',opacity);this.m_root.appendChild(e);},rect:function(id,x,y,w,h,stroke_width,stroke_color,fill_color,opacity){this.roundrect(id,x,y,w,h,0,stroke_width,stroke_color,fill_color,opacity);},roundrect:function(id,x,y,w,h,r,stroke_width,stroke_color,fill_color,opacity){var e=document.createElementNS(this.XMLNS_SVG,'rect');this._setAttributeIf(e,'id',id);this._setAttributeIf(e,'stroke-width',stroke_width);this._setAttributeIf(e,'stroke',stroke_color);this._setAttributeIf(e,'fill',fill_color?fill_color:'none');this._setAttributeIf(e,'stroke-linecap','round');this._setAttributeIf(e,'stroke-linejoin','round');this._setAttributeIf(e,'x',x);this._setAttributeIf(e,'y',y);this._setAttributeIf(e,'width',w);this._setAttributeIf(e,'height',h);this._setAttributeIf(e,'rx',r);this._setAttributeIf(e,'ry',r);this._setAttributeIf(e,'opacity',opacity);this.m_root.appendChild(e);},text:function(id,x,y,string,color,font_family,font_size,font_weight,opacity){var e=document.createElementNS(this.XMLNS_SVG,'text');this._setAttributeIf(e,'id',id);this._setAttributeIf(e,'x',x+'px');this._setAttributeIf(e,'y',y+font_size+'px');this._setAttributeIf(e,'fill',color);this._setAttributeIf(e,'font-family',font_family);this._setAttributeIf(e,'font-size',font_size);this._setAttributeIf(e,'font-weight',font_weight);this._setAttributeIf(e,'opacity',opacity);e.appendChild(document.createTextNode(string));this.m_root.appendChild(e);},image:function(id,x,y,w,h,src,opacity){var e=document.createElementNS(this.XMLNS_SVG,'image');this._setAttributeIf(e,'id',id);this._setAttributeIf(e,'x',x);this._setAttributeIf(e,'y',y);this._setAttributeIf(e,'width',w);this._setAttributeIf(e,'height',h);this._setAttributeIf(e,'opacity',opacity);e.setAttributeNS(this.XMLNS_XLINK,'href',src);this.m_root.appendChild(e);var canvas=this;var op={setY:function(y){this._canvas._setAttributeIf(this._obj,'y',y);},setSrc:function(src){this._canvas._setAttributeIf(this._obj,'href',src);},setOpacity:function(opacity){this._canvas._setAttributeIf(this._obj,'opacity',opacity);},_obj:e,_canvas:canvas};return op;},div:function(id,x,y,w,h,opacity){return Netmap.Canvas._createDiv(this.m_parent,id,x,y,w,h,opacity);},_setAttributeIf:function(element,name,value,unit){if(value!=null){element.setAttribute(name,value+(unit?unit:''));}}};};Netmap.Canvas.createVMLImpl=function(){return{m_root:null,m_width:0,m_height:0,createRoot:function(parent,width,height){if(!document.namespaces.v){document.namespaces.add("v","urn:schemas-microsoft-com:vml");var ss=document.createStyleSheet();var style="behavior: url(#default#VML);";ss.addRule('v\\:fill',style);ss.addRule('v\\:image',style);ss.addRule('v\\:oval',style);ss.addRule('v\\:polyline',style);ss.addRule('v\\:rect',style);ss.addRule('v\\:roundrect',style);ss.addRule('v\\:shape',style);ss.addRule('v\\:stroke',style);ss.addRule('v\\:textpath',style);ss.addRule('v\\:line',style);}this.m_parent=parent;this.m_root=document.createElement('div');this.setSize(width,height);parent.appendChild(this.m_root);},destroy:function(){if(this.m_parent&&this.m_root){this.m_parent.removeChild(this.m_root);}},setSize:function(width,height){this.m_width=width;this.m_height=height;this.m_root.style.width=width+'px';this.m_root.style.height=height+'px';},polyline:function(id,points,stroke_width,stroke_color,opacity){var e=document.createElement('v:polyline');this._setAttributeIf(e,'id',id);this._setStrokeFillAttributes(e,stroke_width,stroke_color,null,opacity);var o=document.createElement('v:stroke');this._setAttributeIf(e,'opacity',opacity);e.appendChild(o);var p='';for(var i=0;i<points.length;i++)p+=points[i][0]+','+points[i][1]+' ';this._setAttributeIf(e,'points',p);this.m_root.appendChild(e);},polygon:function(id,points,stroke_width,stroke_color,fill_color,opacity){var e=document.createElement('v:shape');this._setAttributeIf(e,'id',id);this._setStrokeFillAttributes(e,stroke_width,stroke_color,fill_color,opacity);var w=1000;var h=1000;var s=e.style;this._setAttributeIf(s,'position','absolute');this._setAttributeIf(s,'left',0,'px');this._setAttributeIf(s,'top',0,'px');this._setAttributeIf(s,'width',w,'px');this._setAttributeIf(s,'height',h,'px');var p='';for(var i=0;i<points.length;i++){if(i==0)p+='m ';else if(i==1)p+=' l ';p+=points[i][0]+','+points[i][1];if(i!=0&&i<points.length-1)p+=', ';}p+=' x e';this._setAttributeIf(e,'path',p);this.m_root.appendChild(e);},ellipse:function(id,x,y,rx,ry,stroke_width,stroke_color,fill_color,opacity){var e=document.createElement('v:oval');this._setAttributeIf(e,'id',id);this._setStrokeFillAttributes(e,stroke_width,stroke_color,fill_color,opacity);var s=e.style;this._setAttributeIf(s,'position','absolute');this._setAttributeIf(s,'left',(x-rx),'px');this._setAttributeIf(s,'top',(y-ry),'px');this._setAttributeIf(s,'width',rx*2,'px');this._setAttributeIf(s,'height',ry*2,'px');this.m_root.appendChild(e);},rect:function(id,x,y,w,h,stroke_width,stroke_color,fill_color,opacity){var e=document.createElement('v:rect');this._setAttributeIf(e,'id',id);this._setStrokeFillAttributes(e,stroke_width,stroke_color,fill_color,opacity);var s=e.style;this._setAttributeIf(s,'position','absolute');this._setAttributeIf(s,'left',x,'px');this._setAttributeIf(s,'top',y,'px');this._setAttributeIf(s,'width',w,'px');this._setAttributeIf(s,'height',h,'px');this.m_root.appendChild(e);},roundrect:function(id,x,y,w,h,r,stroke_width,stroke_color,fill_color,opacity){var e=document.createElement('v:roundrect');this._setAttributeIf(e,'id',id);this._setStrokeFillAttributes(e,stroke_width,stroke_color,fill_color,opacity);this._setAttributeIf(e,'arcsize',r/(Math.min(w,h)/2));var s=e.style;this._setAttributeIf(s,'position','absolute');this._setAttributeIf(s,'left',x,'px');this._setAttributeIf(s,'top',y,'px');this._setAttributeIf(s,'width',w,'px');this._setAttributeIf(s,'height',h,'px');var o=document.createElement('v:stroke');this._setAttributeIf(o,'opacity',opacity);e.appendChild(o);o=document.createElement('v:fill');this._setAttributeIf(o,'opacity',opacity);e.appendChild(o);this.m_root.appendChild(e);},text:function(id,x,y,string,color,font_family,font_size,font_weight,opacity){var e=document.createElement('v:shape');this._setAttributeIf(e,'id',id);var s=e.style;this._setAttributeIf(s,'position','absolute');this._setAttributeIf(s,'left',x,'px');this._setAttributeIf(s,'top',y,'px');this._setAttributeIf(s,'width',(this.m_width-x),'px');this._setAttributeIf(s,'height',(this.m_height-y),'px');this._setAttributeIf(s,'color',color);this._setAttributeIf(s,'font','normal normal'+(font_weight?' '+font_weight:'')+(font_size?' '+font_size+'px':'')+(font_family?' "'+font_family+'"':''));var t=document.createElement('v:textpath');t.appendChild(document.createTextNode(string));e.appendChild(t);this.m_root.appendChild(e);},image:function(id,x,y,w,h,src,opacity){var e=document.createElement('v:image');this._setAttributeIf(e,'id',id);this._setAttributeIf(e,'src',src);this._setAttributeIf(e,'unselectable','on');var s=e.style;this._setAttributeIf(s,'position','absolute');this._setAttributeIf(s,'left',x,'px');this._setAttributeIf(s,'top',y,'px');this._setAttributeIf(s,'width',w,'px');this._setAttributeIf(s,'height',h,'px');if(opacity!=null){var filter="alpha(opacity="+Math.floor(opacity*100)+")";this._setAttributeIf(s,'filter',filter);}this.m_root.appendChild(e);var canvas=this;var op={setY:function(y){this._canvas._setAttributeIf(this._obj.style,'top',parseInt(y),'px');},setSrc:function(src){this._canvas._setAttributeIf(this._obj,'src',src);},setOpacity:function(opacity){var filter="alpha(opacity="+Math.floor(opacity*100)+")";this._canvas._setAttributeIf(this._obj.style,'filter',filter);},_obj:e,_canvas:canvas};return op;},div:function(id,x,y,w,h,opacity){return Netmap.Canvas._createDiv(this.m_parent,id,x,y,w,h,opacity);},_setAttributeIf:function(element,name,value,unit){if(value!=null){element.setAttribute(name,value+(unit?unit:''));}},_setStrokeFillAttributes:function(e,stroke_width,stroke_color,fill_color,opacity){this._setAttributeIf(e,'stroked','true');this._setAttributeIf(e,'strokeweight',stroke_width);this._setAttributeIf(e,'strokecolor',stroke_color);this._setAttributeIf(e,'filled',fill_color==null?'false':'true');this._setAttributeIf(e,'fillcolor',fill_color);var o=document.createElement('v:stroke');this._setAttributeIf(o,'opacity',opacity);this._setAttributeIf(o,'endcap','round');e.appendChild(o);o=document.createElement('v:fill');this._setAttributeIf(o,'opacity',opacity);e.appendChild(o);}};};Netmap.Point=function(x,y){this.length=function(point){var x=point.x-this.x;var y=point.y-this.y;return Math.sqrt(x*x+y*y);};this.equals=function(pt){return pt.x==this.x&&pt.y==this.y;};this.center=function(pt){return new Netmap.Point((this.x+pt.x)/2,(this.y+pt.y)/2);};this.clone=function(){var pt=new Netmap.Point(this.x,this.y);pt.cross=this.cross;return pt;};this.x=x!=null?parseFloat(x):0;this.y=y!=null?parseFloat(y):0;this.cross=-1;};Netmap.Rect=function(left,top,right,bottom){this.intersect=function(rect){var is=new Netmap.Rect;is.left=Math.max(this.left,rect.left);is.top=Math.max(this.top,rect.top);is.right=Math.min(this.right,rect.right);is.bottom=Math.min(this.bottom,rect.bottom);return(0<is.width()&&0<is.height())?is.regularize():null;};this.ptIn=function(x,y){return this.left<=x&&x<=this.right&&this.top<=y&&y<=this.bottom;};this.width=function(){return this.right-this.left;};this.height=function(){return this.bottom-this.top;};this.regularize=function(){if(this.right<this.left){var t=this.left;this.left=this.right;this.right=t;}if(this.bottom<this.top){var t=this.top;this.top=this.bottom;this.bottom=t;}return this;};this.left=left;this.top=top;this.right=right;this.bottom=bottom;this.regularize();};Netmap.FigureLayer=function(netmap){this.debug=false;this.debugRender=false;this.dumpEnable=false;this.dumpText='';this.netmap=netmap;this.kamap=netmap.myKaMap;this.mapInitialized=false;this.canvas=null;this.canvasBase=null;this.left=null;this.top=null;this.width=null;this.height=null;this.scale=null;this.xOrigin=null;this.yOrigin=null;this.autoRebuild=true;this.visibility=true;this.objects=[];this.clippedObjects=[];this.progressive={};this.progressive.total=0;this.progressive.done=0;this.animation={};this.animation.objects=[];this.animation.timer=null;this.animation.timerPeriod=1000/30;this.animation.time=null;this.pendingUpdate=false;this.processingFigureEvent=false;this.nextFigureID=1;this.POINTER_CURSOR='pointer';this.lastMouseOverObject=null;this.mouseOverEventLimitScale=-1;this.conv={kamap:netmap.myKaMap,g2m:function(x,y){return this.kamap.geoToPix(x,y);},g2p:function(x,y){var xy=this.kamap.geoToPix(x,y);xy[0]-=this.kamap.nCurrentLeft;xy[1]-=this.kamap.nCurrentTop;return xy;},g2pRect:function(rect){var lt=this.kamap.geoToPix(rect.left,rect.top);var rb=this.kamap.geoToPix(rect.right,rect.bottom);lt[0]-=this.kamap.nCurrentLeft;lt[1]-=this.kamap.nCurrentTop;rb[0]-=this.kamap.nCurrentLeft;rb[1]-=this.kamap.nCurrentTop;return new Netmap.Rect(lt[0],lt[1],rb[0],rb[1]);},p2g:function(x,y){return this.kamap.pixToGeo(-(x+this.kamap.nCurrentLeft),-(y+this.kamap.nCurrentTop));}};this.add=function(obj){if(obj){obj.figureLayer=this;if(obj.id==null){obj.id="objectID"+this.nextFigureID++;}this.objects.push(obj);if(this.autoRebuild){this._rebuildLayer(true);}}};this.addOrReplace=function(obj){if(obj.id==null){this.add(obj);}else{for(var i=0;i<this.objects.length;i++){if(this.objects[i].id==obj.id){this.objects[i]=obj;if(this.autoRebuild){this._rebuildLayer(true);}return;}}this.add(obj);}};this.remove=function(obj){if(obj){obj.figureLayer=null;var objs=[];for(var i=0;i<this.objects.length;i++){if(this.objects[i]!=obj){objs.push(this.objects[i]);}}this.objects=objs;if(this.autoRebuild){this._rebuildLayer(true);}}};this.removeAll=function(){if(this.objects.length){this.objects=[];if(this.autoRebuild){this._rebuildLayer(true);}}};this.isExists=function(obj){if(obj&&this.objects){for(var i=0;i<this.objects.length;i++){if(this.objects[i]==obj)return true;}}return false;};this.findById=function(id){for(var i=0;i<this.objects.length;i++){if(this.objects[i].id==id){return this.objects[i];}}return null;};this.setAutoRebuild=function(mode){this.autoRebuild=mode;if(this.autoRebuild){this._rebuildLayer(true);}};this.setVisibility=function(bVisible){this.visibility=bVisible;if(this.autoRebuild){this._rebuildLayer(true);}};this.setMouseOverEventLimitScale=function(scale){this.mouseOverEventLimitScale=scale;};this.onMapInitialized=function(){this.mapInitialized=true;this._rebuildLayer(true);this.onAnimationTimer();};this.scaleChanged=function(){if(this._rebuildLayer(false)){this.kamap.triggerEvent(kaMap.CANVAS_EXTENTS_CHANGED,this.netmap.getCanvasExtents());}this.oldCursor=null;};this.extentChanged=function(id,ext){if(ext&&ext.isScaleChanged)return;if(this._rebuildLayer(false)){this.kamap.triggerEvent(kaMap.CANVAS_EXTENTS_CHANGED,this.netmap.getCanvasExtents());}this.oldCursor=null;};this.onMouseClicked=function(id,pos){var obj=this._hitTest(pos.lon,pos.lat);if(obj){if(obj.onmouseclick){if(!this.processingFigureEvent){this.processingFigureEvent=true;Netmap.processEventHandler(obj.onmouseclick,obj.onmouseclick_obj,[obj]);this.processingFigureEvent=false;}}if(this.mouseOverEventLimitScale<=this.netmap.getScaleIndex()){this._setCursor(false);this._setCursor(obj.onmouseclick!=null);}}};this.onMouseMove=function(x,y){if(this.mouseOverEventLimitScale<=this.netmap.getScaleIndex()){var obj=this._hitTest(x,y);this._setCursor(obj&&obj.onmouseclick);if(obj){if(this.lastMouseOverObject&&obj!=this.lastMouseOverObject){if(!this.processingFigureEvent){this.processingFigureEvent=true;Netmap.processEventHandler(this.lastMouseOverObject.onmouseover,this.lastMouseOverObject.onmouseover_obj,[obj,false]);this.processingFigureEvent=false;}this.lastMouseOverObject=null;}if(obj.onmouseover){if(!this.processingFigureEvent){this.processingFigureEvent=true;Netmap.processEventHandler(obj.onmouseover,obj.onmouseover_obj,[obj,true]);this.processingFigureEvent=false;this.lastMouseOverObject=obj;}}}else{if(this.lastMouseOverObject){var obj=this.lastMouseOverObject;this.lastMouseOverObject=null;if(!this.processingFigureEvent){this.processingFigureEvent=true;Netmap.processEventHandler(obj.onmouseover,obj.onmouseover_obj,[obj,false]);this.processingFigureEvent=false;}}}}};this.onAnimationTimer=function(){var date=new Date();if(this.animation.time==null){this.animation.time=0;this.animation.prevTime=0;}else{var prev=this.animation.prevTime;var now=date.getMilliseconds();var prog=prev<=now?(now-prev):(now+1000-prev);this.animation.time+=prog;this.animation.prevTime=now;}for(var i=0;i<this.animation.objects.length;i++){this.animation.objects[i].onAnimationTimer(this.animation.time);}var self=this;this.animation.timer=setTimeout(function(){self.onAnimationTimer.apply(self);},this.animation.timerPeriod);};this._hitTest=function(x,y){var xy=this.conv.g2p(x,y);x=xy[0];y=xy[1];var mapRect=this._calcCanvasMapRect();var pixRect=this.conv.g2pRect(mapRect);for(var i=this.clippedObjects.length-1;0<=i;i--){var obj=this.clippedObjects[i];if(obj.visible&&obj.isValid()){if(obj.hitTest(x,y,this.conv,pixRect)){return obj;}}}return null;};this._setCursor=function(bSet){if(bSet){if(this.oldCursor==null){this.oldCursor=this.kamap.getCursor();this.kamap.setCursor(this.POINTER_CURSOR);}}else{if(this.oldCursor&&this.POINTER_CURSOR==this.kamap.getCursor()){this.kamap.setCursor(this.oldCursor);}this.oldCursor=null;}};this.dump=function(){this.dumpText='';this.dumpEnable=true;this._rebuildLayer(true);this.dumpEnable=false;return this.dumpText;};this._rebuildLayer=function(force){if(!this.mapInitialized)return false;var kamap=this.kamap;var width=this.visibility?(kamap.tileWidth*kamap.nWide):0;var height=this.visibility?(kamap.tileHeight*kamap.nHigh):0;if(!force&&this.left==kamap.nCurrentLeft&&this.top==kamap.nCurrentTop&&this.xOrigin==kamap.xOrigin&&this.yOrigin==kamap.yOrigin&&this.width==width&&this.height==height&&this.scale==kamap.getCurrentScale()){return false;}if(this.progressive.timer){clearTimeout(this.progressive.timer);this.progressive.timer=null;}if(!force){this.pendingUpdate=false;this.kamap.triggerEvent(kaMap.CANVAS_EXTENTS_PRE_CHANGED,this.netmap.getCanvasExtents());if(this.pendingUpdate){return true;}}this.left=kamap.nCurrentLeft;this.top=kamap.nCurrentTop;this.xOrigin=kamap.xOrigin;this.yOrigin=kamap.yOrigin;this.width=width;this.height=height;this.scale=kamap.getCurrentScale();if(this.canvasBase){this.canvasBaseOld=this.canvasBase;this.canvasOld=this.canvas;}this.canvasBase=kamap.createDrawingCanvas2(100,width,height);this.canvasBase.style.left=(kamap.nCurrentLeft-kamap.xOrigin)+'px';this.canvasBase.style.top=(kamap.nCurrentTop-kamap.yOrigin)+'px';this.canvas=Netmap.Canvas.create(kamap,this.canvasBase,width,height);if(this.debug){this.canvas.polyline(null,[[0,0],[width,height]],1,'#000000');this.canvas.polyline(null,[[0,height],[width,0]],1,'#000000');this.canvas.polyline(null,[[0,height/2],[width,height/2]],1,'#ff0000');this.canvas.polyline(null,[[width/2,0],[width/2,height]],1,'#ff0000');this.debugRender=true;}this.clippedObjects=[];this.animation.objects=[];var count=this.objects.length;if(0<count){this.progressive.total=count;this.progressive.done=0;this.progressiveTimer();}if(this.canvasOld){this.canvasOld.destroy();this.canvasOld=null;}if(this.canvasBaseOld){kamap.removeDrawingCanvas(this.canvasBaseOld);this.canvasBaseOld=null;}return true;};this._rebuildObjects=function(start,count){var mapRect=this._calcCanvasMapRect();if(this.debug&&this.debugRender){var kamap=this.kamap;var e=kamap.getGeoExtents();var w=(e[2]-e[0])/4;var h=(e[3]-e[1])/4;mapRect.left=e[0]+w;mapRect.top=e[1]+h;mapRect.right=e[2]-w;mapRect.bottom=e[3]-h;this.canvas.polygon(null,[this.conv.g2p(mapRect.left,mapRect.top),this.conv.g2p(mapRect.left,mapRect.bottom),this.conv.g2p(mapRect.right,mapRect.bottom),this.conv.g2p(mapRect.right,mapRect.top),this.conv.g2p(mapRect.left,mapRect.top)],1,'#ff0000','#808080',0.3);this.debugRender=false;}var pixRect=this.conv.g2pRect(mapRect);if(this.dumpEnable){this.dumpText+='mapRect(clip) = '+mapRect.left+','+mapRect.top+','+mapRect.right+','+mapRect.bottom+'\n';this.dumpText+='pixRect(clip) = '+pixRect.left+','+pixRect.top+','+pixRect.right+','+pixRect.bottom+'\n';}var last=start+count;if(this.objects.length<last)last=this.objects.length;for(var i=start;i<last;i++){var obj=this.objects[i];if(obj.visible&&obj.isValid()){obj.render(this.canvas,this.conv,mapRect,pixRect,this.clippedObjects,this.animation.objects);}}};this._calcCanvasMapRect=function(){var kamap=this.kamap;var width=kamap.tileWidth*kamap.nWide;var height=kamap.tileHeight*kamap.nHigh;var pixRect=new Netmap.Rect(kamap.nCurrentLeft,kamap.nCurrentTop,kamap.nCurrentLeft+width,kamap.nCurrentTop+height);var lt=kamap.pixToGeo(-pixRect.left,-pixRect.top);var rb=kamap.pixToGeo(-pixRect.right,-pixRect.bottom);var mapRect=new Netmap.Rect(lt[0],lt[1],rb[0],rb[1]);return mapRect;};this.progressiveTimer=function(){var prog=this.progressive;if(this.objects.length==prog.total){var total=prog.total;var start=prog.done;var c=50;if(total<start+c)c=total-start;this._rebuildObjects(start,c);prog.done=start+c;if(prog.done<total){var self=this;this.progressive.timer=setTimeout(function(){self.progressiveTimer.apply(self);},0);}}};this.kamap.registerForEvent(kaMap.MAP_INITIALIZED,this,this.onMapInitialized);this.kamap.registerForEvent(kaMap.SCALE_CHANGED,this,this.scaleChanged);this.kamap.registerForEvent(kaMap.EXTENTS_CHANGED,this,this.extentChanged);this.kamap.registerForEvent(kaMap.CLICKED,this,this.onMouseClicked);};Netmap.FigureObject=function(){this.id=null;this.name="";this.param=null;this.type="(null)";this.width=1;this.color='#000000';this.fillColor=null;this.opacity=1.0;this.visible=true;this.figureLayer=null;this.onmouseclick=null;this.onmouseclick_obj=null;this.onmouseover=null;this.onmouseover_obj=null;this.setMouseClickHandler=function(func,obj){this.onmouseclick=func;this.onmouseclick_obj=obj;};this.setMouseOverHandler=function(func,obj){this.onmouseover=func;this.onmouseover_obj=obj;};this.hitTest=function(x,y,conv,clipPixRect){return false;};this.render=function(canvas,conv,clipMapRect,clipPixRect,clippedObjects){};this.fromXML=function(dom){return false;};this.update=function(){if(this.figureLayer)this.figureLayer._rebuildLayer(true);};this.g2pPoints=function(points,conv){var p=[];for(var i=0;i<points.length;i++)p.push(conv.g2p(points[i][0],points[i][1]));return p;};this.calcPointsOuterRect=function(points){var rect=new Netmap.Rect();for(var i=0;i<points.length;i++){var x=points[i][0];var y=points[i][1];if(i==0){rect.left=rect.right=x;rect.top=rect.bottom=y;}else{rect.left=Math.min(rect.left,x);rect.top=Math.min(rect.top,y);rect.right=Math.max(rect.right,x);rect.bottom=Math.max(rect.bottom,y);}}rect.regularize();return rect;};this.clipping=function(polygonSrc,clipRect,isPolygon){clipRect.regularize();var src=[];for(var i=0;i<polygonSrc.length;i++)src.push(new Netmap.Point(polygonSrc[i][0],polygonSrc[i][1]));var paa=Netmap.Geometry.Clipping(src,clipRect,isPolygon);for(var i=0;i<paa.length;i++){for(var j=0;j<paa[i].length;j++)paa[i][j]=[paa[i][j].x,paa[i][j].y];}return paa;};this.fromXMLBase=function(dom){this.id=this.parseString(dom.getAttribute("id"));this.name=this.parseString(dom.getAttribute("name"));this.param=this.parseString(dom.getAttribute("param"));this.onmouseclick=this.parseString(dom.getAttribute("onmouseclick"));this.onmouseover=this.parseString(dom.getAttribute("onmouseover"));if(this.name==null)this.name="";};this.parseInt=function(value){return value==null?null:parseInt(value);};this.parseFloat=function(value){return value==null?null:parseFloat(value);};this.parseString=function(value){return value==null?null:value;};this.parseUrl=function(value){return this.parseString(value);};this.parseColor=function(value){return value==null?null:value;};this.parsePoints=function(value){if(value==null)return[];value.replace(" ","");var s=value.split(",");var points=[];for(var i=0;i<s.length/2;i++){var x=this.parseFloat(s[i*2+0]);var y=this.parseFloat(s[i*2+1]);if(x==null||y==null)return null;points.push([x,y]);}return points;};this.nvl=function(value,defvalue){return value==null?defvalue:value;};};Netmap.Polyline=function(points,width,color,opacity){this.isValid=function(){return this.points!=null;};this.hitTest=function(x,y,conv,clipPixRect){return false;};this.render=function(canvas,conv,clipMapRect,clipPixRect,clippedObjects){var paa=this.clipping(this.points,clipMapRect,false);for(var i=0;i<paa.length;i++){canvas.polyline(null,this.g2pPoints(paa[i],conv),this.width,this.color,this.opacity);}if(this.figureLayer&&this.figureLayer.dumpEnable){this.figureLayer.dumpText+='Polyline(clipMap)\n';for(var i=0;i<this.points.length;i++)this.figureLayer.dumpText+=this.points[i][j][0]+','+this.points[i][j][1]+',';this.figureLayer.dumpText+='\n';}};this.fromXML=function(dom){this.fromXMLBase(dom);this.width=this.parseFloat(dom.getAttribute("width"));this.color=this.parseColor(dom.getAttribute("color"));this.opacity=this.parseFloat(dom.getAttribute("opacity"));this.points=this.parsePoints(dom.getAttribute("points"));return this.isValid();};this.type="Polyline";this.width=width;this.color=color;this.opacity=opacity;this.points=points?points:[];};Netmap.Polyline.prototype=new Netmap.FigureObject();Netmap.Polyline.constructor=Netmap.FigureObject;Netmap.PixPolyline=function(x,y,points,width,color,opacity){this.isValid=function(){return this.x!=null&&this.y!=null&&this.points!=null;};this.hitTest=function(x,y,conv,clipPixRect){return false;};this.render=function(canvas,conv,clipMapRect,clipPixRect,clippedObjects){var offset=conv.g2p(this.x,this.y);var points=[];for(var i=0;i<this.points.length;i++){points.push([offset[0]+this.points[i][0],offset[1]+this.points[i][1]]);}var paa=this.clipping(points,clipPixRect,false);for(var i=0;i<paa.length;i++){canvas.polyline(null,paa[i],this.width,this.color,this.opacity);}if(this.figureLayer&&this.figureLayer.dumpEnable){this.figureLayer.dumpText+='PixPolyline(clipPix)\n';for(var i=0;i<points.length;i++)this.figureLayer.dumpText+=points[i][0]+','+points[i][1]+'\n';}};this.fromXML=function(dom){this.fromXMLBase(dom);this.width=this.parseFloat(dom.getAttribute("width"));this.color=this.parseColor(dom.getAttribute("color"));this.opacity=this.parseFloat(dom.getAttribute("opacity"));this.x=this.parseFloat(dom.getAttribute("x"));this.y=this.parseFloat(dom.getAttribute("y"));this.points=this.parsePoints(dom.getAttribute("points"));return this.isValid();};this.type="PixPolyline";this.width=width;this.color=color;this.opacity=opacity;this.x=x;this.y=y;this.points=points?points:[];};Netmap.PixPolyline.prototype=new Netmap.FigureObject();Netmap.PixPolyline.constructor=Netmap.FigureObject;Netmap.Polygon=function(points,width,color,fillColor,opacity){this.isValid=function(){return this.points!=null;};this.hitTest=function(x,y,conv,clipPixRect){return false;};this.render=function(canvas,conv,clipMapRect,clipPixRect,clippedObjects){if(0){var paa=this.clipping(this.points,clipMapRect,true);for(var i=0;i<paa.length;i++){canvas.polygon(null,this.g2pPoints(paa[i],conv),this.width,this.color,this.fillColor,this.opacity);}}else if(0){var temp=this.g2pPoints(this.points,conv);var paa=this.clipping(temp,clipPixRect,true);for(var i=0;i<paa.length;i++){canvas.polygon(null,paa[i],this.width,this.color,this.fillColor,this.opacity);}}else{canvas.polygon(null,this.g2pPoints(this.points,conv),this.width,this.color,this.fillColor,this.opacity);}if(this.figureLayer&&this.figureLayer.dumpEnable){this.figureLayer.dumpText+='Polygon(clipMap)\n';for(var i=0;i<this.points.length;i++)this.figureLayer.dumpText+=this.points[i][0]+','+this.points[i][1]+'\n';}};this.fromXML=function(dom){this.fromXMLBase(dom);this.width=this.parseFloat(dom.getAttribute("width"));this.color=this.parseColor(dom.getAttribute("color"));this.fillColor=this.parseColor(dom.getAttribute("fillcolor"));this.opacity=this.parseFloat(dom.getAttribute("opacity"));this.points=this.parsePoints(dom.getAttribute("points"));return this.isValid();};this.type="Polygon";this.width=width;this.color=color;this.fillColor=fillColor;this.opacity=opacity;this.points=points?points:[];};Netmap.Polygon.prototype=new Netmap.FigureObject();Netmap.Polygon.constructor=Netmap.FigureObject;Netmap.PixPolygon=function(x,y,points,width,color,fillColor,opacity){this.isValid=function(){return this.x!=null&&this.y!=null&&this.points!=null;};this.hitTest=function(x,y,conv,clipPixRect){return false;};this.render=function(canvas,conv,clipMapRect,clipPixRect,clippedObjects){var offset=conv.g2p(this.x,this.y);var points=[];for(var i=0;i<this.points.length;i++){points.push([offset[0]+this.points[i][0],offset[1]+this.points[i][1]]);}if(3<=points.length){if(points[0][0]!=points[points.length-1][0]||points[0][1]!=points[points.length-1][1]){points.push(points[0]);}if(0){var paa=this.clipping(points,clipPixRect,true);for(var i=0;i<paa.length;i++){canvas.polygon(null,paa[i],this.width,this.color,this.fillColor,this.opacity);}}else{canvas.polygon(null,points,this.width,this.color,this.fillColor,this.opacity);}if(this.figureLayer&&this.figureLayer.dumpEnable){this.figureLayer.dumpText+='PixPolygon(clipPix)\n';for(var i=0;i<points.length;i++)this.figureLayer.dumpText+=points[i][0]+','+points[i][1]+'\n';}}};this.fromXML=function(dom){this.fromXMLBase(dom);this.width=this.parseFloat(dom.getAttribute("width"));this.color=this.parseColor(dom.getAttribute("color"));this.fillColor=this.parseColor(dom.getAttribute("fillcolor"));this.opacity=this.parseFloat(dom.getAttribute("opacity"));this.x=this.parseFloat(dom.getAttribute("x"));this.y=this.parseFloat(dom.getAttribute("y"));this.points=this.parsePoints(dom.getAttribute("points"));return this.isValid();};this.type="PixPolygon";this.width=width;this.color=color;this.fillColor=fillColor;this.opacity=opacity;this.x=x;this.y=y;this.points=points?points:[];};Netmap.PixPolygon.prototype=new Netmap.FigureObject();Netmap.PixPolygon.constructor=Netmap.FigureObject;Netmap.Ellipse=function(x,y,r,width,color,fillColor,opacity){this.isValid=function(){return this.x!=null&&this.y!=null&&this.r!=null;};this.hitTest=function(x,y,conv,clipPixRect){if(this._pcCache==null)return false;x=x-this._pcCache.x;y=y-this._pcCache.y;return x*x+y*y<=this._pcCache.r*this._pcCache.r;};this.render=function(canvas,conv,clipMapRect,clipPixRect,clippedObjects){var pc=this._PixelCoord(conv);if(clipPixRect.intersect(new Netmap.Rect(pc.x-pc.r,pc.y-pc.r,pc.x+pc.r,pc.y+pc.r))){if(r<200){canvas.ellipse(null,pc.x,pc.y,pc.r,pc.r,this.width,this.color,this.fillColor,this.opacity);}else{var points=[];for(var i=0;i<360;i+=5){points.push([pc.x+Math.cos(Math.PI*2*i/360)*pc.r,pc.y+Math.sin(Math.PI*2*i/360)*pc.r]);}points.push(points[0]);var paa=this.clipping(points,clipPixRect,true);for(var i=0;i<paa.length;i++){for(var j=0;j<paa[i].length;j++){paa[i][j][0]=Math.round(paa[i][j][0]);paa[i][j][1]=Math.round(paa[i][j][1]);}canvas.polygon(null,paa[i],this.width,this.color,this.fillColor,this.opacity);}if(this.figureLayer&&this.figureLayer.dumpEnable){this.figureLayer.dumpText+='Ellipse(clipPix)\n';for(var i=0;i<points.length;i++)this.figureLayer.dumpText+=points[i][0]+','+points[i][1]+'\n';}}clippedObjects.push(this);this._pcCache=pc;}else{this._pcCache=null;}};this.fromXML=function(dom){this.fromXMLBase(dom);this.width=this.parseFloat(dom.getAttribute("width"));this.color=this.parseColor(dom.getAttribute("color"));this.fillColor=this.parseColor(dom.getAttribute("fillcolor"));this.opacity=this.parseFloat(dom.getAttribute("opacity"));this.x=this.parseFloat(dom.getAttribute("x"));this.y=this.parseFloat(dom.getAttribute("y"));this.r=this.parseFloat(dom.getAttribute("r"));return this.isValid();};this._PixelCoord=function(conv){var xy=conv.g2p(this.x,this.y);var x=xy[0];var y=xy[1];var r=Math.abs(conv.g2m(this.r,0)[0]);return{x:x,y:y,r:r};};this.type="Ellipse";this.width=width;this.color=color;this.fillColor=fillColor;this.opacity=opacity;this.x=x;this.y=y;this.r=r;this._pcCache=null;};Netmap.Ellipse.prototype=new Netmap.FigureObject();Netmap.Ellipse.constructor=Netmap.FigureObject;Netmap.PixEllipse=function(x,y,r,width,color,fillColor,opacity){this.isValid=function(){return this.x!=null&&this.y!=null&&this.r!=null;};this.hitTest=function(x,y,conv,clipPixRect){if(this._pcCache==null)return false;x=x-this._pcCache.x;y=y-this._pcCache.y;return x*x+y*y<=this._pcCache.r*this._pcCache.r;};this.render=function(canvas,conv,clipMapRect,clipPixRect,clippedObjects){var pc=this._PixelCoord(conv);if(clipPixRect.intersect(new Netmap.Rect(pc.x-pc.r,pc.y-pc.r,pc.x+pc.r,pc.y+pc.r))){canvas.ellipse(null,pc.x,pc.y,pc.r,pc.r,this.width,this.color,this.fillColor,this.opacity);clippedObjects.push(this);this._pcCache=pc;}else{this._pcCache=null;}};this.fromXML=function(dom){this.fromXMLBase(dom);this.width=this.parseFloat(dom.getAttribute("width"));this.color=this.parseColor(dom.getAttribute("color"));this.fillColor=this.parseColor(dom.getAttribute("fillcolor"));this.opacity=this.parseFloat(dom.getAttribute("opacity"));this.x=this.parseFloat(dom.getAttribute("x"));this.y=this.parseFloat(dom.getAttribute("y"));this.r=this.parseFloat(dom.getAttribute("r"));return this.isValid();};this._PixelCoord=function(conv){var xy=conv.g2p(this.x,this.y);var x=xy[0];var y=xy[1];var r=this.r;return{x:x,y:y,r:r};};this.type="PixEllipse";this.width=width;this.color=color;this.fillColor=fillColor;this.opacity=opacity;this.x=x;this.y=y;this.r=r;this._pcCache=null;};Netmap.PixEllipse.prototype=new Netmap.FigureObject();Netmap.PixEllipse.constructor=Netmap.FigureObject;Netmap.Text=function(x,y,ox,oy,text,color,fontfamily,fontsize,fontweight,opacity){this.isValid=function(){return this.x!=null&&this.y!=null&&this.text!=null;};this.hitTest=function(x,y,conv,clipPixRect){if(this._pcCache==null)return false;return this._pcCache.rect.ptIn(x,y);};this.render=function(canvas,conv,clipMapRect,clipPixRect,clippedObjects){var pc=this._PixelCoord(conv);if(clipPixRect.intersect(pc.rect)){canvas.text(null,pc.x+this.nvl(this.ox,0),pc.y+this.nvl(this.oy,0),this.text,this.color,this.fontfamily,this.fontsize,this.fontweight,this.opacity);clippedObjects.push(this);this._pcCache=pc;}else{this._pcCache=null;}};this.fromXML=function(dom){this.fromXMLBase(dom);this.color=this.parseColor(dom.getAttribute("color"));this.opacity=this.parseFloat(dom.getAttribute("opacity"));this.x=this.parseFloat(dom.getAttribute("x"));this.y=this.parseFloat(dom.getAttribute("y"));this.ox=this.parseFloat(dom.getAttribute("ox"));this.oy=this.parseFloat(dom.getAttribute("oy"));this.text=this.parseString(dom.getAttribute("text"));this.fontfamily=this.parseString(dom.getAttribute("fontfamily"));this.fontsize=this.parseFloat(dom.getAttribute("fontsize"));this.fontweight=this.parseFloat(dom.getAttribute("fontweight"));return this.isValid();};this._PixelCoord=function(conv){var xy=conv.g2p(this.x,this.y);var x=xy[0];var y=xy[1];var rect=new Netmap.Rect(x+this.nvl(this.ox),y+this.nvl(this.oy),x+this.nvl(this.ox)+this.text.length*this.fontsize,y+this.nvl(this.oy)+this.fontsize);return{x:x,y:y,rect:rect};};this.type="Text";this.color=color;this.opacity=opacity;this.x=x;this.y=y;this.ox=ox;this.oy=oy;this.text=text;this.fontfamily=fontfamily;this.fontsize=fontsize;this.fontweight=fontweight;this._pcCache=null;};Netmap.Text.prototype=new Netmap.FigureObject();Netmap.Text.constructor=Netmap.FigureObject;Netmap.Image=function(x,y,ox,oy,w,h,url,opacity){this.isValid=function(){return this.x!=null&&this.y!=null&&this.w!=null&&this.h!=null&&this.url!=null;};this.hitTest=function(x,y,conv,clipPixRect){if(this._pcCache==null)return false;return this._pcCache.rect.ptIn(x,y);};this.render=function(canvas,conv,clipMapRect,clipPixRect,clippedObjects){var pc=this._PixelCoord(conv);if(clipPixRect.intersect(pc.rect)){canvas.image(null,pc.x,pc.y,pc.w,pc.h,this.url,this.opacity);clippedObjects.push(this);this._pcCache=pc;}else{this._pcCache=null;}};this.fromXML=function(dom){this.fromXMLBase(dom);this.opacity=this.parseFloat(dom.getAttribute("opacity"));this.x=this.parseFloat(dom.getAttribute("x"));this.y=this.parseFloat(dom.getAttribute("y"));this.ox=this.parseFloat(dom.getAttribute("ox"));this.oy=this.parseFloat(dom.getAttribute("oy"));this.w=this.parseFloat(dom.getAttribute("w"));this.h=this.parseFloat(dom.getAttribute("h"));this.url=this.parseUrl(dom.getAttribute("url"));return this.isValid();};this._PixelCoord=function(conv){var xy=conv.g2p(this.x,this.y);var x=xy[0]+this.nvl(this.ox,0);var y=xy[1]+this.nvl(this.oy,0);var w=this.w;var h=this.h;return{x:x,y:y,w:w,h:h,rect:new Netmap.Rect(x,y,x+w,y+h)};};this.type="Image";this.opacity=opacity;this.x=x;this.y=y;this.ox=ox;this.oy=oy;this.w=w;this.h=h;this.url=url;this._pcCache=null;};Netmap.Image.prototype=new Netmap.FigureObject();Netmap.Image.constructor=Netmap.FigureObject;Netmap.AnimationIcon=function(x,y,no){this.jump=function(){if(!this._doJump&&!this._jumping){this._doJump=true;}};this.enableMouseOverJump=function(enable){this._enableMouseOverJump=enable;};this.isValid=function(){return this.x!=null&&this.y!=null&&this.width!=null&&this.height!=null;};this._super_setMouseOverHandler=this.setMouseOverHandler;this.setMouseOverHandler=function(func,obj){this._user_onmouseover=func;this._user_onmouseover_obj=obj;};this.hitTest=function(x,y,conv,clipPixRect){if(this._pcCache==null)return false;return this._pcCache.rect.ptIn(x,y);};this.render=function(canvas,conv,clipMapRect,clipPixRect,clippedObjects,animationObjects){var pc=this._PixelCoord(conv);if(clipPixRect.intersect(pc.rect)){if(this._shadowImageURL){this._shadow=this._createCanvasImage(canvas,null,pc.x,pc.y,pc.w,pc.h,this._shadowImageURL,this._shadowOpacity);}if(this._normalImageURL){this._icon=this._createCanvasImage(canvas,null,pc.x,pc.y,pc.w,pc.h,this._normalImageURL,this.opacity);}clippedObjects.push(this);animationObjects.push(this);this._pcCache=pc;}else{this._pcCache=null;this._shadow=null;this._icon=null;}};this.fromXML=function(dom){this.fromXMLBase(dom);this.x=this.parseFloat(dom.getAttribute("x"));this.y=this.parseFloat(dom.getAttribute("y"));var no=dom.getAttribute("no");if(no!=null){this._initImage(this.parseInt(no));}else{var src={};src.width=this.parseInt(dom.getAttribute("width"));src.height=this.parseInt(dom.getAttribute("height"));src.anchorX=this.parseInt(dom.getAttribute("anchorX"));src.anchorY=this.parseInt(dom.getAttribute("anchorY"));src.normalImageURL=this.parseString(dom.getAttribute("normalImageURL"));src.mouseOverImageURL=this.parseString(dom.getAttribute("mouseOverImageURL"));src.shadowImageURL=this.parseString(dom.getAttribute("shadowImageURL"));this._initImage(src);}return this.isValid();};this._super_update=this.update;this.update=function(){if(this._usingPreset){this._initImage(this.no);}else{var src={};src.width=this.width;src.height=this.height;src.anchorX=this.anchorX;src.anchorY=this.anchorY;src.normalImageURL=this.normalImageURL;src.mouseOverImageURL=this.mouseOverImageURL;src.shadowImageURL=this.shadowImageURL;this._initImage(src);}this._super_update();};this._PixelCoord=function(conv){var xy=conv.g2p(this.x,this.y);var x=xy[0];var y=xy[1];var w=this.width;var h=this.height;x-=this.anchorX;y-=this.anchorY;return{x:x,y:y,w:w,h:h,rect:new Netmap.Rect(x,y,x+w,y+h)};};this.onAnimationTimer=function(time){if(this._doJump){this._doJump=false;this._jumping=true;this._jumpingStartTime=time;}if(this._jumping){var jumpTime=400;var prog=time-this._jumpingStartTime;prog=Math.min(jumpTime,prog);if(prog==jumpTime){this._jumping=false;if(this._enableMouseOverJump&&this._isMouseOver){this._doJump=true;}}if(this._icon&&this._pcCache){var jumpHeight=30;var y=0;var jumpHalfTime=jumpTime/2;if(prog<jumpHalfTime){y=jumpHeight*prog/jumpHalfTime;}else{prog=jumpHalfTime-(prog-jumpHalfTime);y=jumpHeight*prog/jumpHalfTime;}this._icon.setY(this._pcCache.y-y);if(this._shadow){var opacity=this._shadowOpacity;opacity*=(jumpHalfTime-prog)/jumpHalfTime;this._shadow.setOpacity(opacity);}}}};this._onMouseOver=function(obj,bEnter){this._isMouseOver=bEnter;if(this._icon&&this._mouseOverImageURL){this._icon.setSrc(bEnter?this._mouseOverImageURL:this._normalImageURL);}if(this._isMouseOver&&this._enableMouseOverJump){this.jump();}if(this._user_onmouseover){Netmap.processEventHandler(this._user_onmouseover,this._user_onmouseover_obj,[obj,bEnter]);}};this._imagePath=function(file){var imagepath='/api-new/images/animationicon/';return file?imagepath+file:null;};this._createCanvasImage=function(canvas,id,x,y,w,h,url,opacity){if(0){return canvas.image(null,x,y,w,h,url,opacity);}else{var img=canvas.div(null,x,y,w,h,opacity);img.child=document.createElement('img');img.child.src=url;img._div.appendChild(img.child);img.setSrc=function(src){this.child.src=src;};img.setOpacity=function(o){Netmap.Canvas.setOpacity(this.child,o);};return img;}};this._initImage=function(no){var images=Netmap.AnimationIcon.images;var src={};if(no!=null&&typeof(no)=='object'){src.width=parseInt(no.width);src.height=parseInt(no.height);src.anchorX=parseInt(no.anchorX);src.anchorY=parseInt(no.anchorY);src.normalImageURL=no.normalImageURL;src.mouseOverImageURL=no.mouseOverImageURL;src.shadowImageURL=no.shadowImageURL;this._usingPreset=false;}else if(0<=no&&no<images.length){var p=images[no];src.width=p.width;src.height=p.height;src.anchorX=p.anchorX;src.anchorY=p.anchorY;src.normalImageURL=this._imagePath(p.normalImageURL);src.mouseOverImageURL=this._imagePath(p.mouseOverImageURL);src.shadowImageURL=this._imagePath(p.shadowImageURL);this._usingPreset=true;}this.width=src.width;this.height=src.height;this.anchorX=src.anchorX;this.anchorY=src.anchorY;this.normalImageURL=src.normalImageURL;this.mouseOverImageURL=src.mouseOverImageURL;this.shadowImageURL=src.shadowImageURL;this._normalImageURL=this.normalImageURL;this._mouseOverImageURL=this.mouseOverImageURL;this._shadowImageURL=this.shadowImageURL;this._shadowOpacity=0.8;this._pcCache=null;this._icon=null;this._shadow=null;this._toCache(this._normalImageURL);this._toCache(this._mouseOverImageURL);this._toCache(this._shadowImageURL);};this._toCache=function(url){if(url==null)return;var ic=Netmap.AnimationIcon.image_cache;if(ic[url]==null){var img=new Image;img.src=url;ic[url]=img;}};this._super_setMouseOverHandler(this._onMouseOver,this);this.type="AnimationIcon";this.opacity=null;this.x=x;this.y=y;this.no=no;this._usingPreset=false;this._doJump=false;this._jumping=false;this._jumpingStartTime=false;this._isMouseOver=false;this._enableMouseOverJump=false;this._user_onmouseover=null;this._user_onmouseover_obj=null;this._initImage(no);};Netmap.AnimationIcon.prototype=new Netmap.FigureObject();Netmap.AnimationIcon.constructor=Netmap.FigureObject;Netmap.AnimationIcon.image_cache={};Netmap.AnimationIcon.images=[{width:39,height:49,anchorX:20,anchorY:49,normalImageURL:'animationicon01.gif',mouseOverImageURL:'animationicon01.mouseover.gif',shadowImageURL:'animationicon01.shadow.gif'},{width:43,height:42,anchorX:1,anchorY:11,normalImageURL:'animationicon02.gif',mouseOverImageURL:'animationicon02.mouseover.gif',shadowImageURL:null},{width:41,height:44,anchorX:34,anchorY:25,normalImageURL:'animationicon03.gif',mouseOverImageURL:'animationicon03.mouseover.gif',shadowImageURL:null},{width:100,height:85,anchorX:6,anchorY:61,normalImageURL:'animationicon04.gif',mouseOverImageURL:'animationicon04.mouseover.gif',shadowImageURL:null}];Netmap.FigureLayer.xmlRequestID=0;Netmap.FigureLayer.prototype.loadXml=function(xml_url){this.xmlOvrUrl=this.urlNormalize(xml_url);this.xmlOvrUrl+=this.xmlOvrUrl.indexOf('?',0)==-1?'?':'&';this.xmlOvrUrl+=Netmap.FigureLayer.getXmlRequestID();call(this.xmlOvrUrl,this,this.loadXmlCallback);};Netmap.FigureLayer.prototype.loadJSON=function(url){url=this.urlNormalize(url);url+=url.indexOf('?',0)==-1?'?':'&';url+=Netmap.FigureLayer.getXmlRequestID();calljs(url,this,this.loadJSONCallback);};Netmap.FigureLayer.prototype.loadXmlCallback=function(xml_string){var xmlDocument=(new DOMParser()).parseFromString(xml_string,"text/xml");this.loadXmlDoc(xmlDocument);};Netmap.FigureLayer.prototype.loadJSONCallback=function(json){var xmlDocument=(new DOMParser()).parseFromString(json.xml,"text/xml");this.loadXmlDoc(xmlDocument);};Netmap.FigureLayer.prototype.loadXmlDoc=function(xmlDocument){var objDomTree=xmlDocument.documentElement;var noRemove=objDomTree.getAttribute('noremove');noRemove=parseInt(noRemove==null?0:noRemove);var doms=objDomTree.getElementsByTagName('Info');if(0<doms.length){var id=doms[0].getAttribute('requestID');if(Netmap.FigureLayer.xmlRequestID!=id){return;}}this.setAutoRebuild(false);if(!noRemove){this.removeAll();}var names=[{name:"Polyline",create:function(){return new Netmap.Polyline;}},{name:"PixPolyline",create:function(){return new Netmap.PixPolyline;}},{name:"Polygon",create:function(){return new Netmap.Polygon;}},{name:"PixPolygon",create:function(){return new Netmap.PixPolygon;}},{name:"Ellipse",create:function(){return new Netmap.Ellipse;}},{name:"PixEllipse",create:function(){return new Netmap.PixEllipse;}},{name:"Text",create:function(){return new Netmap.Text;}},{name:"Image",create:function(){return new Netmap.Image;}},{name:"AnimationIcon",create:function(){return new Netmap.AnimationIcon;}}];for(var n=0;n<names.length;n++){var doms=objDomTree.getElementsByTagName(names[n].name);for(var i=0;i<doms.length;i++){var f=names[n].create();if(f.fromXML(doms[i])){this.addOrReplace(f);}}}this.setAutoRebuild(true);this.kamap.triggerEvent(kaMap.FIGURE_XML_DOWNLOADED);};Netmap.FigureLayer.prototype.urlNormalize=function(url){if(url==null)return "";return url;};Netmap.FigureLayer.getXmlRequestID=function(){++Netmap.FigureLayer.xmlRequestID;return "netmapFigureRequestID="+Netmap.FigureLayer.xmlRequestID;};if(typeof DOMParser=="undefined"){DOMParser=function(){};DOMParser.prototype.parseFromString=function(str,contentType){if(typeof ActiveXObject!="undefined"){var d=new ActiveXObject("MSXML.DomDocument");d.loadXML(str);return d;}else if(typeof XMLHttpRequest!="undefined"){var req=new XMLHttpRequest;req.open("GET","data:"+(contentType||"application/xml")+";charset=utf-8,"+encodeURIComponent(str),false);if(req.overrideMimeType){req.overrideMimeType(contentType);}req.send(null);return req.responseXML;}};}Netmap.Geometry={};Netmap.Geometry.IsPointOnLine=function(p,a,b){return(p.y-a.y)*(b.x-a.x)-(b.y-a.y)*(p.x-a.x)==0.0;};Netmap.Geometry.IsPointOnSegment=function(p,a,b){return((a.x<=b.x&&a.x<=p.x&&p.x<=b.x)||(a.x>b.x&&b.x<=p.x&&p.x<=a.x))&&((a.y<=b.y&&a.y<=p.y&&p.y<=b.y)||(a.y>b.y&&b.y<=p.y&&p.y<=a.y))&&(p.y-a.y)*(b.x-a.x)-(b.y-a.y)*(p.x-a.x)==0.0;};Netmap.Geometry.IsPointOnRay=function(p,a,b){return((a.x<=b.x&&a.x<=p.x)||(a.x>b.x&&p.x<=a.x))&&((a.y<=b.y&&a.y<=p.y)||(a.y>b.y&&p.y<=a.y))&&(p.y-a.y)*(b.x-a.x)-(b.y-a.y)*(p.x-a.x)==0.0;};Netmap.Geometry.CalcIntersectionPoint=function(a,b,c,d,ray){var nr=(d.y-c.y)*(c.x-a.x)-(d.x-c.x)*(c.y-a.y);var ns=(b.y-a.y)*(c.x-a.x)-(b.x-a.x)*(c.y-a.y);var dm=(b.x-a.x)*(d.y-c.y)-(b.y-a.y)*(d.x-c.x);if(dm==0.0){return null;}var r=nr/dm;var s=ns/dm;var is=new Netmap.Point();is.x=a.x+r*(b.x-a.x);is.y=a.y+r*(b.y-a.y);if(r<0.0||(ray?false:1.0<r)||s<0.0||1.0<s){return null;}var result={};result.r=r;result.s=s;result.is=is;return result;};Netmap.Geometry.TestPtInPolygon=function(pt,polygon){var crossing=0;var ray=new Netmap.Point(pt.x+100,pt.y);for(var i=0;i<polygon.length;i++){var pt0=polygon[i];var pt1=polygon[(i+1)%polygon.length];if(Netmap.Geometry.IsPointOnSegment(pt,pt0,pt1)){return true;}if(Netmap.Geometry.CalcIntersectionPoint(pt,ray,pt0,pt1,true)!=null){crossing++;}}return crossing&1;};Netmap.Geometry.CrossInfo=function(side,index,p,first){this.side=side;this.index=index;this.p=new Netmap.Point(p.x,p.y);this.first=first;this.used=false;};Netmap.Geometry.foDistance_p=null;Netmap.Geometry.foDistance=function(ci0,ci1){var foDistance_p=Netmap.Geometry.foDistance_p;var i=foDistance_p.length(ci0.p)-foDistance_p.length(ci1.p);return i<0?-1:i>0?+1:0;};Netmap.Geometry.CombinePolylinesToPolygon=function(orgPolygon,paa,clipRectPoint){var CrossInfo=Netmap.Geometry.CrossInfo;var aci=[];for(var s=0;s<4;s++){var tmp=[];tmp.push(new CrossInfo(s,-1,clipRectPoint[s]));for(var i=0;i<paa.length;i++){var pa=paa[i];for(var j=0;j<2;j++){var p=j==0?pa[0]:pa[pa.length-1];if(p.cross==s){tmp.push(new CrossInfo(s,i,p,j==0));}}}Netmap.Geometry.foDistance_p=clipRectPoint[s];tmp.sort(Netmap.Geometry.foDistance);for(var i=0;i<tmp.length;i++)aci.push(tmp[i]);}if(aci.length==4)return paa;var newPolygons=[];var newPolygon=[];var top=-1;var start=-1;for(var i=0;i<aci.length;i++){if(start==-1){for(var i=0;i<aci.length;i++){if(!aci[i].used&&aci[i].index!=-1&&aci[i].first){top=start=i;break;}}}if(start==-1)break;var from=start;var ciFrom=aci[from];var to=0;for(;to<aci.length;to++){if(from!=to&&ciFrom.index==aci[to].index)break;}if(to==aci.length){return[];}var ciTo=aci[to];var add=paa[ciFrom.index];if(!ciFrom.first){for(var t=0;t<add.length;t++)newPolygon.push(add[add.length-1-t]);}else{for(var t=0;t<add.length;t++)newPolygon.push(add[t]);}ciFrom.used=true;ciTo.used=true;if(2<=newPolygon.length&&newPolygon[0].equals(newPolygon[newPolygon.length-1])){newPolygons.push(newPolygon);newPolygon=[];start=-1;continue;}var left=(aci.length+to+1)%aci.length;var right=(aci.length+to-1)%aci.length;var ciLeft=aci[left];var ciRight=aci[right];var dir=Netmap.Geometry.TestPtInPolygon(ciLeft.p.center(ciTo.p),orgPolygon)?+1:-1;var current=to;for(var t=0;t<aci.length;t++){current=(aci.length+current+dir)%aci.length;var ciCurrent=aci[current];if(ciCurrent.index!=-1){if(top==current){newPolygon.push(newPolygon[0]);newPolygons.push(newPolygon);newPolygon=[];start=-1;break;}else{start=current;}break;}else{newPolygon.push(ciCurrent.p);}}}if(newPolygon.length)newPolygons.push(newPolygon);return newPolygons;};Netmap.Geometry.Clipping=function(paSrc,clipRect,isPolygon){var paa=[];var paTemp=[];var clipRectPoint=[new Netmap.Point(clipRect.left,clipRect.top),new Netmap.Point(clipRect.left,clipRect.bottom),new Netmap.Point(clipRect.right,clipRect.bottom),new Netmap.Point(clipRect.right,clipRect.top)];if(isPolygon){var count=0;for(var i=0;count!=-1&&i<4;i++){for(var j=0;j<paSrc.length;j++){var s0=clipRectPoint[i];var s1=clipRectPoint[(i+1)%4];if(null!=Netmap.Geometry.CalcIntersectionPoint(s0,s1,paSrc[j],paSrc[(j+1)%paSrc.length])){count=-1;break;}}if(count!=-1){if(Netmap.Geometry.TestPtInPolygon(clipRectPoint[i],paSrc))count++;}}if(count==4){for(var i=0;i<5;i++)paTemp.push(clipRectPoint[i%4]);paa.push(paTemp);return paa;}}for(var i=1;i<paSrc.length;i++){var pt0=paSrc[i-1];var pt1=paSrc[i];var is0=new Netmap.Point();var is1=new Netmap.Point();var noInteresting=false;var commited=false;for(var j=0;j<4;j++){var s0=clipRectPoint[j];var s1=clipRectPoint[(j+1)%4];if(Netmap.Geometry.IsPointOnLine(pt0,s0,s1)&&Netmap.Geometry.IsPointOnLine(pt1,s0,s1)){var v=j%2==0;var a=v?s0.y:s0.x;var b=v?s1.y:s1.x;var c=v?pt0.y:pt0.x;var d=v?pt1.y:pt1.x;if(b<a){var t=a;a=b;b=t;}if(d<c){var t=c;c=d;d=t;}if((c<a&&d<a)||(b<c&&b<d)){noInteresting=true;}else{var left=Math.max(a,c);var right=Math.min(b,d);is0=new Netmap.Point(v?s0.x:left,v?left:s0.y);is1=new Netmap.Point(v?s0.x:right,v?right:s0.y);is0.cross=j;is1.cross=j;commited=true;}break;}}if(noInteresting){break;}if(!commited){for(var j=0;j<4;j++){var s0=clipRectPoint[j];var s1=clipRectPoint[(j+1)%4];var cip=Netmap.Geometry.CalcIntersectionPoint(pt0,pt1,s0,s1);if(cip&&cip.s!=1.0){cip.is.cross=j;if(is0.cross==-1)is0=cip.is;else if(is1.cross==-1)is1=cip.is;}}if(is0.cross==-1&&is1.cross==-1){if(clipRect.ptIn(pt0.x,pt0.y)&&clipRect.ptIn(pt1.x,pt1.y)){is0=pt0;is1=pt1;}else{noInteresting=true;}}else{if(is0.cross!=-1&&is1.cross!=-1){}else{var in0=clipRect.ptIn(pt0.x,pt0.y);var in1=clipRect.ptIn(pt1.x,pt1.y);if(in0&&in1){var is=is0.clone();is0=pt0.clone();is1=pt1.clone();if(pt0.equals(is)){is0.cross=is.cross;}else{is1.cross=is.cross;}}else if(!in0){is0=is0;is1=pt1;}else if(!in1){is1=is0;is0=pt0;}}}}if(!noInteresting){if(pt0.length(is1)<pt0.length(is0)){var t=is0;is0=is1;is1=t;}if(paTemp.length==0)paTemp.push(is0);paTemp.push(is1);if(!clipRect.ptIn(pt1.x,pt1.y)){paa.push(paTemp);paTemp=[];}}}if(paTemp.length)paa.push(paTemp);if(isPolygon&&2<=paa.length){var pa0=paa[0];var pa1=paa[paa.length-1];if(pa0.length&&pa1.length&&pa0[0].equals(pa1[pa1.length-1])){pa1[pa1.length-1]=pa0[0];for(var i=1;i<pa0.length;i++)pa1.push(pa0[i]);paa[0]=paa[paa.length-1];paa.pop();}}if(isPolygon){return Netmap.Geometry.CombinePolylinesToPolygon(paSrc,paa,clipRectPoint);}return paa;};Netmap.Graph=function(netmap){this.netmap=netmap;this._pendingRequests=[];this.updateGraphLayers=function(){};this.getLayers=function(){var layers=[];for(var i=0;i<this.netmap.layers.length;i++){if(this.netmap.layers[i].isGraphLayer()){layers.push(this.netmap.layers[i]);}}return layers;};this.getPaintType=function(layer){if((layer=this._getLayer(layer)))return layer.kalayer.graph.paintType;else return null;};this.addLayer=function(graph_no,id,name,visibility,opacity,paint_type,params){var info={graph_no:graph_no,id:id,name:name,visibility:visibility,opacity:opacity,paint_type:paint_type,params:params};return this.addLayers([info])[0];};this.addLayers=function(layerInfos){var netmap=this.netmap;var kamap=netmap.myKaMap;if(layerInfos==null)return[];var result=new Array(layerInfos.length);var layers=this.getLayers();var newLayerInfos=[];for(var i=0;i<layerInfos.length;i++){var info=layerInfos[i];if(info==null)continue;info.visibility=info.visibility==null?true:info.visibility;info.opacity=info.opacity==null?50:Math.max(0,Math.min(info.opacity,100));if(info.graph_no==null||info.id==null||info.id.length==0||info.name==null||info.name.length==0||info.paint_type==null||!(1<=info.paint_type&&info.paint_type<=3))return this._error_addLayers(result,"パラメータ不正");for(var j=0;j<layerInfos.length;j++){if(i!=j&&layerInfos[i].id==layerInfos[j].id)return this._error_addLayers(result,"パラメータ不正(レイヤー名重複)");}for(var j=0;j<layers.length;j++){if(layerInfos[i].id==layers[j].getID())return this._error_addLayers(result,"パラメータ不正(レイヤー名重複)");}newLayerInfos.push(layerInfos[i]);}layerInfos=newLayerInfos;for(var i=0;i<layerInfos.length;i++){var info=layerInfos[i];var klayer=new _layer(info.id,false,info.opacity,'png',false,netmap.graph.group_scale_visible,info.name,'dgraph',info.paint_type,0,0,this._paramsToString(info.params),info.graph_no);klayer.graph.pending_visible=info.visibility;var nlayer=new Netmap.Layer(null,klayer);netmap.layers.push(nlayer);result[i]=nlayer;}if(!netmap.isAvailable()){var pending={type:"addLayers",params:layerInfos};this._pendingRequests.push(pending);return result;}this.exec_graph_cgi("addlayers",this.encode_json(layerInfos));return result;};this.setData=function(layer,data){if((layer=this._getLayer(layer))==null)return false;if(typeof(data)=='string')data=this._setData_convertData(data);if(data==null)return false;var new_data=[];for(var i=0;i<data.length;i++){var r=data[i];if(r!=null&&(r.c==null||r.v==null))return false;if(r)new_data.push(r);}data=new_data;layer.kalayer.graph.pending_visible=layer._isConstructingDynamicGraphLayer()?layer.kalayer.graph.pending_visible:layer.kalayer.visible;layer.kalayer.graph.status=null;layer.kalayer.visible=false;var params={graph_no:layer.kalayer.graph.graph_no,id:layer.getID(),seq:0,last:0,data:data,errors:[]};if(layer.kamap==null){var pending={type:"setData",params:params};this._pendingRequests.push(pending);}else{this._progressive_sendData(params,this._pendingRequests);}return true;};this._setData_convertData=function(data){if(data==null)return null;var list=[];var items=data.split(";");for(var i=0;i<items.length;i++){var item=items[i];var kv=item.split(":");if(kv.length!=2){return null;}list.push({c:kv[0],v:kv[1]});}return list;};this.getParams=function(layer,type){if((layer=this._getLayer(layer))!=null){if(type=='text'){var params=layer.kalayer.graph.params;return params!=null?params:"";}else{return layer.kalayer.getGraphParams();}}else{if(type=='text'){return "";}else{return[];}}};this.setParams=function(layer,params){params=this._paramsToString(params);if((layer=this._getLayer(layer))!=null){if(layer.getType()==Netmap.LAYER_SYSTEM_GRAPH&&layer.getGraphNo()!=null&&0<=layer.getGraphNo()){return;}layer.kalayer.graph.params=params;this.update(layer);}};this.resetParams=function(layer){if((layer=this._getLayer(layer))!=null){if(layer.getType()==Netmap.LAYER_SYSTEM_GRAPH&&layer.getGraphNo()!=null&&0<=layer.getGraphNo()){return;}layer.kalayer.graph.params=layer.kalayer.graph.org_params;this.update(layer);}};this.update=function(layer){if((layer=this._getLayer(layer))!=null){if(layer.getVisibility())layer.setVisibility(true);}};this._getLayer=function(layer){if(typeof(layer)=="string"){return this._findLayer(layer);}else{return layer;}};this._findLayer=function(id){var layers=this.getLayers();for(var i=0;i<layers.length;i++){if(layers[i].getID&&layers[i].getID()==id)return layers[i];}return null;};this._error_addLayers=function(retobj,mesg){return retobj;};this._progressive_sendData=function(params,pendings){var div_params=this._divide_sendData(params);if(0<div_params.now.data.length){this.exec_graph_cgi("setdata",this.encode_json(div_params.now));}var pending={type:"setData",params:div_params.next};pendings.push(pending);return div_params.next.length!=0;};this._divide_sendData=function(params){if(params==null)return null;var data=params.data;var send_data=[];var text="[]";for(var i=0;i<data.length;i++){var e=escape(this.encode_json(data[i]));if(1500<text.length+e.length){var temp=[];for(var j=i;j<data.length;j++){temp.push(data[j]);}data=temp;break;}else{text+=(i==0?"":",")+e;send_data.push(data[i]);if(i==data.length-1){data=[];break;}}}var bLast=data.length==0;var now={graph_no:params.graph_no,id:params.id,seq:params.seq,last:bLast?1:0,data:send_data};var next={graph_no:params.graph_no,id:params.id,seq:params.seq+1,last:bLast?1:0,data:data,errors:params.errors};return{now:now,next:next};};this._paramsToString=function(params){if(params==null)return null;if(typeof(params)=='string')return params;var txt="";if(params.length){for(var i=0;i<params.length;i++){var param=params[i];if(param.p!=null&&param.v!=null){txt+=(i==0?"":";")+param.p+":"+param.v;}}}return txt;};this.encode_json=function(obj){var DQ='"';if(obj==null)return "{}";if(typeof(obj)=="number"){return ""+obj;}else if(typeof(obj)=="string"){return DQ+obj+DQ;}else if(this._isArray(obj)){return this.encode_json_array(obj);}else{var second=false;var text="{";for(var key in obj){var value=obj[key];text+=(second?",":"")+DQ+key+DQ+":"+(this._isArray(value)?this.encode_json_array(value):this.encode_json(value));second=true;}text+="}";return text;}};this.encode_json_array=function(a){var s="[";for(var i=0;i<a.length;i++){s+=(i!=0?",":"")+this.encode_json(a[i]);}s+="]";return s;};this._isArray=function(a){return a&&typeof(a)!='string'&&a.constructor===Array;};this._find=function(a,e){if(a==null||a.length==null)return-1;for(var i=0;i<a.length;i++){if(a[i]==e)return i;}return-1;};this.exec_graph_cgi=function(command,params){var kamap=this.netmap.myKaMap;var url=kaMap.cgi_base+kaMap.graph_cgi;url+=url.indexOf('?',0)==-1?'?':'&';url+="c="+escape(command);url+="&gsession="+kamap.graph.sessionid;url+="&params="+escape(params);this.async_calljs(url,this,this.exec_graph_cgi_callback);};this.exec_graph_cgi_callback=function(json){if(json.c){if(json.c=="addlayers")this.exec_graph_cgi_addlayers_callback(json.result);else if(json.c=="setdata")this.exec_graph_cgi_setdata_callback(json.result);}};this.exec_graph_cgi_addlayers_callback=function(result){var netmap=this.netmap;var kamap=netmap.myKaMap;var ids=result.ids;var layers=[];var faileds=[];for(var i=0;i<ids.length;i++){for(var j=0;j<netmap.layers.length;j++){if(ids[i]==netmap.layers[j].kalayer.name){var failed=false;for(var l=0;!failed&&result.errors&&l<result.errors.length;l++){failed=result.errors[l].id==ids[i];}layers.push(this.netmap.layers[j]);faileds.push(failed);}}}for(var i=0;i<layers.length;i++){if(!faileds[i]){var layer=layers[i];var map=kamap.getCurrentMap();map.addLayer(layer.kalayer);layer.kamap=kamap;}}if(layers.length){kamap.setMapLayers();for(var i=0;i<layers.length;i++){if(!faileds[i]&&layers[i].kalayer.visible)kamap.paintLayer(layers[i].kalayer);}for(var i=0;i<layers.length;i++){var id=layers[i].getID();var errors=[];for(var j=0;result.errors&&j<result.errors.length;j++){if(result.errors[j].id==id){errors.push(result.errors[j]);}}var obj={id:id};if(errors.length){obj.errors=errors;obj.message='';for(var i=0;i<obj.errors.length;i++){obj.message+=(i==0?"":"\n")+obj.errors[i].error;}}kamap.triggerEvent(kaMap.LAYER_ADDED,obj);}}var pendingRequests=[];for(var i=0;i<this._pendingRequests.length;i++){var pending=this._pendingRequests[i];if(pending.type=="setData"&&this._find(ids,pending.params.id)!=-1){this._progressive_sendData(pending.params,pendingRequests);}else{pendingRequests.push(pending);}}this._pendingRequests=pendingRequests;};this.exec_graph_cgi_setdata_callback=function(result){var kamap=this.netmap.myKaMap;var id=result.id;var seq=result.seq;var last=result.last;var pendingRequests=[];for(var i=0;i<this._pendingRequests.length;i++){var pending=this._pendingRequests[i];if(pending.type=="setData"&&pending.params.id==id){if(result.errors)pending.params.errors=pending.params.errors.concat(result.errors);this._progressive_sendData(pending.params,pendingRequests);}else{pendingRequests.push(pending);}}this._pendingRequests=pendingRequests;if(last){var errors=[];for(var i=0;i<this._pendingRequests.length;i++){var pending=this._pendingRequests[i];if(pending.type=="setData"&&pending.params.id==id){errors=pending.params.errors;this._pendingRequests.splice(i,1);break;}}var layer=this._findLayer(id);if(layer){layer.kalayer.graph.status=1;layer.kalayer.visible=layer.kalayer.graph.pending_visible;layer.kalayer.graph.seqNo++;this.netmap.graph.update(layer);}var obj={id:id};if(errors.length){obj.errors=errors;obj.message='';for(var i=0;i<obj.errors.length;i++){obj.message+=(i==0?"":"\n")+obj.errors[i].error;}}kamap.triggerEvent(kaMap.GRAPH_DATA_UPDATED,obj);}};this._onMapInitialized=function(){var pendingRequests=[];for(var i=0;i<this._pendingRequests.length;i++){var pending=this._pendingRequests[i];if(pending.type=="addLayers"){this.exec_graph_cgi("addlayers",this.encode_json(pending.params));}else{pendingRequests.push(pending);}}this._pendingRequests=pendingRequests;};this.async_calljs=function(url,obj,callback){var params=[url,obj,callback];setTimeout(function(){calljs(params[0],params[1],params[2]);},0);};netmap.addListener(Netmap.INITIALIZED,this._onMapInitialized,this);};Netmap.Graph.PT_RANGE=1;Netmap.Graph.PT_INDEX=2;Netmap.Graph.PT_COLOR=3;Netmap.Graph.PT_PLUGIN=4;function JSONscriptRequest(fullUrl){this.fullUrl=fullUrl;this.noCacheIE='&noCacheIE='+(new Date()).getTime();this.headLoc=document.getElementsByTagName("head").item(0);this.scriptId='JscriptId'+JSONscriptRequest.scriptCounter++;}JSONscriptRequest.scriptCounter=1;JSONscriptRequest.prototype.buildScriptTag=function(){this.scriptObj=document.createElement("script");this.scriptObj.setAttribute("type","text/javascript");this.scriptObj.setAttribute("charset","utf-8");this.scriptObj.setAttribute("src",this.fullUrl+this.noCacheIE);this.scriptObj.setAttribute("id",this.scriptId);};JSONscriptRequest.prototype.removeScriptTag=function(){this.headLoc.removeChild(this.scriptObj);};JSONscriptRequest.prototype.addScriptTag=function(){this.headLoc.appendChild(this.scriptObj);};function Netmap(viewport,initialPos){initDHTMLAPI();this.layers=[];this.myKaNavigator=null;this.myKeymap=null;this.myScalebar=null;this.myKaZoomer=null;this.myOrgPos=null;this.myKaMap=new kaMap(viewport,initialPos);Netmap.initializeCallback.kaMapObj=this.myKaMap;this.myKaMap.registerForEvent(kaMap.MAP_INITIALIZED,this,this._MapInitialized);this.myKaMap.registerForEvent(kaMap.MAP_INITIALIZED,this,this._InitializeLayers);this.myKaMap.registerForEvent(kaMap.LAYERS_CHANGED,this,this._InitializeLayers);this.myKaNavigator=new kaNavigator(this.myKaMap);this.myKaNavigator.activate();this.myKaMap.initialize('');if(!this.myOrgPos&&initialPos){this.myOrgPos=initialPos;this.myKaMap.setOrgPos(initialPos);}this.getmapinfo_cgi="getmapinfo.cgi";this.mapinfo={};this.mapinfo.que=[];this.mapinfo.requestId=1;this.mapinfo.timerId=null;this.mapinfo.baloon={};this.figureLayer=new Netmap.FigureLayer(this);this.graph=new Netmap.Graph(this);this.myKaMap.onmousemove_obj=this;}Netmap.prototype.resize=function(){if(!this.myKaMap)return;this.myKaMap.resize();};Netmap.prototype.isAvailable=function(){return this.myKaMap?this.myKaMap.initialized():false;};Netmap.prototype.getScale=function(){return this.myKaMap?this.myKaMap.getCurrentScale():-1;};Netmap.prototype.getScaleIndex=function(){if(!this.myKaMap)return;return this.myKaMap.getCurrentScaleCode();};Netmap.prototype.getCenter=function(){if(!this.myKaMap)return{lat:0,lon:0};return this.myKaMap.getGeoCenterLatLon();};Netmap.prototype.getExtents=function(){if(!this.myKaMap)return;return this.myKaMap.getGeoExtentsMinMax();};Netmap.prototype.getPoint=function(x,y){if(!this.myKaMap)return;return this.myKaMap.getGeoPointLatLon(x,y);};Netmap.prototype.getPixelSize=function(){if(!this.myKaMap)return;return this.myKaMap.getSize();};Netmap.prototype.getPixelPoint=function(lon,lat){if(this.myKaMap==null){return{x:-1,y:-1};}var kamap=this.myKaMap;var pix=kamap.geoToPix(lon,lat);var xy={x:pix[0]-kamap.xOrigin+safeParseInt(kamap.theInsideLayer.style.left),y:pix[1]-kamap.yOrigin+safeParseInt(kamap.theInsideLayer.style.top)};return xy;};Netmap.prototype.getCanvasExtents=function(){if(!this.myKaMap)return;var rect=this.figureLayer._calcCanvasMapRect();return{minx:rect.left,miny:rect.top,maxx:rect.right,maxy:rect.bottom};};Netmap.prototype.addListener=function(event,func,obj){var event_id=Netmap.get_event_id(event);if(event_id<0)return;return this.myKaMap.registerForEvent(event_id,obj,func);};Netmap.prototype.removeListener=function(event,func,obj){var event_id=Netmap.get_event_id(event);if(event_id<0)return;return this.myKaMap.deregisterForEvent(event_id,obj,func);};Netmap.prototype.addController=function(){if(!this.myKaMap)return;if(!this.myKaZoomer){this.myKaZoomer=new kaZoomer(this.myKaMap);}this.myKaZoomer.showController();};Netmap.prototype.removeController=function(){if(this.myKaZoomer){this.myKaZoomer.hideController();}};Netmap.prototype.addScalebar=function(visible){if(!this.myKaMap)return;if(this.myScalebar)return;if(visible==null)visible=true;this.myScalebar=new kaScalebar(this.myKaMap,'scalebar',visible);};Netmap.prototype.removeScalebar=function(){if(!this.myKaMap)return;if(!this.myScalebar)return;this.myScalebar.remove();this.myScalebar=null;};Netmap.prototype.addIndexMap=function(elem){if(!this.myKaMap)return;if(this.myKeymap)return;this.myKeymap=new kaKeymap(this.myKaMap,elem);};Netmap.prototype.removeIndexMap=function(){if(!this.myKaMap)return;if(!this.myKeymap)return;this.myKeymap.remove();this.myKeymap=null;};Netmap.prototype.removeAll=function(){if(!this.myKaMap)return;this.removeController();this.removeScalebar();this.removeIndexMap();if(this.myKaNavigator){this.myKaNavigator.deactivate();}this.myKaMap=this.myKaNavigator=this.myKaZoomer=this.myScalebar=this.myKeymap=null;};Netmap.prototype.enableKeyboardInterface=function(bEnabled){if(this.myKaMap){this.myKaMap.enableKeyboardInterface=bEnabled?1:0;}};Netmap.prototype.enableMouseWheel=function(bEnabled){if(this.myKaMap){this.myKaMap.enableMouseWheel=bEnabled?1:0;}};Netmap.prototype.lock=function(bLocked){if(this.myKaMap){this.myKaMap.isLocked=bLocked;}};Netmap.prototype.isLocked=function(bLocked){return this.myKaMap?this.myKaMap.isLocked:true;};Netmap.prototype.zoomTo=function(p){if(!this.myKaMap)return;var lat=p['lat'];var lon=p['lon'];var scale=p['scale'];lat=lat!=null?lat:this.getCenter().lat;lon=lon!=null?lon:this.getCenter().lon;if(scale!=null){this.myKaMap.zoomToByCode(lon,lat,scale);}else{this.myKaMap.zoomTo(lon,lat);}if(!this.myOrgPos){this.myOrgPos=p;this.myKaMap.setOrgPos(p);}};Netmap.prototype.revertPos=function(){if(!this.myKaMap)return;this.myKaMap.revertPos();};Netmap.prototype.slideTo=function(d){if(!this.myKaMap)return;var ox=0;var oy=0;switch(d){case 'NW':ox=+1;oy=+1;break;case 'N':ox=0;oy=+1;break;case 'NE':ox=-1;oy=+1;break;case 'W':ox=+1;oy=0;break;case 'E':ox=-1;oy=0;break;case 'SW':ox=+1;oy=-1;break;case 'S':ox=0;oy=-1;break;case 'SE':ox=-1;oy=-1;break;}if(ox!=0||oy!=0){this.myKaMap.slideBy(ox*(this.myKaMap.viewportWidth/2),oy*(this.myKaMap.viewportHeight/2));}};Netmap.prototype.getMapInfo=function(mapid,func,obj,cbparam){var req={state:Netmap.MAPINFO_STATE_PENDING,mapid:mapid,callback:func,obj:obj,cbparam:cbparam};this.mapinfo.que.push(req);if(this.isAvailable()){this._requestMapInfo(req);}};Netmap.prototype.setMapInfo=function(mapid,titleId,imageId,commentId,useIconLocation){var domInfo={titleId:titleId,imageId:imageId,commentId:commentId,__useIconLocation:useIconLocation};this.getMapInfo(mapid,this._onGetMapInfo_setMapInfo,this,domInfo)};Netmap.prototype.addFigure=function(obj){this.figureLayer.add(obj);};Netmap.prototype.addOrReplaceFigure=function(obj){this.figureLayer.addOrReplace(obj);};Netmap.prototype.removeFigure=function(obj){this.figureLayer.remove(obj);};Netmap.prototype.removeAllFigures=function(){this.figureLayer.removeAll();};Netmap.prototype.isExistsFigure=function(obj){return this.figureLayer.isExists(obj);};Netmap.prototype.findFigureById=function(id){return this.figureLayer.findById(id);};Netmap.prototype.addFigureFromXml=function(url){this.figureLayer.loadXml(url);};Netmap.prototype.addFigureFromJSON=function(url){this.figureLayer.loadJSON(url);};Netmap.prototype.figureRedrawMode=function(bMode){this.figureLayer.setAutoRebuild(bMode);};Netmap.prototype.figureVisibility=function(bVisible){this.figureLayer.setVisibility(bVisible);};Netmap.prototype.setFigureMouseOverEventLimitScale=function(scale){this.figureLayer.setMouseOverEventLimitScale(scale);};Netmap.prototype.getLayers=function(){var layers=[];for(var i=0;i<this.layers.length;i++){if(!this.layers[i].isGraphLayer()){layers.push(this.layers[i]);}}return layers;};Netmap.Layer=function(kamap,kalayer){this.kamap=kamap;this.kalayer=kalayer;};Netmap.Layer.prototype.getName=function(){return this.kalayer.jname;};Netmap.Layer.prototype.getID=function(){return this.kalayer.name;};Netmap.Layer.prototype.getGraphNo=function(){var kalayer=this.kalayer;return kalayer.graph.graph_no;};Netmap.Layer.prototype.getType=function(){var type=-1;switch(this.kalayer.type){case 'map':type=Netmap.LAYER_MAP;break;case 'graph':type=Netmap.LAYER_SYSTEM_GRAPH;break;case 'dgraph':type=Netmap.LAYER_USER_GRAPH;break;}return type;};Netmap.Layer.prototype.getVisibility=function(){if(this._isConstructingDynamicGraphLayer()){return this.kalayer.graph.pending_visible;}else{return this.kalayer.visible;}};Netmap.Layer.prototype.setVisibility=function(visible){var kalayer=this.kalayer;if(this._isConstructingDynamicGraphLayer()){this.kalayer.graph.pending_visible=visible;}else{this.kamap.setLayerVisibility(this.kalayer.name,visible)}};Netmap.Layer.prototype.getOpacity=function(){return this.kalayer.opacity;};Netmap.Layer.prototype.setOpacity=function(opacity){if(this.kamap==null){this.kalayer.opacity=opacity;}else{this.kamap.setLayerOpacity(this.kalayer.name,opacity);}};Netmap.Layer.prototype.isGraphLayer=function(){return this.kalayer.isGraphLayer();};Netmap.Layer.prototype._isConstructingDynamicGraphLayer=function(){var kalayer=this.kalayer;return this.kamap==null||(kalayer.type=='dgraph'&&kalayer.graph.status==null)};Netmap.prototype.drawPage=function(){var browserWidth=getInsideWindowWidth();var browserHeight=getInsideWindowHeight();var viewport=getRawObject(this.myKaMap.docObj);var page=getRawObject('page');var layoutFrame=getRawObject('layoutFrame');var explorer=getRawObject('explorer');var service=getRawObject('service');var identifier=getRawObject('identifier');var print=getRawObject('print');var mapInfo=getRawObject('mapInfo');var legend=getRawObject('legend');var keymap=getRawObject('keymap');var link=getRawObject('link');var search=getRawObject('search');var mapLegend=getRawObject('mapLegend');var content=getRawObject('content');var contentBackground=getRawObject('contentBackground');var contentText=getRawObject('contentText');if(page){if(this.myKaMap.isIE4){page.style.width=(browserWidth-2)+"px";page.style.height=(browserHeight-2)+"px";}else{page.style.width=browserWidth+"px";page.style.height=browserHeight+"px";}layoutFrame.style.width=parseInt(page.style.width)+"px";layoutFrame.style.height=parseInt(page.style.height)-parseInt(getObjectHeight(explorer))+"px";layoutFrame.style.top=parseInt(getObjectHeight(explorer))+"px";layoutFrame.style.left="0px";layoutFrame.style.right="0px";}if(content){content.style.left=parseInt(viewport.style.left)+10+"px";content.style.width=parseInt(viewport.style.width)-20+"px";content.style.height=parseInt(viewport.style.height)-20+"px";contentBackground.style.height=parseInt(viewport.style.height)-20+"px";contentText.style.height=parseInt(viewport.style.height)-65+"px";contentText.style.width=parseInt(viewport.style.width)-50+"px";}if(service){service.style.height=parseInt(getObjectHeight(layoutFrame))-2+"px";}if(print){print.style.height=parseInt(getObjectHeight(layoutFrame))-2+"px";}if(identifier){identifier.style.height=parseInt(getObjectHeight(layoutFrame))-2+"px";}if(mapInfo){mapInfo.style.height=parseInt(getObjectHeight(layoutFrame))-2+"px";}if(mapLegend){mapLegend.style.height=parseInt(getObjectHeight(layoutFrame))-2+"px";}if(link){link.style.height=parseInt(getObjectHeight(layoutFrame))-2+"px";}if(search){search.style.height=parseInt(getObjectHeight(layoutFrame))-2+"px";}this.myKaMap.resize();};Netmap.initializeCallback=function(szInit){var kaMapObj=arguments.callee.kaMapObj;if(kaMapObj){kaMapObj.initializeCallback(szInit);}};Netmap.prototype._MapInitialized=function(){for(var i=0;i<this.mapinfo.que.length;i++){if(this.mapinfo.que[i].state==Netmap.MAPINFO_STATE_PENDING){this._requestMapInfo(this.mapinfo.que[i]);}}};Netmap.prototype._InitializeLayers=function(){var layers_save=this.layers;this.layers=[];if(this.myKaMap){var map=this.myKaMap.getCurrentMap();if(map){var mapLayers=map.getAllLayers();for(var i=0;i<mapLayers.length;i++){this.layers.push(new Netmap.Layer(this.myKaMap,mapLayers[i]));}}}for(var i=0;i<layers_save.length;i++){if(layers_save[i].kamap==null){this.layers.push(layers_save[i]);}}};Netmap.onGraphInitReceived=function(){if(Netmap.g_graphCallback){var netmap=Netmap.g_graphCallback;Netmap.g_graphCallback=null;netmap.graphCallback.removeScriptTag();netmap.graphCallback=null;netmap.initGraph();netmap.graphInitialized=true;}};Netmap.get_event_id=function(event_str){if(typeof event_str=='string'){switch(event_str){case 'move':return kaMap.EXTENTS_CHANGED;case 'zoom':return kaMap.SCALE_CHANGED;case 'click':return kaMap.CLICKED;case 'dblclick':return kaMap.DOUBLE_CLICKED;case 'move_indexmap':return kaMap.INDEXMAP_MOVED;case 'initialized':return kaMap.INITIALIZED;case 'canvas_move':return kaMap.CANVAS_EXTENTS_CHANGED;case 'pre_canvas_move':return kaMap.CANVAS_EXTENTS_PRE_CHANGED;case 'figure_xml_downloaded':return kaMap.FIGURE_XML_DOWNLOADED;default:return-1;}}else{switch(event_str){case Netmap.EXTENTS_CHANGED:case Netmap.SCALE_CHANGED:case Netmap.CLICKED:case Netmap.DOUBLE_CLICKED:case Netmap.INDEXMAP_MOVED:case Netmap.INITIALIZED:case Netmap.CANVAS_EXTENTS_CHANGED:case Netmap.CANVAS_EXTENTS_PRE_CHANGED:case Netmap.FIGURE_XML_DOWNLOADED:case Netmap.LAYER_ADDED:case Netmap.GRAPH_DATA_UPDATED:return event_str;default:return-1;}}};Netmap.prototype.HttpRequest=function(url){var req=new JSONscriptRequest(url);req.buildScriptTag();req.addScriptTag();return req;};Netmap.prototype.ClearHttpRequest=function(req){if(req&&req.removeScriptTag){req.removeScriptTag();}};Netmap.prototype.JSONRequest=function(url,obj,callback){calljs(url,obj,callback);};Netmap.processEventHandler=function(func,obj,params){if(func==null)return;if(typeof(func)=='string'){eval(func)(params[0],params[1],params[2],params[3],params[4]);}else{func.apply(obj,params);}};Netmap.EXTENTS_CHANGED=kaMap.EXTENTS_CHANGED;Netmap.SCALE_CHANGED=kaMap.SCALE_CHANGED;Netmap.CLICKED=kaMap.CLICKED;Netmap.DOUBLE_CLICKED=kaMap.DOUBLE_CLICKED;Netmap.INDEXMAP_MOVED=kaMap.INDEXMAP_MOVED;Netmap.INITIALIZED=kaMap.INITIALIZED;Netmap.CANVAS_EXTENTS_CHANGED=kaMap.CANVAS_EXTENTS_CHANGED;Netmap.CANVAS_EXTENTS_PRE_CHANGED=kaMap.CANVAS_EXTENTS_PRE_CHANGED;Netmap.FIGURE_XML_DOWNLOADED=kaMap.FIGURE_XML_DOWNLOADED;Netmap.LAYER_ADDED=kaMap.LAYER_ADDED;Netmap.GRAPH_DATA_UPDATED=kaMap.GRAPH_DATA_UPDATED;Netmap.prototype._requestMapInfo=function(req){req.state=Netmap.MAPINFO_STATE_REQUESTING;req.requestId=++this.mapinfo.requestId;var url=this.myKaMap.server+this.getmapinfo_cgi+"?";url+="mode=0";url+="&requestid="+req.requestId;url+="&MAPID="+escape(req.mapid);this.JSONRequest(url,this,this._onResultMapInfo);};Netmap.prototype._onResultMapInfo=function(json){var requestId=json.requestId;var time=(new Date()).getTime();for(var i=0;i<this.mapinfo.que.length;i++){var req=this.mapinfo.que[i];if(req.state==Netmap.MAPINFO_STATE_REQUESTING&&req.requestId==requestId){req.json=json;if(json.image&&json.image.url&&json.image.width==0&&json.image.height==0){req.state=Netmap.MAPINFO_STATE_IMAGE_SIZING;req.time=time;req.image=new Image;req.image.src=json.image.url;}else{req.state=Netmap.MAPINFO_STATE_DONE;req.callback.apply(req.obj,[json,req.cbparam]);}break;}}if(this.mapinfo.timerId!=null){clearTimeout(this.mapinfo.timerId);this.mapinfo.timerId=null;}this._checkMapInfoImageDownload();};Netmap.prototype._checkMapInfoImageDownload=function(){this.mapinfo.timerId=null;var needsNext=false;var time=(new Date()).getTime();for(var i=0;i<this.mapinfo.que.length;i++){var req=this.mapinfo.que[i];if(req.state==Netmap.MAPINFO_STATE_IMAGE_SIZING&&req.image){if(req.image.complete||req.image.width||req.image.height||req.time+5000<=time){req.json.image.width=req.image.width;req.json.image.height=req.image.height;req.state=Netmap.MAPINFO_STATE_DONE;delete req.image;req.callback.apply(req.obj,[req.json,req.cbparam]);}else{needsNext=true;}}}if(needsNext){var self=this;this.mapinfo.timerId=setTimeout(function(){self._checkMapInfoImageDownload.apply(self);},100);}this._removeCompletedMapInfoRequest();};Netmap.prototype._removeCompletedMapInfoRequest=function(){var count=this.mapinfo.que.length;while(0<count--){var req=this.mapinfo.que.shift();if(req.state!=Netmap.MAPINFO_STATE_DONE){this.mapinfo.que.push(req);}}};Netmap.prototype._onGetMapInfo_setMapInfo=function(mapinfo,cbparam){if(!mapinfo.result){alert("setMapInfo failed("+mapinfo.errmsg+")");}else{var useIconLocaltion=cbparam.__useIconLocation!=null;var lat=mapinfo.lat;var lon=mapinfo.lon;if(mapinfo.icon){var fontsize=12;var baloon=this.mapinfo.baloon;var icon=mapinfo.icon;if(useIconLocaltion&&icon.lat&&icon.lon){lat=icon.lat;lon=icon.lon;}if(baloon.icon==null){baloon.icon=new Netmap.Image();}if(!this.isExistsFigure(baloon.icon)){this.addFigure(baloon.icon);}baloon.icon.x=lon;baloon.icon.y=lat;baloon.icon.ox=-icon.width/2;baloon.icon.oy=-icon.height/2;baloon.icon.w=icon.width;baloon.icon.h=icon.height;baloon.icon.url=icon.url;baloon.icon.opacity=1.0;baloon.icon.update();if(baloon.line==null){baloon.line=new Netmap.PixPolyline();}if(!this.isExistsFigure(baloon.line)){this.addFigure(baloon.line);}baloon.line.x=lon;baloon.line.y=lat;baloon.line.points=[[icon.width/2,-icon.height/2],[icon.width,-icon.height]];baloon.line.width=1;baloon.line.color='#000000';baloon.line.opacity=1.0;baloon.line.update();if(baloon.back==null){baloon.back=new Netmap.PixPolygon();}if(!this.isExistsFigure(baloon.back)){this.addFigure(baloon.back);}var balloon_text=mapinfo.balloon;var balloon_len=mapinfo.balloon_sjis_len;if(balloon_text==null||balloon_text==""){balloon_text=mapinfo.title;balloon_len=mapinfo.title_sjis_len;}var ps=4;var pw=ps*2+balloon_len*fontsize/2;var ph=ps*2+fontsize;var points=[[0,0],[pw,0],[pw,ph],[0,ph]];for(var i=0;i<points.length;i++){points[i][0]+=icon.width;points[i][1]+=-icon.height-ph;}baloon.back.x=lon;baloon.back.y=lat;baloon.back.points=points;baloon.back.width=1;baloon.back.color='#000000';baloon.back.fillColor='#ffffff';baloon.back.opacity=1.0;baloon.back.update();if(baloon.text==null){baloon.text=new Netmap.Text();}if(!this.isExistsFigure(baloon.text)){this.addFigure(baloon.text);}baloon.text.x=lon;baloon.text.y=lat;baloon.text.ox=icon.width+ps;baloon.text.oy=-icon.height-ph+ps;baloon.text.text=balloon_text;baloon.text.color='#000000';baloon.text.fontsize=fontsize;baloon.text.update();}if(cbparam){if(mapinfo.title&&cbparam.titleId&&document.getElementById(cbparam.titleId)){document.getElementById(cbparam.titleId).innerHTML=mapinfo.title;}if(cbparam.imageId&&document.getElementById(cbparam.imageId)&&mapinfo.image){var elm=document.getElementById(cbparam.imageId);elm.innerHTML="<img src="+this.dq(mapinfo.image.url)+" width="+this.dq(mapinfo.image.width)+" height="+this.dq(mapinfo.image.height)+"/>";}if(mapinfo.comment&&cbparam.commentId&&document.getElementById(cbparam.commentId)){document.getElementById(cbparam.commentId).innerHTML=mapinfo.comment;}}this.zoomTo({lon:lon,lat:lat});}};Netmap.prototype.dq=function(text){return '"'+(text?text:'')+'"';};Netmap.prototype.onmousemove=function(x,y){if(this.figureLayer){this.figureLayer.onMouseMove(x,y);}};Netmap.MAPINFO_STATE_PENDING=0;Netmap.MAPINFO_STATE_REQUESTING=1;Netmap.MAPINFO_STATE_IMAGE_SIZING=2;Netmap.MAPINFO_STATE_DONE=3;Netmap.LAYER_MAP=0;Netmap.LAYER_SYSTEM_GRAPH=1;Netmap.LAYER_USER_GRAPH=2;
kaMap.cgi_base = 'http://asp.netmap.jp/cgi-bin/api-new/';
kaMap.init_cgi = 'init.cgi';
kaMap.tile_cgi = 'tile-ro.cgi';
kaMap.retry_cgi = 'tile.cgi';
kaMap.keymap_cgi = 'keymap.cgi';
kaMap.check_ipc_cgi = 'check-ipc.cgi';
kaMap.graph_cgi = 'graph.cgi';
kaMap.serv_host = 'http://asp.netmap.jp';
kaMap.enable_mouse_wheel = true;
kaMap.license_key = '5baf84d82b1ef8e4b2c3234eb174f84e8b9c86a3';
kaMap.add_key = 'af05b7ca673ba9bcbc2a4c1f43c79c69';
