var GCUI=GCUI||{};GCUI.Class=function(){var B=function(){this.initialize.apply(this,arguments);};var A={};var D;for(var C=0;C<arguments.length;++C){if(typeof arguments[C]=="function"){D=arguments[C].prototype;}else{D=arguments[C];}GCUI.Object.extend(A,D);}B.prototype=A;return B;};GCUI.Function={bind:function(C,B){var A=Array.prototype.slice.apply(arguments,[2]);
return function(){var D=A.concat(Array.prototype.slice.apply(arguments,[0]));return C.apply(B,D);};},bindAsEvent:function(C,B){var A=Array.prototype.slice.apply(arguments,[2]);return function(D){return C.call(B,D||window.event,A);};}};GCUI.Object={};GCUI.Object.extend=function(A,D){var C;if(A&&D){for(var B in D){C=D[B];
if(C!==undefined){A[B]=C;}}if(D.hasOwnProperty&&D.hasOwnProperty("toString")){A.toString=D.toString;}}return A;};GCUI.Util={};GCUI.Util.upperCaseObject=function(B){var A={};for(var C in B){A[C.toUpperCase()]=B[C];}return A;};GCUI.Util.applyDefaults=function(D,C){D=D||{};var B=typeof window.Event=="function"&&C instanceof window.Event;
for(var A in C){if(D[A]===undefined||(!B&&C.hasOwnProperty&&C.hasOwnProperty(A)&&!D.hasOwnProperty(A))){D[A]=C[A];}}if(!B&&C&&C.hasOwnProperty&&C.hasOwnProperty("toString")&&!D.hasOwnProperty("toString")){D.toString=C.toString;}return D;};GCUI.Util.Try=function(){var C;var A;for(var B=0,D=arguments.length;
B<D;B++){A=arguments[B];try{C=A();break;}catch(E){}}return C;};function decimalDegreeToRad(A){return Math.PI*A/180;}function radianToDecimalDegree(A){return A*180/Math.PI;}GCUI.Browser=GCUI.Class({initialize:function(A,B){this.doc=A;this.win=B;return this;},getXposition:function(A){if(this.win.event){return this.win.event.clientX+this.doc.documentElement.scrollLeft+this.doc.body.scrollLeft;
}else{return A.clientX+this.win.scrollX;}},getYposition:function(A){if(this.win.event){return this.win.event.clientY+this.doc.documentElement.scrollTop+this.doc.body.scrollTop;}else{return A.clientY+this.win.scrollY;}},getElementLeft:function(B){var A=B.offsetLeft;var C=B.offsetParent;while(C){A+=C.offsetLeft;
C=C.offsetParent;}return A;},getElementTop:function(B){var A=B.offsetTop;var C=B.offsetParent;while(C){A+=C.offsetTop;C=C.offsetParent;}return A;},getDocumentWidth:function(){var B=this.doc.documentElement.clientWidth?this.doc.documentElement.clientWidth:this.doc.body.clientWidth;var A=(this.win.innerWidth?this.win.innerWidth:B);
return A;},getDocumentHeight:function(){var B=this.doc.documentElement.clientHeight?this.doc.documentElement.clientHeight:this.doc.body.clientHeight;var A=(this.win.innerHeight?this.win.innerHeight:B);return A;},cancelEvent:function(A){if(this.win.event){this.win.event.cancelBubble=true;this.win.event.returnValue=false;
}else{A.preventDefault();}},getStyle:function(B,A){var D,C;if(!B){return"";}if(B.currentStyle){C=A.replace(/\-(.)/g,function(E,F){return F.toUpperCase();});D=B.currentStyle[C];}else{if(this.win.getComputedStyle){D=this.doc.defaultView.getComputedStyle(B,null).getPropertyValue(A);}}return D;}});function GCISMouseMode(){this.dynMap=null;
}GCISMouseMode.prototype.getName=function(){return this.name;};GCISMouseMode.prototype.setMap=function(A){this.dynMap=A;};GCISMouseMode.prototype.mouseDown=function(A){};GCISMouseMode.prototype.mouseDrag=function(A){};GCISMouseMode.prototype.endDrag=function(A){};GCISMouseMode.prototype.mouseDblClick=function(A){};
GCISMouseMode.prototype.mouseWheel=function(A){};var currentMap=null;function isRightClick(A){if(!A){A=window.event;}if(A.which){return(A.which===3);}else{if(A.button){return(A.button===2);}}}GCISMoveMode=GCUI.Class(GCISMouseMode,{initialize:function(){this.selectMode=0;this.selectionMode=0;this.name="move";
this.b_deselect=0;this.b_pan=0;},mouseDown:function(B){var C,A,D;this.rightclick=false;this.isSimpleClick=false;if(this.selectMode||this.selectionMode){C=new Date();this.b_deselect=1;this.b_pan=0;}if(this.dynMap.animator){this.dynMap.stopAnimation(true);}this.dynMap.dragging=true;this.beginDragCursorX=this.dynMap.browser.getXposition(B);
this.beginDragCursorY=this.dynMap.browser.getYposition(B);this.beginDragX=this.dynMap.currentX;this.beginDragY=this.dynMap.currentY;currentMap=this.dynMap;this.dynMap.currentDoc.onmousemove=function(E){if(currentMap&&currentMap.mouseMode){if(currentMap.mouseMode.selectMode||currentMap.mouseMode.selectionMode){currentMap.mouseMode.b_deselect=0;
}if(currentMap.mouseMode.zoomMode){currentMap.mouseMode.b_pan=1;}currentMap.mouseMode.mouseDrag(E);}};this.dynMap.currentDoc.onmouseup=function(G){var K,I,J,H,F,E;if(currentMap&&currentMap.mouseMode){if(currentMap.mouseMode.selectionMode){if(currentMap.mouseMode.b_deselect){K=currentMap.browser.getXposition(G);
I=currentMap.browser.getYposition(G);J=K;H=I;K-=currentMap.browser.getElementLeft(currentMap.mainDiv);I-=currentMap.browser.getElementTop(currentMap.mainDiv);F=currentMap.calcMapX(K);E=currentMap.calcMapY(I);currentMap.mouseMode.isSimpleClick=true;currentMap.mouseMode.rightclick=isRightClick(G);currentMap.mouseMode.simpleCLickCurrentX=F;
currentMap.mouseMode.simpleCLickCurrentY=E;currentMap.mouseMode.simpleCLickX=J;currentMap.mouseMode.simpleCLickY=H;}}if(currentMap.mouseMode.selectMode){A=new Date();D=A-C;if((D>300)&&(D<1100)){if(currentMap.mouseMode.b_deselect){currentMap.resetSelection(currentMap);currentMap.mouseMode.b_deselect=0;
}}if(currentMap.mouseMode.zoomMode&&!currentMap.mouseMode.b_pan){currentMap.mouseMode.rightclick=isRightClick(G);if(currentMap.mouseMode.rightclick){currentMap.animateZoom(currentMap.scale+1);}else{currentMap.animateZoom(currentMap.scale-1);}}}if(currentMap.cursorMouse){currentMap.setMouseCursor(currentMap.cursorMouse);
}currentMap.mouseMode.endDrag(G);}};this.dynMap.window.onmouseout=function(E){if(currentMap&&currentMap.mouseMode){if(currentMap.mouseMode.avoidMouseOutEvent){currentMap.mouseMode.avoidMouseOutEvent=false;return ;}currentMap.mouseMode.endDrag(E);}};this.dynMap.browser.cancelEvent(B);},mouseDrag:function(E,B){var D=document.getElementById("debug");
if(D){D.innerHTML="";}var G=this.dynMap.browser.getXposition(E);var F=this.dynMap.browser.getYposition(E);var C=G-this.beginDragCursorX;var A=F-this.beginDragCursorY;this.dynMap.currentX=this.dynMap.calcMapDeltaX(this.beginDragX,-C);this.dynMap.currentY=this.dynMap.calcMapDeltaY(this.beginDragY,-A);this.dynMap.moveMap(C,A,B);
this.dynMap.browser.cancelEvent(E);},endDrag:function(A){this.mouseDrag(A,true);this.dynMap.currentDoc.onmouseup=null;this.dynMap.currentDoc.onmousemove=null;this.dynMap.window.onmouseout=null;currentMap=null;this.dynMap.dragging=false;this.endMoveMap();},endMoveMap:function(){if(this.beginDragX!=this.dynMap.currentX||this.beginDragY!=this.dynMap.currentY){this.dynMap.endMoveMap();
}var A,B;if(this.selectionMode&&this.isSimpleClick){for(A=0;A<this.dynMap.mouseSelectionEventListeners.length;A++){B=this.dynMap.mouseSelectionEventListeners[A];if(B.onSelect){B.onSelect(this.simpleCLickCurrentX,this.simpleCLickCurrentY,this.simpleCLickX,this.simpleCLickY,this.rightclick);}}}},mouseWheel:function(A){if(this.dynMap.animator){return ;
}if(!A){A=window.event;}var B=A.wheelDelta;if(!B){if(A.detail>0){B=1;}else{B=-1;}}else{B/=-120;}this.dynMap.animateZoom(this.dynMap.getScale()+B);},mouseDblClick:function(A){this.dynMap.centerClick(A);}});function GCISAbstractLayer(){}GCISAbstractLayer.prototype.init=function(A){};GCISAbstractLayer.prototype.toString=function(){return"layer "+this.name;
};GCISAbstractLayer.prototype.move=function(B,A,C){};GCISAbstractLayer.prototype.endMove=function(){};GCISAbstractLayer.prototype.refresh=function(A){};GCISAbstractLayer.prototype.remove=function(){};GCISAbstractLayer.prototype.isPrintable=function(A){return true;};GCISAbstractLayer.prototype.setUserId=function(A){};
GCISAbstractLayer.prototype.setCopyright=function(B,A){};GCISAbstractLayer.prototype.setOpacity=function(A){};GCISAbstractLayer.prototype.setVisible=function(A){};GCISAbstractLayer.prototype.setScale=function(A){};function GCISAbstractAnimator(){}GCISAbstractAnimator.prototype.start=function(A){};GCISAbstractAnimator.prototype.animate=function(){};
GCISAbstractAnimator.prototype.stop=function(){};GCISAbstractAnimator.prototype.isFinished=function(){return true;};function GCISAbstractScaleListener(){}GCISAbstractScaleListener.prototype.onScaleChange=function(A){};GCISAbstractScaleListener.prototype.onMinimumScaleChange=function(A){};GCISAbstractScaleListener.prototype.onMaximumScaleChange=function(A){};
GCISAbstractScaleListener.prototype.toString=function(){return"scale listener "+this.name;};GCUI.Map=GCUI.Class({initialize:function(A,C){this.initializeFields();this.window=window;this.currentDoc=document;this.setOptions(C);if(!this.currentDoc.maps){this.currentDoc.maps=[];}this.currentDoc.maps[A]=this;
this.id=A;this.mainDiv=this.currentDoc.getElementById(A);this.width=this.mainDiv.clientWidth;this.height=this.mainDiv.clientHeight;this.browser=new GCUI.Browser(this.currentDoc,this.window);this.initialScale=this.scale;var B="";if(this.server!=null){B=this.server.substring(0,this.server.lastIndexOf("/map"));
this.defaultImg=B+"/images/empty.gif";this.servletUrl=B+"/htcservlet/";if(!this.limits&&!this.ratios){if(this.mapName!=null){this.getCDA("ratios","");}}else{this.initMap();this.isloaded=true;return this;}}else{if(!this.maxScale){this.maxScale=16;}if(this.scale>this.maxScale){this.scale=this.maxScale;
}this.server=null;if(this.x){this.currentX=this.x;}if(this.y){this.currentY=this.y;}this.initialX=this.currentX;this.initialY=this.currentY;if(!this.limits){this.limits=[-180,180,-90,90];}this.addStandardLayer();this.initMinMaxScale();return this;}},initializeFields:function(){this.tileWidth=300;this.tileHeight=300;
this.id=null;this.width=null;this.height=null;this.scale=12;this.minScale=1;this.currentX=0;this.currentY=0;this.precision=0.01;this.mainDiv=null;this.dragging=false;this.animator=null;this.layers=[];this.rasterLayers=[];this.vectorLayers=[];this.dynamicRasterLayers=[];this.showSlider=true;this.animationTime=600;
this.userId=null;this.displayMargin=200;this.scaleEventListeners=[];this.moveEventListeners=[];this.endmoveEventListeners=[];this.drawingListeners=[];this.objectEventListeners=[];this.mouseSelectionEventListeners=[];this.noRefreshEndScroll=true;},addStandardLayer:function(){this.objectLayer=new GCUI.Layer.ObjectLayer(this);
this.addLayer(this.objectLayer);this.sheetLayer=new GCUI.Layer.SheetLayer(this);this.addLayer(this.sheetLayer);if(this.showSlider){this.sliderLayer=new GCISSlider();this.addLayer(this.sliderLayer);}this.addScaleEventListener("main",this);this.init();},initMap:function(){this.currentX=this.x/this.precision;
this.currentY=this.y/this.precision;this.initialX=this.x;this.initialY=this.y;this.initRatios();this.nbScales=this.xRatios.length;if(!this.maxScale){this.maxScale=this.nbScales-1;}if(this.scale>this.maxScale){this.scale=this.maxScale;}if(this.mapName&&this.tab!=null){this.addRasterLayer("main",this.server,this.mapName,this.tab,this.format,false,this.minScale,this.nbScales,this.tileWidth,this.tileHeight,this.version);
this.getLayer("main").initRatios(this.ratios);}this.addStandardLayer();},onInfosComplete:function(){if(!this.x){this.x=(this.limits[0]+(this.limits[1]-this.limits[0])/2)*this.precision;}if(!this.y){this.y=(this.limits[3]-(this.limits[3]-this.limits[2])/2)*this.precision;}this.initMap();this.initMinMaxScale();
return this;},getCDA:function(D,B){var C=this.currentDoc.getElementById("htcinfos_"+this.mapName);if(C){document.body.removeChild(C);}var A=this.createElt("script");A.id="htcinfos_"+this.mapName;A.src=this.servletUrl+D+"?ID="+this.id+"&M="+this.mapName+B;document.body.appendChild(A);},onEvent:function(B,A){if(B=="load"){this.onload=A;
if(this.isloaded&&!this.onloadcalled){this.onload();this.onloadcalled=true;}}},initMinMaxScale:function(){this.setMinimumScale(this.minScale);this.setMaximumScale(this.maxScale);this.isloaded=true;if(this.onload){if(!this.onloadcalled){this.onload();this.onloadcalled=true;}}},initRatios:function(){if(!this.ratios){return ;
}var B=this.ratios.split("~");var D=0;var A=1;this.xRatios=[];this.yRatios=[];var C=B.length;for(D=0;D<C;D++){this.xRatios[A]=parseFloat(B[D++]);this.yRatios[A++]=parseFloat(B[D]);}},setMinimumScale:function(A){this.minScale=A;if(this.sliderLayer){this.sliderLayer.setMinimumScale(A);}},setMaximumScale:function(A){if(A>this.nbScales){A=this.nbScales;
}this.maxScale=A;if(this.sliderLayer){this.sliderLayer.setMaximumScale(A);}},addScaleLayer:function(A,E,D,C){var B=new GCISGraphicScale(this,A,E,D,C);B.name="graphicScale";this.addLayer(B);B.init(this);this.graphicScaleAdded=true;},addGlobalView:function(I,G,B,K,C,D,J,A,F,H,E){this.globalView=new GCISGlobalView(this,I,G,B,K,C,D,J,A,F,H,E);
this.globalView.name="globalView";this.addLayer(this.globalView);},addSliderLayer:function(B,A,C){this.sliderLayer=new GCISSlider(B,A,C);this.addLayer(this.sliderLayer);},getGlobalView:function(){if(!this.globalView){return null;}return this.globalView;},addRasterLayer:function(A,F,B,E,J,L,G,C,K,D,I){if(!F){F=this.server;
}if(!B){B=this.mapName;}var H=new GCUI.Layer.GCISRasterLayer(A,this,F,B,E,J,G,C,K,D,I);if(L){H.setTransparentColor(L);}this.addLayer(H);this.rasterLayers.push(H);this.rasterLayers[A]=H;},removeRasterLayer:function(D){var C=this.getLayer(D);this.removeLayer(D,C);var B=[];var E,A;for(E=0;E<this.rasterLayers.length;
E++){A=this.rasterLayers[E];if(A.name!=D){B.push(A);B[A.name]=A;}}this.rasterLayers=B;},addVectorLayer:function(A){var B=new GCUI.Layer.VectorLayer(A);this.addLayer(B);this.vectorLayers.push(B);if(this.mapCreated){B.init(this);}},addDynamicLayer:function(B,A,F,E,H,G,I,C){var D=new GCUI.Layer.DynamicLayer(B,this,A,F,E,H,G,I,C);
this.addLayer(D);this.dynamicRasterLayers.push(D);this.dynamicRasterLayers[B]=D;this.rasterLayers.push(D);this.rasterLayers[B]=D;D.init(this);return D;},addWMSLayer:function(A,D,B,H,F,C,I,E){var G=new GCISWMSLayer(A,this,D,B,H,F,C,I,E);this.addLayer(G);},addLayer:function(A,B){A.visible=true;this.layers.push(A);
this.layers[A.name]=A;},setOptions:function(A){GCUI.Object.extend(this,A);},maximize:function(E,D,A){if(!this.isloaded){return ;}var G=this.browser.getDocumentHeight();var C=this.browser.getDocumentWidth();var F=this.browser.getElementTop(this.mainDiv);var B=this.browser.getElementLeft(this.mainDiv);
this.setSize(C-B-E,G-F-D,A);},setSize:function(F,A,G){this.width=F;this.height=A;this.mainDiv.style.width=F+"px";this.mainDiv.style.height=A+"px";var E=this.browser.getDocumentHeight();var C=this.browser.getDocumentWidth();var D=this.browser.getElementTop(this.mainDiv);var B=this.browser.getElementLeft(this.mainDiv);
this.marginright=C-B-F;this.marginbottom=E-D-A;if(!G){this.refresh(true);}},resize:function(A){this.width=this.mainDiv.offsetWidth;this.height=this.mainDiv.offsetHeight;if(!A){this.refresh(true);}},refresh:function(C){if(this.refreshing){return ;}this.refreshing=true;this.centerX=Math.floor(this.width/2);
this.centerY=Math.floor(this.height/2);if(!this.mapCreated){this.createMap();C=true;}var B,A;for(B=0;B<this.layers.length;B++){A=this.layers[B];A.refresh(C);}if(this.copyrightLayer){this.copyrightLayer.refresh();}this.refreshing=false;},createMap:function(){this.mapDiv.innerHTML="";this.mapDiv.style.visibility="hidden";
this.centerX=Math.floor(this.width/2);this.centerY=Math.floor(this.height/2);var C;var B;var A=this.layers.length;for(B=0;B<A;B++){C=this.layers[B];C.init(this);}this.mapDiv.style.visibility="visible";this.mapCreated=true;},addScaleEventListener:function(B,A){this.scaleEventListeners.push(A);this.scaleEventListeners[B]=A;
},init:function(){this.mainDiv.map=this;var A=this.createElt("div");A.style.width="100%";A.style.height="100%";A.style.zIndex=1;A.id=this.id+"_map";this.mapDiv=A;this.mapDiv.map=this;this.mainDiv.appendChild(A);this.setMouseMode(1);this.initMouseMode();},setMouseMode:function(A){this.setMouseCursor("default");
if(!A){this.mouseMode=new GCISMouseMode();}else{if(A==1){this.mouseMode=new GCISMoveMode();}else{if(A==2){this.mouseMode=new GCISSelectMode();}else{if(A==3){this.mouseMode=new GCISGeoportailMode();}else{if(A==4){this.setMouseCursor("crosshair");this.mouseMode=new GCISZoomSelectionMode();}else{this.mouseMode=A;
}}}}}if(this.mouseMode){this.mouseMode.setMap(this);}return ;},showPoint:function(A,G,F,E,B){this.currentX=A/this.precision;this.currentY=G/this.precision;var C=(F!=this.scale);this.setScale(F);var D={};D.mapx=this.currentX;D.mapy=this.currentY;D.imgsrc=E;D.text=" ";if(!B){this.clearObjects();}else{C=false;
}this.addObject(D);this.refresh(C);},setMouseCursor:function(B){var A,C;if(this.objectLayer.div){this.objectLayer.div.style.cursor=B;this.mainDiv.style.cursor=B;this.mapDiv.style.cursor=B;for(C=0;C<this.rasterLayers.length;C++){A=this.rasterLayers[C];A.div.style.cursor=B;}}},setMouseCursorDown:function(A){this.cursorMouseDown=A;
},initMouseMode:function(){if(this.mouseMode){this.mouseMode.setMap(this);this.mapDiv.onmousedown=function(A){if(this.map.cursorMouseDown){this.map.setMouseCursor(this.map.cursorMouseDown);}this.map.mouseMode.mouseDown(A);};this.mapDiv.ondblclick=function(A){this.map.mouseMode.mouseDblClick(A);};this.mainDiv.onmousewheel=function(A){this.map.mouseMode.mouseWheel(A);
};if(this.mainDiv.addEventListener){this.mainDiv.addEventListener("DOMMouseScroll",this.mainDiv.onmousewheel,false);}}},setUserId:function(B){this.userId=B;var A;for(A=0;A<this.layers.length;A++){this.layers[A].setUserId(B);}},getGCISVarName:function(A,C,D){var G=this.mapName;var B=this.server.lastIndexOf("/map");
this.mapServer=this.server.substring(0,B)+"/gcservlet";var F=this.proxyUrl?this.proxyUrl:this.mapServer;if(G.indexOf(".gcm")==-1){G=G+".gcm";}var E="";E+="XgoAnswer=GetVar&XgoGetVarName="+A+"&XgoMapFile="+G;if(!C){C=false;}if(!this.gcisAjax){this.gcisAjax=new GCUI.Ajax();}return this.gcisAjax.request(F,E,C,D);
},getUserId:function(B,D){var A;if(!this.userId&&B){try{A=this.getGCISVarName("XgoUserID");}catch(C){A=this.getCDA("gcis","&V=XgoUserID&C=setUserId");}this.userId=A;}return this.userId;},setAjaxProxyUrl:function(A){this.proxyUrl=A;},createElt:function(A){return document.createElement(A);},getMapDiv:function(){return this.mapDiv;
},getDiv:function(){return this.mainDiv;},calcPixelX:function(B,A){var C=A?A:this.xRatios[this.scale];return Math.round(this.centerX+(B-this.currentX)*C);},calcPixelY:function(A,C){var B=C?C:this.yRatios[this.scale];return Math.round(this.centerY+(A-this.currentY)*B);},calcMapDeltaX:function(B,A){return B+A/this.xRatios[this.scale];
},calcMapDeltaY:function(B,A){return B+A/this.yRatios[this.scale];},getBoundingBox:function(){return[this.calcMapX(0),this.calcMapY(0),this.calcMapX(this.width),this.calcMapY(this.height)];},getCenterX:function(){return this.currentX*this.precision;},getCenterY:function(){return this.currentY*this.precision;
},pixelToMeterX:function(A){return this.calcMapDeltaX(0,A)*this.precision;},pixelToMeterY:function(A){return -this.calcMapDeltaY(0,A)*this.precision;},getLongLat:function(C,B){if(!this.projection){return null;}var F=this.browser.getElementLeft(this.mainDiv);var E=this.browser.getElementTop(this.mainDiv);
var J=C-F;var D=B-E;var K=this.calcMapX(J)*this.precision;var I=this.calcMapY(D)*this.precision;var G=this.projection.inverseProject(K,I,0);var A=radianToDecimalDegree(G[0]);var H=radianToDecimalDegree(G[1]);return[A,H];},centerAnimated:function(E,D){var A=this.calcPixelX(E);var G=this.calcPixelY(D);
var C=A-(this.width/2);var B=G-(this.height/2);var F=Math.sqrt(C*C+B*B);if(F===0){return ;}if(F<2*this.width){this.scroll(-C,-B);}else{this.center(E,D);}},centerOnRect:function(A,H,G,B,I,F){if(I){A/=this.precision;G/=this.precision;H/=this.precision;B/=this.precision;}if(!F){this.currentX=(A+G)/2;this.currentY=(H+B)/2;
}var D=1000000;var C=1000000;if(A!=G){D=(this.width-20)/(G-A);}if(H!=B){C=(this.height-20)/(B-H);}if(D<0){D=-D;}if(C<0){C=-C;}var E;for(E=this.minScale;E<=this.maxScale;E++){if(this.xRatios[E]<=D&&(-this.yRatios[E])<=C){break;}}if(this.scale!=E){this.setScale(E);if(!F){this.refresh(true);}}else{if(!F){this.refresh(false);
}}},ensureVisible:function(E,D,A,I,C,B){var H=this.calcPixelX(E);var G=this.calcPixelY(D);var K=0,J=0;if(!C){C=50;}if(H<0){K=-H+C;}if((H+A)>this.width){K=this.width-H-A-C;}if(G<0){J=-G+C;}if((G+I)>this.height){J=this.height-G-I-C;}var F=Math.sqrt(K*K+J*J);if(F===0){return ;}if(F<2*this.width&&!B){this.scroll(K,J);
}else{this.center(E,D);}},calcDoublePixelX:function(A,B){return(this.centerX+(A-this.currentX)*B);},calcDoublePixelY:function(A,B){return(this.centerY+(A-this.currentY)*B);},setScale:function(D){if(!D){return ;}var A;var C,B;if(D<this.minScale){for(C=0;C<this.scaleEventListeners.length;C++){A=this.scaleEventListeners[C];
if(A.onMinimumScaleChange){A.onMinimumScaleChange(D);}}D=this.minScale;}if(D>this.maxScale){for(C=0;C<this.scaleEventListeners.length;C++){A=this.scaleEventListeners[C];if(A.onMaximumScaleChange){A.onMaximumScaleChange(D);}}D=this.maxScale;}if(D!=this.scale){B=true;for(C=0;C<this.layers.length;C++){this.layers[C].setScale(D);
}}this.scale=D;if(B){for(C=0;C<this.scaleEventListeners.length;C++){A=this.scaleEventListeners[C];if(A.onScaleChange){A.onScaleChange(D);}}}},getScale:function(){return this.scale;},setPhysicalScales:function(A){this.physicalScales=A.split(",");return this.getPhysicalScale();},getPhysicalScales:function(){var A;
try{A=this.getGCISVarName("XgoLogicalScaleListComma");}catch(B){A=this.getCDA("gcis","&V=XgoLogicalScaleListComma&C=setPhysicalScales");}return A;},getPhysicalScale:function(){if(!this.physicalScales){this.physicalScales=this.getPhysicalScales().split(",");}return this.physicalScales[this.scale-1];},animateZoom:function(G,D){var C;
var F;if(!G||(G<this.minScale)){for(F=0;F<this.scaleEventListeners.length;F++){C=this.scaleEventListeners[F];if(C.onMinimumScaleChange){C.onMinimumScaleChange(G);}}return ;}if(G<this.minScale){G=this.minScale;}if(G>this.maxScale){for(F=0;F<this.scaleEventListeners.length;F++){C=this.scaleEventListeners[F];
if(C.onMaximumScaleChange){C.onMaximumScaleChange(G);}}G=this.maxScale;return ;}if(G==this.scale){return ;}var B=this.xRatios[G]/this.xRatios[this.scale];var A=this.yRatios[G]/this.yRatios[this.scale];var E=null;if((B<10&&B>0.1)||D){for(F=0;F<this.layers.length;F++){if(this.layers[F].visible&&this.layers[F].animateZoom){E=this.layers[F];
break;}}if(E){E.animateZoom(B,A,G);}}this.setScale(G);this.refresh(true);},zoom:function(A){if(!A){A=1;}var B=this.scale-A;if(B<this.minScale){B=this.minScale;}if(B>this.maxScale){B=this.maxScale;}this.setScale(B);},startAnimation:function(A,C,B){if(this.animator){this.animator.stop();}this.animator=A;
A.start(this);this.animate(C);},stopAnimation:function(A){if(!this.animator){if(!A){this.endMoveMap();}return ;}this.animator.stop();this.animator=null;if(!A){this.endMoveMap();}},endMoveMap:function(){var A;for(A=0;A<this.layers.length;A++){if(this.layers[A].visible){this.layers[A].endMove();}}var B;
for(A=0;A<this.endmoveEventListeners.length;A++){B=this.endmoveEventListeners[A];if(B.onEndMove){B.onEndMove();}}},animate:function(C){if(!this.animator){return ;}if(!C){C=1;}var A=document.getElementById("debug");if(A){A.innerHTML="";}var B=false;if(this.animator.isFinished()){B=this.animator.dontCallEndMove;
this.animator=null;if(!B){this.endMoveMap();}}else{this.animator.animate();this.window.setTimeout("DynMapAnimate('"+this.id+"','"+C+"');",C);}},moveMap:function(B,A,E){var C;for(C=0;C<this.layers.length;C++){if(this.layers[C].visible){this.layers[C].move(B,A,E);}}var D;for(C=0;C<this.moveEventListeners.length;
C++){D=this.moveEventListeners[C];if(D.onMoveChange){D.onMoveChange(B,A);}}},center:function(C,B,A){if(A){this.currentX=C/this.precision;this.currentY=B/this.precision;}else{this.currentX=C;this.currentY=B;}this.refresh();},centerClick:function(A){var C=this.browser.getXposition(A);var B=this.browser.getYposition(A);
C-=this.browser.getElementLeft(this.mainDiv);B-=this.browser.getElementTop(this.mainDiv);this.centerPixel(C,B);},centerPixel:function(A,F,E){if(!E){E=10;}var C=this.centerX-A;var B=this.centerY-F;var D=new GCUI.MapAnimator.Scroll(C,B,this.animationTime);this.startAnimation(D);},getLayer:function(A){if(!this.layers[A]){return null;
}return this.layers[A];},resetLayers:function(){var B,A;for(B=0;B<this.layers.length;B++){A=this.layers[B];A.init(this);}},createProjection:function(B,C){var A=new GCISProjectionsManager();return A.createProjection(B,C);},setProjection:function(A,B){this.projection=this.createProjection(A,B);},getProjection:function(){return this.projection;
},project:function(A,B,C){if(!this.projection){return null;}return this.projection.project(decimalDegreeToRad(A),decimalDegreeToRad(B),C);},calcMapX:function(A){return(A-this.centerX)/this.xRatios[this.scale]+this.currentX;},calcMapY:function(A){return(A-this.centerY)/this.yRatios[this.scale]+this.currentY;
},getRasterLayerNames:function(){var C=[];var B,A;for(B=0;B<this.rasterLayers.length;B++){A=this.rasterLayers[B];C.push(A.name);}return C;},print:function(D){if(!this.gcisAjax){this.gcisAjax=new GCUI.Ajax();}var A=this.server.lastIndexOf("/map");var B=this.server.substring(0,A)+"/htcservlet/print";if(this.proxyUrl){B=this.proxyUrl;
}var C="data="+this.toJSON();this.gcisAjax.request(B,C,true,D);},getLayersJson:function(A,D){if(!this.gcisAjax){this.gcisAjax=new GCUI.Ajax();}var B=this.server.lastIndexOf("/map");var C=this.server.substring(0,B)+"/HtcLayer/showJson.do";if(this.proxyUrl){C=this.proxyUrl;}var E="type=layers&name="+D;
this.gcisAjax.request(C,E,true,A);},addLayerControl:function(C,B){var A=new GCISLayersControl(this,C,B);},toJSON:function(D){var C='{ "context":{';var F=this.precision;var E=D?D:"png";var G="[["+this.calcMapX(0)*F+","+this.calcMapY(this.height)*F+"],["+this.calcMapX(this.width)*F+","+this.calcMapY(0)*F+"]]";
C+='"center":['+this.currentX*F+","+this.currentY*F;C+='],"size":['+this.height+","+this.width;C+='],"scale":'+this.scale+',"bbox": '+G;C+=',"format": "'+E+'"';if(this.graphicScaleAdded){C+=',"graphicScale":'+this.getLayer("graphicScale").toJSON();}C+='},"layers": [';var B;var A;for(B=0;B<this.rasterLayers.length;
B++){A=this.rasterLayers[B];if(A.isVisible()){C+=A.toJSON(B);if(B!=this.rasterLayers.length-1){C+=",";}}}C+=',{"order":'+B+',"type":"vector","features": [';C+=this.objectLayer.toJSON();if(this.vectorLayers){if(this.objectLayer.objects.length>0){C+=",";}for(B=0;B<this.vectorLayers.length;B++){A=this.vectorLayers[B];
C+=A.toJSON(F);if(B!=this.vectorLayers.length-1){C+=",";}}}return C+"]}]}";},setLayerVisibility:function(A,C){var B=this.layers[A];if(!B){return ;}B.visible=C;B.setVisible(C);},getLayerNumber:function(A){var C=this.getRasterLayerNames();var B;for(B=0;B<C.length;B++){if(C[B]==A){return B;}}},setLayerNumber:function(G,H){if((H<0)||(H>this.rasterLayers.length-1)){return ;
}var B=this.getLayer(G);var E=[];var F,J;for(F=0;F<this.rasterLayers.length;F++){J=this.rasterLayers[F];if(J.name!=G){E.push(J);E[J.name]=J;}}var M=[];var C,K;for(C=0;C<E.length;C++){K=E[C];if(C==H){M.push(B);M[G]=B;}M.push(K);M[K.name]=K;}if(H==E.length){M.push(B);M[G]=B;}this.rasterLayers=M;var D,I,A,L;
for(D=0;D<this.rasterLayers.length;D++){I=this.rasterLayers[D];A=I.isVisible();L=I.getOpacity();this.removeLayer(I.name,I);this.layers.push(I);this.layers[I.name]=I;I.setVisible(A);I.init(this);I.setOpacity(L);}},removeLayer:function(C,E){if(!E){return ;}var A=[];var D,B;for(D=0;D<this.layers.length;
D++){B=this.layers[D];if(B.name!=C){A.push(B);A[B.name]=B;}}E.setVisible(false);E.remove(this);this.layers=A;},clearObjects:function(){this.objectLayer.clearObjects();},clear:function(E,A){var D,C;var B=this.layers;for(D=0;D<B.length;D++){C=B[D];this.removeLayer(C.name,C);}this.layers=[];this.rasterLayers=[];
if(E){this.objectLayer=new GCUI.Layer.ObjectLayer(this);this.addLayer(this.objectLayer);this.sheetLayer=new GCUI.Layer.SheetLayer(this);this.addLayer(this.sheetLayer);}if(A){this.sliderLayer=new GCISSlider();this.addLayer(this.sliderLayer);this.sliderLayer.setMinimumScale(this.minScale);this.sliderLayer.setMaximumScale(this.maxScale);
}},addObject:function(A,B){this.objectLayer.addObject(A,B);},addObjects:function(B,A){this.objectLayer.addObjects(B,A);},setObjects:function(A,C,B){this.objectLayer.clearObjects();this.objectLayer.addObjects(A,C);if(!B){this.refresh();}},moveObjects:function(B,C){var A=this.objectLayer.moveObjects(B,C);
this.sheetLayer.refresh(true);return A;},centerOnObjects:function(){var C,F,E,A;var B=this.objectLayer.objects;var D,G;for(D=0;D<B.length;D++){G=B[D];if(D===0){F=G.mapx;C=F;E=G.mapy;A=E;}else{if(G.mapx<F){F=G.mapx;}if(G.mapx>C){C=G.mapx;}if(G.mapy<E){E=G.mapy;}if(G.mapy>A){A=G.mapy;}}}if(D===0){return ;
}this.centerOnRect(F,E,C,A,false);},showObjectSheet:function(A){if(!A){this.hideObjectSheet();return ;}var C=this.objectLayer.findObject(A);if(!C){return ;}this.ensureVisible(C.mapx,C.mapy,110,50);if(!this.mouseMode.selectMode){this.sheetLayer.showObject(C);}else{if(!C.selected){C.selected=1;C.mainDiv.className="mapobjectselected";
this.sheetLayer.showObject(C);}else{C.selected=0;C.mainDiv.className="mapobject";this.hideObjectSheet();}}var B,D;for(B=0;B<this.objectEventListeners.length;B++){D=this.objectEventListeners[B];if(D.onObjectSheetChange){D.onObjectSheetChange(A);}}},centerOnObject:function(A,B){var C=this.objectLayer.findObject(A);
if(!C){return ;}if(B){this.centerAnimated(C.mapx,C.mapy);}else{this.center(C.mapx,C.mapy);}},scroll:function(B,A,C){this.centerPixel(this.centerX-B,this.centerY-A,C);},addCopyrightLayer:function(A,B){this.copyrightLayer=new GCUI.Layer.CopyrightLayer(this,A,B);this.addLayer(this.copyrightLayer);},getSelection:function(){var B=[];
var A,C;for(A=0;A<this.objectLayer.objects.length;A++){C=this.objectLayer.objects[A];if(C.selected){B.push(C.id);}}return B;},resetSelection:function(){var A,B;for(A=0;A<this.objectLayer.objects.length;A++){B=this.objectLayer.objects[A];if(B.selected){B.selected=0;B.mainDiv.className="mapobject";}}this.hideObjectSheet();
},hideObjectSheet:function(){this.sheetLayer.hide();},addObjectEventListener:function(B,A){this.objectEventListeners.push(A);this.objectEventListeners[B]=A;},addMouseSelectionEventListener:function(A,B){this.mouseSelectionEventListeners.push(B);},removeListener:function(F,A){var D=[];var E=[];var C;if(F=="click"){E=this.mouseSelectionEventListeners;
}var B=E.length;for(C=0;C<B;C++){if(E[C].name!==A){D.push(E[C]);}}if(F=="click"){this.mouseSelectionEventListeners=D;}},getMouseMode:function(){return this.mouseMode;},addMoveEventListener:function(A,B){this.moveEventListeners.push(B);this.moveEventListeners[A]=B;},addEndMoveEventListener:function(A,B){this.endmoveEventListeners.push(B);
this.endmoveEventListeners[A]=B;},addDrawingListener:function(A,B){this.drawingListeners.push(B);this.drawingListeners[A]=B;},removeObject:function(A){this.objectLayer.removeObject(A);}});GCUI.getMap=function(A,C){var B;if(!C){B=document.maps[A];}else{B=C.maps[A];}return B;};GCUI.Map.Version="2.0.0-SNAPSHOT";
GCUI.Ajax=GCUI.Class({initialize:function(){this.transport=this.getTransport();},getTransport:function(){return GCUI.Util.Try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject("Msxml2.XMLHTTP");},function(){return new ActiveXObject("Microsoft.XMLHTTP");})||false;},request:function(B,E,A,D){var C=this.transport;
if(A){C.onreadystatechange=function(){if(C.readyState==4){if(C.status==200){D(C.responseText);}}};}C.open("POST",B,A);C.setRequestHeader("Content-Type","application/x-www-form-urlencoded");C.send(E);if(!A){if(C.status==200){result=C.responseText;return result;}}}});GCUI.MapAnimator={};GCUI.MapAnimator.Scroll=GCUI.Class(GCISAbstractAnimator,{initialize:function(B,A,C){this.dx=B;
this.dy=A;this.curDx=0;this.curDy=0;this.totalTime=C;this.startTime=(new Date()).getTime();this.endTime=this.startTime+C;return this;},start:function(A){this.dynMap=A;this.beginScrollX=A.currentX;this.beginScrollY=A.currentY;},animate:function(){if(this.finished){return ;}var B=(new Date()).getTime();
if(B>this.endTime){this.curDx=this.dx;this.curDy=this.dy;this.stop();return ;}var D=(B-this.startTime)/this.totalTime;if(D>1){D=1;}var C=this.dx*D;var A=this.dy*D;this.dynMap.currentX=this.dynMap.calcMapDeltaX(this.beginScrollX,-C);this.dynMap.currentY=this.dynMap.calcMapDeltaY(this.beginScrollY,-A);
this.dynMap.moveMap(C,A,false);this.curDx=C;this.curDy=A;},stop:function(A){this.finished=true;this.dynMap.moveMap(this.curDx,this.curDy,false);this.dynMap.currentX=this.dynMap.calcMapDeltaX(this.beginScrollX,-this.curDx);this.dynMap.currentY=this.dynMap.calcMapDeltaY(this.beginScrollY,-this.curDy);this.dynMap.moveMap(this.curDx,this.curDy,true);
if(!this.dynMap.noRefreshEndScroll){this.dynMap.refresh();}},isFinished:function(A){return this.finished;}});GCUI.MapAnimator.Zoom=GCUI.Class(GCISAbstractAnimator,{initialize:function(D,B,A,E,C){this.layer=D;this.finished=false;this.totalTime=E;this.startTime=(new Date()).getTime();this.endTime=this.startTime+E;
this.beginScale=D.dynMap.scale;this.ratiox=B;this.ratioy=A;this.newscale=C;return this;},start:function(A){this.dynMap=A;this.layer.zooming=true;this.interpolationMinZoomed=false;this.prepareAnimation();},animate:function(){if(this.finished){this.layer.zooming=false;return ;}var C=(new Date()).getTime();
if(C>this.endTime){this.stop();return ;}var D=(C-this.startTime)/this.totalTime;if(D>1){D=1;}var B=1+(this.ratiox-1)*D;var A=1+(this.ratioy-1)*D;this.zoomAnimation(B,A);},stop:function(B){this.finished=true;this.endAnimation();var A=this.layer;A.zooming=false;if(A.animationVisible){if((A.minscaleZoomed&&A.dynMap.scale<A.minscaleZoomed)||(!A.minscaleZoomed&&A.dynMap.scale<A.minscale)||(A.dynMap.scale>A.maxscale)){A.hideAnimation();
}}this.interpolationZoomAnimed=false;},isFinished:function(){return this.finished;},prepareAnimation:function(){var C=this.layer;if(!C.animImages){return ;}var A=C.images;C.images=C.animImages;C.animImages=A;this.saveIndex=C.div.style.zIndex;C.div.style.zIndex=98;var F,E,D,B;for(F=0;F<C.nbTileX;F++){for(E=0;
E<C.nbTileY;E++){D=C.images[F][E];B=C.animImages[F][E];B.image.style.zIndex=99;B.image.style.backgroundColor="#FFFFFF";D.image.style.zIndex=1;D.image.style.backgroundColor="transparent";C.clearImage(D);}}},endAnimation:function(){this.zoomAnimation(this.ratiox,this.ratioy);this.setAnimationIndex(0);var B=this.layer;
B.div.style.zIndex=this.saveIndex;var C,A;if(this.interpolationZoomAnimed){C=B.dynMap.xRatios[B.dynMap.scale]/B.dynMap.xRatios[B.minscale];A=B.dynMap.yRatios[B.dynMap.scale]/B.dynMap.yRatios[B.minscale];B.imgTileWidth=Math.round(B.tileWidth*C);B.imgTileHeight=Math.round(B.tileHeight*A);if(B.imgTileWidth<B.tileWidth){B.imgTileWidth=B.tileWidth;
}if(B.imgTileHeight<B.tileHeight){B.imgTileHeight=B.tileHeight;}}},zoomAnimation:function(E,D){var H=this.layer;if(!H.images){return ;}var C=H.tileWidth;var I=H.tileHeight;var G,F;if(H.minscaleZoomed&&((H.dynMap.scale<H.minscaleZoomed)||(this.newscale<H.minscaleZoomed))){G=H.dynMap.xRatios[this.newscale]/H.dynMap.xRatios[H.minscale];
F=H.dynMap.yRatios[this.newscale]/H.dynMap.yRatios[H.minscale];H.imgTileWidth=Math.round(H.tileWidth*G);H.imgTileHeight=Math.round(H.tileHeight*F);this.interpolationMinZoomed=true;this.interpolationZoomAnimed=false;H.animationVisible=true;return ;}if(this.interpolationMinZoomed){return ;}if((H.isInterpolated(this.newscale))||(H.isInterpolated(H.dynMap.scale))||this.interpolationZoomAnimed){this.interpolationZoomAnimed=true;
C=H.imgTileWidth;I=H.imgTileHeight;}var B,A,J;for(B=0;B<H.nbTileX;B++){for(A=0;A<H.nbTileY;A++){J=H.animImages[B][A];this.zoomImage(J,E,D,C,I);}}H.animationVisible=true;},zoomImage:function(J,C,B,A,H){var E=this.dynMap.centerX;var D=this.dynMap.centerY;var I=Math.round(E+(J.posx-E)*C);var G=Math.round(D+(J.posy-D)*B);
var F=J.image;F.style.left=I+"px";F.style.top=G+"px";F.style.width=Math.round(A*C+0.5)+"px";F.style.height=Math.round(H*B+0.5)+"px";},setAnimationIndex:function(B){var C=this.layer;var E,D,A;for(E=0;E<C.nbTileX;E++){for(D=0;D<C.nbTileY;D++){A=C.animImages[E][D];A.image.style.zIndex=B;}}}});function DynMapBrowserGetXposition(B,A){return B.browser.getXposition(A);
}function DynMapBrowserGetYposition(B,A){return B.browser.getYposition(A);}function DynMapGetElementLeft(A){return A.browser.getElementLeft(A.mainDiv);}function DynMapGetElementTop(A){return A.browser.getElementTop(A.mainDiv);}function DynMapAddGlobalView(B,J,H,C,L,D,E,K,A,G,I,F){B.addGlobalView(J,H,C,L,D,E,K,A,G,I,F);
}function DynMapGetGlobalView(A){return A.getGlobalView();}function DynMapAddCopyrightLayer(B,A,C){B.addCopyrightLayer(A,C);}function DynMapAddScaleLayer(C,A,E,D,B){C.addScaleLayer(A,E,D,B);}function DynMapAddSliderLayer(C,B,A,D){C.addSliderLayer(B,A,D);}function DynMapAddBaseDivLayer(E,D,F,C,A,B){return new GCISBaseDiv(E,D,F,C,A,B);
}function DynMapBaseDivResize(C,A,B){C.resize(A,B);}function DynMapSetGlobalViewRectSize(C,B,A){C.setRectSize(B,A);}function DynMapSetAutoZoomReduction(B,A){B.setAutoZoomReduction(A);}function DynMapSetGlobalViewTab(A,B){A.tabName=B;}function DynMapSetGlobalViewCrossProperties(D,C,B,A){D.crossWidth=C;
D.crossHeight=B;D.crossLineWidth=A;}function DynMapAddLayerControl(C,B,A){C.addLayerControl(B,A);}function DynMapAddRasterLayer(A,B,G,D,F,J,L,H,C,K,E,I){A.addRasterLayer(B,G,D,F,J,L,H,C,K,E,I);}function DynMapAddDynamicLayer(A,C,B,F,E,H,G,I,D){return A.addDynamicLayer(C,B,F,E,H,G,I,D);}function DynMapAddWMSLayer(A,B,F,C,H,G,D,I,E){A.addWMSLayer(B,F,C,H,G,D,I,E);
}function DynMapAddWMSCLayer(D,A,C,B){D.addWMSCLayer(A,C,B);}function DynMapRemoveRasterLayer(B,A){B.removeRasterLayer(A);}function DynMapLayerRefresh(A,B){A.refresh(B);}function DynMapLayerSetTabName(A,B){A.tabName=B;}function DynMapLayerSetOptions(B,A){B.options=A;}function DynMapSetLayerVisibility(C,A,B){C.setLayerVisibility(A,B);
}function DynMapGetLayerVisibility(A){return A.isVisible();}function DynMapGetRasterLayerNames(A){return A.getRasterLayerNames();}function DynMapGetLayer(B,A){return B.getLayer(A);}function DynMapSetLayerCopyright(A,E,D,C,B){A.setCopyright(E,D,C,B);}function DynMapSetLayerOpacity(B,A){if(!B){return ;
}B.setOpacity(A);}function DynMapGetLayerOpacity(A){return A.getOpacity();}function DynMapAddVectorLayer(B,A){B.addVectorLayer(A);}function DynMapSetLayerNumber(C,A,B){C.setLayerNumber(A,B);}function DynMapGetLayerNumber(B,A){return B.getLayerNumber(A);}function DynMapSetRasterVisibilityRange(D,B,C,A){D.setRasterVisibilityRange(B,C,A);
}function DynMapAddCopyrightImage(B,A){if(B.logoImgs[A]){return ;}else{B.logoImgs[A]=true;B.logos.push(A);}B.refresh();}function DynMapRemoveCopyrightImage(D,A){D.logoImgs[A]=false;var C=0;var B=[];for(C=0;C<D.logos.length;C++){if(D.logos[C]!=A){B.push(D.logos[C]);}}D.logos=B;D.refresh();}function DynMapAddDrawingListener(C,A,B){C.addDrawingListener(A,B);
}function DynMapAddScaleEventListener(C,B,A){C.addScaleEventListener(B,A);}function DynMapAddMoveEventListener(C,A,B){C.addMoveEventListener(A,B);}function DynMapAddEndMoveEventListener(C,A,B){C.addEndMoveEventListener(A,B);}function DynMapAddObjectEventListener(C,A,B){C.addObjectEventListener(A,B);}function DynMapAddMouseSelectionEventListener(C,A,B){C.addMouseSelectionEventListener(A,B);
}function DynMapRemoveListener(C,B,A){C.removeListener(B,A);}function DynMapCreate(B,P,E,H,L,N,M,G,D,J,I,A,O,C,Q,F,K){return new GCUI.Map(E.id,{window:B,currentDoc:P,x:N,y:M,scale:G,server:H,mapName:L,tab:D,ratios:J,precision:I,limits:A,format:O,showSlider:C,tileWidth:Q,tileHeight:F,version:K});}function DynMapGetMap(B,A){if(!B.maps){return null;
}else{return B.maps[A];}}function DynMapMaximize(C,B,D,A){C.maximize(B,D,A);}function DynMapSetMinimumScale(A,B){A.setMinimumScale(B);}function DynMapSetMaximumScale(A,B){A.setMaximumScale(B);}function DynMapRefresh(B,A){B.refresh(A);}function DynMapSetObjects(A,D,C,B){A.setObjects(D,C,B);}function DynMapMoveObjects(A,C,B){return A.moveObjects(C,B);
}function DynMapAddObject(B,A,C){B.addObject(A,C);}function DynMapRemoveObject(B,A){B.removeObject(A);}function DynMapSetMouseMode(A,B){A.setMouseMode(B);}function DynMapGetMouseMode(A){return A.getMouseMode();}function DynMapCenterOnRect(E,B,D,A,C,G,F){E.centerOnRect(B,D,A,C,G,F);}function DynMapCenterOnObjects(A){A.centerOnObjects();
}function DynMapCenterOnObject(C,B,A){C.centerOnObject(B,A);}function DynMapCenter(C,A,D,B){C.center(A,D,B);}function DynMapInitialCenter(A){A.center(A.initialX,A.initialY,true);A.setScale(A.initialScale);}function DynMapCenterClick(B,A){B.centerClick(A);}function DynMapSetScale(B,A){B.setScale(A);}function DynMapSetSize(C,A,B){C.setSize(A,B);
}function DynMapGetWidth(A){return A.width;}function DynMapGetHeight(A){return A.height;}function DynMapResize(A){A.resize();}function DynMapShowObjectSheet(B,A){B.showObjectSheet(A);}function DynMapSetObjectSheetVisibility(C,A,B){C.objectLayer.setNameDivVisibilityRange(A,B);}function DynMapGetBoundingBox(A){return[A.calcMapX(0),A.calcMapY(0),A.calcMapX(A.width),A.calcMapY(A.height)];
}function DynMapShowPoint(D,A,F,E,B,C){D.showPoint(A,F,E,B,C);}function DynMapSetMouseCursor(B,A){B.cursorMouse=A;B.setMouseCursor(A);}function DynMapSetMouseCursorDown(B,A){B.setMouseCursorDown(A);}function DynMapGetPhysicalScale(A){return A.getPhysicalScale();}function DynMapResetSelection(A){A.resetSelection();
}function DynMapGetSelection(A){return A.getSelection();}function DynMapPixelToMapX(B,A){var C=A-B.browser.getElementLeft(B.mainDiv);return B.calcMapX(C);}function DynMapPixelToMapY(C,A){var B=A-C.browser.getElementTop(C.mainDiv);return C.calcMapY(B);}function DynMapCalcPixelX(B,A){return B.calcPixelX(A);
}function DynMapCalcMapX(B,A){return B.calcMapX(A);}function DynMapCalcPixelY(A,B){return A.calcPixelY(B);}function DynMapCalcMapY(B,A){return B.calcMapY(A);}function DynMapGetDistanceX(A,B){return A.calcMapDeltaX(0,B)*A.precision;}function DynMapGetDistanceY(B,A){return -B.calcMapDeltaY(0,A)*B.precision;
}function DynMapSetUserId(B,A){B.setUserId(A);}function DynMapGetUserId(B,A){return B.getUserId(A);}function DynMapAnimateZoom(B,C,A){B.animateZoom(C,A);}function DynMapGetCenterX(A){return A.currentX*A.precision;}function DynMapGetCenterY(A){return A.currentY*A.precision;}function DynMapGetPrecision(A){return A.precision;
}function DynMapGetScale(A){return A.getScale();}function DynMapAnimate(A,C){var B=DynMapGetMap(document,A);B.animate(C);}function DynMapBackground(A){DynMapGetMap(document,A).doBackground();}function DynMapEnsureVisible(G,D,C,E,B,F,A){G.ensureVisible(D,C,E,B,F,A);}function DynMapCreateProjection(C,B,A){return C.createProjection(B,A);
}function DynMapSetProjection(C,B,A){C.setProjection(B,A);}function DynMapGetProjection(A){return A.getProjection();}function DynMapClear(C,B,A){return C.clear(B,A);}function DynMapReInitLayers(A){return A.resetLayers();}function DynMapGetLongLat(C,B,A){return C.getLongLat(B,A);}function DynMapProject(D,A,B,C){return D.project(A,B,C);
}function DynMapFormatDegrees(C,D){var F=Math.floor(Math.abs(C));var B=Math.floor(60*(Math.abs(C)-F));var E=Math.round(60*(60*(Math.abs(C)-F)-B));if(E===60){E=0;B=B+1;}if(B===60){B=0;F=F+1;}var A=(C>0?D[0]:D[1]);return F+"&deg; "+B+"' "+E+"'' "+A;}function DynMapDMStoDegrees(E,C,F,D,A){var B=E+C/60+F/3600;
if(D==A[0]||D==A[1]){B=-B;}return B;}function DynMapSetObjectDragMode(B,A){B.objectLayer.setDragMode(A);}function DynMapSetModifyMap(E,A,G,F,D,B,C){E.modifyMap(A,G,F,D,B,C);}function DynMapAvoidRefreshOnEndScroll(B,A){B.noRefreshEndScroll=A;}function DynMapSetAjaxProxyUrl(B,A){B.setAjaxProxyUrl(A);}function DynMapToJSON(B,A){return B.toJSON(A);
}function DynMapGetLayersJson(C,A,B){return C.getLayersJson(A,B);}function DynMapCreateMode(E,C,D,A,B){return new GCISCreateMode(E,C,D,A,B);}function DynMapCreateSelectionMode(F,C,E,A,B,D,G){return new GCISDrawMode(F,C,E,A,B,D,G);}function DynMapDistanceMode(E,F,B,D,C,G,A){return new GCISDistanceMode(E,F,B,D,C,G,A);
}function DynMapMoveMode(){return new GCISMoveMode();}function DynMapMoveSelectionMode(){return new GCISMoveSelectionMode();}function DynMapCreateUnZoomMode(){return new GCISUnZoomSelectionMode();}function DynMapCreateObject(K,I,B,A,L,J,G,D,C,F,E){var H={};H.id=B;H.mapx=K;H.mapy=I;H.name=A;H.text=L;H.deltaX=-J;
H.deltaY=-G;H.imgsrc=D;H.innerHTML=C;H.type=F;H.objnamecss=E;return H;}function dynMapCreateObjectStyle(E,A,J,B,K,I,H,L,F,G,D,C){return new GCISObjectStyle(E,A,J,B,K,I,H,L,F,G,D,C);}function dynMapCreateObjectType(A,B){return new GCISObjectType(A,B);}function DynMapSetObjectNameBackgroundColor(B,A){B.nameBackgroundColor=A;
}function DynMapSetObjectVisibilityRange(C,A,B){C.visMinScale=A;C.visMaxScale=B;}function DynMapSetObjectNameCss(B,C,A){return B.objectLayer.setObjectNameCss(C,A);}function DynMapSetObjectDivCss(B,C,A){return B.objectLayer.setObjectDivCss(C,A);}function DynMapGetNumObject(A,B){return A.objectLayer.getNumObject(B);
}function DynMapGetObjectXY(A,C,B){return A.objectLayer.getObjectXY(C,B);}function DynMapHideObjectSheet(A){A.hideObjectSheet();}function DynMapGetObjects(A){return A.objectLayer.objects;}function DynMapGetObject(B,A){return B.objectLayer.findObject(A);}function DynMapActivateObjectMultiLabels(B){var A=B.objectLayer;
A.multiLabels=true;A.nbObjsInPosXY=[];A.deltaPosNameX=[0,0,0,-1,-2,-2,-2,-1];A.deltaPosNameY=[22,5,-12,-12,-12,5,22,22];}function DynMapLayerGetZindex(A){return A.getZindex();}function DynMapLayerSetZindex(B,A){B.setZindex(A);}function DynMapLayerGetElement(B,A){return B.getElement(A);}function DynMapLayerGetNumberElements(A){return A.elements.length;
}function DynMapLayerDeleteAllElements(A){return A.deleteAllElements();}function DynMapLayerDeleteElement(B,A){return B.deleteElement(A);}function DynMapDeleteVectorElement(A,B){return A.removeElement(B);}function DynMapGetVectorElement(A,B){return A.getElementById(B);}function DynMapLayerCreateLine(D,G,F,B,C,E,A){return D.createLine(G,F,B,C,E,A);
}function DynMapLayerCreatePoint(D,A,G,F,B,C,E){return D.createPoint(A,G,F,B,C,E);}function DynMapLayerCreatePolygon(F,I,H,B,G,C,D,E,A){return F.createPolygon(I,H,B,G,C,D,E,A);}function DynMapLayerCreateCircle(E,K,J,G,H,B,A,L,C,D,F,M,I){return E.createCircle(K,J,G,H,B,A,L,C,D,F,M,I);}function DynMapLayerCreateRectangle(E,G,F,A,J,B,I,C,D,K,H){return E.createRect(G,F,A,J,B,I,C,D,K,H);
}function DynMapLayerAddElement(A,B){return A.addElement(B);}function DynMapElementGetPointsX(A){return A.getPointsX();}function DynMapElementGetPointsY(A){return A.getPointsY();}function DynMapElementGetId(A){return A.getId();}function DynMapElementGetWkt(B,A){return B.getWkt(A);}function DynMapElementSetWkt(B,A){return B.setWkt(A);
}function DynMapElementSetWidth(B,A){B.setWidth(A);}function DynMapElementSetOpacity(A,B){A.setOpacity(B);}function DynMapElementGetOpacity(A){return A.getOpacity();}function DynMapElementContainsPoint(C,A,D,B){return C.containsPoint(A,D,B);}function DynMapElementDeleteLastPoint(A){A.deleteLastPoint();
}function DynMapElementGetRadius(A){return A.getRadius();}function DynMapCircleSetCenter(B,A,C){B.xPoints[0]=A;B.yPoints[0]=C;}function DynMapCircleSetRadius(B,A){B.radius=A;}function DynMapLayerZoomOnElement(A,B){A.zoomOnElement(B);}function DynMapLineSwapPoints(A,B,C,E,D){return A.swapPoints(B,C,E,D);
}if(!window.Event){var Event={};}var Position={includeScrollOffsets:false,cumulativeOffset:function(B){var A=0,C=0;do{A+=B.offsetTop||0;C+=B.offsetLeft||0;B=B.offsetParent;}while(B);return[C,A];}};function Slider(C,A,B){this.handle=C;this.track=A;this.axis=B||"horizontal";this.handle.className="handle_"+this.axis;
this.track.className="track_"+this.axis;this.increment=1;this.step=1;this.range={start:0,end:100};this.value=0;this.maximum=this.range.end;this.minimum=this.range.start;this.alignX=0;this.alignY=0;this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?this.handle.offsetHeight:this.handle.offsetWidth;
this.eventMouseDown=GCUI.Function.bindAsEvent(this.startDrag,this);this.eventMouseUp=GCUI.Function.bindAsEvent(this.endDrag,this);this.eventMouseMove=GCUI.Function.bindAsEvent(this.update,this);this.setValue(parseFloat(this.range.start),0);this.handle.style.position="relative";Event.observe(this.handle,"mousedown",this.eventMouseDown);
Event.observe(this.track,"mousedown",this.eventMouseDown);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);this.initialized=true;}Slider.prototype.setMinimum=function(A){this.range.start=A;this.minimum=this.range.start;if(A>this.value){this.setValue(A);
}if(A>this.range.end){this.setMaximum(A);}};Slider.prototype.setMaximum=function(A){this.range.end=A;this.maximum=this.range.end;if(A<this.value){this.setValue(A);}if(A<this.range.start){this.setMinimum(A);}};Slider.prototype.getValue=function(){return parseInt(this.value,10);};Slider.prototype.getNearestValue=function(B){var D,C,A;
if(this.allowedValues){if(B>=this.allowedValues.max()){return(this.allowedValues.max());}if(B<=this.allowedValues.min()){return(this.allowedValues.min());}D=Math.abs(this.allowedValues[0]-B);C=this.allowedValues[0];this.allowedValues.each(function(E){A=Math.abs(E-B);if(A<=D){C=E;D=A;}});return C;}if(B>this.range.end){return this.range.end;
}if(B<this.range.start){return this.range.start;}return B;};Slider.prototype.setValue=function(B,A){if(!this.active){this.activeHandle=this.handle;this.activeHandleIdx=A;this.updateStyles();}A=A||this.activeHandleIdx||0;B=this.getNearestValue(B);this.value=B;this.handle.style[this.isVertical()?"top":"left"]=this.translateToPx(B);
this.drawSpans();if(!this.dragging||!this.event){this.updateFinished();}};Slider.prototype.translateToPx=function(A){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(A-this.range.start))+"px";};Slider.prototype.translateToValue=function(A){return((A/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start);
};Slider.prototype.minimumOffset=function(){return(this.isVertical()?this.alignY:this.alignX);};Slider.prototype.maximumOffset=function(){return(this.isVertical()?this.track.offsetHeight-this.alignY:this.track.offsetWidth-this.alignX);};Slider.prototype.isVertical=function(){return(this.axis=="vertical");
};Slider.prototype.drawSpans=function(){};Slider.prototype.updateStyles=function(){};Slider.prototype.startDrag=function(B){var C,D,A;if(Event.isLeftClick(B)){if(!this.disabled){this.active=true;C=Event.element(B);D=[Event.pointerX(B),Event.pointerY(B)];if(C==this.track){A=Position.cumulativeOffset(this.track);
this.event=B;this.setValue(this.translateToValue((this.isVertical()?D[1]-A[1]:D[0]-A[0])-(this.handleLength/2)));A=Position.cumulativeOffset(this.activeHandle);this.offsetX=(D[0]-A[0]);this.offsetY=(D[1]-A[1]);}else{this.activeHandle=C;this.activeHandleIdx=0;this.updateStyles();A=Position.cumulativeOffset(this.activeHandle);
this.offsetX=(D[0]-A[0]);this.offsetY=(D[1]-A[1]);}}Event.stop(B);}};Slider.prototype.update=function(A){if(this.active){if(!this.dragging){this.dragging=true;}this.draw(A);if(navigator.appVersion.indexOf("AppleWebKit")>0){window.scrollBy(0,0);}Event.stop(A);}};Slider.prototype.draw=function(B){var C=[Event.pointerX(B),Event.pointerY(B)];
var A=Position.cumulativeOffset(this.track);C[0]-=this.offsetX+A[0];C[1]-=this.offsetY+A[1];this.event=B;this.setValue(this.translateToValue(this.isVertical()?C[1]:C[0]));};Slider.prototype.endDrag=function(A){if(this.active&&this.dragging){this.finishDrag(A,true);Event.stop(A);}this.active=false;this.dragging=false;
if(typeof this.onrelease=="function"){this.onrelease();}};Slider.prototype.finishDrag=function(A,B){this.active=false;this.dragging=false;this.updateFinished();};Slider.prototype.updateFinished=function(){if(this.onChange){this.onChange(this.getValue(),this);}this.event=null;};function SliderSetMinimum(B,A){B.setMinimum(A);
}function SliderSetMaximum(B,A){B.setMaximum(A);}function SliderSetOnRelease(B,A){B.onrelease=A;}function SliderSetDrawSpans(B,A){B.drawSpans=A;}function SliderGetValue(A){return A.getValue();}function SliderSetValue(A,B){return A.setValue(B);}function getElmts(){var C=[];var B;for(var A=0;A<arguments.length;
A++){B=arguments[A];if(typeof B=="string"){B=document.getElementById(B);}if(arguments.length==1){return B;}C.push(B);}return C;}GCUI.Object.extend(Event,{element:function(A){return A.target||A.srcElement;},isLeftClick:function(A){return(((A.which)&&(A.which==1))||((A.button)&&(A.button==1)));},pointerX:function(A){return A.pageX||(A.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));
},pointerY:function(A){return A.pageY||(A.clientY+(document.documentElement.scrollTop||document.body.scrollTop));},stop:function(A){if(A.preventDefault){A.preventDefault();A.stopPropagation();}else{A.returnValue=false;A.cancelBubble=true;}},observers:false,_observeAndCache:function(D,C,B,A){if(!this.observers){this.observers=[];
}if(D.addEventListener){this.observers.push([D,C,B,A]);D.addEventListener(C,B,A);}else{if(D.attachEvent){this.observers.push([D,C,B,A]);D.attachEvent("on"+C,B);}}},unloadCache:function(){if(!Event.observers){return ;}for(var A=0;A<Event.observers.length;A++){Event.stopObserving.apply(this,Event.observers[A]);
Event.observers[A][0]=null;}Event.observers=false;},observe:function(D,C,B,A){var D=getElmts(D);A=A||false;if(C=="keypress"&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||D.attachEvent)){C="keydown";}this._observeAndCache(D,C,B,A);},stopObserving:function(D,C,B,A){var D=getElmts(D);A=A||false;
if(C=="keypress"&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||D.detachEvent)){C="keydown";}if(D.removeEventListener){D.removeEventListener(C,B,A);}else{if(D.detachEvent){D.detachEvent("on"+C,B);}}}});if(navigator.appVersion.match(/\bMSIE\b/)){Event.observe(window,"unload",Event.unloadCache,false);
}if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){Position.cumulativeOffset=function(B){var A=0,C=0;do{A+=B.offsetTop||0;C+=B.offsetLeft||0;if(B.offsetParent==document.body){if(B.style.position=="absolute"){break;}}B=B.offsetParent;}while(B);return[C,A];};}function GCISBaseDiv(E,D,F,C,A,B){this.dynMap=E;
this.classname=D;this.width=C;this.height=A;this.initialw=C;this.initialh=A;this.innerHtml=B;this.id=F;this.name="baseDivLayer";this.isOnTheMap=true;this.dynMap.addLayer(this);}GCISBaseDiv.prototype=new GCISAbstractLayer();GCISBaseDiv.prototype.init=function(A){this.dynMap=A;var B=this.dynMap.createElt("div");
B.className=this.classname;B.id=this.id;this.dynMap.getDiv().appendChild(B);this.div=B;this.div.innerHTML=this.innerHtml;this.div.style.width=this.width+"px";this.div.style.height=this.height+"px";this.divIco=this.dynMap.createElt("div");this.divIco.className="mapbasedivico";this.div.appendChild(this.divIco);
this.divIco.basediv=this;this.divIco.onclick=this.animateView;};GCISBaseDiv.prototype.animateView=function(){var A=new GCISBaseDivAnimator(this.basediv,800);this.basediv.dynMap.startAnimation(A);};GCISBaseDiv.prototype.resize=function(A,B){this.width=A;this.height=B;this.initialw=A;this.initialh=B;this.div.style.width=this.width+"px";
this.div.style.height=this.height+"px";this.refresh(true);};GCISBaseDiv.prototype.refresh=function(G){var F,E,B,A,D,C;if(G){F=this.dynMap.browser.getDocumentHeight();E=this.dynMap.browser.getElementTop(this.dynMap.mainDiv);B=this.dynMap.browser.getDocumentWidth();A=this.dynMap.browser.getElementLeft(this.dynMap.mainDiv);
D=this.dynMap.marginright?this.dynMap.marginright:0;C=this.dynMap.marginbottom?this.dynMap.marginbottom:0;this.div.style.left=(B-A-this.width-D)+"px";this.div.style.top=(F-E-this.height-C)+"px";}};function GCISBaseDivAnimator(B,A){this.basediv=B;this.totalTime=A;this.startTime=(new Date()).getTime();
this.endTime=this.startTime+A;return this;}GCISBaseDivAnimator.prototype=new GCISAbstractAnimator();GCISBaseDivAnimator.prototype.start=function(A){};GCISBaseDivAnimator.prototype.animate=function(){if(this.finished){return ;}var C=(new Date()).getTime();if(C>this.endTime||this.basediv.width<0||this.basediv.width>this.basediv.initialw||this.basediv.height<0||this.basediv.height>this.basediv.initialh){this.stop();
return ;}var D=(C-this.startTime)/this.totalTime;if(D>1){D=1;}var B=this.basediv.initialw*D;var A=this.basediv.initialh*D;if(this.basediv.visible){this.basediv.width=(this.basediv.width-B);this.basediv.height=(this.basediv.height-A);if(this.basediv.isOnTheMap){this.basediv.refresh(true);}if(this.basediv.width>0&&this.basediv.height>0){this.basediv.div.style.width=this.basediv.width+"px";
this.basediv.div.style.height=this.basediv.height+"px";}}else{this.basediv.width=(this.basediv.width+B);this.basediv.height=(this.basediv.height+A);if(this.basediv.isOnTheMap){this.basediv.refresh(true);}if(this.basediv.width<this.basediv.initialw&&this.basediv.height<this.basediv.initialh){this.basediv.div.style.width=this.basediv.width+"px";
this.basediv.div.style.height=this.basediv.height+"px";}}};GCISBaseDivAnimator.prototype.stop=function(A){this.finished=true;if(this.basediv.visible){this.basediv.visible=false;this.basediv.width=parseInt(this.basediv.divIco.clientWidth,10);this.basediv.height=parseInt(this.basediv.divIco.clientHeight,10);
this.basediv.div.style.width=this.basediv.divIco.clientWidth+"px";this.basediv.div.style.height=this.basediv.divIco.clientHeight+"px";this.basediv.divIco.className="mapbasedivico2";}else{this.basediv.visible=true;this.basediv.width=parseInt(this.basediv.initialw,10);this.basediv.height=parseInt(this.basediv.initialh,10);
this.basediv.div.style.width=this.basediv.initialw+"px";this.basediv.div.style.height=this.basediv.initialh+"px";this.basediv.divIco.className="mapbasedivico";this.basediv.refresh(true);}if(this.basediv.isOnTheMap){this.basediv.refresh(true);}};GCISBaseDivAnimator.prototype.isFinished=function(A){return this.finished;
};function GCISGlobalView(H,J,I,C,M,E,F,L,B,A,K,D){this.dynMap=H;this.initialx=J;this.initialy=I;this.posx=J;this.posy=I;this.initialw=C;this.initialh=M;this.width=C;this.height=M;this.mapName=E;this.tabName=F;this.format=L;this.visible=true;if(L!="png"&&L!="jpg"&&L!="png24"){this.format="png";}this.server=this.dynMap.server;
this.minscale=H.minScale;this.maxscale=H.nbScales;this.isOnTheMap=true;if(B){this.div=B;this.div.style.width=this.width+"px";this.div.style.height=this.height+"px";this.isOnTheMap=false;}this.zooms=[];this.scales=[];var G;for(G=0;G<this.dynMap.nbScales-1;G++){this.zooms[G]=1;this.scales[G]=this.dynMap.nbScales-1;
}if(A){this.zooms=A;this.zoomsFixed=true;}if(K){this.scales=K;}this.isFixed=D;this.autoZoomReduction=true;this.sizeProportion=60/100;this.margins=[8,-2,-1,7];if(this.isFixed){this.sizeProportion=1;this.initCenterX=this.dynMap.limits[0]+(this.dynMap.limits[1]-this.dynMap.limits[0])/2;this.initCenterY=this.dynMap.limits[2]+(this.dynMap.limits[3]-this.dynMap.limits[2])/2;
this.autoZoomReduction=false;}this.crossWidth=10;this.crossHeight=10;this.crossLineWidth=2;}GCISGlobalView.prototype=new GCISAbstractLayer();GCISGlobalView.prototype.calcMapTileWidth=function(){return this.tileWidth/(this.dynMap.xRatios[(this.scales[this.dynMap.scale-1])]);};GCISGlobalView.prototype.calcMapTileHeight=function(){return -this.tileHeight/(this.dynMap.yRatios[(this.scales[this.dynMap.scale-1])]);
};GCISGlobalView.prototype.calcNumTileX=function(A){return Math.floor(A/this.calcMapTileWidth());};GCISGlobalView.prototype.calcNumTileY=function(A){return Math.floor(A/this.calcMapTileHeight());};GCISGlobalView.prototype.calcMapDeltaX=function(B,A){return B+A/this.dynMap.xRatios[(this.scales[this.dynMap.scale-1])];
};GCISGlobalView.prototype.calcMapDeltaY=function(B,A){return B+A/this.dynMap.yRatios[(this.scales[this.dynMap.scale-1])];};GCISGlobalView.prototype.pan=function(A){var B=this.globalview.pandiv;B.beginDragCursorX=this.globalview.dynMap.browser.getXposition(A);B.beginDragCursorY=this.globalview.dynMap.browser.getYposition(A);
B.beginDragX=this.globalview.dynMap.currentX;B.beginDragY=this.globalview.dynMap.currentY;B.tmpX=B.beginDragCursorX;B.tmpY=B.beginDragCursorY;B.diffX=0;B.diffY=0;this.globalview.dynMap.currentDoc.globalview=this.globalview;if(this.globalview.dynMap.currentDoc.onmousemove){this.globalview.documentOnMouseMove=this.globalview.dynMap.currentDoc.onmousemove;
}if(this.globalview.dynMap.currentDoc.onmouseup){this.globalview.documentOnMouseUp=this.globalview.dynMap.currentDoc.onmouseup;}this.globalview.dynMap.currentDoc.onmousemove=function(C){this.globalview.panning=true;var K=this.globalview.dynMap.browser;var P=K.getXposition(C);var F=K.getYposition(C);var R=P-B.tmpX;
var Q=F-B.tmpY;var G=K.getElementLeft(this.globalview.div);var D=K.getElementTop(this.globalview.div);B.style.top=(parseInt(B.style.top,10)+Q)+"px";B.style.left=(parseInt(B.style.left,10)+R)+"px";B.tmpX=K.getXposition(C);B.tmpY=K.getYposition(C);var O=G+parseInt(this.globalview.width,10)-K.getElementLeft(B)+R-parseInt(B.style.width,10);
var M=K.getElementLeft(B)+parseInt(B.style.left,10)+R-G+parseInt(this.globalview.minidiv.style.left,10);var N=D+parseInt(this.globalview.height,10)-K.getElementTop(B)-parseInt(B.style.height,10);var I=K.getElementTop(B)+parseInt(B.style.top,10)-D+parseInt(this.globalview.minidiv.style.top,10);var L=this.globalview.margins[0];
var H=this.globalview.margins[1];var E=this.globalview.margins[2];var J=this.globalview.margins[3];if(!this.globalview.isFixed){if(O<L){B.style.left=(parseInt(B.style.left,10)-R-1)+"px";B.diffX=B.diffX-R-1;}if(M<H){B.style.left=(parseInt(B.style.left,10)-R+1)+"px";B.diffX=B.diffX-R+1;}if(I<E){B.style.top=(parseInt(B.style.top,10)-Q+1)+"px";
B.diffY=B.diffY-Q+1;}if(N<J){B.style.top=(parseInt(B.style.top,10)-Q-1)+"px";B.diffY=B.diffY-Q-1;}}if((O<L)||(M<H)||(N<J)||(I<E)){if(!this.miniscrolling&&!this.globalview.isFixed){this.miniscrolling=true;this.globalview.dynMap.currentX=this.globalview.calcMapDeltaX(B.beginDragX,-R/this.globalview.zooms[this.globalview.dynMap.scale-1]);
this.globalview.dynMap.currentY=this.globalview.calcMapDeltaY(B.beginDragY,-Q/this.globalview.zooms[this.globalview.dynMap.scale-1]);this.globalview.animateScroll(-R,-Q);}}else{this.miniscrolling=false;B.beginDragX=this.globalview.dynMap.currentX;B.beginDragY=this.globalview.dynMap.currentY;}if(!this.miniscrolling){this.globalview.dynMap.stopAnimation(true);
}K.cancelEvent(C);};this.globalview.dynMap.currentDoc.onmouseup=function(G){var E=B.tmpX-B.beginDragCursorX+B.diffX;var D=B.tmpY-B.beginDragCursorY+B.diffY;B.beginDragX=this.globalview.dynMap.currentX;B.beginDragY=this.globalview.dynMap.currentY;this.globalview.panning=false;var F=this.globalview.dynMap.browser.getElementLeft(this.globalview.div);
var C=this.globalview.dynMap.browser.getElementTop(this.globalview.div);if((B.tmpX>=F)&&(B.tmpX<=(F+parseInt(this.globalview.div.style.width,10)))&&(B.tmpY>=C)&&(B.tmpY<=(C+parseInt(this.globalview.div.style.height,10)))){this.globalview.cancelclick=true;}else{this.globalview.cancelclick=false;}this.globalview.dynMap.stopAnimation(true);
this.globalview.dynMap.center(this.globalview.calcMapDeltaX(this.globalview.pandiv.beginDragX,E/this.globalview.zooms[this.globalview.dynMap.scale-1]),this.globalview.calcMapDeltaY(this.globalview.pandiv.beginDragY,D/this.globalview.zooms[this.globalview.dynMap.scale-1]));this.onmousemove=null;this.onmouseup=null;
this.globalview.dynMap.browser.cancelEvent(G);if(this.globalview.documentOnMouseMove){this.onmousemove=this.globalview.documentOnMouseMove;this.globalview.documentOnMouseMove=null;}if(this.globalview.documentOnMouseUp){this.onmouseup=this.globalview.documentOnMouseUp;this.globalview.documentOnMouseUp=null;
}this.globalview.dynMap.endMoveMap();this.globalview=null;};};GCISGlobalView.prototype.init=function(A){if(this.created){return ;}this.dynMap=A;var B;if(this.isOnTheMap){B=this.dynMap.createElt("div");B.className="mapglobalview";B.style.width=this.width+"px";B.style.height=this.height+"px";this.dynMap.getDiv().appendChild(B);
this.div=B;this.calcGlobalViewPositions();}this.visible=true;this.create();this.minidiv.className="minidiv";this.minidiv.style.position="absolute";this.minidiv.style.width=this.width+"px";this.minidiv.style.height=this.height+"px";this.minidiv.globalview=this;this.minidiv.onclick=function(C){if(this.globalview.cancelclick){this.globalview.cancelclick=false;
return ;}this.beginDragX=this.globalview.initCenterX?this.globalview.initCenterX:this.globalview.dynMap.currentX;this.beginDragY=this.globalview.initCenterY?this.globalview.initCenterY:this.globalview.dynMap.currentY;var I=this.globalview.dynMap.browser.getXposition(C);var F=this.globalview.dynMap.browser.getYposition(C);
var G=this.globalview.dynMap.browser.getElementLeft(this.globalview.div);var D=this.globalview.dynMap.browser.getElementTop(this.globalview.div);var H=G+this.globalview.width/2;var E=D+this.globalview.height/2;var K=I-H;var J=F-E;this.globalview.dynMap.center(this.globalview.calcMapDeltaX(this.beginDragX,K/this.globalview.zooms[this.globalview.dynMap.scale-1]),this.globalview.calcMapDeltaY(this.beginDragY,J/this.globalview.zooms[this.globalview.dynMap.scale-1]));
this.globalview.dynMap.endMoveMap();this.globalview.dynMap.browser.cancelEvent(C);};this.div.appendChild(this.minidiv);this.pandiv=this.dynMap.createElt("div");this.pandiv.className="pandiv";this.pandiv.style.position="absolute";this.crossdivH=this.dynMap.createElt("div");this.crossdivH.className="crossdivHorizontal";
this.crossdivH.style.position="absolute";this.crossdivH.style.width=this.crossWidth+"px";this.crossdivH.style.height=this.crossLineWidth+"px";this.crossdivV=this.dynMap.createElt("div");this.crossdivV.className="crossdivVertical";this.crossdivV.style.position="absolute";this.crossdivV.style.width=this.crossLineWidth+"px";
this.crossdivV.style.height=this.crossHeight+"px";this.resizeRect();this.pandiv.globalview=this;this.pandiv.onmousedown=this.pan;this.minidiv.appendChild(this.pandiv);this.minidiv.appendChild(this.crossdivH);this.minidiv.appendChild(this.crossdivV);this.divIco=this.dynMap.createElt("div");this.divIco.className="mapglobalviewico";
this.div.appendChild(this.divIco);this.divIco.dynMap=this.dynMap;this.divIco.globalView=this;this.divIco.onclick=this.animateView;};GCISGlobalView.prototype.remove=function(A){if(this.isOnTheMap){this.div.parentNode.removeChild(this.div);}else{this.clear();}};GCISGlobalView.prototype.clear=function(){this.div.removeChild(this.minidiv);
this.div.removeChild(this.divIco);};GCISGlobalView.prototype.animateView=function(){var A=new GCISGlobalViewAnimator(this.globalView,800);this.dynMap.startAnimation(A,null,true);};GCISGlobalView.prototype.animateScroll=function(B,A){var D=10;var C=new GCISGlobalViewScrollAnimator(this,D*B,D*A);this.dynMap.startAnimation(C,1000,true);
};GCISGlobalView.prototype.calcGlobalViewPositions=function(){var C=this.dynMap.browser;var G=C.getDocumentHeight();var F=C.getElementTop(this.dynMap.mainDiv);var B=C.getDocumentWidth();var A=C.getElementLeft(this.dynMap.mainDiv);var E=this.dynMap.marginright?this.dynMap.marginright:10;var D=this.dynMap.marginbottom?this.dynMap.marginbottom:0;
if(this.initialx<0){this.posx=B-A+this.initialx-this.width-E+1;}if(this.initialy<0){this.posy=G-F+this.initialy-this.height-D+1;}this.div.style.left=this.posx+"px";this.div.style.top=this.posy+"px";};GCISGlobalView.prototype.move=function(B,A,C){if(this.isFixed){this.positionRect();}else{this.refresh();
}};GCISGlobalView.prototype.create=function(){this.minidiv=this.dynMap.createElt("div");this.minidiv.innerHTML="";this.tileWidth=this.dynMap.tileWidth;this.tileHeight=this.dynMap.tileHeight;this.marginX=200;this.marginY=200;var A=this.dynMap.width+2*this.marginX;var B=this.dynMap.height+2*this.marginY;
var D=Math.floor(A/this.tileWidth)+2;var C=Math.floor(B/this.tileHeight)+2;var G;var F;this.images=[];this.animImages=[];this.nbTileX=D;this.nbTileY=C;var E=true;for(G=0;G<this.nbTileX;G++){this.images[G]=[];this.animImages[G]=[];for(F=0;F<this.nbTileY;F++){this.images[G][F]=this.createImage(this.minidiv,0);
if(E){this.images[G][F].image.className="tile";}}}this.created=true;};GCISGlobalView.prototype.createImage=function(D,C){var B=this.dynMap.createElt("img");B.style.width=Math.round(this.tileWidth*this.zooms[this.dynMap.scale-1]+0.5)+"px";B.style.height=Math.round(this.tileHeight*this.zooms[this.dynMap.scale-1]+0.5)+"px";
B.style.visibility="hidden";B.style.position="absolute";B.style.left="-500px";B.style.zIndex=C;B.style.border="0";B.galleryImg=false;B.src=this.dynMap.defaultImg;D.appendChild(B);var A={nosrc:true,image:B,visible:false};return A;};GCISGlobalView.prototype.calcLimits=function(){var A=this.dynMap.limits;
var C=this.calcNumTileX(A[0]);var B=this.calcNumTileX(A[1]);var E=this.calcNumTileY(A[2]);var D=this.calcNumTileY(A[3]);this.tileLimits=[C,B+1,E,D+1];};GCISGlobalView.prototype.isVisible=function(){return this.visible;};GCISGlobalView.prototype.calcTileSrc=function(A){var C=this.server;var B=this.format;
if(!B){B="png8";}C+="/"+this.mapName;C+="_";C+="_"+this.tabName;C+="_"+B;if(this.transparentColor){C+="t";}C+="/"+this.dynMap.tileWidth;C+="_"+this.dynMap.tileHeight;C+="_"+this.scales[this.dynMap.scale-1];C+="/"+A.mapTileX;C+="/"+A.mapTileY;C+="."+B.substring(0,3);return C;};GCISGlobalView.prototype.clearImage=function(A){A.image.src=this.dynMap.defaultImg;
A.image.style.visibility="hidden";A.image.style.width=Math.round(this.tileWidth*this.zooms[this.dynMap.scale-1]+0.5)+"px";A.image.style.height=Math.round(this.tileHeight*this.zooms[this.dynMap.scale-1]+0.5)+"px";A.nosrc=true;A.visible=false;A.image.galleryImg=false;};GCISGlobalView.prototype.clearAll=function(A){if(!A){return ;
}var D,C,B;for(D=0;D<this.nbTileX;D++){for(C=0;C<this.nbTileY;C++){B=A[D][C];this.clearImage(B);}}};GCISGlobalView.prototype.refresh=function(C){if(!this.visible){return ;}var L,K,I,H;var E,D,B,A;var J,G,F;if(this.isOnTheMap&&C){this.calcGlobalViewPositions();}if(!this.isFixed||!this.firstRefreshDone){this.clearAll(this.images);
this.calcLimits();L=Math.floor(this.nbTileX/2);K=Math.floor(this.nbTileY/2);this.centerX=Math.floor(this.dynMap.width/2);this.centerY=Math.floor(this.dynMap.height/2);I=this.initCenterX?this.initCenterX:this.dynMap.currentX;H=this.initCenterY?this.initCenterY:this.dynMap.currentY;E=this.calcNumTileX(I);
D=this.calcNumTileY(H);for(B=0;B<this.nbTileX;B++){for(A=0;A<this.nbTileY;A++){J=this.images[B][A];G=E+B-L;F=D+A-K;this.fillImage(J,G,F);this.updateMapImage(J);}}this.minidiv.style.width=Math.round(this.zooms[this.dynMap.scale-1]*this.dynMap.width)+"px";this.minidiv.style.height=Math.round(this.zooms[this.dynMap.scale-1]*this.dynMap.height)+"px";
}this.resizeRect();if(!this.panning){if(!this.isFixed||!this.firstRefreshDone){this.minidiv.style.top=Math.round((this.height-parseInt(this.minidiv.style.height,10))/2)+"px";this.minidiv.style.left=Math.round((this.width-parseInt(this.minidiv.style.width,10))/2)+"px";this.pandiv.style.top=Math.round(((this.height-parseInt(this.pandiv.style.height,10))/2-parseInt(this.minidiv.style.top,10)))+"px";
this.pandiv.style.left=Math.round(((this.width-parseInt(this.pandiv.style.width,10))/2-parseInt(this.minidiv.style.left,10)))+"px";this.positionCross();}else{this.positionRect();}}this.firstRefreshDone=true;};GCISGlobalView.prototype.setAutoZoomReduction=function(A){this.autoZoomReduction=A;};GCISGlobalView.prototype.setRectSize=function(B,A){this.rectSizeFixed=true;
this.rectWidth=B;this.rectHeight=A;};GCISGlobalView.prototype.resizeRect=function(){this.panzoomx=this.dynMap.calcMapDeltaX(0,1)/(this.calcMapDeltaX(0,1/this.zooms[this.dynMap.scale-1]));if(this.autoZoomReduction){while(Math.round(this.panzoomx*this.dynMap.width)+10>(this.sizeProportion*this.width)){if(!this.isFixed){this.scales[this.dynMap.scale-1]++;
if(this.scales[this.dynMap.scale-1]>this.dynMap.maxScale){this.scales[this.dynMap.scale-1]=this.dynMap.maxScale;this.zooms[this.dynMap.scale-1]=Math.round(this.zooms[this.dynMap.scale-1]*80)/100;}}else{this.zooms[this.dynMap.scale-1]=Math.round(this.zooms[this.dynMap.scale-1]*80)/100;}this.panzoomx=this.dynMap.calcMapDeltaX(0,1)/(this.calcMapDeltaX(0,1/this.zooms[this.dynMap.scale-1]));
this.refresh();}}var A;if(!this.rectSizeFixed){if(Math.round(this.panzoomx*this.dynMap.width)<1){this.pandiv.style.width="1px";}else{this.pandiv.style.width=Math.round(this.panzoomx*this.dynMap.width)+"px";}A=this.dynMap.calcMapDeltaY(0,1)/(this.calcMapDeltaY(0,1/this.zooms[this.dynMap.scale-1]));if(Math.round(A*this.dynMap.height)<1){this.pandiv.style.height="1px";
}else{this.pandiv.style.height=Math.round(A*this.dynMap.height)+"px";}}else{this.pandiv.style.width=this.rectWidth+"px";this.pandiv.style.height=this.rectHeight+"px";}};GCISGlobalView.prototype.positionRect=function(){if(!this.panning){this.pandiv.style.top=Math.round((this.zooms[this.dynMap.scale-1]*this.dynMap.xRatios[(this.scales[this.dynMap.scale-1])]*(this.initCenterY-this.dynMap.currentY)+(this.height-parseInt(this.pandiv.style.height,10))/2-parseInt(this.minidiv.style.top,10)))+"px";
this.pandiv.style.left=Math.round((this.zooms[this.dynMap.scale-1]*this.dynMap.yRatios[(this.scales[this.dynMap.scale-1])]*(this.initCenterX-this.dynMap.currentX)+(this.width-parseInt(this.pandiv.style.width,10))/2-parseInt(this.minidiv.style.left,10)))+"px";this.positionCross();}};GCISGlobalView.prototype.positionCross=function(){var A=parseInt(this.pandiv.style.width,10);
var D=parseInt(this.pandiv.style.height,10);var C=parseInt(this.pandiv.style.left,10);var B=parseInt(this.pandiv.style.top,10);this.crossdivV.style.left=A/2+C-(this.crossLineWidth/2)-1+"px";this.crossdivV.style.top=D/2+B-(this.crossLineWidth/2)-(this.crossHeight/2)+"px";this.crossdivH.style.left=A/2+C-(this.crossLineWidth/2)-(this.crossWidth/2)+"px";
this.crossdivH.style.top=D/2+B-(this.crossLineWidth/2)-1+"px";};GCISGlobalView.prototype.fillImage=function(E,C,B){E.mapTileX=C;E.mapTileY=B;var A=this.calcMapTileWidth();var D=this.calcMapTileHeight();E.mapx=Math.round(A*C+A/2);E.mapy=Math.round(D*B+D/2);this.positionImage(E);E.nosrc=true;E.visible=false;
};GCISGlobalView.prototype.calcPixelX=function(A){var B=this.initCenterX?this.initCenterX:this.dynMap.currentX;return Math.round(this.dynMap.centerX+(A-B)*this.dynMap.xRatios[(this.scales[this.dynMap.scale-1])]);};GCISGlobalView.prototype.calcPixelY=function(A){var B=this.initCenterY?this.initCenterY:this.dynMap.currentY;
return Math.round(this.dynMap.centerY+(A-B)*this.dynMap.yRatios[(this.scales[this.dynMap.scale-1])]);};GCISGlobalView.prototype.positionImage=function(A){A.posx=this.zooms[this.dynMap.scale-1]*(this.calcPixelX(0)+this.tileWidth*A.mapTileX);A.posy=this.zooms[this.dynMap.scale-1]*(this.calcPixelY(0)-this.tileHeight*A.mapTileY-this.tileHeight);
};GCISGlobalView.prototype.updateMapImage=function(C){var D=true;var B=2;var A=2;var E;if(!rectIntersectRect(C.posx,C.posx+this.tileWidth,C.posy,C.posy+this.tileHeight,-B,this.dynMap.width+B,-A,this.dynMap.height+A)){D=false;}if(!D){if(C.visible){this.clearImage(C);}}else{if(C.nosrc){if(!this.isVisible()||this.dynMap.scale>this.maxscale||this.dynMap.scale<this.minscale||!rectIntersectRect(C.mapTileX,C.mapTileX,C.mapTileY,C.mapTileY,this.tileLimits[0],this.tileLimits[1],this.tileLimits[2],this.tileLimits[3])){C.image.src=this.dynMap.defaultImg;
C.loadImage=null;}else{E=this.calcTileSrc(C);C.image.src=E;}C.nosrc=false;}if(!C.visible){C.image.style.visibility="visible";C.visible=true;}C.image.style.left=C.posx+"px";C.image.style.top=C.posy+"px";}};GCISGlobalView.prototype.correctMapImage=function(C){var D=0;var B=0;var A=0;if(C.posx>this.dynMap.width+this.marginX+A){D=-this.nbTileX;
}else{if(C.posx<-this.marginX-this.tileWidth-A){D=this.nbTileX;}}if(C.posy>this.dynMap.height+this.marginY+A){B=-this.nbTileY;}else{if(C.posy<-this.marginY-this.tileHeight-A){B=this.nbTileY;}}if(D!==0||B!==0){this.fillImage(C,C.mapTileX+D,C.mapTileY-B);this.clearImage(C);}this.updateMapImage(C);};function GCISGlobalViewAnimator(A,B){this.globalView=A;
this.totalTime=B;this.startTime=(new Date()).getTime();this.endTime=this.startTime+B;this.dontCallEndMove=true;return this;}GCISGlobalViewAnimator.prototype=new GCISAbstractAnimator();GCISGlobalViewAnimator.prototype.start=function(A){this.dynMap=A;};GCISGlobalViewAnimator.prototype.animate=function(){if(this.finished){return ;
}var C=(new Date()).getTime();if(C>this.endTime||this.globalView.width<0||this.globalView.width>this.globalView.initialw||this.globalView.height<0||this.globalView.height>this.globalView.initialh){this.stop();return ;}var D=(C-this.startTime)/this.totalTime;if(D>1){D=1;}var B=this.globalView.initialw*D;
var A=this.globalView.initialh*D;if(this.globalView.visible){this.globalView.width=(this.globalView.width-B);this.globalView.height=(this.globalView.height-A);if(this.globalView.isOnTheMap){this.globalView.calcGlobalViewPositions();}if(this.globalView.width>0&&this.globalView.height>0){this.globalView.div.style.width=this.globalView.width+"px";
this.globalView.div.style.height=this.globalView.height+"px";}}else{this.globalView.width=(this.globalView.width+B);this.globalView.height=(this.globalView.height+A);if(this.globalView.isOnTheMap){this.globalView.calcGlobalViewPositions();}if(this.globalView.width<this.globalView.initialw&&this.globalView.height<this.globalView.initialh){this.globalView.div.style.width=this.globalView.width+"px";
this.globalView.div.style.height=this.globalView.height+"px";}}};GCISGlobalViewAnimator.prototype.stop=function(A){this.finished=true;if(this.globalView.visible){this.globalView.visible=false;this.globalView.width=parseInt(this.globalView.divIco.clientWidth,10);this.globalView.height=parseInt(this.globalView.divIco.clientHeight,10);
this.globalView.div.style.width=this.globalView.divIco.clientWidth+"px";this.globalView.div.style.height=this.globalView.divIco.clientHeight+"px";this.globalView.divIco.className="mapglobalviewico2";}else{this.globalView.visible=true;this.globalView.width=parseInt(this.globalView.initialw,10);this.globalView.height=parseInt(this.globalView.initialh,10);
this.globalView.div.style.width=this.globalView.initialw+"px";this.globalView.div.style.height=this.globalView.initialh+"px";this.globalView.divIco.className="mapglobalviewico";this.globalView.refresh();}if(this.globalView.isOnTheMap){this.globalView.calcGlobalViewPositions();}};GCISGlobalViewAnimator.prototype.isFinished=function(A){return this.finished;
};function GCISGlobalViewScrollAnimator(C,B,A){this.globalView=C;this.dx=B;this.dy=A;this.cpt=0;this.dontCallEndMove=true;return this;}GCISGlobalViewScrollAnimator.prototype=new GCISAbstractAnimator();GCISGlobalViewScrollAnimator.prototype.start=function(A){this.dynMap=A;};GCISGlobalViewScrollAnimator.prototype.animate=function(){if(this.finished){return ;
}this.beginDragX=this.globalView.dynMap.currentX;this.beginDragY=this.globalView.dynMap.currentY;this.globalView.dynMap.currentX=this.globalView.calcMapDeltaX(this.beginDragX,-this.dx/this.globalView.zooms[this.globalView.dynMap.scale-1]);this.globalView.dynMap.currentY=this.globalView.calcMapDeltaY(this.beginDragY,-this.dy/this.globalView.zooms[this.globalView.dynMap.scale-1]);
this.globalView.move(this.dx,this.dy,false);};GCISGlobalViewScrollAnimator.prototype.stop=function(A){this.finished=true;this.globalView.move(this.dx,this.dy,true);};GCISGlobalViewScrollAnimator.prototype.isFinished=function(A){return this.finished;};function GCISLayersControl(D,C,B){this.dynMap=D;this.visible=true;
var E=this.dynMap.createElt("div");E.className="mapLayerControl";this.div=E;var A=true;this.position="right";this.divIco=this.dynMap.createElt("div");if(B){if(B.div){A=false;this.div=B.div;}else{if(typeof B.posy!="undefined"){if(B.posy<0){this.div.style.bottom=(-B.posy-1)+"px";this.divIco.style.bottom=(-B.posy-1)+"px";
if(-B.posy<10){this.position="bottom";}}else{this.div.style.top=(B.posy)+"px";this.divIco.style.top=(B.posy)+"px";if(B.posy<10){this.position="top";}}}if(typeof B.posx!="undefined"){if(B.posx<0){this.div.style.right=(-B.posx-1)+"px";if(-B.posx<10){this.position="right";}}else{this.div.style.left=(B.posx)+"px";
if(B.posx<10){this.position="left";}}}}}if(A){this.dynMap.getDiv().appendChild(E);this.divIco.className="layerControlIco_"+this.position+" mapIco_"+this.position+" mapTranslucid";this.dynMap.getDiv().appendChild(this.divIco);this.divIco.onclick=GCUI.Function.bind(this.animateControl,this);this.divIco.onmouseover=function(){this.className=this.className.replace("mapTranslucid","mapOpaque");
};this.divIco.onmouseout=function(){this.className=this.className.replace("mapOpaque","mapTranslucid");};}if(C&&C!=""){this.dynMap.getLayersJson(GCUI.Function.bind(this.initLayerControl,this),C);}else{this.initLayerControl();}}GCISLayersControl.prototype.animateControl=function(){var A=new GCISControlAnimator(this,800);
this.dynMap.startAnimation(A,null,true);};GCISLayersControl.prototype.toggleGroupLayer=function(C,E){var D=this.layerGroups[E[0].id];var B=0;var A="none";if(E[0].className=="mapGroupMinus"){E[0].className="mapGroupPlus";}else{E[0].className="mapGroupMinus";A="block";}for(B=0;B<D.length;B++){D[B].style.display=A;
}this.updateHeight();};GCISLayersControl.prototype.toggleLayerVisibility=function(F,B){var E=B[0];var A;var D=0;var C,G;if(E.className=="mapLayerCheckbox"){E.className="mapLayerUncheckbox";this.dynMap.removeRasterLayer(B[1].internalName);document.getElementById("mapslider"+B[1].internalName).style.display="none";
this.dynMap.refresh(true);}else{E.className="mapLayerCheckbox";this.dynMap.addRasterLayer(B[1].internalName,null,null,B[1].internalName,B[1].format,B[1].isTransparent);A=this.dynMap.getLayer(B[1].internalName);A.init(this.dynMap);for(C=this.layersJson.length-1;C>=0;C--){G=this.layersJson[C];if(G.internalName==B[1].internalName){this.dynMap.setLayerNumber(B[1].internalName,D);
break;}else{if(this.dynMap.getLayer(G.internalName)&&this.dynMap.getLayer(G.internalName).isVisible()){D++;}}}this.dynMap.refresh(true);document.getElementById("mapslider"+B[1].internalName).style.display="block";B[2].setValue(B[1].opacity);}};GCISLayersControl.prototype.moveLayer=function(A,I){var G=I[0];
var D=I[1];var C=I[2];var J=this.layerGroups[D];var K,F;var H=null;var B=null;var E=J.length-1;for(E=J.length-1;E>=0;E--){if(J[E].id==("layerInfo_"+G)){K=J[E];if(C&&E>0){H=J[E-1];break;}if(!C&&E<J.length-1){B=J[E+1];break;}}}if(H||B){if(C){K.parentNode.insertBefore(K,H);this.layerGroups[D][E]=H;this.layerGroups[D][E-1]=K;
for(E=0;E<this.layersJson.length;E++){F=this.layersJson[E];if(F.internalName==G){this.layersJson[E]=this.layersJson[E-1];this.layersJson[E-1]=F;break;}}this.dynMap.setLayerNumber(G,this.dynMap.getLayerNumber(G)+1);}else{B.parentNode.insertBefore(B,K);this.layerGroups[D][E]=B;this.layerGroups[D][E+1]=K;
for(E=0;E<this.layersJson.length;E++){F=this.layersJson[E];if(F.internalName==G){this.layersJson[E]=this.layersJson[E+1];this.layersJson[E+1]=F;break;}}this.dynMap.setLayerNumber(G,this.dynMap.getLayerNumber(G)-1);}this.dynMap.refresh(true);}};GCISLayersControl.prototype.updateOpacityControl=function(D,A,C){var B=this.dynMap.getLayer(C);
B.setOpacity(D.getValue());document.getElementById("mapslider"+C).title=D.getValue()+"%";};GCISLayersControl.prototype.initLayerControl=function(res){var layers,lay,ljson,obj,div,nodeDiv,divname,divSliderTrack,divSliderHandle,imgup,imgdown,myslider,layertoinit;this.layerGroups=[];var currentGroupId="group_default";
var currentGroupExpanded=false;var i=0;if(!res){layers=[];for(i=0;i<this.dynMap.rasterLayers.length;i++){lay=this.dynMap.rasterLayers[i];ljson={name:lay.name,internalName:lay.tabName,depth:1,opacity:lay.opacity,visibility:(lay.isVisible()?1:0),format:lay.format,isTransparent:lay.transparentColor};layers.push(ljson);
}this.layerGroups[currentGroupId]=[];currentGroupExpanded=true;}if(res){layers=eval(res);for(i=0;i<this.dynMap.rasterLayers.length;i++){this.dynMap.removeRasterLayer(this.dynMap.rasterLayers[i].name);}}var nbgroup=0;this.layersJson=layers;var imgCheck,divSlider;for(i=0;i<layers.length;i++){obj=layers[i];
div=this.dynMap.createElt("div");nodeDiv=this.dynMap.createElt("div");if(!obj.depth){currentGroupExpanded=obj.expanded;nodeDiv.className=currentGroupExpanded?"mapGroupMinus":"mapGroupPlus";nodeDiv.id="group_"+nbgroup;nbgroup++;currentGroupId=nodeDiv.id;this.layerGroups[currentGroupId]=[];nodeDiv.onclick=GCUI.Function.bindAsEvent(this.toggleGroupLayer,this,nodeDiv);
div.appendChild(nodeDiv);}else{nodeDiv.className="mapLayerNode";imgCheck=this.dynMap.createElt("div");imgCheck.id=obj.internalName;imgCheck.className=obj.visibility?"mapLayerCheckbox":"mapLayerUncheckbox";div.appendChild(nodeDiv);div.appendChild(imgCheck);}divname=this.dynMap.createElt("div");divname.innerHTML=layers[i].name;
div.appendChild(divname);if(obj.depth){div.className="mapLayerInfo";divname.className="mapLayerName";div.id="layerInfo_"+obj.internalName;divSlider=this.dynMap.createElt("div");divSlider.id="mapslider"+obj.internalName;divSlider.className="mapLayerSlider mapTranslucid";divSlider.onmouseover=function(){this.className="mapLayerSlider mapOpaque";
};divSlider.onmouseout=function(){this.className="mapLayerSlider mapTranslucid";};divSlider.title="100%";divSliderTrack=this.dynMap.createElt("div");divSliderTrack.id="divTrack"+obj.internalName;divSlider.appendChild(divSliderTrack);divSliderHandle=this.dynMap.createElt("div");divSliderHandle.id="divHandle"+obj.internalName;
divSlider.appendChild(divSliderHandle);div.appendChild(divSlider);imgup=this.dynMap.createElt("div");imgup.className="mapLayerUp";div.appendChild(imgup);imgup.onclick=GCUI.Function.bindAsEvent(this.moveLayer,this,obj.internalName,currentGroupId,true);imgdown=this.dynMap.createElt("div");imgdown.className="mapLayerDown";
div.appendChild(imgdown);imgdown.onclick=GCUI.Function.bindAsEvent(this.moveLayer,this,obj.internalName,currentGroupId,false);if(!this.layerGroups[currentGroupId]){this.layerGroups[currentGroupId]=[];currentGroupExpanded=true;}this.layerGroups[currentGroupId].push(div);}else{div.className="mapGroupInfo";
divname.className="mapGroupName";}this.div.appendChild(div);if(obj.depth){myslider=new Slider(document.getElementById("divHandle"+obj.internalName),document.getElementById("divTrack"+obj.internalName),"horizontal");myslider.setMinimum(0);myslider.setMaximum(100);myslider.drawSpans=GCUI.Function.bind(this.updateOpacityControl,this,myslider,obj.name,obj.internalName);
if(!currentGroupExpanded){div.style.display="none";}if(obj.visibility){this.dynMap.addRasterLayer(obj.internalName,null,null,obj.internalName,obj.format,obj.isTransparent);layertoinit=this.dynMap.getLayer(obj.internalName);layertoinit.init(this.dynMap);this.dynMap.setLayerNumber(obj.internalName,0);myslider.setValue(obj.opacity);
}else{divSlider.style.display="none";}imgCheck.onclick=GCUI.Function.bindAsEvent(this.toggleLayerVisibility,this,imgCheck,obj,myslider);}}this.dynMap.refresh(true);if(this.position=="right"){this.divIco.style.right=(parseInt(this.div.style.right,10)+this.div.clientWidth)+"px";}else{this.divIco.style.left=(parseInt(this.div.style.left,10)+this.div.clientWidth)+"px";
}this.updateHeight();this.width=this.div.clientWidth;};GCISLayersControl.prototype.updateHeight=function(){this.height=0;var A=this.div.childNodes;var B=0;for(B=0;B<A.length;B++){if(A[B].style.display!="none"){this.height+=A[B].clientHeight;}}this.div.style.height=this.height+"px";};function GCISControlAnimator(B,A){this.control=B;
this.div=B.div;this.divIco=B.divIco;this.controlHeight=B.height;this.controlWidth=B.width;this.totalTime=A;this.startTime=(new Date()).getTime();this.endTime=this.startTime+A;return this;}GCISControlAnimator.prototype=new GCISAbstractAnimator();GCISControlAnimator.prototype.start=function(A){};GCISControlAnimator.prototype.animate=function(){if(this.finished){return ;
}var E=(new Date()).getTime();var G=(E-this.startTime)/this.totalTime;if(G>1){G=1;}var D=this.controlWidth*G;var A=this.controlHeight*G;var C,F;var B=this.controlWidth-D;switch(this.control.position){case"left":C=parseInt(this.div.style.left,10);if(this.control.visible){this.div.style.width=B+"px";this.divIco.style.left=(C+B)+"px";
}else{this.div.style.width=D+"px";this.divIco.style.left=(C+D)+"px";}break;case"right":F=parseInt(this.div.style.right,10);if(this.control.visible){this.div.style.width=B+"px";this.divIco.style.right=(F+B)+"px";}else{this.div.style.width=D+"px";this.divIco.style.right=(F+D)+"px";}break;default:if(this.control.visible){if(this.controlHeight-A<1){this.div.style.visibility="hidden";
}this.div.style.height=(this.controlHeight-A)+"px";}else{if(A>1&&this.div.style.visibility=="hidden"){this.div.style.visibility="visible";}this.div.style.height=A+"px";}break;}if(E>this.endTime||this.div.clientWidth<0||this.div.clientWidth>this.controlWidth||this.div.clientHeight<0||this.div.clientHeight>this.controlHeight){this.stop();
return ;}};GCISControlAnimator.prototype.stop=function(A){this.finished=true;switch(this.control.position){case"left":if(this.control.visible){this.divIco.className=this.divIco.className.replace("mapIco_left","mapIco_right");}else{this.divIco.className=this.divIco.className.replace("mapIco_right","mapIco_left");
}break;case"right":if(this.control.visible){this.divIco.className=this.divIco.className.replace("mapIco_right","mapIco_left");}else{this.divIco.className=this.divIco.className.replace("mapIco_left","mapIco_right");}break;case"top":if(this.control.visible){this.divIco.className=this.divIco.className.replace("mapIco_top","mapIco_bottom");
}else{this.divIco.className=this.divIco.className.replace("mapIco_bottom","mapIco_top");}break;case"bottom":if(this.control.visible){this.divIco.className=this.divIco.className.replace("mapIco_bottom","mapIco_top");}else{this.divIco.className=this.divIco.className.replace("mapIco_top","mapIco_bottom");
}break;}this.control.visible=!this.control.visible;};GCISControlAnimator.prototype.isFinished=function(A){return this.finished;};function GCISGraphicScale(C,A,E,D,B){this.dynMap=C;this.initialx=A;this.initialy=E;this.posx=A;this.posy=E;this.metricsUiMeter=[1000,1,0.01,0.001];this.metricsUiSymbol=["km","m","cm","mm"];
this.isOnTheMap=true;if(D){this.div=D;this.isOnTheMap=false;}this.barAreaWidth=B?B:150;return this;}GCISGraphicScale.prototype=new GCISAbstractLayer();GCISGraphicScale.prototype.calcBarPositions=function(G){var C=this.dynMap.browser;var F=C.getDocumentHeight();var E=C.getElementTop(this.dynMap.mainDiv);
var B=C.getDocumentWidth();var A=C.getElementLeft(this.dynMap.mainDiv);var D,H;if(this.initialx<0){D=this.dynMap.marginright?this.dynMap.marginright:0;this.posx=B-A+this.initialx-parseInt(this.div.style.width,10)-D+1;}if(this.initialy<0){H=this.dynMap.marginbottom?this.dynMap.marginbottom:0;this.posy=F-E+this.initialy-parseInt(this.div.clientHeight,10)-H+1;
}};GCISGraphicScale.prototype.init=function(A){if(this.created){return ;}this.dynMap=A;var B;if(this.isOnTheMap){B=A.createElt("div");B.className="mapScale";A.getDiv().appendChild(B);this.div=B;}this.divLegend=A.createElt("div");this.divLegend.className="mapScaleLegend";this.div.appendChild(this.divLegend);
this.divText1=A.createElt("div");this.divText1.className="mapScaleText1";this.div.appendChild(this.divText1);this.divText2=A.createElt("div");this.divText2.className="mapScaleText2";this.div.appendChild(this.divText2);this.text1=document.createTextNode("0");this.divText1.appendChild(this.text1);this.text2=document.createTextNode("0");
this.divText2.appendChild(this.text2);this.created=true;};GCISGraphicScale.prototype.remove=function(A){if(this.isOnTheMap){this.div.parentNode.removeChild(this.div);}else{this.clear();}};GCISGraphicScale.prototype.clear=function(){while(this.div.childNodes.length>0){this.div.removeChild(this.div.firstChild);
}this.divLegend=null;};GCISGraphicScale.prototype.refresh=function(E){var C=this.dynMap.calcMapX(0);var A=this.dynMap.calcMapX(this.barAreaWidth);var B=Math.round((A-C)*this.dynMap.precision);this.computeBarMetrics(this.barAreaWidth,B);var D;if(this.divLegend){if(this.divLegend.childNodes.length>0){for(D=0;
D<=this.divLegend.childNodes.length;D++){this.divLegend.removeChild(this.divLegend.childNodes[0]);}}}this.drawBar();};GCISGraphicScale.prototype.computeBarMetrics=function(A,F){var H=false;var E,J,D,C,I;for(var B=0;B<4&&!H;B++){E=100000;J=this.metricsUiMeter[B];while((Math.round(E)>0)&&!H){D=this.dynMap.calcPixelX(0);
C=this.dynMap.calcPixelX(E*J/this.dynMap.precision);I=C-D;if(I<A){H=true;this.unitInfo=this.metricsUiMeter[B];this.uiSymbol=this.metricsUiSymbol[B];this.width=I;this.distance=E;}else{E/=10;}}}var G=1;while(G<5){if((this.width*(G+1))<A){G++;}else{break;}}this.divisionCount=G;this.width*=G;this.distance*=G;
this.text2.nodeValue=this.distance+" "+this.uiSymbol;this.divText2.style.left=this.width+"px";};GCISGraphicScale.prototype.drawBar=function(){if(this.divLegend){this.div.removeChild(this.divLegend);}this.divLegend=this.dynMap.createElt("div");this.divLegend.className="mapScaleLegend";this.divLegend.style.width=this.width+"px";
this.div.style.width=(this.width+this.divText2.clientWidth)+"px";if(this.isOnTheMap){this.calcBarPositions(this.dynMap);this.div.style.left=this.posx+"px";this.div.style.top=this.posy+"px";}this.div.appendChild(this.divLegend);if(this.divisionCount==1){this.divisionCount=5;}var B;for(var A=0;A<this.divisionCount;
A++){B=this.dynMap.createElt("div");B.style.width=this.width/this.divisionCount+"px";B.style.left=A*(this.width/this.divisionCount)+"px";if((A%2)===0){B.className="mapScaleFullBlock";}else{B.className="mapScaleEmptyBlock";}this.divLegend.appendChild(B);}};GCISGraphicScale.prototype.toJSON=function(){var A=this.initialy<0?"bottom":"top";
var B=this.initialx<0?"right":"left";var C=this.dynMap.mapName;if(C.indexOf(".gcm")==-1){C=C+".gcm";}return'{"map":"'+C+'","valign":"'+A+'","halign":"'+B+'","hoffset":'+Math.abs(this.initialx)+',"voffset":'+Math.abs(this.initialy)+',"barsize":[5,150]}';};function GCISSlider(B,A,C){this.name="slider";
this.inverseDir=B?B:false;this.orientation=A?A:"vertical";this.isOnTheMap=true;if(C){this.div=C;this.isOnTheMap=false;}return this;}GCISSlider.prototype=new GCISAbstractLayer();GCISSlider.prototype.init=function(A){this.dynMap=A;var D;if(this.isOnTheMap){D=A.createElt("div");A.getDiv().appendChild(D);
this.div=D;}this.div.className="mapslider";this.div.id=A.id+"_slider";var B=A.createElt("div");this.div.appendChild(B);var C=A.createElt("div");B.appendChild(C);this.sliderTrack=B;this.sliderHandle=C;this.slider=new Slider(this.sliderHandle,this.sliderTrack,this.orientation);this.slider.setMinimum(this.minimum);
this.slider.setMaximum(this.maximum);this.setScale(this.dynMap.scale);this.slider.onrelease=GCUI.Function.bindAsEvent(this.onrelease,this);this.dynMap.onScaleChange=GCUI.Function.bind(this.setScale,this);};GCISSlider.prototype.onrelease=function(){this.dynMap.animateZoom(this.getScale());};GCISSlider.prototype.remove=function(A){this.div.parentNode.removeChild(this.div);
this.slider.onrelease=null;};GCISSlider.prototype.setScale=function(A){if(!this.slider){return ;}this.slider.setValue(this.transformValue(A));};GCISSlider.prototype.getScale=function(){return this.transformValue(this.slider.getValue());};GCISSlider.prototype.transformValue=function(A){if(this.inverseDir){return(this.maximum-A)+this.minimum;
}else{return A;}};GCISSlider.prototype.setMinimumScale=function(A){this.minimum=A;if(this.slider){this.slider.setMinimum(A);}};GCISSlider.prototype.setMaximumScale=function(A){this.maximum=A;if(this.slider){this.slider.setMaximum(A);}};function GCISCanvasGraphic(){}GCISCanvasGraphic.prototype.initParameters=function(A,C){var B=A.createElement("canvas");
this.canvas=B;this.div=C;B.style.position="absolute";B.style.left=0;B.style.top=0;this.width=C.clientWidth;this.height=C.clientHeight;B.width=C.clientWidth;B.height=C.clientHeight;C.appendChild(B);this.ctx=B.getContext("2d");this.ctx.lineJoin="round";this.clipper=new GCISClipper(0,this.width,0,this.height);
this.doc=A;};GCISCanvasGraphic.prototype.setSize=function(A,B,C){if(C){this.canvas.parentNode.removeChild(this.canvas);this.div.style.width=A+"px";this.div.style.height=B+"px";this.initParameters(this.doc,this.div);return ;}var E=this.canvas;var D=this.div;this.ctx.save();D.style.width=A+"px";D.style.height=B+"px";
this.clipper=new GCISClipper(0,A,0,B);this.ctx.restore();};GCISCanvasGraphic.prototype.clear=function(){this.ctx.clearRect(0,0,this.width,this.height);};GCISCanvasGraphic.prototype.translate=function(A,B){this.ctx.translate(A,B);};GCISCanvasGraphic.prototype.scale=function(B,A){this.ctx.scale(B,A);};
GCISCanvasGraphic.prototype.setFillColor=function(A){this.ctx.fillStyle=A;};GCISCanvasGraphic.prototype.setLineColor=function(A){this.ctx.strokeStyle=A;};GCISCanvasGraphic.prototype.setLineWidth=function(A){this.ctx.lineWidth=A;};GCISCanvasGraphic.prototype.setOpacity=function(A){this.ctx.globalAlpha=A;
};GCISCanvasGraphic.prototype.fillRect=function(B,D,A,C){this.ctx.fillRect(B,D,A-B,C-D);};GCISCanvasGraphic.prototype.fillEllipse=function(B,D,A,C){this.ctx.fillEllipse(B,D,A-B,C-D);};GCISCanvasGraphic.prototype.intersectLine=function(B,D,A,C){return true;};GCISCanvasGraphic.prototype.intersectPoint=function(A,B){return true;
};GCISCanvasGraphic.prototype.drawPolyline=function(B,D){var A=this.ctx;A.beginPath();var C;A.moveTo(B[0],D[0]);var E=B.length;for(C=1;C<E;C++){A.lineTo(B[C],D[C]);}A.stroke();if(this.useVML){A.stroke();}};GCISCanvasGraphic.prototype.drawPolygon=function(B,D,E){var A=this.ctx;A.beginPath();var C;A.moveTo(B[0],D[0]);
for(C=1;C<B.length;C++){A.lineTo(B[C],D[C]);}if(E){A.lineTo(B[0],D[0]);}if(E){A.fill();}A.stroke();if(this.useVML){A.stroke();}};GCISCanvasGraphic.prototype.drawCircle=function(B,H,A,F,E,D,G){var C=this.ctx;C.beginPath();C.arc(B,H,A,F,E,D);if(G){C.fill();}C.stroke();if(this.useVML){C.stroke();}};GCISCanvasGraphic.prototype.drawRect=function(B,F,D,A,E){var C=this.ctx;
C.beginPath();C.rect(B,F,D,A);if(E){C.fill();}C.stroke();if(this.useVML){C.stroke();}};function GCISClipper(B,A,D,C){this.xmin=B;this.xmax=A;this.ymin=D;this.ymax=C;this.TOP=1;this.BOTTOM=2;this.RIGHT=4;this.LEFT=8;}GCISClipper.prototype.compOutCode=function(A,C){var B=0;if(C<this.ymin){B=this.TOP;}else{if(C>this.ymax){B=this.BOTTOM;
}}if(A>this.xmax){B=B+this.RIGHT;}else{if(A<this.xmin){B=B+this.LEFT;}}return B;};GCISClipper.prototype.clipLine=function(B,K,A,J){var E=false,F=false;var D=this.compOutCode(B,K);var C=this.compOutCode(A,J);var G;var I,H;while(!F){if(!D&&!C){E=true;F=true;}else{if(D&C){F=true;}else{if(D){G=D;}else{G=C;
}if(this.TOP&G){I=B+(A-B)*(this.ymin-K)/(J-K);H=this.ymin;}if(this.BOTTOM&G){I=B+(A-B)*(this.ymax-K)/(J-K);H=this.ymax;}else{if(this.RIGHT&G){H=K+(J-K)*(this.xmax-B)/(A-B);I=this.xmax;}else{if(this.LEFT&G){H=K+(J-K)*(this.xmin-B)/(A-B);I=this.xmin;}}}if(G==D){B=I;K=H;D=this.compOutCode(B,K);}else{A=I;
J=H;C=this.compOutCode(A,J);}}}}if(E){return[B,K,A,J];}else{return null;}};function GCISGraphicElement(){}GCISGraphicElement.prototype.draw=function(A,B){};GCISGraphicElement.prototype.getWkt=function(A){};GCISGraphicElement.prototype.setWkt=function(A){};GCISGraphicElement.prototype.setWidth=function(A){};
GCISGraphicElement.prototype.setOpacity=function(A){};GCISGraphicElement.prototype.getOpacity=function(){};GCISGraphicElement.prototype.getId=function(){};GCISGraphicElement.prototype.getBounds=function(A){A.mapx1=A.mapx2=A.mapy1=A.mapy2=0;};GCISGraphicElement.prototype.containsPoint=function(A,C,B){};
function createGCISGraphic(E,G){var F=navigator.appVersion.match(/MSIE (\d\.\d)/);var B=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);var C,A;var D;if((!F)||(F[1]<5)||(B)){D=new GCISCanvasGraphic();D.initParameters(E,G);}else{if(!E.documentMode||E.documentMode<8){E.namespaces.add("v");C=E.createElement("object");
C.id="VMLRender";C.codebase="vgx.dll";C.classid="CLSID:10072CEC-8CC1-11D1-986E-00A0C955B42E";E.body.appendChild(C);A=E.createStyleSheet();A.addRule("v\\:*","behavior: url(#VMLRender);");}if(E.documentMode&&E.documentMode>=8){E.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML");}D=new VMLGraphic(E,G);
}return D;}function GCISLine(B,E,F,D,C,A){this.xPoints=B;this.yPoints=E;this.lineWidth=F;this.lineColor=D;this.opacity=C;this.id=A;}GCISLine.prototype=new GCISGraphicElement();GCISLine.prototype.getBounds=function(E){if(!this.xPoints.length){E.mapx1=E.mapx2=E.mapy1=E.mapy2=0;return ;}var D=this.xPoints[0];
var C=D;var G=this.yPoints[0];var F=G;var B,A,H;for(B=1;B<this.xPoints.length;B++){A=this.xPoints[B];H=this.yPoints[B];if(A<D){D=A;}if(A>C){C=A;}if(H<G){G=H;}if(H>F){F=H;}}E.mapx1=D;E.mapx2=C;E.mapy1=G;E.mapy2=F;};GCISLine.prototype.draw=function(P,D){P.setLineColor(this.lineColor);P.setLineWidth(this.lineWidth);
P.setOpacity(this.opacity);var E=[];var L=[];var H=this.xPoints;var G=this.yPoints;if(this.swapPoints){if((this.swapPointsMinScale<=D.scale)&&(this.swapPointsMaxScale>=D.scale)){H=this.swapPointsX;G=this.swapPointsY;}}var F=D.calcPixelX(H[0]);var Q=D.calcPixelY(G[0]);var J=H.length;if(J==1){if(P.intersectPoint(F,Q)){E.push(F,F+this.lineWidth);
L.push(Q,Q);P.drawPolyline(E,L);}return ;}var K,C,O,I,B,N,A,M;for(K=1;K<J;K++){C=D.calcPixelX(H[K]);O=D.calcPixelY(G[K]);if(P.intersectLine(F,Q,C,O)){I=P.clipper.clipLine(F,Q,C,O);if(I){B=I[0];N=I[1];A=I[2];M=I[3];if((B!==F)||(N!==Q)||(A!==C)||(M!==O)){if(!E.length){E.push(B);L.push(N);}E.push(A);L.push(M);
P.drawPolyline(E,L);E=[];L=[];}else{if(!E.length){E.push(F);L.push(Q);}E.push(C);L.push(O);}}}else{if(E.length>0){P.drawPolyline(E,L);}E=[];L=[];}F=C;Q=O;}if(E.length){P.drawPolyline(E,L);}};GCISLine.prototype.toString=function(A,B){return"Line \nx="+this.xPoints+"\ny="+this.yPoints+"\nwidth="+this.lineWidth+"\ncolor="+this.lineColor;
};GCISLine.prototype.getPointsY=function(){return this.yPoints;};GCISLine.prototype.getPointsX=function(){return this.xPoints;};GCISLine.prototype.getId=function(){return this.id;};GCISLine.prototype.getWktBegin=function(){return"LINESTRING(";};GCISLine.prototype.getWktEnd=function(){return")";};GCISLine.prototype.getWkt=function(A){var B=this.getWktBegin();
B+=this.getWktPoints(this.xPoints,this.yPoints,false,A);B+=this.getWktEnd();return B;};GCISLine.prototype.getWktPoints=function(C,F,G,B){var E="";var D,A,H;if(!B){B=1;}for(D=0;D<this.xPoints.length;D++){if(D>0){E+=",";}A=this.xPoints[D];H=this.yPoints[D];E+=A*B+" "+H*B;}if(G&&(C[0]!=A||F[0]!=H)){E+=","+C[0]*B+" "+F[0]*B;
}return E;};GCISLine.prototype.setWkt=function(B){var E=this.getWktBegin();var C=")";var F=B.indexOf(E,0);if(F<0){alert("Not valid wkt");return ;}F+=E.length;this.xPoints=[];this.yPoints=[];var A,D;while(F>0&&F<B.length-1){A=B.indexOf(",",F);if(A<0){A=B.indexOf(")",F);}if(A<0){alert("Not valid wkt");
return ;}D=B.indexOf(" ",F);this.xPoints.push(parseFloat(B.substring(F,D)));this.yPoints.push(parseFloat(B.substring(D+1,A)));F=A+1;}return true;};GCISLine.prototype.getJSONBegin=function(){return'{ "type":"line","linestring":[';};GCISLine.prototype.getJSONPoints=function(C){var E,A,F;var D="";var B=this.xPoints.length;
for(E=0;E<B;E++){A=this.xPoints[E];F=this.yPoints[E];D+="["+A*C+","+F*C+"]";if(E!=B-1){D+=",";}}D+="],";return D;};GCISLine.prototype.getJSONStyle=function(A){return'"lineColor":"'+this.lineColor+'","lineWidth":'+this.lineWidth+',"opacity":'+(100*this.opacity)+',"order":'+A+this.getJSONStyleEnd();};GCISLine.prototype.getJSONStyleEnd=function(){return"}";
};GCISLine.prototype.toJSON=function(B,A){var C=this.getJSONBegin();return C+this.getJSONPoints(B)+this.getJSONStyle(A);};GCISLine.prototype.setWidth=function(A){this.lineWidth=A;};GCISLine.prototype.setOpacity=function(A){this.opacity=A;};GCISLine.prototype.getOpacity=function(){return this.opacity;
};GCISLine.prototype.addPoint=function(A,B){this.xPoints.push(A);this.yPoints.push(B);};GCISLine.prototype.deleteLastPoint=function(){this.xPoints.pop();this.yPoints.pop();};GCISLine.prototype.swapPoints=function(A,B,D,C){this.swapPoints=true;this.swapPointsMinScale=A;this.swapPointsMaxScale=B;this.swapPointsX=D;
this.swapPointsY=C;};GCISLine.prototype.containsPoint=function(G,F,T){var M,P,B,O,A,I,L,J,N,K,R,Q,S,H,C;var E=T.calcMapX(this.lineWidth)-T.calcMapX(0);var D=this.xPoints.length-1;for(M=0;M<this.xPoints.length-1;M++){P=this.xPoints[M];B=this.yPoints[M];O=this.xPoints[M+1];A=this.yPoints[M+1];I=min(P,O);
L=min(B,A);J=max(P,O);N=max(B,A);if((I-E)<=G&&G<=(J+E)&&(L-E)<=F&&F<=(N+E)){if(J-I==0){K=1;R=0;Q=-J;}else{if(N-L==0){K=0;R=1;Q=-N;}else{K=(A-B)/(O-P);R=-1;Q=B-K*P;}}H=K*G+R*F+Q;C=Math.abs(H/Math.sqrt(K*K+R*R));if(C<=E){return true;}}}return false;};function GCISPoint(D,B,F,C,A,E){this.mapx=D;this.mapy=B;
this.symbol=F;this.size=C;this.col=A;this.opacity=E;}GCISPoint.prototype=new GCISGraphicElement();GCISPoint.prototype.draw=function(A,B){};GCISPoint.prototype.getWkt=function(A){};GCISPoint.prototype.setWkt=function(A){};GCISPoint.prototype.getBounds=function(A){A.mapx1=A.mapx2=this.mapx;A.mapx1=A.mapx2=this.mapy;
};GCISPoint.prototype.getPointsY=function(){return this.mapy;};GCISPoint.prototype.getPointsX=function(){return this.mapx;};function GCISPolygon(B,N,O,C,H,I,G,A){this.xPoints=B;this.yPoints=N;this.fillColor=O;this.lineWidth=C;this.lineColor=H;this.opacity=I;var K=B[0];var J=K;var E=N[0];var D=E;var F,M,L;
for(F=1;F<B.length;F++){M=B[F];L=N[F];if(M<K){K=M;}if(M>J){J=M;}if(L<E){E=L;}if(L>D){D=L;}}this.mapx1=K;this.mapx2=J;this.mapy1=E;this.mapy2=D;this.nofilled=G?G:false;this.id=A;}GCISPolygon.prototype=new GCISLine();GCISPolygon.prototype.getWktBegin=function(){return"POLYGON((";};GCISPolygon.prototype.getWktEnd=function(){return"))";
};GCISPolygon.prototype.getWkt=function(A){var B=this.getWktBegin();B+=this.getWktPoints(this.xPoints,this.yPoints,true,A);B+=this.getWktEnd();return B;};GCISPolygon.prototype.getJSONBegin=function(){return'{"type":"polygon","polygon":[';};GCISPolygon.prototype.getJSONStyleEnd=function(){return',"fillColor":"'+this.fillColor+'"}';
};GCISPolygon.prototype.draw=function(H,A){H.setLineColor(this.lineColor);H.setLineWidth(this.lineWidth);H.setOpacity(this.opacity);H.setFillColor(this.fillColor);var B=[];var F=[];var D=A.calcPixelX(this.xPoints[0]);var I=A.calcPixelY(this.yPoints[0]);if(this.xPoints.length==1){if(H.intersectPoint(D,I)){B.push(D,D+this.lineWidth);
F.push(I,I);H.drawPolyline(B,F);}return ;}var E,C,G;for(E=1;E<this.xPoints.length;E++){C=A.calcPixelX(this.xPoints[E]);G=A.calcPixelY(this.yPoints[E]);if(H.intersectLine(D,I,C,G)){if(!B.length){B.push(D);F.push(I);}B.push(C);F.push(G);}else{if(B.length>0){H.drawPolyline(B,F);}B=[];F=[];}D=C;I=G;}if(B.length){H.drawPolygon(B,F,!this.nofilled);
}};function inPoly(C,M,L){var I=C.length;var F,A,N,H,D,K,B,J,G;var E=false;if(I/2<3){return false;}N=C[I-2];H=C[I-1];for(G=0;G<I;G=G+2){F=C[G];A=C[G+1];if(F>N){D=N;B=F;K=H;J=A;}else{D=F;B=N;K=A;J=H;}if((F<M)==(M<=N)&&((L-K)*(B-D)<(J-K)*(M-D))){E=!E;}N=F;H=A;}return E;}GCISPolygon.prototype.containsPoint=function(A,E,D){var B=0;
var C=[];for(B=0;B<this.xPoints.length;B++){C.push(this.xPoints[B]);C.push(this.yPoints[B]);}return inPoly(C,A,E);};function GCISRect(H,F,C,B,I,A,D,E,J,G){this.mapx1=H;this.mapx2=F;this.mapy1=C;this.mapy2=B;this.modifyPoints(H,F,C,B);this.fillColor=I;this.lineWidth=A;this.lineColor=D;this.opacity=E;this.filled=J;
this.id=G;}GCISRect.prototype=new GCISLine();GCISRect.prototype.modifyPoints=function(B,A,D,C){this.xPoints=[];this.yPoints=[];this.xPoints.push(B);this.yPoints.push(D);this.xPoints.push(B);this.yPoints.push(C);this.xPoints.push(A);this.yPoints.push(C);this.xPoints.push(A);this.yPoints.push(D);this.xPoints.push(B);
this.yPoints.push(D);};GCISRect.prototype.draw=function(B,F){B.setLineColor(this.lineColor);B.setLineWidth(this.lineWidth);B.setOpacity(this.opacity);B.setFillColor(this.fillColor);var C=F.calcPixelX(this.mapx1);var E=F.calcPixelY(this.mapy1);var A=F.calcPixelX(this.mapx2)-C;var D=F.calcPixelY(this.mapy2)-E;
B.drawRect(C,E,A,D,this.filled);};GCISRect.prototype.containsPoint=function(B,G,F){var E=min(this.mapx1,this.mapx2);var D=min(this.mapy1,this.mapy2);var C=max(this.mapx1,this.mapx2);var A=max(this.mapy1,this.mapy2);return(E<B&&B<C&&D<G&&G<A);};GCISRect.prototype.getJSONBegin=function(){return'{"type":"polygon","polygon":[';
};GCISRect.prototype.getJSONStyleEnd=function(){return',"fillColor":"'+this.fillColor+'"}';};function GCISCircle(J,I,F,G,B,A,K,C,D,E,L,H){this.xPoints=[];this.yPoints=[];this.xPoints.push(J);this.yPoints.push(I);this.radius=F;this.startAngle=G;this.endAngle=B;this.anticlockwise=A;this.fillColor=K;this.lineWidth=C;
this.lineColor=D;this.opacity=E;this.filled=L;this.id=H;}GCISCircle.prototype=new GCISLine();GCISCircle.prototype.draw=function(B,E){B.setLineColor(this.lineColor);B.setLineWidth(this.lineWidth);B.setOpacity(this.opacity);B.setFillColor(this.fillColor);var C=E.calcPixelX(this.xPoints[0]);var D=E.calcPixelY(this.yPoints[0]);
var A=E.calcPixelX(this.radius)-E.calcPixelX(0);B.drawCircle(C,D,A,this.startAngle,this.endAngle,this.anticlockwise,this.filled);};GCISCircle.prototype.getWkt=function(A){};GCISCircle.prototype.toJSON=function(B,A){return'{"type":"circle","center":['+this.xPoints[0]*B+","+this.yPoints[0]*B+'],"radius":'+this.radius*B+',"lineColor":"'+this.lineColor+'","lineWidth":'+this.lineWidth+',"opacity":'+(100*this.opacity)+',"order":'+A+',"fillColor":"'+this.fillColor+'"}';
};GCISCircle.prototype.getRadius=function(){return this.radius;};GCISCircle.prototype.getBounds=function(C){var B=this.xPoints[0]-this.radius;var A=this.xPoints[0]+this.radius;var E=this.yPoints[0]-this.radius;var D=this.yPoints[0]+this.radius;C.mapx1=B;C.mapx2=A;C.mapy1=E;C.mapy2=D;};GCISCircle.prototype.containsPoint=function(A,C,B){return(Math.sqrt(Math.pow(this.xPoints[0]-A,2)+Math.pow(this.yPoints[0]-C,2))<this.radius);
};function VMLContext(A){this.vmlgraphic=A;this.fillStyle="black";this.globalAlpha=1;this.lineJoin="";this.lineWidth="0";this.strokeStyle="black";this.path="";this.offsetX=0;this.offsetY=0;}VMLContext.prototype.beginPath=function(){this.path="";};VMLContext.prototype.moveTo=function(B,A){this.path+="m"+parseInt(B,10)+","+parseInt(A,10);
};VMLContext.prototype.lineTo=function(B,A){this.path+="l"+parseInt(B,10)+","+parseInt(A,10);};VMLContext.prototype.arc=function(O,M,G,H,E,C){var K,F,D,N,B,L,A,J,P,I;if(this.path){this.path+=" ";}K=parseFloat(O);F=parseFloat(M);D=K-G;N=F-G;B=K+G;L=F+G;A=K+(Math.cos(H)*G);J=F+(Math.sin(H)*G);P=K+(Math.cos(E)*G);
I=F+(Math.sin(E)*G);A=Math.round(A);J=Math.round(J);P=Math.round(P);I=Math.round(I);this.path+="ar"+D+","+N+","+B+","+L+","+A+","+J+","+P+","+I;};VMLContext.prototype.rect=function(B,D,C,A){this.moveTo(B,D);this.lineTo(B+C,D);this.lineTo(B+C,D+A);this.lineTo(B,D+A);this.closePath();};VMLContext.prototype.closePath=function(){if(this.path){this.path+=" ";
}this.path+="x";};VMLContext.prototype.stroke=function(B){if(!this.path){return ;}this.path+=" e";var F=document.createElement("v:shape");if(B){F.filled=true;F.fillColor=this.fillStyle;F.stroked=false;}else{F.filled=false;F.fillColor="none";F.stroked=true;F.strokeweight=this.lineWidth-1;}F.strokeColor=this.strokeStyle;
var A=parseInt(this.vmlgraphic.div.style.width,10);var D=parseInt(this.vmlgraphic.div.style.height,10);F.coordsize=A+","+D;F.style.position="absolute";F.style.left=this.offsetX;F.style.top=this.offsetY;F.style.width=this.vmlgraphic.div.style.width;F.style.height=this.vmlgraphic.div.style.height;F.path=this.path;
var E,C;if(B){E=document.createElement("v:fill");E.opacity=this.globalAlpha;F.appendChild(E);}else{C=document.createElement("v:stroke");C.opacity=this.globalAlpha/2;F.appendChild(C);}this.vmlgraphic.div.appendChild(F);};VMLContext.prototype.fill=function(){this.stroke(true);};function VMLGraphic(A,B){this.div=B;
this.ctx=new VMLContext(this);this.ctx.lineJoin="round";this.clipper=new GCISClipper(0,B.clientWidth,0,B.clientHeight);this.useVML=true;}VMLGraphic.prototype=new GCISCanvasGraphic();VMLGraphic.prototype.setSize=function(A,B){var C=this.div;C.style.width=A+"px";C.style.height=B+"px";this.clipper=new GCISClipper(0,A,0,B);
};VMLGraphic.prototype.clear=function(){this.div.innerHTML="";this.ctx.path="";};GCISMoveSelectionMode=GCUI.Class(GCISMoveMode,{initialize:function(){this.selectionMode=1;this.name="selection";}});GCISCreateMode=GCUI.Class(GCISMoveMode,{initialize:function(E,C,D,A,B){this.kind=E;this.layerName=C;this.size=D;
this.color=A;this.opacity=B;this.name="create";},setMap:function(A){this.dynMap=A;this.layer=A.getLayer(this.layerName);if(!this.layer){alert("No such layer : "+this.layerName+" in "+A.layers);}},mouseDblClick:function(B){var D=this.dynMap.browser.getXposition(B);var C=this.dynMap.browser.getYposition(B);
D-=this.dynMap.browser.getElementLeft(this.dynMap.mainDiv);C-=this.dynMap.browser.getElementTop(this.dynMap.mainDiv);var A=this.dynMap.calcMapX(D);var E=this.dynMap.calcMapY(C);if(!this.currentObject){if(this.kind=="line"){this.currentObject=new GCISLine([A],[E],this.size,this.color,this.opacity);this.layer.addElement(this.currentObject);
}else{if(this.kind=="poly"){this.currentObject=new GCISPolygon([A],[E],this.color,this.size,"#000000",this.opacity);this.layer.addElement(this.currentObject);}}}else{if(this.kind=="line"||this.kind=="poly"){this.currentObject.addPoint(A,E);}}this.layer.refresh();}});function formatNumber(E,C,H,B,M,L,G,F){var K=Math.round(E*Math.pow(10,C));
if(K>=0){G=F="";}var J=(""+Math.abs(K)).split("");var I=J.length-C;if(I<0){I--;}for(var D=I;D<0;D++){J.unshift("0");}J.splice(I,0,B);while(I>3){I-=3;J.splice(I,0,H);}var A=M+G+J.join("")+F+L;return A;}GCISDistanceMode=GCUI.Class(GCISMoveMode,{initialize:function(D,E,B,C,F,G,A){this.kind="line";this.layerName=D;
this.size=E;this.color=B;this.opacity=C;this.name="distance";this.divsegment=F;this.divtotal=G;this.segmentdist=0;this.totaldist=0;this.distanceListener=A;},setMap:function(A){this.dynMap=A;this.layer=A.getLayer(this.layerName);if(!this.layer){alert("No such layer : "+this.layerName+" in "+A.layers);
}},mouseDown:function(A){this.dynMap.dragging=true;this.beginDragCursorX=this.dynMap.browser.getXposition(A);this.beginDragCursorY=this.dynMap.browser.getYposition(A);this.beginDragX=this.dynMap.currentX;this.beginDragY=this.dynMap.currentY;currentMap=this.dynMap;this.dynMap.currentDoc.onmousemove=function(B){if(currentMap&&currentMap.mouseMode){currentMap.mouseMode.isdragging=1;
currentMap.mouseMode.mouseDrag(B);}};this.dynMap.currentDoc.onmouseup=function(D){var J,E,I,H,F,C,B,K,G;if(currentMap&&currentMap.mouseMode){if(!currentMap.mouseMode.isdragging){J=currentMap.browser.getXposition(D);E=currentMap.browser.getYposition(D);J-=currentMap.browser.getElementLeft(currentMap.mainDiv);
E-=currentMap.browser.getElementTop(currentMap.mainDiv);I=currentMap.calcMapX(J);H=currentMap.calcMapY(E);if(!currentMap.mouseMode.currentObject){currentMap.mouseMode.segmentdist=0;currentMap.mouseMode.totaldist=0;currentMap.mouseMode.layer.deleteAllElements();currentMap.mouseMode.currentObject=new GCISLine([I],[H],currentMap.mouseMode.size,currentMap.mouseMode.color,currentMap.mouseMode.opacity);
currentMap.mouseMode.isDrawingPoly=true;currentMap.mouseMode.deleteLastPointPoly=false;currentMap.mouseMode.layer.addElement(currentMap.mouseMode.currentObject);}else{if(currentMap.mouseMode.deleteLastPointPoly){currentMap.mouseMode.currentObject.deleteLastPoint();}F=currentMap.mouseMode.currentObject.xPoints.length-1;
if(F>=0){C=currentMap.mouseMode.currentObject.xPoints[F];B=currentMap.mouseMode.currentObject.yPoints[F];currentMap.mouseMode.segmentdist=Math.sqrt(((I-C)*(I-C))+((H-B)*(H-B)));currentMap.mouseMode.totaldist+=currentMap.mouseMode.segmentdist;K=currentMap.mouseMode.segmentdist*currentMap.precision;G=currentMap.mouseMode.totaldist*currentMap.precision;
currentMap.mouseMode.divsegment.innerHTML=formatNumber(K,0," ","",""," m","-","");currentMap.mouseMode.divtotal.innerHTML=formatNumber(G,0," ","",""," m","-","");if(currentMap.mouseMode.distanceListener){currentMap.mouseMode.distanceListener.onDistanceChange(K,G);}}currentMap.mouseMode.currentObject.addPoint(I,H);
currentMap.mouseMode.deleteLastPointPoly=false;}currentMap.mouseMode.layer.refresh();}currentMap.mouseMode.isdragging=0;currentMap.mouseMode.endDrag(D);}};this.dynMap.window.onmouseout=function(B){if(currentMap&&currentMap.mouseMode){currentMap.mouseMode.endDrag(B);}};this.dynMap.browser.cancelEvent(A);
},mouseDrag:function(C,F){var M=document.getElementById("debug");if(M){M.innerHTML="";}var J=this.dynMap.browser.getXposition(C);var D=this.dynMap.browser.getYposition(C);var O=J-this.beginDragCursorX;var N=D-this.beginDragCursorY;var H,G,I,E,B,A,K,L;if(!this.isDrawingPoly){this.dynMap.currentX=this.dynMap.calcMapDeltaX(this.beginDragX,-O);
this.dynMap.currentY=this.dynMap.calcMapDeltaY(this.beginDragY,-N);this.dynMap.moveMap(O,N,F);}else{this.isdragging=false;J-=currentMap.browser.getElementLeft(currentMap.mainDiv);D-=currentMap.browser.getElementTop(currentMap.mainDiv);H=currentMap.calcMapX(J);G=currentMap.calcMapY(D);if(this.deleteLastPointPoly){this.currentObject.deleteLastPoint();
}E=this.currentObject.xPoints.length-1;B=this.currentObject.xPoints[E];A=this.currentObject.yPoints[E];this.currentObject.addPoint(H,G);this.deleteLastPointPoly=true;this.layer.refresh();if(E>=0){K=this.dynMap.precision*Math.sqrt(((H-B)*(H-B))+((G-A)*(G-A)));L=this.dynMap.precision*this.totaldist+K;this.divsegment.innerHTML=formatNumber(K,0," ","",""," m","-","");
this.divtotal.innerHTML=formatNumber(L,0," ","",""," m","-","");if(this.distanceListener){this.distanceListener.onDistanceChange(K,L);}}}this.dynMap.browser.cancelEvent(C);},endDrag:function(A){this.mouseDrag(A,true);if(!this.isDrawingPoly){this.dynMap.currentDoc.onmouseup=null;this.dynMap.currentDoc.onmousemove=null;
currentMap=null;}this.dynMap.window.onmouseout=null;this.dynMap.dragging=false;this.endMoveMap();},mouseDblClick:function(A){if(this.isDrawingPoly){this.isDrawingPoly=false;this.currentObject.deleteLastPoint();this.currentObject.deleteLastPoint();this.currentObject=null;this.dynMap.currentDoc.onmouseup=null;
this.dynMap.currentDoc.onmousemove=null;currentMap=null;}}});GCISDrawMode=GCUI.Class(GCISMoveMode,{initialize:function(F,C,E,A,B,D,G){this.kind=F;this.layerName=C;this.size=E;this.color=A;this.opacity=B;this.bordercolor=D?D:"#000000";this.name="createSelection";this.featureId=G;},setMap:function(A){this.dynMap=A;
this.layer=A.getLayer(this.layerName);if(!this.layer){alert("No such layer : "+this.layerName+" in "+A.layers);}},mouseDown:function(A){this.dynMap.dragging=true;this.beginDragCursorX=this.dynMap.browser.getXposition(A);this.beginDragCursorY=this.dynMap.browser.getYposition(A);this.beginDragX=this.dynMap.currentX;
this.beginDragY=this.dynMap.currentY;currentMap=this.dynMap;this.dynMap.currentDoc.onmousemove=function(B){if(currentMap&&currentMap.mouseMode){currentMap.mouseMode.isdragging=1;currentMap.mouseMode.mouseDrag(B);}};this.dynMap.currentDoc.onmouseup=function(C){var E,D,B,F;if(currentMap&&currentMap.mouseMode){if(!currentMap.mouseMode.isdragging){E=currentMap.browser.getXposition(C);
D=currentMap.browser.getYposition(C);E-=currentMap.browser.getElementLeft(currentMap.mainDiv);D-=currentMap.browser.getElementTop(currentMap.mainDiv);B=currentMap.calcMapX(E);F=currentMap.calcMapY(D);if(!currentMap.mouseMode.currentObject){if(currentMap.mouseMode.kind=="line"){currentMap.mouseMode.currentObject=new GCISLine([B],[F],currentMap.mouseMode.size,currentMap.mouseMode.color,currentMap.mouseMode.opacity,currentMap.mouseMode.featureId);
currentMap.mouseMode.isDrawingPoly=true;currentMap.mouseMode.deleteLastPointPoly=false;currentMap.mouseMode.layer.addElement(currentMap.mouseMode.currentObject);}else{if(currentMap.mouseMode.kind=="poly"){currentMap.mouseMode.currentObject=new GCISPolygon([B],[F],currentMap.mouseMode.color,currentMap.mouseMode.size,currentMap.mouseMode.bordercolor,currentMap.mouseMode.opacity,false,currentMap.mouseMode.featureId);
currentMap.mouseMode.isDrawingPoly=true;currentMap.mouseMode.deleteLastPointPoly=false;currentMap.mouseMode.layer.addElement(currentMap.mouseMode.currentObject);}else{if(currentMap.mouseMode.kind=="point"){currentMap.mouseMode.currentObject=new GCISPoint(B,F,currentMap.mouseMode.color,currentMap.mouseMode.size,currentMap.mouseMode.bordercolor,currentMap.mouseMode.opacity);
}}}}else{if(currentMap.mouseMode.kind=="line"||currentMap.mouseMode.kind=="poly"){if(currentMap.mouseMode.deleteLastPointPoly){currentMap.mouseMode.currentObject.deleteLastPoint();}currentMap.mouseMode.currentObject.addPoint(B,F);currentMap.mouseMode.deleteLastPointPoly=false;}}currentMap.mouseMode.layer.refresh();
}if(currentMap.mouseMode.currentObject){if(currentMap.mouseMode.kind=="circle"||currentMap.mouseMode.kind=="rect"||currentMap.mouseMode.kind=="point"){if(currentMap.mouseMode.kind=="circle"){currentMap.mouseMode.div.parentNode.removeChild(currentMap.mouseMode.div);}currentMap.mouseMode.isdragging=0;currentMap.mouseMode.mouseDrag(C,true);
if(!currentMap.mouseMode.isDrawingPoly){currentMap.currentDoc.onmouseup=null;currentMap.currentDoc.onmousemove=null;}currentMap.window.onmouseout=null;currentMap.dragging=false;currentMap.mouseMode.endMoveMap();currentMap.mouseMode.notifyDrawingFinish();currentMap=null;return ;}}currentMap.mouseMode.isdragging=0;
currentMap.mouseMode.endDrag(C);}};this.dynMap.window.onmouseout=function(B){if(currentMap&&currentMap.mouseMode){currentMap.mouseMode.endDrag(B);}};this.dynMap.browser.cancelEvent(A);},mouseDrag:function(B,D){var K=document.getElementById("debug");if(K){K.innerHTML="";}var I=this.dynMap.browser.getXposition(B);
var C=this.dynMap.browser.getYposition(B);var M=I-this.beginDragCursorX;var L=C-this.beginDragCursorY;var G,F,H,A,E,J;if(this.kind=="line"||this.kind=="poly"){if(!this.isDrawingPoly){this.dynMap.currentX=this.dynMap.calcMapDeltaX(this.beginDragX,-M);this.dynMap.currentY=this.dynMap.calcMapDeltaY(this.beginDragY,-L);
this.dynMap.moveMap(M,L,D);}else{this.isdragging=false;I-=currentMap.browser.getElementLeft(currentMap.mainDiv);C-=currentMap.browser.getElementTop(currentMap.mainDiv);G=currentMap.calcMapX(I);F=currentMap.calcMapY(C);if(this.deleteLastPointPoly){this.currentObject.deleteLastPoint();}this.currentObject.addPoint(G,F);
this.deleteLastPointPoly=true;this.layer.refresh();}}else{if(!D){I-=this.dynMap.browser.getElementLeft(this.dynMap.mainDiv);C-=this.dynMap.browser.getElementTop(this.dynMap.mainDiv);G=currentMap.calcMapX(I);F=currentMap.calcMapY(C);if(!this.currentObject){if(this.kind=="circle"){this.circleX=I;this.circleY=C;
A=this.dynMap.createElt("div");A.className="mapcircleradius";A.style.width="1px";A.style.left=I+"px";A.style.top=C+"px";E=this.dynMap.createElt("div");E.className="mapcircleradiusvalue";E.style.width="1px";E.innerHTML="0 m.";E.style.left="0px";this.div2=E;A.appendChild(E);this.dynMap.getMapDiv().appendChild(A);
this.div=A;this.currentObject=new GCISCircle(G,F,this.dynMap.calcMapDeltaX(0,1),0,2*Math.PI,false,this.color,this.size,this.bordercolor,this.opacity,true,this.featureId);}if(this.kind=="rect"){this.currentObject=new GCISRect(G,G+this.dynMap.calcMapDeltaX(0,1),F,F+this.dynMap.calcMapDeltaY(0,1),this.color,this.size,this.bordercolor,this.opacity,true,this.featureId);
}if(this.kind=="point"){this.currentObject=new GCISPoint(G,F,currentMap.mouseMode.color,currentMap.mouseMode.size,this.bordercolor,currentMap.mouseMode.opacity);}this.layer.addElement(this.currentObject);}else{if(this.kind=="circle"){H=Math.sqrt(Math.pow(this.circleX-I,2)+Math.pow(this.circleY-C,2));
this.currentObject.radius=this.dynMap.calcMapDeltaX(0,H);this.div.style.width=H+"px";this.div2.style.width=H+"px";this.div2.style.left=(H/4)+"px";J=Math.round(this.currentObject.radius);this.div2.innerHTML=formatNumber((J*currentMap.precision),0," ","",""," m","-","");}if(this.kind=="rect"){this.currentObject.mapx2=G;
this.currentObject.mapy2=F;this.currentObject.modifyPoints(this.currentObject.mapx1,G,this.currentObject.mapy1,F);}if(this.kind=="point"){this.currentObject.mapx=G;this.currentObject.mapy=F;}this.layer.refresh();}}}this.dynMap.browser.cancelEvent(B);},endDrag:function(A){this.mouseDrag(A,true);if(!this.isDrawingPoly){this.dynMap.currentDoc.onmouseup=null;
this.dynMap.currentDoc.onmousemove=null;currentMap=null;}this.dynMap.window.onmouseout=null;this.dynMap.dragging=false;this.endMoveMap();},mouseDblClick:function(A){if(this.isDrawingPoly){this.isDrawingPoly=false;this.currentObject.deleteLastPoint();this.currentObject.deleteLastPoint();this.dynMap.currentDoc.onmouseup=null;
this.dynMap.currentDoc.onmousemove=null;currentMap=null;this.notifyDrawingFinish();}},notifyDrawingFinish:function(){var A,B;for(A=0;A<this.dynMap.drawingListeners.length;A++){B=this.dynMap.drawingListeners[A];if(B.onDrawFinish){B.onDrawFinish(this.currentObject,this.kind);}}this.currentObject=null;}});
GCISSelectMode=GCUI.Class(GCISMoveMode,{initialize:function(){this.selectMode=1;this.name="select";}});function min(B,A){if(B<A){return B;}else{return A;}}function max(B,A){if(B>A){return B;}else{return A;}}GCISZoomSelectionMode=GCUI.Class(GCISMoveMode,{initialize:function(){this.selectMode=0;this.name="zoomSelection";
},mouseDown:function(D){if(this.dynMap.animator){this.dynMap.stopAnimation();}this.dynMap.dragging=true;this.beginDragCursorX=this.dynMap.browser.getXposition(D);this.beginDragCursorY=this.dynMap.browser.getYposition(D);this.beginDragX=this.dynMap.currentX;this.beginDragY=this.dynMap.currentY;currentMap=this.dynMap;
var B=this.beginDragCursorX-this.dynMap.browser.getElementLeft(this.dynMap.mainDiv);var A=this.beginDragCursorY-this.dynMap.browser.getElementTop(this.dynMap.mainDiv);var C=new GCUI.Layer.RectZoomLayer(this.dynMap,B,A);this.dynMap.addLayer(C);this.isMoved=false;this.dynMap.currentDoc.onmousemove=function(E){if(currentMap&&currentMap.mouseMode){this.isMoved=true;
currentMap.mouseMode.mouseDrag(E);}};this.dynMap.currentDoc.onmouseup=function(E){if(currentMap&&currentMap.mouseMode){currentMap.mouseMode.endDrag(E);}};this.dynMap.browser.cancelEvent(D);},mouseDrag:function(B,G){if(!this.dynMap.dragging){return ;}this.isMoved=true;var O=document.getElementById("debug");
if(O){O.innerHTML="";}var N=this.dynMap.browser.getXposition(B);var D=this.dynMap.browser.getYposition(B);var Q=N-this.beginDragCursorX;var P=D-this.beginDragCursorY;this.dynMap.getLayer("zoomsel").setDelta(Q,P);var F,K,H,J,E,A,I,M,C,L;if(G){this.dynMap.dragging=false;F=this.dynMap.getLayer("zoomsel");
K=this.dynMap.calcMapX(F.getXmin());H=this.dynMap.calcMapX(F.getXmax());J=this.dynMap.calcMapY(F.getYmin());E=this.dynMap.calcMapY(F.getYmax());A=min(K,H);I=max(K,H);M=min(J,E);C=max(J,E);if(!this.unzoom){this.dynMap.centerOnRect(A,M,I,C);}else{this.dynMap.currentX=(A+I)/2;this.dynMap.currentY=(M+C)/2;
L=this.dynMap.scale+3;if(L>this.dynMap.maxScale){L=this.dynMap.maxScale;this.dynMap.refresh();}this.dynMap.animateZoom(L,true);}this.dynMap.removeLayer("zoomsel",F);}this.dynMap.browser.cancelEvent(B);},endDrag:function(B){var A;if(this.isMoved){this.mouseDrag(B,true);}else{A=this.dynMap.getLayer("zoomsel");
this.dynMap.removeLayer("zoomsel",A);}this.dynMap.currentDoc.onmouseup=null;this.dynMap.currentDoc.onmousemove=null;this.dynMap.window.onmouseout=null;currentMap=null;this.dynMap.dragging=false;}});GCISUnZoomSelectionMode=GCUI.Class(GCISZoomSelectionMode,{initialize:function(){this.name="unZoomSelection";
this.unzoom=true;}});GCUI.Layer=GCUI.Class({});function rectIntersectRect(B,A,F,D,E,C,H,G){if(B>C){return false;}if(A<E){return false;}if(F>G){return false;}if(D<H){return false;}return true;}GCUI.Layer.GCISRasterLayer=GCUI.Class(GCISAbstractLayer,{initialize:function(A,G,D,H,I,J,E,B,K,C,F){this.name=A;
this.dynMap=G;this.transparentColor=0;this.server=D;this.mapName=H;this.tabName=I;this.mapVersion="";if(F&&F!=""){this.mapVersion=F;}this.visible=true;this.created=false;this.minscale=E?E:G.minScale;this.maxscale=B?B:G.nbScales;this.tileWidth=K?K:this.dynMap.tileWidth;this.tileHeight=C?C:this.dynMap.tileHeight;
this.imgTileWidth=this.tileWidth;this.imgTileHeight=this.tileHeight;this.format=(J?J:"png");this.protocol="geoportal";if(J=="pngt"){this.transparentColor=true;}if(J!="png"&&J!="jpg"&&J!="png24"){this.format="png";}this.userId=new DynMapGetUserId(this.dynMap);this.div=null;this.opacity=100;},toJSON:function(A){var C=this.format;
if(C=="png"&&this.transparentColor){C="pngt";}var B=this.mapName;if(B.indexOf(".gcm")==-1){B=B+".gcm";}return'{"order":'+A+',"type":"raster","raster":{"map":"'+B+'","tab":"'+this.tabName+'","format":"'+C+'","opacity":'+this.opacity+"}}";},setCopyright:function(D,C,A,B){this.textCopyright=D;this.imageCopyright=C;
this.textDivW=A?A:100;this.textDivH=B?B:25;},setOpacity:function(A){if(A<0){A=0;}if(A>100){A=100;}var B=this.opacity;this.opacity=A;if(this.div.style.opacity!==undefined){this.div.style.opacity=A/100;}if(this.div.style.MozOpacity!==undefined){this.div.style.MozOpacity=A/100;}if(this.div.style.filter!==undefined){this.div.style.filter="alpha(opacity="+A+")";
}if(B===0&&this.opacity!==0){this.setVisible(true);this.refresh();}if(this.opacity===0){this.setVisible(false);}},getOpacity:function(){return this.opacity;},setUserId:function(A){this.userId=A;},setScale:function(B){if(this.zooming){return ;}if(this.animationVisible){this.hideAnimation();}var C,A;if(this.isInterpolated(B)){C=this.xRatios[B]/this.xRatios[this.minscale];
A=this.yRatios[B]/this.yRatios[this.minscale];this.imgTileWidth=Math.round(this.tileWidth*C);this.imgTileHeight=Math.round(this.tileHeight*A);}else{this.imgTileWidth=parseInt(this.tileWidth,10);this.imgTileHeight=parseInt(this.tileHeight,10);}},calcMapTileWidth:function(){return this.tileWidth/this.xRatios[this.dynMap.scale];
},calcMapTileHeight:function(){return -this.tileHeight/this.yRatios[this.dynMap.scale];},calcNumTileX:function(A){return Math.floor(A/this.calcMapTileWidth());},calcNumTileY:function(A){return Math.floor(A/this.calcMapTileHeight());},calcTileX0:function(A){return Math.round(A*this.calcMapTileWidth());
},calcTileY0:function(A){return Math.round(A*this.calcMapTileHeight());},init:function(A){this.dynMap=A;var B=A.createElt("div");B.id=A.id+"_"+this.name;B.style.width="100%";B.style.height="100%";B.style.position="absolute";B.style.left="0px";B.style.top="0px";B.style.zIndex=1;A.getMapDiv().appendChild(B);
this.div=B;this.created=false;},setZindex:function(A){this.div.style.zIndex=A;},remove:function(A){this.div.parentNode.removeChild(this.div);},create:function(){this.div.innerHTML="";this.marginX=200;this.marginY=200;var A=this.dynMap.width+2*this.marginX;var B=this.dynMap.height+2*this.marginY;var D=Math.floor(A/this.tileWidth)+2;
var C=Math.floor(B/this.tileHeight)+2;var G;var F;this.images=[];this.animImages=[];this.nbTileX=D;this.nbTileY=C;var E=true;for(G=0;G<this.nbTileX;G++){this.images[G]=[];this.animImages[G]=[];for(F=0;F<this.nbTileY;F++){this.images[G][F]=this.createImage(this.div,1);this.animImages[G][F]=this.createImage(this.div,0);
if(E){this.images[G][F].image.className="tile";this.animImages[G][F].image.className="anim";}}}this.created=true;},createImage:function(D,C){var B=this.dynMap.createElt("img");B.style.width=this.tileWidth+"px";B.style.height=this.tileHeight+"px";B.style.visibility="hidden";B.style.position="absolute";
B.style.left="-500px";B.style.zIndex=C;B.style.border="0";B.galleryImg=false;B.src=this.dynMap.defaultImg;D.appendChild(B);var A={nosrc:true,image:B,visible:false};return A;},setTransparentColor:function(A){this.transparentColor=A;},setVisible:function(A){this.visible=A;},setVisibilityRange:function(B,A){this.minscaleZoomed=B;
this.maxscaleZoomed=A;},isInterpolated:function(A){if(!this.maxscaleZoomed||!this.minscaleZoomed){return false;}if(A){return((A<=this.maxscaleZoomed)&&(A>=this.minscaleZoomed));}return((this.dynMap.scale<=this.maxscaleZoomed)&&(this.dynMap.scale>=this.minscaleZoomed));},isVisible:function(){return this.visible;
},calcLimits:function(){if(!this.limits){this.limits=this.dynMap.limits;}var A=this.limits;var C=this.calcNumTileX(A[0]);var B=this.calcNumTileX(A[1]);var E=this.calcNumTileY(A[2]);var D=this.calcNumTileY(A[3]);this.tileLimits=[C,B+1,E,D+1];},calcTileSrc:function(B,A){var E=this.server;var C=this.format;
var D=A?A:this.dynMap.scale;if(!C){C="png8";}E+="/"+this.mapName;E+="_";E+=this.mapVersion;E+="_"+this.tabName;E+="_"+C;if(this.transparentColor){E+="t";}E+="/"+this.tileWidth;E+="_"+this.tileHeight;E+="_"+D;E+="/"+B.mapTileX;E+="/"+B.mapTileY;E+="."+C.substring(0,3);return E;},calcLimitsRatios:function(G,F){var A=this.limits;
var C=this.calcNumTileXRatio(A[0],G);var B=this.calcNumTileXRatio(A[1],G);var E=this.calcNumTileYRatio(A[2],F);var D=this.calcNumTileYRatio(A[3],F);this.tileLimits=[C,B+1,E,D+1];},calcMapTileWidthRatio:function(A){return this.tileWidth/A;},calcMapTileHeightRatio:function(A){return -this.tileHeight/A;
},calcNumTileXRatio:function(A,B){return Math.floor(A/this.calcMapTileWidthRatio(B));},calcNumTileYRatio:function(A,B){return Math.floor(A/this.calcMapTileHeightRatio(B));},fillImageZoomed:function(E,C,B){E.mapTileX=C;E.mapTileY=B;var A=this.calcMapTileWidthRatio(this.xRatios[this.minscale]);var D=this.calcMapTileHeightRatio(this.yRatios[this.minscale]);
E.mapx=Math.round(A*C+A/2);E.mapy=Math.round(D*B+D/2);this.positionImageZoomed(E);E.nosrc=true;E.visible=false;},positionImageZoomed:function(A){A.posx=this.dynMap.calcDoublePixelX(0,this.xRatios[this.minscale])+this.tileWidth*A.mapTileX;A.posy=this.dynMap.calcDoublePixelY(0,this.yRatios[this.minscale])-this.tileHeight*A.mapTileY-this.tileHeight;
},zoomImageRatios:function(K,B,A){var H=this;var E=this.dynMap.centerX;var C=this.dynMap.centerY;var J=Math.round(E+(K.posx-E)*B);var I=Math.round(C+(K.posy-C)*A);var F=Math.round(E+(K.posx-E)*B+H.tileWidth*B);var D=Math.round(C+(K.posy-C)*A+H.tileHeight*A);var G=K.image;G.style.left=J+"px";G.style.top=I+"px";
K.posx=J;K.posy=I;G.style.width=(F-J)+"px";G.style.height=(D-I)+"px";},clearImage:function(A){A.image.src=this.dynMap.defaultImg;A.image.style.visibility="hidden";A.image.style.width=this.tileWidth+"px";A.image.style.height=this.tileHeight+"px";A.nosrc=true;A.visible=false;A.image.galleryImg=false;},clearAll:function(A){if(!A){return ;
}var D,C,B;for(D=0;D<this.nbTileX;D++){for(C=0;C<this.nbTileY;C++){B=A[D][C];this.clearImage(B);}}},refreshRatios:function(){this.clearAll(this.images);this.calcLimitsRatios(this.xRatios[this.minscale],this.yRatios[this.minscale]);var I=Math.floor(this.nbTileX/2);var H=Math.floor(this.nbTileY/2);this.centerX=Math.floor(this.dynMap.width/2);
this.centerY=Math.floor(this.dynMap.height/2);var D=this.calcNumTileXRatio(this.dynMap.currentX,this.xRatios[this.minscale]);var C=this.calcNumTileYRatio(this.dynMap.currentY,this.yRatios[this.minscale]);var B,A,G,F,E;for(B=0;B<this.nbTileX;B++){for(A=0;A<this.nbTileY;A++){G=this.images[B][A];F=D+B-I;
E=C+A-H;this.fillImageZoomed(G,F,E);this.updateMapImage(G);}}},refresh:function(C){if(!this.xRatios){this.initRatios(this.dynMap.ratios);}if(this.preloadAnimator){this.preloadAnimator.lastTime=new Date().getTime();}var I=(this.width!=this.dynMap.width);if(!this.created){I=true;}if(this.visible&&I){this.create();
}if(!this.visible&&this.created){this.div.innerHTML="";this.created=false;}if(!this.visible){return ;}this.width=this.dynMap.width;this.height=this.dynMap.height;if(this.dynMap.scale<this.minscale){if(this.isInterpolated()){this.refreshRatios();return ;}}this.clearAll(this.images);this.calcLimits();var K=Math.floor(this.nbTileX/2);
var J=Math.floor(this.nbTileY/2);this.centerX=Math.floor(this.dynMap.width/2);this.centerY=Math.floor(this.dynMap.height/2);var E=this.calcNumTileX(this.dynMap.currentX);var D=this.calcNumTileY(this.dynMap.currentY);var B,A,H,G,F;for(B=0;B<this.nbTileX;B++){for(A=0;A<this.nbTileY;A++){H=this.images[B][A];
G=E+B-K;F=D+A-J;this.fillImage(H,G,F);this.updateMapImage(H);}}},fillImage:function(E,C,B){E.mapTileX=C;E.mapTileY=B;var A=this.calcMapTileWidth();var D=this.calcMapTileHeight();E.mapx=Math.round(A*C+A/2);E.mapy=Math.round(D*B+D/2);this.positionImage(E);E.nosrc=true;E.visible=false;},positionImage:function(A){A.posx=this.dynMap.calcPixelX(0,this.xRatios[this.dynMap.scale])+this.tileWidth*A.mapTileX;
A.posy=this.dynMap.calcPixelY(0,this.yRatios[this.dynMap.scale])-this.tileHeight*A.mapTileY-this.tileHeight;},initRatios:function(E){this.ratios=E;var B=this.ratios.split("~");var D=0;var A=1;this.xRatios=[];this.yRatios=[];var C=B.length;for(D=0;D<C;D++){this.xRatios[A]=parseFloat(B[D++]);this.yRatios[A++]=parseFloat(B[D]);
}if(!this.dynMap.xRatios){this.dynMap.xRatios=this.xRatios;this.dynMap.yRatios=this.yRatios;}},updateMapImage:function(F){var G=true;var B=2;var A=2;var D,C,E,H;if(!rectIntersectRect(F.posx,F.posx+this.tileWidth,F.posy,F.posy+this.tileHeight,-B,this.dynMap.width+B,-A,this.dynMap.height+A)){G=false;}if(!G){if(F.visible){this.clearImage(F);
}}else{if(F.nosrc){if(!this.isVisible()||this.dynMap.scale>this.maxscale||this.dynMap.scale<this.minscale||!rectIntersectRect(F.mapTileX,F.mapTileX,F.mapTileY,F.mapTileY,this.tileLimits[0],this.tileLimits[1],this.tileLimits[2],this.tileLimits[3])){this.displayCopyright=false;if(this.dynMap.scale<this.minscale){if(this.isInterpolated()){D=this.xRatios[this.dynMap.scale]/this.xRatios[this.minscale];
C=this.yRatios[this.dynMap.scale]/this.yRatios[this.minscale];this.displayCopyright=true;E=this.calcTileSrc(F,this.minscale);F.image.src=E;this.zoomImageRatios(F,D,C);}}else{F.image.src=this.dynMap.defaultImg;F.loadImage=null;}}else{this.displayCopyright=true;H=this.calcTileSrc(F);F.image.src=H;}F.nosrc=false;
}if(!F.visible){F.image.style.visibility="visible";F.visible=true;}F.image.style.left=F.posx+"px";F.image.style.top=F.posy+"px";}},correctMapImage:function(C){var D=0;var B=0;var A=0;if(C.posx>this.dynMap.width+this.marginX+A){D=-this.nbTileX;}else{if(C.posx<-this.marginX-this.tileWidth-A){D=this.nbTileX;
}}if(C.posy>this.dynMap.height+this.marginY+A){B=-this.nbTileY;}else{if(C.posy<-this.marginY-this.tileHeight-A){B=this.nbTileY;}}if(D!==0||B!==0){this.fillImage(C,C.mapTileX+D,C.mapTileY-B);this.clearImage(C);}this.updateMapImage(C);},move:function(B,A,D){if(this.animationVisible){this.hideAnimation();
}if(!this.isVisible()){return ;}if(this.dynMap.scale<this.minscale){if(this.isInterpolated()){this.refreshRatios();return ;}}var F;var E;var C;for(F=0;F<this.nbTileX;F++){for(E=0;E<this.nbTileY;E++){C=this.images[F][E];this.positionImage(C);this.correctMapImage(C);}}},animateZoom:function(B,A,D){var C=new GCUI.MapAnimator.Zoom(this,B,A,this.dynMap.animationTime,D);
this.dynMap.startAnimation(C);},hideAnimation:function(){this.clearAll(this.animImages);this.animationVisible=false;}});GCUI.Layer.WMS=GCUI.Class(GCISAbstractLayer,{DEFAULT_PARAMS:{service:"WMS",version:"1.1.1",request:"GetMap",styles:"",exceptions:"application/vnd.ogc.se_inimage",format:"image/jpeg"},initialize:function(C,B,D,A){D=GCUI.Util.upperCaseObject(D);
this.url=B;this.options=A;this.params=D;this.name=C;this.tileWidth=this.options.tileWidth?this.options.tileWidth:256;this.tileHeight=this.options.tileHeight?this.options.tileHeight:256;GCUI.Util.applyDefaults(this.params,GCUI.Util.upperCaseObject(this.DEFAULT_PARAMS));this.format=this.options.format?this.options.format:"image/png";
this.layerName=this.params.LAYERS;this.exception=this.params.EXCEPTIONS;this.maxResolution=this.options.maxResolution?this.options.maxResolution:180/256;},init:function(A){this.dynMap=A;var B=A.createElt("div");B.id=A.id+"_"+this.name;B.style.width="100%";B.style.height="100%";B.style.position="absolute";
B.style.left="0px";B.style.top="0px";B.style.zIndex=1;A.getMapDiv().appendChild(B);this.div=B;this.created=false;this.initResolutions();},initResolutions:function(){this.xRatios=[];this.yRatios=[];var B=0;for(var A=this.dynMap.maxScale;A>0;A--){this.xRatios[A]=Math.pow(2,B)/this.maxResolution;this.yRatios[A]=-this.xRatios[A];
B=B+1;}if(!this.dynMap.xRatios){this.dynMap.xRatios=this.xRatios;this.dynMap.yRatios=this.yRatios;}},clearImage:function(A){A.image.src=this.dynMap.defaultImg;A.image.style.visibility="hidden";A.image.style.width=this.tileWidth+"px";A.image.style.height=this.tileHeight+"px";A.nosrc=true;A.visible=false;
A.image.galleryImg=false;},clearAll:function(A){if(!A){return ;}var D,C,B;for(D=0;D<this.nbTileX;D++){for(C=0;C<this.nbTileY;C++){B=A[D][C];this.clearImage(B);}}},createImage:function(D,C){var B=this.dynMap.createElt("img");B.style.width=this.tileWidth+"px";B.style.height=this.tileHeight+"px";B.style.visibility="hidden";
B.style.position="absolute";B.style.left="-500px";B.style.zIndex=C;B.style.border="0";B.galleryImg=false;B.src=this.dynMap.defaultImg;D.appendChild(B);var A={nosrc:true,image:B,visible:false};return A;},setVisible:function(A){this.visible=A;},isVisible:function(){return this.visible;},create:function(){this.div.innerHTML="";
var F;var E;this.images=[];this.animImages=[];this.marginX=200;this.marginY=200;var A=this.dynMap.width+2*this.marginX;var B=this.dynMap.height+2*this.marginY;var D=Math.floor(A/this.tileWidth)+2;var C=Math.floor(B/this.tileHeight)+2;this.nbTileX=D;this.nbTileY=C;for(F=0;F<this.nbTileX;F++){this.images[F]=[];
this.animImages[F]=[];for(E=0;E<this.nbTileY;E++){this.images[F][E]=this.createImage(this.div,1);this.animImages[F][E]=this.createImage(this.div,0);}}this.created=true;},animateZoom:function(B,A,D){var C=new GCUI.MapAnimator.Zoom(this,B,A,this.dynMap.animationTime,D);this.dynMap.startAnimation(C);},isInterpolated:function(A){return false;
},calcMapTileWidth:function(){return this.tileWidth/this.xRatios[this.dynMap.scale];},calcMapTileHeight:function(){return -this.tileHeight/this.yRatios[this.dynMap.scale];},calcNumTileX:function(A){return Math.floor(A/this.calcMapTileWidth());},calcNumTileY:function(A){return Math.floor(A/this.calcMapTileHeight());
},calcLimits:function(){var A=this.dynMap.limits;var C=this.calcNumTileX(A[0]);var B=this.calcNumTileX(A[1]);var E=this.calcNumTileY(A[2]);var D=this.calcNumTileY(A[3]);this.tileLimits=[C,B+1,E,D+1];},fillImage:function(E,C,B){E.mapTileX=C;E.mapTileY=B;var A=this.calcMapTileWidth();var D=this.calcMapTileHeight();
E.mapx=A*C+A/2;E.mapy=D*B+D/2;if(this.xRatios[this.dynMap.scale]==(1/this.maxResolution)){E.mapy=D*B+D;}this.positionImage(E);E.nosrc=true;E.visible=false;},positionImage:function(A){A.posx=this.dynMap.calcPixelX(0,this.xRatios[this.dynMap.scale])+this.tileWidth*A.mapTileX;A.posy=this.dynMap.calcPixelY(0,this.yRatios[this.dynMap.scale])-this.tileHeight*A.mapTileY-this.tileHeight;
if(this.xRatios[this.dynMap.scale]==(1/this.maxResolution)){A.posy=this.dynMap.calcPixelY(0,this.yRatios[this.dynMap.scale])-this.tileHeight*A.mapTileY-3*this.tileHeight/2;}},selectUrl:function(){var A=Math.floor(this.url.length*Math.random());return this.url[A]+"?";},calcTileSrc:function(G,J){var B=this.url+"?";
if(this.url instanceof Array){B=this.selectUrl();}var F=J?J:this.dynMap.scale;var H=this.calcMapTileWidth()/2;var D=this.calcMapTileHeight()/2;var E=G.mapx-H;var C=G.mapy-D;var K=G.mapx+H;var I=G.mapy+D;var A=this.dynMap.limits;if(rectIntersectRect(E,K,C,I,A[0],A[1],A[2],A[3])){if(this.options.map){B+="map="+this.options.map+"&";
}B+="LAYERS="+this.layerName+"&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=";B+=this.exception+"&FORMAT="+this.format+"&SRS=EPSG%3A4326&BBOX=";B+=E+","+C+","+K+","+I;B+="&WIDTH=256&HEIGHT=256";}else{B=this.dynMap.defaultImg;}return B;},updateMapImage:function(F){var G=true;var B=2;var A=2;
var D,C,E,H;if(!rectIntersectRect(F.posx,F.posx+this.tileWidth,F.posy,F.posy+this.tileHeight,-B,this.dynMap.width+B,-A,this.dynMap.height+A)){G=false;}if(!G){if(F.visible){this.clearImage(F);}}else{if(F.nosrc){if(!this.isVisible()||this.dynMap.scale>this.maxscale||this.dynMap.scale<this.minscale||!rectIntersectRect(F.mapTileX,F.mapTileX,F.mapTileY,F.mapTileY,this.tileLimits[0],this.tileLimits[1],this.tileLimits[2],this.tileLimits[3])){this.displayCopyright=false;
F.image.src=this.dynMap.defaultImg;F.loadImage=null;}else{this.displayCopyright=true;H=this.calcTileSrc(F);F.image.src=H;}F.nosrc=false;}if(!F.visible){F.image.style.visibility="visible";F.visible=true;}F.image.style.left=F.posx+"px";F.image.style.top=F.posy+"px";}},refresh:function(C){var I=(this.width!=this.dynMap.width);
if(!this.created){I=true;}if(this.visible&&I){this.create();}if(!this.visible&&this.created){this.div.innerHTML="";this.created=false;}if(!this.visible){return ;}this.width=this.dynMap.width;this.height=this.dynMap.height;this.clearAll(this.images);this.calcLimits();var K=Math.floor(this.nbTileX/2);var J=Math.floor(this.nbTileY/2);
this.centerX=Math.floor(this.dynMap.width/2);this.centerY=Math.floor(this.dynMap.height/2);var E=this.calcNumTileX(this.dynMap.currentX);var D=this.calcNumTileY(this.dynMap.currentY);var B,A,H,G,F;for(B=0;B<this.nbTileX;B++){for(A=0;A<this.nbTileY;A++){H=this.images[B][A];G=E+B-K;F=D+A-J;this.fillImage(H,G,F);
this.updateMapImage(H);}}},hideAnimation:function(){this.clearAll(this.animImages);this.animationVisible=false;},correctMapImage:function(C){var D=0;var B=0;var A=0;if(C.posx>this.dynMap.width+this.marginX+A){D=-this.nbTileX;}else{if(C.posx<-this.marginX-this.tileWidth-A){D=this.nbTileX;}}if(C.posy>this.dynMap.height+this.marginY+A){B=-this.nbTileY;
}else{if(C.posy<-this.marginY-this.tileHeight-A){B=this.nbTileY;}}if(D!==0||B!==0){this.fillImage(C,C.mapTileX+D,C.mapTileY-B);this.clearImage(C);}this.updateMapImage(C);},move:function(B,A,D){if(this.animationVisible){this.hideAnimation();}if(!this.isVisible()){return ;}var F;var E;var C;for(F=0;F<this.nbTileX;
F++){for(E=0;E<this.nbTileY;E++){C=this.images[F][E];this.positionImage(C);this.correctMapImage(C);}}},setOpacity:function(A){if(A<0){A=0;}if(A>100){A=100;}var B=this.opacity;this.opacity=A;if(this.div.style.opacity!==undefined){this.div.style.opacity=A/100;}if(this.div.style.MozOpacity!==undefined){this.div.style.MozOpacity=A/100;
}if(this.div.style.filter!==undefined){this.div.style.filter="alpha(opacity="+A+")";}if(B===0&&this.opacity!==0){this.setVisible(true);this.refresh();}if(this.opacity===0){this.setVisible(false);}}});GCUI.Layer.CopyrightLayer=GCUI.Class(GCISAbstractLayer,{initialize:function(B,A,D){this.name="copyright";
this.dynMap=B;this.initialx=A;this.initialy=D;this.posx=A;this.posy=D;var C=B.createElt("div");C.className="mapCopyright";this.div=C;B.getDiv().appendChild(C);this.logoImgs=[];this.logos=[];return this;},init:function(A){this.displayList=[];this.offsetX=0;this.offsetY=0;this.dynMap.getDiv().removeChild(this.div);
var B=this.dynMap.createElt("div");B.className="mapCopyright";this.div=B;this.positionDiv();this.div.style.width=this.offsetX+"px";this.dynMap.getDiv().appendChild(this.div);},remove:function(A){this.div.parentNode.removeChild(this.div);},positionDiv:function(){if(this.initialx>=0){this.div.style.left=this.posx+"px";
}else{this.div.style.right=(-this.initialx-1)+"px";}if(this.initialy>=0){this.div.style.top=this.posy+"px";}else{this.div.style.bottom=(-this.initialy-1)+"px";}},refresh:function(D){this.init(this.dynMap);var A,C,B;for(B=0;B<this.dynMap.layers.length;B++){C=this.dynMap.layers[B];if(C.visible&&C.displayCopyright){if(C.textCopyright){if(!this.displayList[C.textCopyright]){this.displayList[C.textCopyright]=C.imageCopyright;
if(C.imageCopyright){this.appendLayerImage(C);}if(C.textDivH>this.offsetY){this.offsetY=C.textDivH;}A=this.dynMap.createElt("div");A.className="mapCopyrightText";A.innerHTML=C.textCopyright;A.style.position="absolute";A.style.left=this.offsetX+"px";A.style.top=this.offsetY/4+"px";A.style.width=C.textDivW+"px";
A.style.height=this.offsetY+"px";this.div.appendChild(A);this.offsetX=(this.offsetX+C.textDivW);this.div.style.width=this.offsetX+"px";this.div.style.height=this.offsetY+"px";}}else{this.appendLayerImage(C);}}}for(B=0;B<this.logos.length;B++){this.appendImage(this.logos[B]);this.div.style.width=this.offsetX+"px";
this.div.style.height=this.offsetY+"px";}},appendLayerImage:function(A){if(A.imageCopyright){this.appendImage(A.imageCopyright);}},appendImage:function(A){var B=this.dynMap.createElt("img");B.style.position="absolute";B.style.top="0px";B.style.left=this.offsetX+"px";B.src=A;this.div.appendChild(B);this.offsetX=this.offsetX+B.width;
if(B.height>this.offsetY){this.offsetY=B.height;}}});GCUI.Layer.ObjectLayer=GCUI.Class(GCISAbstractLayer,{initialize:function(A){this.name="objects";this.objects=[];this.dynMap=A;this.dragMode=false;return this;},init:function(A){this.dynMap=A;var B=A.createElt("div");this.div=B;B.className="mapobjects";
B.id="mapobjects";B.style.width=this.dynMap.width+"px";B.style.height=this.dynMap.height+"px";A.getMapDiv().appendChild(B);this.dirty=false;},remove:function(A){this.div.parentNode.removeChild(this.div);},create:function(V){var C=0;var R=null;var P="mapobjectname";var A=this.objects.length;var N='<div id="'+this.dynMap.id+"_obj_";
var M='" onclick="DynMapShowObjectSheet(DynMapGetMap(document,\''+this.dynMap.id+"'), '";var L='\')" style="position:absolute;" class="mapobject" > </div>';var K='" onclick="DynMapShowObjectSheet(DynMapGetMap(document,\''+this.dynMap.id+"'), '";var J='\')" style="position:absolute;" class="mapobject" >';
var I="</div>";var H='<img src="';var G='" id="'+this.dynMap.id+"_obj_";var F='" class="mapobject" ';var Y=" onclick=\"DynMapShowObjectSheet(DynMapGetMap(document,'"+this.dynMap.id+"'), '";var X="')\">";var W='<div class="';var U='" id="'+this.dynMap.id+"_objname_";var T='" onclick="DynMapShowObjectSheet(DynMapGetMap(document,\''+this.dynMap.id+"'), '";
var S="')\" ";var E=" >";var Q="</div>";var Z=[];var O;for(C=0;C<A;C++){R=this.objects[C];if(R.type){Z.push(N);Z.push(C);Z.push(M);Z.push(R.id);Z.push(L);}else{if(R.innerHTML){Z.push(N);Z.push(C);Z.push(K);Z.push(R.id);Z.push(J);Z.push(R.innerHTML);Z.push(I);}else{Z.push(H);Z.push(R.imgsrc);Z.push(G);
Z.push(C);Z.push(F);if(R.text){Z.push(Y);Z.push(R.id);Z.push(X);}}}if(R.name){if(R.objnamecss){P=R.objnamecss;}O="";if(R.nameBackgroundColor){O="style=background-color:"+R.nameBackgroundColor+";";}Z.push(W);Z.push(P);Z.push(U);Z.push(C);Z.push(T);Z.push(R.id);Z.push(S);Z.push(O);Z.push(E);Z.push(R.name);
Z.push(Q);}}V.innerHTML=Z.join("");var D=this.dynMap.id+"_obj_";var B=this.dynMap.id+"_objname_";for(C=0;C<A;C++){R=this.objects[C];R.mainDiv=this.dynMap.currentDoc.getElementById(D+C);R.nameDiv=this.dynMap.currentDoc.getElementById(B+C);}this.dirty=false;},moveObject:function(B,D){var C=this.findObject(B.id);
if(!C){return false;}C.text=B.text;C.mapx=parseFloat(B.mapx);C.mapy=parseFloat(B.mapy);var A=(C.innerHTML!==null&&C.innerHTML!=B.innerHTML);if(A){C.innerHTML=B.innerHTML;}if(D){C.mapx/=this.dynMap.precision;C.mapy/=this.dynMap.precision;}if(!this.dynMap.dragging&&!this.dynMap.scrolling){if(C.mainDiv){this.updateObject(C,A);
}}return true;},moveObjects:function(E,D){var C;var B=true;var A=E.length;for(C=0;C<A;C++){B=B&&this.moveObject(E[C],D);}return B;},addObject:function(A,C){var B={};if(A.id!==null){B.id=A.id;}else{B.id=A.name;}B.mapx=parseFloat(A.mapx);B.mapy=parseFloat(A.mapy);B.name=A.name;B.text=A.text;B.deltaX=A.deltaX;
B.deltaY=A.deltaY;B.imgsrc=A.imgsrc;B.width=A.width;B.innerHTML=A.innerHTML;B.type=A.type;B.objnamecss=A.objnamecss;B.nameBackgroundColor=A.nameBackgroundColor;if(A.visMinScale){B.visMinScale=A.visMinScale;}if(A.visMaxScale){B.visMaxScale=A.visMaxScale;}if(C){B.mapx/=this.dynMap.precision;B.mapy/=this.dynMap.precision;
}this.objects.push(B);this.dirty=true;},removeObject:function(D){var C=[];var E=this.objects;var B;var A=E.length;for(B=0;B<A;B++){if(E[B].id!==D){C.push(E[B]);}}this.objects=C;this.dirty=true;},getNumObject:function(B){var D,A,C;if(B){D=this.objects;C=D.length;for(A=0;A<C;A++){if(D[A].id===B){return A;
}}}},getObjectXY:function(B,E){var D=this.findObject(B);var C=[];var A,F;if(D){A=E?D.mapx*this.dynMap.precision:D.mapx;F=E?D.mapy*this.dynMap.precision:D.mapy;C.push(A);C.push(F);}return C;},setObjectNameCss:function(A,B){var C=this.findObject(A);if(!C){return ;}C.objnamecss=B;C.nameDiv.className=B;this.updateObject(C);
},setObjectDivCss:function(B,A){var C=this.findObject(B);C.mainDiv.className=A;this.updateObject(C);},addObjects:function(D,C){var B;var A=D.length;for(B=0;B<A;B++){this.addObject(D[B],C);}},toJSON:function(){var R,P,S,G,I,C,L,N,B,A,X,W,M,H;var E=this.objects.length;var U="";var K=this.dynMap.currentX;
var J=this.dynMap.currentY;var O=this.dynMap.calcMapDeltaX(0,this.dynMap.width)/2;var T=-this.dynMap.calcMapDeltaY(0,this.dynMap.height)/2;var F=this.dynMap.id+"_obj_";var D=this.dynMap.id+"_objname_";var Q=this.dynMap.precision;var V=this.dynMap.browser;for(R=0;R<E;R++){P=this.objects[R];if(Math.abs(P.mapx-K)<O&&Math.abs(P.mapy-J)<T){I='{"text":"'+P.name+'",';
M=this.dynMap.currentDoc.getElementById(D+R);I+='"bgcol":"'+V.getStyle(M,"background-color")+'",';I+='"color":"'+V.getStyle(M,"color")+'",';I+='"font":"'+V.getStyle(M,"font-family")+'",';I+='"fontsize":"'+V.getStyle(M,"font-size")+'",';I+='"hotspot":[0,0],"delta":['+(8-P.deltaX)+","+(-32-P.deltaY)+"]}";
U+='{"type":"point","center":['+P.mapx*Q+","+P.mapy*Q+"]";if(P.type){S=P.type.getStyle(this.dynMap.scale);if(S.icon){H=this.dynMap.currentDoc.getElementById(F+R);G=V.getStyle(H,"background-image");G=G.replace("url(","").replace(")","").replace('"',"").replace('"',"");U+=',"style":{"type":"image","url":"'+G+'"}';
}else{C=S.width;L=S.height;B="[0,0]";A="["+C+",0]";X="["+C+","+L+"]";W="[0,"+L+"]";N="["+B+","+A+","+X+","+W+","+B+"]";U+=',"style":{"type":"polygon","polygon":'+N+',"lineColor":"'+S.borderColor+'","lineWidth":'+S.borderWidth+',"opacity":'+(S.bgOpacity*100)+',"order":0,"fillColor":"'+S.bgColor+'"}';}U+=',"hotspot":['+S.hotSpotX+","+S.hotSpotY;
}else{G=this.dynMap.currentDoc.getElementById(F+R).src;U+=',"label":'+I+',"style":{"type":"image","url":"'+G+'"}';U+=',"hotspot":['+(-P.deltaX)+","+(-P.deltaY);}U+='],"order":'+R+"}";if(R!=E-1){U+=",";}}}return U;},clearObjects:function(){this.objects.length=0;this.dirty=true;},findObject:function(A){var E=null;
var D,B,C;if(A){D=this.objects;B=0;C=D.length;for(B=0;B<C;B++){if(D[B].id==A){E=D[B];break;}}}return E;},setDragMode:function(A){this.dragMode=A;},move:function(B,A,C){this.refresh();},refresh:function(C){if(this.updating){return ;}this.updating=true;if(this.dirty){this.create(this.div);C=true;}var A=0;
var B=this.objects.length;if(this.multiLabels){this.nbObjsInPosXY=[];}for(A=0;A<B;A++){this.updateObject(this.objects[A],C);}if(C){this.div.style.width=this.dynMap.width+"px";this.div.style.height=this.dynMap.height+"px";}this.updating=false;},updateObject:function(E,D){if(!E.mainDiv){return ;}E.posx=this.dynMap.calcPixelX(E.mapx);
E.posy=this.dynMap.calcPixelY(E.mapy);if(this.multiLabels){if(!this.nbObjsInPosXY[E.posx+"_"+E.posy]){this.nbObjsInPosXY[E.posx+"_"+E.posy]=1;}else{this.nbObjsInPosXY[E.posx+"_"+E.posy]=this.nbObjsInPosXY[E.posx+"_"+E.posy]+1;}}var C=true;var B=this.dynMap.displayMargin;var A,F;if((E.posx>this.dynMap.width+B)||(E.posx<=-B)||(E.posy>this.dynMap.height+B)||(E.posy<=-B)){C=false;
}if(C){if(!E.visible&&E.mainDiv){E.mainDiv.style.visibility="visible";if(E.nameDiv){E.nameDiv.style.visibility="visible";}E.visible=true;}if(E.type){this.updateObjectStyle(E,D);}else{if(D&&E.innerHTML&&!this.dragMode){E.mainDiv.innerHTML=E.innerHTML;}if(!E.deltaX){E.deltaX=(E.mainDiv&&E.mainDiv.width)?-E.mainDiv.width/2:0;
}if(!E.deltaY){E.deltaY=(E.mainDiv&&E.mainDiv.height)?-E.mainDiv.height/2:0;}E.mainDiv.style.left=(E.posx+E.deltaX)+"px";E.mainDiv.style.top=(E.posy+E.deltaY)+"px";if(E.visMinScale){if(E.visMinScale<=this.dynMap.scale&&E.visMaxScale>this.dynMap.scale){E.mainDiv.style.visibility="visible";if(E.nameDiv){E.nameDiv.style.visibility="visible";
}}else{E.mainDiv.style.visibility="hidden";if(E.nameDiv){E.nameDiv.style.visibility="hidden";}}}if(E.nameDiv){if(this.multiLabels){A=this.nbObjsInPosXY[E.posx+"_"+E.posy];F=E.nameDiv.clientWidth;E.nameDiv.style.left=(E.posx-E.deltaX+(Math.floor(A/9))*F+F*this.deltaPosNameX[(A-1)%8])+"px";E.nameDiv.style.top=(E.posy+E.deltaY+(Math.floor(A/9))*F-this.deltaPosNameY[(A-1)%8])+"px";
}else{E.nameDiv.style.left=(E.posx+8)+"px";E.nameDiv.style.top=(E.posy-32)+"px";}if(this.namedivminscale){if(this.namedivminscale<=this.dynMap.scale&&this.namedivmaxscale>this.dynMap.scale){E.nameDiv.style.visibility="visible";}else{E.nameDiv.style.visibility="hidden";}}}}}else{if(E.visible){E.mainDiv.style.visibility="hidden";
if(E.nameDiv){E.nameDiv.style.visibility="hidden";}E.visible=false;}}},setNameDivVisibilityRange:function(A,B){this.namedivminscale=A;this.namedivmaxscale=B;},updateObjectStyle:function(E,B){var A,D;var F=E.type;var I,H,G,C;if(F&&E.mainDiv){D=E.mainDiv.style;A=F.getStyle(this.dynMap.scale);I=A?A.hotSpotX:E.mainDiv.width/2;
H=A?A.hotSpotY:E.mainDiv.height/2;D.left=(E.posx-I)+"px";D.top=(E.posy-H)+"px";if(B||A!=E.currentStyle){E.currentStyle=A;D.width=A.width+"px";D.height=A.height+"px";D.padding=0;D.margin=0;if(A.bgColor){D.backgroundColor=A.bgColor;}else{D.backgroundColor="transparent";}if(A.borderColor&&A.borderWidth){D.borderColor=A.borderColor;
D.borderStyle="solid";D.borderWidth=A.borderWidth;}else{D.borderStyle="none";}D.opacity=A.bgOpacity;if(A.icon){D.backgroundImage="url("+A.icon+")";}else{D.backgroundImage="none";}}if(E.nameDiv){if(A.objnamecss){E.nameDiv.style.visibility="visible";if(this.multiLabels){G=this.nbObjsInPosXY[E.posx+"_"+E.posy];
C=E.nameDiv.clientWidth;E.nameDiv.style.left=(E.posx-E.deltaX+(Math.floor(G/9))*C+C*this.deltaPosNameX[(G-1)%8])+"px";E.nameDiv.style.top=(E.posy+E.deltaY+(Math.floor(G/9))*C-this.deltaPosNameY[(G-1)%8])+"px";}else{E.nameDiv.style.left=(E.posx+8)+"px";E.nameDiv.style.top=(E.posy-32)+"px";}E.nameDiv.className=A.objnamecss;
if(this.namedivminscale){if(this.namedivminscale<=this.dynMap.scale&&this.namedivmaxscale>this.dynMap.scale){E.nameDiv.style.visibility="visible";}else{E.nameDiv.style.visibility="hidden";}}}else{E.nameDiv.style.visibility="hidden";}}}}});function GCISObjectType(A,B){this.name=A;this.styles=B;this.scaleStyles=[];
}GCISObjectType.prototype.getStyle=function(C){var A;var B=this.scaleStyles[C];if(!B){for(A=0;A<this.styles.length;A++){B=this.styles[A];if(B.minScale<=C&&B.maxScale>=C){this.scaleStyles[C]=B;break;}}}return B;};function GCISObjectStyle(E,A,J,B,K,I,H,L,F,G,D,C){this.minScale=E;this.maxScale=A;this.icon=J;
this.width=B;this.height=K;this.hotSpotX=I;this.hotSpotY=H;this.bgColor=L;this.bgOpacity=F;this.borderColor=G;this.borderWidth=D;this.objnamecss=C;}GCUI.Layer.DynamicLayer=GCUI.Class(GCISAbstractLayer,{initialize:function(B,F,C,G,D,I,H,J,A){this.name=B;this.dynMap=F;this.visible=true;this.layerImage=null;
this.userId=D;this.transparentColor=C;this.gcisRequester=G;this.ulSequence=0;this.div=null;this.usemapname="#"+H;try{this.usemapelement=this.dynMap.currentDoc.getElementById(H);}catch(E){}this.zindex=I;this.options=J;this.layerImage=null;this.linkingObject=A;},toJSON:function(A){var D=(this.transparentColor==-1)?"pngt":"png";
var C=this.gcisRequester?this.gcisRequester.m_strMapName:this.dynMap.mapName;if(C.indexOf(".gcm")==-1){C=C+".gcm";}var B=this.tab?this.tab:"";return'{"order":'+A+',"type":"raster","raster":{"map":"'+C+'","tab":"'+B+'","format":"'+D+'","opacity":'+this.opacity+',"userId":"'+this.userId+'"}}';},move:function(B,A,C){if(!this.created){return ;
}this.allowLoadingImages=C;if(!this.loadIsComplete){this.tempImage.onload=null;this.divMovable.style.left=(this.lastMovableLeft+B)+"px";this.divMovable.style.top=(this.lastMovableTop+A)+"px";}else{this.divMovable.style.visibility="visible";this.divMovable.style.left=B+"px";this.divMovable.style.top=A+"px";
this.div.style.visibility="hidden";}if(C){this.lastMovableLeft=parseInt(this.divMovable.style.left,10);this.lastMovableTop=parseInt(this.divMovable.style.top,10);}},init:function(A){if(this.created){return ;}this.dynMap=A;var B=A.createElt("div");B.id="dynLayer_"+this.name;B.style.width="100%";B.style.height="100%";
B.style.position="absolute";B.style.left="0px";B.style.top="0px";B.style.zIndex=this.zindex;A.getMapDiv().appendChild(B);this.layerImage=this.dynMap.createElt("img");this.layerImage.src=this.dynMap.defaultImg;this.layerImage.style.border="none";this.layerImage.useMap=this.usemapname;this.layerImage.width=this.dynMap.width;
this.layerImage.height=this.dynMap.height;B.appendChild(this.layerImage);this.lastX=this.dynMap.currentX;this.lastY=this.dynMap.currentY;this.lastScale=this.dynMap.scale;this.div=B;this.div.dynMap=this.dynMap;this.div.onmouseout=function(C){this.dynMap.mouseMode.avoidMouseOutEvent=true;};this.divMovable=A.createElt("div");
this.divMovable.id="dynLayerMovable";this.divMovable.style.width="100%";this.divMovable.style.height="100%";this.divMovable.style.position="absolute";this.divMovable.style.left="0px";this.divMovable.style.top="0px";this.lastMovableLeft=0;this.lastMovableTop=0;this.divMovable.style.zIndex=this.zindex;
A.getMapDiv().appendChild(this.divMovable);this.divMovable.style.visibility="hidden";this.divMovableImage=this.dynMap.createElt("img");this.divMovableImage.src=this.dynMap.defaultImg;this.divMovableImage.style.border="none";this.divMovableImage.width=this.dynMap.width;this.divMovableImage.height=this.dynMap.height;
this.divMovable.appendChild(this.divMovableImage);this.allowLoadingImages=true;this.opacity=100;this.refresh(true);this.created=true;},setOpacity:function(A){if(A<0){A=0;}if(A>100){A=100;}var B=this.opacity;this.opacity=A;if(this.div.style.opacity!==undefined){this.div.style.opacity=A/100;this.divMovableImage.style.opacity=A/100;
}if(this.div.style.MozOpacity!==undefined){this.div.style.MozOpacity=A/100;this.divMovableImage.style.MozOpacity=A/100;}if(this.div.style.filter!==undefined){this.div.style.filter="alpha(opacity="+A+")";this.divMovableImage.style.filter="alpha(opacity="+A+")";}if(B===0&&this.opacity!==0){this.setVisible(true);
this.refresh();}if(this.opacity===0){this.setVisible(false);}},getOpacity:function(){if(!this.opacity){this.opacity=100;}return this.opacity;},setVisible:function(A){this.visible=A;if(!A){this.div.style.visibility="hidden";}else{this.div.style.visibility="visible";}},isVisible:function(){return this.visible;
},refresh:function(C){if(!this.visible){return ;}var D=this.dynMap.currentX;var B=this.dynMap.currentY;if((!C)&&(this.lastX==D)&&(this.lastY==B)&&(this.lastScale==this.dynMap.scale)){return ;}this.lastX=D;this.lastY=B;this.lastScale=this.dynMap.scale;var A=this.getLayerImageURL(D,B);this.tempImage=this.dynMap.createElt("img");
this.tempImage.layer=this;this.loadIsComplete=false;this.tempImage.onload=function(){if(this.layer.allowLoadingImages){this.layer.layerImage.src=this.src;if(navigator.userAgent.indexOf("MSIE 6")==-1){this.layer.divMovable.style.visibility="hidden";}this.layer.layerImage.layer=this.layer;this.layer.layerImage.onload=function(){if(this.layer.allowLoadingImages){this.layer.div.style.visibility="visible";
this.layer.divMovable.style.visibility="hidden";this.layer.divMovableImage.src=this.src;this.layer.divMovable.style.left="0px";this.layer.divMovable.style.top="0px";this.layer.loadIsComplete=true;if(this.layer.onLoadComplete){this.layer.onLoadComplete();}}};this.layer.layerImage.src=this.src;}};this.tempImage.src=A;
this.refreshAreas();},remove:function(A){this.div.parentNode.removeChild(this.div);this.divMovable.parentNode.removeChild(this.divMovable);},refreshAreas:function(){var B,A;if(this.usemapelement){B=this.gcisRequester.getHtmlMap(this.userId,this.lastX,this.lastY,this.dynMap.scale);A=this;B.onreadystatechange=function(){A.htmlmapReadyStateChange(B);
};}},htmlmapReadyStateChange:function(D){var B,C,A;if(D.readyState==4){if(D.status==200){this.usemapelement.innerHTML=D.responseText;C=this.usemapelement.areas;if(this.div){this.linkingObject.areas=[];for(B=0;B<C.length;B++){C[B].title=C[B].href.substring(C[B].href.indexOf("(",0)+2,C[B].href.indexOf(",",0)-1);
this.linkingObject.areas[C[B].title]=C[B].coords;C[B].div=this.div;C[B].linkobj=this.linkingObject;A=C[B].alt;C[B].alt=C[B].title;C[B].title=A;C[B].onmouseover=function(E){this.div.style.cursor="pointer";this.linkobj.highlightMapArea(this.alt,this.title);};C[B].onmouseout=function(E){this.div.style.cursor="default";
this.linkobj.eraseMapArea(this.alt,this.title);};}}}}},getLayerImageURL:function(F,D){var B=this.dynMap.width;var C=this.dynMap.height;this.layerImage.width=B;this.layerImage.height=C;this.divMovableImage.width=B;this.divMovableImage.height=C;var G,A,E;if(this.gcisRequester){G=this.gcisRequester.getMapImage(B,C,F,D,this.dynMap.getScale(),this.transparentColor,"",this.userId,this.ulSequence,this.options);
if(this.options){G+="&"+this.options;}}else{A=this.dynMap.server.substring(0,this.dynMap.server.lastIndexOf("/map"));E=this.dynMap.mapName;if(E.indexOf(".gcm")==-1){E=E+".gcm";}G=A+"/gcservlet?XgoAnswer=MapImage&XgoMapFile="+E+"&sizex="+B+"&sizey="+C+"&XgoPointX="+F+"&XgoPointY="+D+"&XgoSetLogicalScale="+this.dynMap.getScale()+"&XgoBitmapFormat=PNG&XgoNbBits=24&tr="+this.transparentColor+"&XgoTransparentBackGround=true&XgoUserID="+this.userId+"&g_ulSequence="+this.ulSequence+"&GeoWebCache=false&"+this.options;
}return G;},endMove:function(){this.refresh();},setScale:function(A){this.div.style.visibility="hidden";}});GCUI.Layer.SheetLayer=GCUI.Class(GCISAbstractLayer,{initialize:function(A){this.name="sheet";this.dynMap=A;this.object=null;this.visible=false;},init:function(A){this.dynMap=A;var B=A.createElt("div");
B.className="mapsheet";B.mapId=A.id;B.onclick=function(){DynMapShowObjectSheet(DynMapGetMap(document,this.mapId),null);};A.getMapDiv().appendChild(B);this.div=B;},remove:function(A){this.div.parentNode.removeChild(this.div);},move:function(B,A,C){this.refresh();},refresh:function(C){if(!this.div){return ;
}var D=this.object;if(!D){this.visible=false;this.div.style.visibility="hidden";this.visible=false;this.div.style.left="-1000px";this.div.style.top="-1000px";return ;}if(C){this.fillText();}this.posx=this.dynMap.calcPixelX(D.mapx)+2+(D.width?D.width:0);this.posy=this.dynMap.calcPixelY(D.mapy)+2;var B=true;
var A=this.dynMap.displayMargin;if((D.posx>this.dynMap.width+A)||(D.posx<=-A)||(D.posy>this.dynMap.height+A)||(D.posy<=-A)){B=false;}if(B){this.div.style.visibility="visible";this.visible=true;this.div.style.left=this.posx+"px";this.div.style.top=this.posy+"px";}else{if(this.visible){this.div.style.visibility="hidden";
this.visible=false;}}},fillText:function(){this.div.innerHTML=(this.object.text?"<div>"+this.object.text+"</div>":"<div>  </div>");},showObject:function(A){this.object=A;if(A){this.fillText();}this.refresh();},hide:function(){this.object=null;this.refresh();},isVisible:function(){return this.visible;
}});GCUI.Layer.VectorLayer=GCUI.Class(GCISAbstractLayer,{initialize:function(A){this.name=A;this.visible=true;this.elements=[];this.posx=0;this.posy=0;this.mapx=0;this.mapy=0;this.width=0;this.height=0;},init:function(A){if(this.created){return ;}this.dynMap=A;this.div=A.createElt("div");this.div.id=this.name;
this.div.className="mapvectors";this.div.style.width=this.dynMap.width+"px";this.div.style.height=this.dynMap.height+"px";this.dynMap.getMapDiv().appendChild(this.div);this.graphics=createGCISGraphic(A.currentDoc,this.div);this.created=true;},refresh:function(B){var A;if(this.graphics){this.graphics.setSize(this.dynMap.width,this.dynMap.height,B);
this.graphics.clear();for(A=0;A<this.elements.length;A++){this.elements[A].draw(this.graphics,this.dynMap);}}},remove:function(){this.div.parentNode.removeChild(this.div);},update:function(){this.refresh();},move:function(B,A,C){this.update();},addElement:function(A){this.elements.push(A);},deleteAllElements:function(){this.elements=[];
},deleteElement:function(C){var A=[];var B;for(B=0;B<this.elements.length;B++){if(B!=C){A.push(this.elements[B]);}}this.elements=A;},toJSON:function(A){var C="";var B;var E=this.dynMap.getBoundingBox();var D=[];for(B=0;B<this.elements.length;B++){this.elements[B].getBounds(D);if(rectIntersectRect(D.mapx1,D.mapx2,D.mapy1,D.mapy2,E[0],E[2],E[3],E[1])){C+=this.elements[B].toJSON(A,B);
if(B!=this.elements.length-1){C+=",";}}}return C;},getElement:function(A){return this.elements[A];},getElementById:function(A){var D=null;var B,C;if(A){B=0;C=this.elements.length;for(B=0;B<C;B++){if(this.elements[B].id==A){D=this.elements[B];break;}}}return D;},removeElement:function(D){var C=[];var E=this.elements;
var B;var A=this.elements.length;for(B=0;B<A;B++){if(this.elements[B].id!==D){C.push(E[B]);}}this.elements=C;},getNbElements:function(){return this.elements.length;},createLine:function(F,E,B,C,D,A){return new GCISLine(F,E,B,C,D,A);},createPolygon:function(H,G,F,A,C,E,D,B){return new GCISPolygon(H,G,F,A,C,E,D,B);
},createRect:function(F,E,A,I,B,H,C,D,J,G){return new GCISRect(F,F+A,E,E+I,B,H,C,D,J,G);},createCircle:function(J,I,F,G,B,A,K,C,D,E,L,H){return new GCISCircle(J,I,F,G,B,A,K,C,D,E,L,H);},zoomOnElement:function(B){if(!B){return ;}var A;if(this.dynMap){A=new GCISRect(0,0,0,0);B.getBounds(A);this.dynMap.centerOnRect(A.mapx1,A.mapy1,A.mapx2,A.mapy2,false);
}},setZindex:function(A){this.div.style.zIndex=A;},getZindex:function(){return this.div.style.zIndex;}});GCUI.Layer.RectZoomLayer=GCUI.Class(GCISAbstractLayer,{initialize:function(B,A,C){this.name="zoomsel";this.initialx=A;this.initialy=C;this.posx=A;this.posy=C;this.init(B);return this;},init:function(A){var B=A.createElt("div");
B.className="zoomSelector";A.getDiv().appendChild(B);this.div=B;this.div.style.left=this.posx+"px";this.div.style.top=this.posy+"px";this.div.style.height=0+"px";this.div.style.width=0+"px";this.div.zoomsel=this;this.height=0;this.width=0;},remove:function(A){this.div.parentNode.removeChild(this.div);
},setDelta:function(B,A){if(B<0){this.div.style.left=(this.posx+B)+"px";}if(A<0){this.div.style.top=(this.posy+A)+"px";}this.div.style.width=(this.width+Math.abs(B))+"px";this.div.style.height=(this.height+Math.abs(A))+"px";},getXmin:function(){return parseInt(this.div.style.left,10);},getXmax:function(){return(parseInt(this.div.style.left,10)+parseInt(this.div.style.width,10));
},getYmin:function(){return parseInt(this.div.style.top,10);},getYmax:function(){return(parseInt(this.div.style.top,10)+parseInt(this.div.style.height,10));}});