var GCUI=GCUI||{};GCUI.Class=function(){var b=function(){this.initialize.apply(this,arguments)};var a={};var d;var c=0;var e=arguments.length;for(c=0;c<e;++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.Try=function(){var c;var a;for(var b=0,d=arguments.length;b<d;b++){a=arguments[b];try{c=a();break}catch(f){}}return c};GCUI.Util.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(window.getComputedStyle){d=document.defaultView.getComputedStyle(b,null).getPropertyValue(a)}}return d};GCUI.Loader={scriptName:"htc.js",getScriptLocation:function(){if(this.scriptLocation!=undefined){return this.scriptLocation
}this.scriptLocation="";var f=new RegExp("(^|(.*?\\/))("+this.scriptName+")(\\?|)");var g=new RegExp("(^|(.*?\\/))(htc-debug.js)(\\?|)");var b=document.getElementsByTagName("script");for(var d=0,a=b.length;d<a;d++){var e=b[d].getAttribute("src");if(e){var c=e.match(f);if(c){this.scriptLocation=c[1];break
}else{c=e.match(g);if(c){this.scriptLocation=c[1];break}}}}return this.scriptLocation},load:function(c,d,b){var a=b?"js/":"js-min/";var e=this.getScriptLocation()+"htc/"+a+c+".js";this.loadJs(e,d)},loadJs:function(b,d){var a=document.createElement("script");a.type="text/javascript";a.id=b;a.src=b;a.onload=d;
if(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent)){a.onreadystatechange=function(){if(this.readyState=="loaded"||this.readyState=="complete"){this.onload()}}}var c=document.getElementsByTagName("head").length?document.getElementsByTagName("head")[0]:document.body;c.appendChild(a)
}};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(a){var b=a.offsetLeft;var c=a.offsetParent;while(c){b+=c.offsetLeft;c=c.offsetParent}return b},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()}}});GCISMouseMode=GCUI.Class({initialize:function(){this.map=null},getName:function(){return this.name},setMap:function(a){this.map=a},mouseDown:function(a){},mouseDrag:function(a){},endDrag:function(a){},mouseDblClick:function(a){},mouseWheel:function(a){}});
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;this.gest=false;this.dblTap=false
},onmousemove:function(a){if(this.selectMode||this.selectionMode){this.b_deselect=0}if(this.zoomMode){this.b_pan=1}this.mouseDrag(a)},onmouseup:function(c){var f,d;var b,e,a;if(this.map){if(this.selectionMode){if(this.b_deselect){a=this.map.browser;f=a.getXposition(c);d=a.getYposition(c);this.xpx=f;this.ypx=d;
f-=a.getElementLeft(this.map.mainDiv);d-=a.getElementTop(this.map.mainDiv);this.isSimpleClick=true;this.rightclick=isRightClick(c);this.clickX=this.map.calcMapX(f);this.clickY=this.map.calcMapY(d)}}if(this.selectMode){b=new Date();e=b-this.time_start;if((e>300)&&(e<1100)){if(this.b_deselect){this.map.resetSelection();
this.b_deselect=0}}if(this.zoomMode&&!this.b_pan){this.rightclick=isRightClick(c);this.map.animateZoom(this.map.scale+(this.rightclick?1:-1))}}if(this.map.cursorMouse){this.map.setMouseCursor(this.map.cursorMouse)}this.endDrag(c)}},onmouseout:function(a){if(this.avoidMouseOutEvent){this.avoidMouseOutEvent=false;
return}this.endDrag(a)},mouseDown:function(b){this.rightclick=false;this.isSimpleClick=false;if(this.selectMode||this.selectionMode){this.time_start=new Date();this.b_deselect=1;this.b_pan=0}if(this.map.animator){this.map.stopAnimation(true)}this.map.dragging=true;var a=this.map.browser;this.beginDragCursorX=a.getXposition(b);
this.beginDragCursorY=a.getYposition(b);this.beginDragX=this.map.currentX;this.beginDragY=this.map.currentY;this.map.currentDoc.onmousemove=GCUI.Function.bindAsEvent(this.onmousemove,this);this.map.currentDoc.onmouseup=GCUI.Function.bindAsEvent(this.onmouseup,this);this.map.window.onmouseout=GCUI.Function.bindAsEvent(this.onmouseout,this);
a.cancelEvent(b)},mouseDrag:function(f,b){var d=document.getElementById("debug");if(d){d.innerHTML=""}var e=this.map.browser;var h=e.getXposition(f);var g=e.getYposition(f);var c=h-this.beginDragCursorX;var a=g-this.beginDragCursorY;this.map.currentX=this.map.calcMapDeltaX(this.beginDragX,-c);this.map.currentY=this.map.calcMapDeltaY(this.beginDragY,-a);
this.map.moveMap(c,a,b);e.cancelEvent(f)},endDrag:function(a){this.mouseDrag(a,true);this.map.currentDoc.onmouseup=null;this.map.currentDoc.onmousemove=null;this.map.window.onmouseout=null;this.map.dragging=false;this.endMoveMap()},endMoveMap:function(){if(this.beginDragX!=this.map.currentX||this.beginDragY!=this.map.currentY){this.map.endMoveMap()
}var a,b;if(this.selectionMode&&this.isSimpleClick){for(a=0;a<this.map.mouseSelectionEventListeners.length;a++){b=this.map.mouseSelectionEventListeners[a];if(b.onSelect){b.onSelect(this.clickX,this.clickY,this.xpx,this.ypx,this.rightclick)}}}},mouseWheel:function(a){if(this.map.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}if(b<0){b=-1}else{b=1}this.map.animateZoom(this.map.scale+b)},mouseDblClick:function(a){this.map.centerClick(a)},touchstart:function(c){c.preventDefault();if(!this.gest){this.beginDragCursorX=c.targetTouches[0].clientX;this.beginDragCursorY=c.targetTouches[0].clientY;
this.beginDragX=this.map.currentX;this.beginDragY=this.map.currentY;if(this.dblTap){var a=this.map.browser;var e=this.beginDragCursorX-a.getElementLeft(this.map.mainDiv);var d=this.beginDragCursorY-a.getElementTop(this.map.mainDiv);this.map.centerPixel(e,d)}this.dblTap=true;setTimeout(GCUI.Function.bind(function(){this.dblTap=false
},this),300)}},touchmove:function(d){d.preventDefault();if(!this.gest){var a=d.targetTouches[0].clientX;var e=d.targetTouches[0].clientY;var c=a-this.beginDragCursorX;var b=e-this.beginDragCursorY;this.map.currentX=this.map.calcMapDeltaX(this.beginDragX,-c);this.map.currentY=this.map.calcMapDeltaY(this.beginDragY,-b);
this.map.moveMap(c,b,false)}},touchend:function(a){this.touchmove(a);if(!this.gest){this.map.endMoveMap()}},gesturestart:function(a){a.preventDefault();this.gest=true},gestureend:function(a){a.preventDefault();var b=(a.scale<1)?1:-1;this.map.animateZoom(this.map.scale+b);setTimeout(GCUI.Function.bind(function(){this.gest=false
},this),100)}});GCISAbstractLayer=GCUI.Class({initialize:function(){},init:function(a){},toString:function(){return"layer "+this.name},move:function(b,a,c){},endMove:function(){},refresh:function(a){},remove:function(){},isPrintable:function(a){return true},setUserId:function(a){},setCopyright:function(b,a){},setOpacity:function(a){},setVisible:function(a){},setScale:function(a){}});
GCUI.Animator=GCUI.Class({initialize:function(){},start:function(a){},animate:function(){},stop:function(){},isFinished:function(){return true}});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()},initialCenter:function(){this.center(this.initialX,this.initialY,true);this.setScale(this.initialScale)},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},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,d,c,b){GCUI.Loader.load("control/gcis_scalelayer",GCUI.Function.bind(function(e,i,h,g){var f=new GCISGraphicScale(this,e,i,h,g);this.addLayer(f);
f.init(this);if(this.mapCreated){f.refresh()}},this,a,d,c,b))},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.addLayer(this.globalView);this.globalView.init(this)},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,g,f,i,h,j,c,d){var e=new GCUI.Layer.DynamicLayer(b,this,a,g,f,i,h,j,c,d);this.addLayer(e);this.dynamicRasterLayers.push(e);this.dynamicRasterLayers[b]=e;this.rasterLayers.push(e);this.rasterLayers[b]=e;
e.init(this);return e},addWMSLayer:function(a,d,b,h,f,c,i,e){var g=new GCUI.Layer.WMSLayer(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(g,f,c){if(!this.isloaded){return
}var a=this.browser;var j=a.getDocumentHeight();var e=a.getDocumentWidth();var i=a.getElementTop(this.mainDiv);var d=a.getElementLeft(this.mainDiv);this.setSize(e-d-g,j-i-f,c)},setSize:function(i,c,j){this.width=i;this.height=c;this.mainDiv.style.width=i+"px";this.mainDiv.style.height=c+"px";var a=this.browser;
var g=a.getDocumentHeight();var e=a.getDocumentWidth();var f=a.getElementTop(this.mainDiv);var d=a.getElementLeft(this.mainDiv);this.marginright=e-d-i;this.marginbottom=g-f-c;if(!j){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){a.name=b;this.scaleEventListeners.push(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)}if(this.mapDiv.addEventListener){this.mapDiv.addEventListener("touchstart",GCUI.Function.bind(this.mouseMode.touchstart,this.mouseMode),false);
this.mapDiv.addEventListener("touchmove",GCUI.Function.bind(this.mouseMode.touchmove,this.mouseMode),false);this.mapDiv.addEventListener("touchend",GCUI.Function.bind(this.mouseMode.touchend,this.mouseMode),false);this.mapDiv.addEventListener("gesturestart",GCUI.Function.bind(this.mouseMode.gesturestart,this.mouseMode),false);
this.mapDiv.addEventListener("gestureend",GCUI.Function.bind(this.mouseMode.gestureend,this.mouseMode),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)},pixelToMapX:function(a){var b=a-this.browser.getElementLeft(this.mainDiv);return this.calcMapX(b)},pixelToMapY:function(a){var b=a-this.browser.getElementTop(this.mainDiv);
return this.calcMapY(b)},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]},getDistanceX:function(a){return this.calcMapDeltaX(0,a)*this.precision},calcMapDeltaY:function(b,a){return b+a/this.yRatios[this.scale]
},getDistanceY:function(a){return -this.calcMapDeltaY(0,a)*this.precision},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(d,c){if(!this.projection){return null}var j=this.browser;var g=j.getElementLeft(this.mainDiv);var f=j.getElementTop(this.mainDiv);var l=d-g;
var e=c-f;var m=this.calcMapX(l)*this.precision;var k=this.calcMapY(e)*this.precision;var h=this.projection.inverseProject(m,k,0);var a=radianToDecimalDegree(h[0]);var i=radianToDecimalDegree(h[1]);return[a,i]},centerAnimated:function(f,e){var a=this.calcPixelX(f);var h=this.calcPixelY(e);var c=a-(this.width/2);
var b=h-(this.height/2);var g=Math.sqrt(c*c+b*b);if(g===0){return}if(g<2*this.width){this.scroll(-c,-b)}else{this.center(f,e)}},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(f,e,a,j,c,b){var i=this.calcPixelX(f);var h=this.calcPixelY(e);var l=0,k=0;if(!c){c=50}if(i<0){l=-i+c}if((i+a)>this.width){l=this.width-i-a-c}if(h<0){k=-h+c}if((h+j)>this.height){k=this.height-h-j-c}var g=Math.sqrt(l*l+k*k);if(g===0){return}if(g<2*this.width&&!b){this.scroll(l,k)
}else{this.center(f,e)}},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()},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)},getPhysicalScales:function(){var a;try{a=this.getGCISVarName("XgoLogicalScaleListComma");a=a.split(",")}catch(b){a=this.getCDA("gcis","&V=XgoLogicalScaleListComma&C=setPhysicalScales")}return a},getPhysicalScale:function(){if(!this.physicalScales){this.physicalScales=this.getPhysicalScales();
return""}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,f){var d;var c=this.layers.length;for(d=0;d<c;d++){if(this.layers[d].visible){this.layers[d].move(b,a,f)
}}var e;for(d=0;d<this.moveEventListeners.length;d++){e=this.moveEventListeners[d];if(e.onMoveChange){e.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(c){var a=this.browser;
var e=a.getXposition(c)-a.getElementLeft(this.mainDiv);var d=a.getYposition(c)-a.getElementTop(this.mainDiv);this.centerPixel(e,d)},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},printUrl:function(d){this.gcisAjax=new GCUI.Ajax();var a=this.server.lastIndexOf("/map");var b=this.server.substring(0,a)+"/htcservlet/printUrl";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(b,a){GCUI.Loader.load("control/layers_manager",GCUI.Function.bind(function(c,d){return new GCISLayersControl(this,c,d)},this,b,a))},toJSON:function(e){var d='{ "context":{';var g=this.precision;var f=e?e:"png";var h="[["+this.calcMapX(0)*g+","+this.calcMapY(this.height)*g+"],["+this.calcMapX(this.width)*g+","+this.calcMapY(0)*g+"]]";
d+='"center":['+this.currentX*g+","+this.currentY*g;d+='],"size":['+this.height+","+this.width;d+='],"scale":'+this.scale+',"bbox": '+h;d+=',"format": "'+f+'"';var a=this.getLayer("graphicScale");if(a&&a.created){d+=',"graphicScale":'+a.toJSON()}d+='},"layers": [';var c;var b;for(c=0;c<this.rasterLayers.length;
c++){b=this.rasterLayers[c];if(b.isVisible()){d+=b.toJSON(c);if(c!=this.rasterLayers.length-1){d+=","}}}d+=',{"order":'+c+',"type":"vector","features": [';d+=this.objectLayer.toJSON();if(this.vectorLayers){if(this.objectLayer.objects.length>0){d+=","}for(c=0;c<this.vectorLayers.length;c++){b=this.vectorLayers[c];
d+=b.toJSON(g);if(c!=this.vectorLayers.length-1){d+=","}}}return d+"]}]}"},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,m;for(f=0;f<this.rasterLayers.length;f++){m=this.rasterLayers[f];if(m.name!=g){e.push(m);e[m.name]=m}}var p=[];var c,n;for(c=0;c<e.length;c++){n=e[c];if(c==h){p.push(b);p[g]=b}p.push(n);p[n.name]=n}if(h==e.length){p.push(b);p[g]=b}this.rasterLayers=p;var d,l,a,o;
for(d=0;d<this.rasterLayers.length;d++){l=this.rasterLayers[d];a=l.isVisible();o=l.getOpacity();this.removeLayer(l.name,l);this.layers.push(l);this.layers[l.name]=l;l.setVisible(a);l.init(this);l.setOpacity(o)}},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()}},getObjects:function(){return this.objectLayer.objects},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){a.name=b;
this.objectEventListeners.push(a)},addMouseSelectionEventListener:function(a,b){b.name=a;this.mouseSelectionEventListeners.push(b)},removeListener:function(f,a){var d=[];var e=[];var c;if(f=="click"){e=this.mouseSelectionEventListeners}if(f=="draw"){e=this.drawingListeners}if(f=="endMove"){e=this.endmoveEventListeners
}if(f=="move"){e=this.moveEventListeners}if(f=="objects"){e=this.objectEventListeners}if(f=="scale"){e=this.scaleEventListeners}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}if(f=="draw"){this.drawingListeners=d}if(f=="endMove"){this.endmoveEventListeners=d
}if(f=="move"){this.moveEventListeners=d}if(f=="objects"){this.objectEventListeners=d}if(f=="scale"){this.scaleEventListeners=d}},getMouseMode:function(){return this.mouseMode},addMoveEventListener:function(a,b){b.name=a;this.moveEventListeners.push(b)},addEndMoveEventListener:function(a,b){b.name=a;
this.endmoveEventListeners.push(b)},addDrawingListener:function(a,b){b.name=a;this.drawingListeners.push(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.1.2-SNAPSHOT.133536";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(GCUI.Animator,{initialize:function(b,a,c){this.dx=b;this.dy=a;this.total=c;this.startT=(new Date()).getTime();
this.end=this.startT+c;return this},start:function(a){this.map=a;this.beginX=a.currentX;this.beginY=a.currentY},animate:function(){if(this.finished){return}var b=(new Date()).getTime();if(b>this.end){this.stop();return}var d=(b-this.startT)/this.total;if(d>1){d=1}var c=this.dx*d;var a=this.dy*d;this.move(c,a,false)
},stop:function(){this.finished=true;this.map.moveMap(this.dx,this.dy,false);this.move(this.dx,this.dy,true);if(!this.map.noRefreshEndScroll){this.map.refresh()}},move:function(c,b,a){this.map.currentX=this.map.calcMapDeltaX(this.beginX,-c);this.map.currentY=this.map.calcMapDeltaY(this.beginY,-b);this.map.moveMap(c,b,a)
},isFinished:function(){return this.finished}});GCUI.MapAnimator.Zoom=GCUI.Class(GCUI.Animator,{initialize:function(d,b,a,e,c){this.layer=d;this.finished=false;this.total=e;this.startT=(new Date()).getTime();this.end=this.startT+e;this.beginScale=d.dynMap.scale;this.rx=b;this.ry=a;return this},start:function(a){this.map=a;
this.layer.zooming=true;this.prepareAnim()},animate:function(){if(this.finished){this.layer.zooming=false;return}var c=(new Date()).getTime();if(c>this.end){this.stop();return}var d=(c-this.startT)/this.total;if(d>1){d=1}var b=1+(this.rx-1)*d;var a=1+(this.ry-1)*d;this.zoomAnim(b,a)},stop:function(){this.finished=true;
this.endAnim();var a=this.layer;a.zooming=false;if(a.animationVisible){a.hideAnimation()}},isFinished:function(){return this.finished},prepareAnim: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)}}},endAnim:function(){this.zoomAnim(this.rx,this.ry);this.setAnimIndex(0);
var a=this.layer;a.div.style.zIndex=this.saveIndex},zoomAnim:function(c,a){var e=this.layer;if(!e.images){return}var g=e.tileWidth;var b=e.tileHeight;var h,f,d;for(h=0;h<e.nbTileX;h++){for(f=0;f<e.nbTileY;f++){d=e.animImages[h][f];this.zoomImage(d,c,a,g,b)}}e.animationVisible=true},zoomImage:function(k,c,b,a,h){var e=this.map.centerX;
var d=this.map.centerY;var j=Math.round(e+(k.posx-e)*c);var g=Math.round(d+(k.posy-d)*b);var f=k.image;f.style.left=j+"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"},setAnimIndex: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 DynMapGlobalViewAnimateView(b){var a=new GCISGlobalViewAnimator(b.globalView,800);b.startAnimation(a,null,true)}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,g,f,i,h,j,d,e){return a.addDynamicLayer(c,b,g,f,i,h,j,d,e)}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 DynMapSetLayerNumber(c,a,b){c.setLayerNumber(a,b)}function DynMapGetLayerNumber(b,a){return b.getLayerNumber(a)
}function DynMapAddCopyrightImage(b,a){b.addCopyrightImage(scrimg)}function DynMapRemoveCopyrightImage(b,a){b.removeCopyrightImage(scrimg)}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 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 DynMapCenter(c,a,d,b){c.center(a,d,b)}function DynMapInitialCenter(a){a.initialCenter()}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 DynMapGetBoundingBox(a){return a.getBoundingBox()}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){return b.pixelToMapX(a)}function DynMapPixelToMapY(b,a){return b.pixelToMapY(a)
}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.getDistanceX(b)}function DynMapGetDistanceY(b,a){return b.getDistanceY(a)
}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.getCenterX()}function DynMapGetCenterY(a){return a.getCenterY()}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 DynMapClear(c,b,a){return c.clear(b,a)
}function DynMapReInitLayers(a){return a.resetLayers()}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;if(b.nameDiv){b.nameDiv.style.backgroundColor=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.getObjects()}function DynMapGetObject(b,a){return b.objectLayer.findObject(a)
}function DynMapActivateObjectMultiLabels(a){a.objectLayer.activateMultiLabels()}function DynMapSetObjectSheetVisibility(c,a,b){c.objectLayer.setNameDivVisibilityRange(a,b)}function DynMapShowObjectSheet(b,a){b.showObjectSheet(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 DynMapRemoveAllObjects(a){a.clearObjects()}function DynMapCenterOnObjects(a){a.centerOnObjects()}function DynMapCenterOnObject(c,b,a){c.centerOnObject(b,a)}function DynMapSetObjectDragMode(b,a){b.objectLayer.setDragMode(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 DynMapProject(d,a,b,c){return d.project(a,b,c)}function DynMapGetLongLat(c,b,a){return c.getLongLat(b,a)}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 DynMapAddVectorLayer(b,a){b.addVectorLayer(a)
}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 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,c){return a.addElement(b,c)}function DynMapElementGetPointsX(a,b){return a.getPointsX(b)
}function DynMapElementGetPointsY(a,b){return a.getPointsY(b)}function DynMapElementGetId(a){return a.getId()}function DynMapElementGetWkt(b,a){return b.getWkt(a)}function DynMapElementSetWkt(c,a,b){return c.setWkt(a,b)}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,b){return a.getRadius(b)}function DynMapCircleSetCenter(b,a,d,c){if(c&&b.precision){a/=b.precision;
d/=b.precision}b.xPoints[0]=a;b.yPoints[0]=d}function DynMapCircleSetRadius(b,a,c){if(c&&b.precision){a/=b.precision}b.radius=a}function DynMapLayerZoomOnElement(a,b){a.zoomOnElement(b)}function DynMapLineSwapPoints(a,b,c,f,d,e){a.swapPoints(b,c,f,d,e)}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(d,a,c,b){this.handle=d;this.track=a;this.axis=c||"horizontal";this.handle.className=(b?b:"")+"handle_"+this.axis;this.track.className=(b?b:"")+"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){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){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 GCUI.Animator();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};var GCISGlobalView=GCUI.Class(GCISAbstractLayer,{initialize:function(h,k,j,c,n,e,f,m,b,a,l,d){this.name="globalView";
this.map=h;this.initialx=k;this.initialy=j;this.posx=k;this.posy=j;this.initialw=c;this.initialh=n;this.width=c;this.height=n;this.mapName=e;this.tabName=f;this.format=m;this.visible=true;if(m!="png"&&m!="jpg"&&m!="png24"){this.format="png"}this.server=h.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<h.nbScales-1;g++){this.zooms[g]=1;this.scales[g]=h.nbScales-1}if(a){this.zooms=a;this.zoomsFixed=true}if(l){this.scales=l
}this.isFixed=d;this.autoZoomReduction=true;this.sizeProportion=60/100;this.margins=[8,-2,-1,7];if(this.isFixed){this.sizeProportion=1;this.initCenterX=h.limits[0]+(h.limits[1]-h.limits[0])/2;this.initCenterY=h.limits[2]+(h.limits[3]-h.limits[2])/2;this.autoZoomReduction=false}this.crossWidth=10;this.crossHeight=10;
this.crossLineWidth=2},calcMapTileWidth:function(){return this.tileWidth/(this.map.xRatios[(this.scales[this.map.scale-1])])},calcMapTileHeight:function(){return -this.tileHeight/(this.map.yRatios[(this.scales[this.map.scale-1])])},calcNumTileX:function(a){return Math.floor(a/this.calcMapTileWidth())
},calcNumTileY:function(a){return Math.floor(a/this.calcMapTileHeight())},calcMapDeltaX:function(b,a){return b+a/this.map.xRatios[(this.scales[this.map.scale-1])]},calcMapDeltaY:function(b,a){return b+a/this.map.yRatios[(this.scales[this.map.scale-1])]},panMove:function(r){this.panning=true;var t=this.map.browser;
var n=this.pandiv;var m=t.getXposition(r);var p=t.getYposition(r);var k=m-n.tmpX;var j=p-n.tmpY;var l=t.getElementLeft(this.div);var s=t.getElementTop(this.div);n.style.top=(parseInt(n.style.top,10)+j)+"px";n.style.left=(parseInt(n.style.left,10)+k)+"px";n.tmpX=m;n.tmpY=p;var b=t.getElementLeft(n);var e=t.getElementTop(n);
var f=l+parseInt(this.width,10)-b+k-parseInt(n.style.width,10);var c=b+parseInt(n.style.left,10)+k-l+parseInt(this.minidiv.style.left,10);var i=s+parseInt(this.height,10)-e-parseInt(n.style.height,10);var o=e+parseInt(n.style.top,10)-s+parseInt(this.minidiv.style.top,10);var g=this.margins[0];var q=this.margins[1];
var d=this.margins[2];var h=this.margins[3];if(!this.isFixed){if(f<g){n.style.left=(parseInt(n.style.left,10)-k-1)+"px";n.diffX=n.diffX-k-1}if(c<q){n.style.left=(parseInt(n.style.left,10)-k+1)+"px";n.diffX=n.diffX-k+1}if(o<d){n.style.top=(parseInt(n.style.top,10)-j+1)+"px";n.diffY=n.diffY-j+1}if(i<h){n.style.top=(parseInt(n.style.top,10)-j-1)+"px";
n.diffY=n.diffY-j-1}}if((f<g)||(c<q)||(i<h)||(o<d)){if(!this.miniscrolling&&!this.isFixed){this.miniscrolling=true;var a=this.zooms[this.map.scale-1];this.map.currentX=this.calcMapDeltaX(n.beginDragX,-k/a);this.map.currentY=this.calcMapDeltaY(n.beginDragY,-j/a);this.animateScroll(-k,-j)}}else{this.miniscrolling=false;
n.beginDragX=this.map.currentX;n.beginDragY=this.map.currentY}if(!this.miniscrolling){this.map.stopAnimation(true)}t.cancelEvent(r)},panUp:function(g){var h=this.pandiv;var c=h.tmpX-h.beginDragCursorX+h.diffX;var b=h.tmpY-h.beginDragCursorY+h.diffY;h.beginDragX=this.map.currentX;h.beginDragY=this.map.currentY;
this.panning=false;var d=this.map.browser;var e=d.getElementLeft(this.div);var a=d.getElementTop(this.div);if((h.tmpX>=e)&&(h.tmpX<=(e+parseInt(this.div.style.width,10)))&&(h.tmpY>=a)&&(h.tmpY<=(a+parseInt(this.div.style.height,10)))){this.cancelclick=true}else{this.cancelclick=false}this.map.stopAnimation(true);
var f=this.zooms[this.map.scale-1];this.map.center(this.calcMapDeltaX(h.beginDragX,c/f),this.calcMapDeltaY(h.beginDragY,b/f));this.map.currentDoc.onmousemove=null;this.map.currentDoc.onmouseup=null;d.cancelEvent(g);if(this.documentOnMouseMove){this.map.currentDoc.onmousemove=this.documentOnMouseMove;
this.documentOnMouseMove=null}if(this.documentOnMouseUp){this.map.currentDoc.onmouseup=this.documentOnMouseUp;this.documentOnMouseUp=null}this.map.endMoveMap()},pan:function(a){if(a.preventDefault){a.preventDefault()}var b=this.pandiv;b.beginDragCursorX=this.map.browser.getXposition(a);b.beginDragCursorY=this.map.browser.getYposition(a);
b.beginDragX=this.map.currentX;b.beginDragY=this.map.currentY;b.tmpX=b.beginDragCursorX;b.tmpY=b.beginDragCursorY;b.diffX=0;b.diffY=0;if(this.map.currentDoc.onmousemove){this.documentOnMouseMove=this.map.currentDoc.onmousemove}if(this.map.currentDoc.onmouseup){this.documentOnMouseUp=this.map.currentDoc.onmouseup
}this.map.currentDoc.onmousemove=GCUI.Function.bind(this.panMove,this);this.map.currentDoc.onmouseup=GCUI.Function.bind(this.panUp,this)},init:function(a){if(this.created){return}this.map=a;var b;if(this.isOnTheMap){b=this.map.createElt("div");b.className="mapglobalview";b.style.width=this.width+"px";
b.style.height=this.height+"px";this.map.getDiv().appendChild(b);this.div=b;this.calcGlobalViewPositions()}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.onclick=GCUI.Function.bind(this.centerMap,this);
this.div.appendChild(this.minidiv);this.pandiv=this.map.createElt("div");this.pandiv.className="pandiv";this.pandiv.style.position="absolute";this.crossdivH=this.map.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.map.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.pandiv.onmousedown=GCUI.Function.bindAsEvent(this.pan,this);
this.minidiv.appendChild(this.pandiv);this.minidiv.appendChild(this.crossdivH);this.minidiv.appendChild(this.crossdivV);this.divIco=this.map.createElt("div");this.divIco.className="mapglobalviewico";this.div.appendChild(this.divIco);this.divIco.onclick=GCUI.Function.bind(this.animateView,this)},remove:function(a){if(this.isOnTheMap){this.div.parentNode.removeChild(this.div)
}else{this.clear()}},clear:function(){this.div.removeChild(this.minidiv);this.div.removeChild(this.divIco)},animateView:function(){var a=new GCISGlobalViewAnimator(this,800);this.map.startAnimation(a,null,true)},centerMap:function(a){if(this.cancelclick){this.cancelclick=false;return}var l=this.initCenterX?this.initCenterX:this.map.currentX;
var i=this.initCenterY?this.initCenterY:this.map.currentY;var g=this.map.browser;var h=g.getXposition(a);var e=g.getYposition(a);var f=g.getElementLeft(this.div);var b=g.getElementTop(this.div);var d=f+this.width/2;var c=b+this.height/2;var m=h-d;var k=e-c;var j=this.zooms[this.map.scale-1];this.map.center(this.calcMapDeltaX(l,m/j),this.calcMapDeltaY(i,k/j));
this.map.endMoveMap();g.cancelEvent(a)},animateScroll:function(b,a){var d=10;var c=new GCISGlobalViewScrollAnimator(this,d*b,d*a);this.map.startAnimation(c,1000,true)},calcGlobalViewPositions:function(){if(this.initialx<0){this.posx=this.map.width+this.initialx-this.width-1}if(this.initialy<0){this.posy=this.map.height+this.initialy-this.height-1
}this.div.style.left=this.posx+"px";this.div.style.top=this.posy+"px"},move:function(d,b,g){if(this.isFixed){this.positionRect()}else{var c=this.pandiv.style;var e=this.minidiv.style;var f=this.zooms[this.map.scale-1];var a=this.map.calcMapDeltaX(0,1)/(this.calcMapDeltaX(0,1/f));e.top=Math.round((this.height-parseInt(e.height,10))/2)+a*b+"px";
e.left=Math.round((this.width-parseInt(e.width,10))/2)+a*d+"px";c.top=Math.round(((this.height-parseInt(c.height,10))/2-parseInt(e.top,10)))+"px";c.left=Math.round(((this.width-parseInt(c.width,10))/2-parseInt(e.left,10)))+"px";this.positionCross()}},endMove:function(){this.refresh()},create:function(){this.minidiv=this.map.createElt("div");
this.minidiv.innerHTML="";this.tileWidth=this.map.tileWidth;this.tileHeight=this.map.tileHeight;this.marginX=200;this.marginY=200;var a=this.map.width+2*this.marginX;var b=this.map.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},createImage:function(e,d){var c=this.map.createElt("img");
var b=this.zooms[this.map.scale-1];c.style.width=Math.round(this.tileWidth*b+0.5)+"px";c.style.height=Math.round(this.tileHeight*b+0.5)+"px";c.style.visibility="hidden";c.style.position="absolute";c.style.left="-500px";c.style.zIndex=d;c.style.border="0";c.galleryImg=false;c.src=this.map.defaultImg;e.appendChild(c);
var a={nosrc:true,image:c,visible:false};return a},calcLimits:function(){var a=this.map.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]},isVisible:function(){return this.visible},calcTileSrc:function(a){var b=this.format;
var d=this.scales[this.map.scale-1];if(!b){b="png8"}var c=[this.server,this.mapName,0,this.tabName,b,this.map.tileWidth,this.map.tileHeight,d,a.mapTileX,a.mapTileY+"."+b.substring(0,3)];return c.join("/")},clearImage:function(b){b.image.src=this.map.defaultImg;b.image.style.visibility="hidden";var a=this.zooms[this.map.scale-1];
b.image.style.width=Math.round(this.tileWidth*a+0.5)+"px";b.image.style.height=Math.round(this.tileHeight*a+0.5)+"px";b.nosrc=true;b.visible=false;b.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)
}}},refresh:function(d){if(this.isOnTheMap&&d){this.calcGlobalViewPositions()}if(!this.visible){return}var n,m,j,i;var f,e,c,a;var k,h,g,l;if(!this.isFixed||!this.firstRefreshDone){this.clearAll(this.images);this.calcLimits();n=Math.floor(this.nbTileX/2);m=Math.floor(this.nbTileY/2);this.centerX=Math.floor(this.map.width/2);
this.centerY=Math.floor(this.map.height/2);j=this.initCenterX?this.initCenterX:this.map.currentX;i=this.initCenterY?this.initCenterY:this.map.currentY;f=this.calcNumTileX(j);e=this.calcNumTileY(i);for(c=0;c<this.nbTileX;c++){for(a=0;a<this.nbTileY;a++){k=this.images[c][a];h=f+c-n;g=e+a-m;this.fillImage(k,h,g);
this.updateMapImage(k)}}var o=this.zooms[this.map.scale-1];l=this.minidiv.style;l.width=o*this.map.width+"px";l.height=o*this.map.height+"px"}if(d||(this.pandiv.style.height=="")){this.resizeRect()}if(!this.panning){if(!this.isFixed||!this.firstRefreshDone){var b=this.pandiv.style;l=this.minidiv.style;
l.top=Math.round((this.height-parseInt(l.height,10))/2)+"px";l.left=Math.round((this.width-parseInt(l.width,10))/2)+"px";b.top=Math.round(((this.height-parseInt(b.height,10))/2-parseInt(l.top,10)))+"px";b.left=Math.round(((this.width-parseInt(b.width,10))/2-parseInt(l.left,10)))+"px";this.positionCross()
}else{this.positionRect()}}this.firstRefreshDone=true},setAutoZoomReduction:function(a){this.autoZoomReduction=a},setRectSize:function(b,a){this.rectSizeFixed=true;this.rectWidth=b;this.rectHeight=a},resizeRect:function(){this.panzoomx=this.map.calcMapDeltaX(0,1)/(this.calcMapDeltaX(0,1/this.zooms[this.map.scale-1]));
if(this.autoZoomReduction){while(Math.round(this.panzoomx*this.map.width)+10>(this.sizeProportion*this.width)){if(!this.isFixed){this.scales[this.map.scale-1]++;if(this.scales[this.map.scale-1]>this.map.maxScale){this.scales[this.map.scale-1]=this.map.maxScale;this.zooms[this.map.scale-1]=Math.round(this.zooms[this.map.scale-1]*80)/100
}}else{this.zooms[this.map.scale-1]=Math.round(this.zooms[this.map.scale-1]*80)/100}this.panzoomx=this.map.calcMapDeltaX(0,1)/(this.calcMapDeltaX(0,1/this.zooms[this.map.scale-1]));this.refresh()}}var a;if(!this.rectSizeFixed){if(Math.round(this.panzoomx*this.map.width)<1){this.pandiv.style.width="1px"
}else{this.pandiv.style.width=Math.round(this.panzoomx*this.map.width)+"px"}a=this.map.calcMapDeltaY(0,1)/(this.calcMapDeltaY(0,1/this.zooms[this.map.scale-1]));if(Math.round(a*this.map.height)<1){this.pandiv.style.height="1px"}else{this.pandiv.style.height=Math.round(a*this.map.height)+"px"}}else{this.pandiv.style.width=this.rectWidth+"px";
this.pandiv.style.height=this.rectHeight+"px"}},positionRect:function(){if(!this.panning){var a=this.zooms[this.map.scale-1];var b=this.scales[this.map.scale-1];this.pandiv.style.top=Math.round((a*this.map.xRatios[b]*(this.initCenterY-this.map.currentY)+(this.height-parseInt(this.pandiv.style.height,10))/2-parseInt(this.minidiv.style.top,10)))+"px";
this.pandiv.style.left=Math.round((a*this.map.yRatios[b]*(this.initCenterX-this.map.currentX)+(this.width-parseInt(this.pandiv.style.width,10))/2-parseInt(this.minidiv.style.left,10)))+"px";this.positionCross()}},positionCross:function(){var b=this.pandiv.style;var a=parseInt(b.width,10)/2;var f=parseInt(b.height,10)/2;
var e=parseInt(b.left,10);var d=parseInt(b.top,10);var c=this.crossLineWidth/2;this.crossdivV.style.left=a+e-c-1+"px";this.crossdivV.style.top=f+d-c-(this.crossHeight/2)+"px";this.crossdivH.style.left=a+e-c-(this.crossWidth/2)+"px";this.crossdivH.style.top=f+d-c-1+"px"},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},calcPixelX:function(a){var b=this.initCenterX?this.initCenterX:this.map.currentX;return Math.round(this.map.centerX+(a-b)*this.map.xRatios[(this.scales[this.map.scale-1])])
},calcPixelY:function(a){var b=this.initCenterY?this.initCenterY:this.map.currentY;return Math.round(this.map.centerY+(a-b)*this.map.yRatios[(this.scales[this.map.scale-1])])},positionImage:function(b){var a=this.zooms[this.map.scale-1];b.posx=a*(this.calcPixelX(0)+this.tileWidth*b.mapTileX);b.posy=a*(this.calcPixelY(0)-this.tileHeight*b.mapTileY-this.tileHeight)
},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.map.width+b,-a,this.map.height+a)){d=false}if(!d){if(c.visible){this.clearImage(c)}}else{if(c.nosrc){if(!this.isVisible()||this.map.scale>this.maxscale||this.map.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.map.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"}},correctMapImage:function(c){var d=0;var b=0;var a=0;if(c.posx>this.map.width+this.marginX+a){d=-this.nbTileX
}else{if(c.posx<-this.marginX-this.tileWidth-a){d=this.nbTileX}}if(c.posy>this.map.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)}});GCISGlobalViewAnimator=GCUI.Class(GCUI.Animator,{initialize:function(a,b){this.gv=a;
this.totalTime=b;this.startTime=(new Date()).getTime();this.endTime=this.startTime+b;return this},animate:function(){if(this.finished){return}var c=(new Date()).getTime();if(c>this.endTime||this.gv.width<0||this.gv.width>this.gv.initialw||this.gv.height<0||this.gv.height>this.gv.initialh){this.stop();
return}var d=(c-this.startTime)/this.totalTime;if(d>1){d=1}var b=this.gv.initialw*d;var a=this.gv.initialh*d;if(this.gv.visible){this.gv.width=(this.gv.width-b);this.gv.height=(this.gv.height-a);if(this.gv.isOnTheMap){this.gv.calcGlobalViewPositions()}if(this.gv.width>0&&this.gv.height>0){this.gv.div.style.width=this.gv.width+"px";
this.gv.div.style.height=this.gv.height+"px"}}else{this.gv.width=(this.gv.width+b);this.gv.height=(this.gv.height+a);if(this.gv.isOnTheMap){this.gv.calcGlobalViewPositions()}if(this.gv.width<this.gv.initialw&&this.gv.height<this.gv.initialh){this.gv.div.style.width=this.gv.width+"px";this.gv.div.style.height=this.gv.height+"px"
}}},stop:function(){this.finished=true;if(this.gv.visible){this.gv.visible=false;this.gv.width=parseInt(this.gv.divIco.clientWidth,10);this.gv.height=parseInt(this.gv.divIco.clientHeight,10);this.gv.div.style.width=this.gv.divIco.clientWidth+"px";this.gv.div.style.height=this.gv.divIco.clientHeight+"px";
this.gv.divIco.className="mapglobalviewico2"}else{this.gv.visible=true;this.gv.width=parseInt(this.gv.initialw,10);this.gv.height=parseInt(this.gv.initialh,10);this.gv.div.style.width=this.gv.initialw+"px";this.gv.div.style.height=this.gv.initialh+"px";this.gv.divIco.className="mapglobalviewico";this.gv.refresh()
}if(this.gv.isOnTheMap){this.gv.calcGlobalViewPositions()}},isFinished:function(){return this.finished}});GCISGlobalViewScrollAnimator=GCUI.Class(GCUI.Animator,{initialize:function(c,b,a){this.gv=c;this.dx=b;this.dy=a;return this},start:function(a){this.map=a},animate:function(){if(this.finished){return
}this.beginDragX=this.map.currentX;this.beginDragY=this.map.currentY;var a=this.gv.zooms[this.map.scale-1];this.map.currentX=this.gv.calcMapDeltaX(this.beginDragX,-this.dx/a);this.map.currentY=this.gv.calcMapDeltaY(this.beginDragY,-this.dy/a);this.gv.refresh()},stop:function(){this.finished=true;this.gv.refresh()
},isFinished:function(){return this.finished}});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,d){var b=a.createElement("canvas");this.canvas=b;this.div=d;b.style.position="absolute";b.style.left=0;b.style.top=0;this.width=d.clientWidth;this.height=d.clientHeight;b.width=d.clientWidth;b.height=d.clientHeight;
d.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 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(c,e,f){var b=this.ctx;b.beginPath();var d;b.moveTo(c[0],e[0]);
var a=c.length;for(d=1;d<a;d++){b.lineTo(c[d],e[d])}if(f){b.lineTo(c[0],e[0])}if(f){b.fill()}b.stroke();if(this.useVML){b.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,b){};GCISGraphicElement.prototype.setWidth=function(a){};GCISGraphicElement.prototype.setOpacity=function(a){};
GCISGraphicElement.prototype.getOpacity=function(){};GCISGraphicElement.prototype.getId=function(){};GCISGraphicElement.prototype.getKind=function(){return this.kind};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.kind="line";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(a){if(!this.xPoints.length){a.mapx1=a.mapx2=a.mapy1=a.mapy2=0;return}var f=this.xPoints[0];
var e=f;var c=this.yPoints[0];var b=c;var d,h,g;var j=this.xPoints.length;for(d=1;d<j;d++){h=this.xPoints[d];g=this.yPoints[d];if(h<f){f=h}if(h>e){e=h}if(g<c){c=g}if(g>b){b=g}}a.mapx1=f;a.mapx2=e;a.mapy1=c;a.mapy2=b};GCISLine.prototype.drawArrow=function(m,e,o,b,l){m.setLineColor(this.arrowCol);m.setLineWidth(this.arrowLW);
m.setOpacity(this.arrowOp);var j=this.arrowW;var g=this.theta;var c=[];var n=[];var p=[];var a=[];var k;var d;var i;var h,f;c[0]=b;n[0]=l;p[0]=c[0]-e;p[1]=n[0]-o;a[0]=-p[1];a[1]=p[0];k=Math.sqrt(p[0]*p[0]+p[1]*p[1]);d=j/(2*k);i=j/(2*(Math.tan(g)/2)*k);h=c[0]-i*p[0];f=n[0]-i*p[1];c[1]=h+d*a[0];n[1]=f+d*a[1];
c[2]=h-d*a[0];n[2]=f-d*a[1];m.drawPolyline([c[0],c[1]],[n[0],n[1]]);m.drawPolyline([c[0],c[2]],[n[0],n[2]])};GCISLine.prototype.draw=function(B,q){B.setLineColor(this.lineColor);B.setLineWidth(this.lineWidth);B.setOpacity(this.opacity);var b=[];var a=[];if(this.swappedWkt){if((this.swapWktMinScale<=q.scale)&&(this.swapWktMaxScale>=q.scale)){this.setWkt(this.swappedWkt,this.swapPrecision)
}else{this.xPoints=this.xPointsOld;this.yPoints=this.yPointsOld}}var z=this.xPoints;var y=this.yPoints;if(this.swapPoints){if((this.swapPointsMinScale<=q.scale)&&(this.swapPointsMaxScale>=q.scale)){z=this.swapPointsX;y=this.swapPointsY}}var k=q.calcPixelX(z[0]);var K=q.calcPixelY(y[0]);var r=z.length;
if(r==1){if(B.intersectPoint(k,K)){b.push(k,k+this.lineWidth);a.push(K,K);B.drawPolyline(b,a)}return}var F,g,I,e,L,v,J,u,E;for(F=1;F<r;F++){g=q.calcPixelX(z[F]);I=q.calcPixelY(y[F]);if(B.intersectLine(k,K,g,I)){e=B.clipper.clipLine(k,K,g,I);if(e){L=e[0];v=e[1];J=e[2];u=e[3];if((L!==k)||(v!==K)||(J!==g)||(u!==I)){if(!b.length){b.push(L);
a.push(v)}b.push(J);a.push(u);B.drawPolyline(b,a);b=[];a=[]}else{if(!b.length){b.push(k);a.push(K)}b.push(g);a.push(I)}}}else{if(b.length>0){B.drawPolyline(b,a)}b=[];a=[]}k=g;K=I}if(b.length){B.drawPolyline(b,a)}var d=0;var t=0;var H=0;var h=0;var f=0;var c=0;var x,m,w,l,D,o,C,n,A,p=false;if(this.dashedW||this.arrowW){for(F=1;
F<r;F++){k=q.calcPixelX(z[F-1]);K=q.calcPixelY(y[F-1]);g=q.calcPixelX(z[F]);I=q.calcPixelY(y[F]);e=B.clipper.clipLine(k,K,g,I);if(e){L=e[0];v=e[1];J=e[2];u=e[3];x=k;m=K;w=g;l=I;if((L!==k)||(v!==K)||(J!==g)||(u!==I)){k=L;K=v;g=J;I=u}if((0<=k&&k<=q.width&&0<=K&&K<=q.height)||(0<=g&&g<=q.width&&0<=I&&I<=q.height)){d=Math.sqrt((x-w)*(x-w))+Math.sqrt((m-l)*(m-l));
h+=d;f+=d;if(this.dashedW){if(f>this.dashedW){H=Math.floor(f/this.dashedW);var s=true;for(E=0;E<H;E++){A=(this.dashedW-f+d)/d;D=x+A*(w-x);o=m+A*(l-m);var G=(2*this.dashedW-f+d)/d;if(G>1){G=1}C=x+G*(w-x);n=m+G*(l-m);B.setLineColor(this.dashedCol);B.setLineWidth(this.dashedLW);B.setOpacity(this.dashedOp);
if((c+E)%2==0||p){if(s){if(0<=D&&D<=q.width&&0<=o&&o<=q.height||0<=x&&x<=q.width&&0<=m&&m<=q.height){B.drawPolyline([x,D],[m,o])}if(p){p=false}}}else{if(0<=D&&D<=q.width&&0<=o&&o<=q.height||0<=C&&C<=q.width&&0<=n&&n<=q.height){B.drawPolyline([D,C],[o,n]);if(G==1){p=true}}}f-=this.dashedW;s=false}c+=H
}else{if((c)%2==0||p){B.setLineColor(this.dashedCol);B.setLineWidth(this.dashedLW);B.setOpacity(this.dashedOp);if(0<=w&&w<=q.width&&0<=l&&l<=q.height||0<=x&&x<=q.width&&0<=m&&m<=q.height){B.drawPolyline([x,w],[m,l])}if(p){p=false}}}}if(this.arrowW&&h>this.distMinPx){t=Math.floor(h/this.distMinPx);for(E=0;
E<t;E++){A=(this.distMinPx-h+d)/d;D=x+A*(w-x);o=m+A*(l-m);if(0<=D&&D<=q.width&&0<=o&&o<=q.height){if(x!=D&&m!=o){this.drawArrow(B,x,m,D,o)}}h-=this.distMinPx}}}}}}};GCISLine.prototype.setArrow=function(c,b,e,f,d,a){this.arrowW=c;this.theta=b;this.arrowCol=e;this.arrowLW=f;this.arrowOp=d;this.distMinPx=a
};GCISLine.prototype.setDashed=function(a,c,d,b){this.dashedW=a;this.dashedCol=c;this.dashedOp=b;this.dashedLW=d};GCISLine.prototype.toString=function(a,b){return"Line \nx="+this.xPoints+"\ny="+this.yPoints+"\nwidth="+this.lineWidth+"\ncolor="+this.lineColor};GCISLine.prototype.getPointsY=function(d){var a,c,b;
if(d&&this.precision){a=this.yPoints.length;c=this.yPoints.slice();for(b=0;b<a;b++){c[b]=c[b]*this.precision}return c}return this.yPoints};GCISLine.prototype.getPointsX=function(d){var a,c,b;if(d&&this.precision){a=this.xPoints.length;c=this.xPoints.slice();for(b=0;b<a;b++){c[b]=c[b]*this.precision}return c
}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(a,f,j,c){var d="";var b,g,e;if(!c){c=1}var h=this.xPoints.length;for(b=0;b<h;b++){if(b>0){d+=","}g=this.xPoints[b];e=this.yPoints[b];d+=g*c+" "+e*c}if(j&&(a[0]!=g||f[0]!=e)){d+=","+a[0]*c+" "+f[0]*c}return d};GCISLine.prototype.setWkt=function(b,c){if(!c){c=1
}else{this.wktInMeter=true}var f=this.getWktBegin();var g=b.indexOf(f,0);if(g<0){alert("Not valid wkt");return}g+=f.length;this.xPoints=[];this.yPoints=[];var a,e;var d=b.length;while(g>0&&g<d-1){a=b.indexOf(",",g);if(a<0){a=b.indexOf(")",g)}if(a<0){alert("Not valid wkt");return}e=b.indexOf(" ",g);this.xPoints.push(parseFloat(b.substring(g,e))/c);
this.yPoints.push(parseFloat(b.substring(e+1,a))/c);g=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(b,d,g,e,f){this.swapPoints=true;this.swapPointsMinScale=b;this.swapPointsMaxScale=d;this.swapPointsX=g;this.swapPointsY=e;var a,c;if(f&&this.precision){a=g.length;for(c=0;c<a;
c++){this.swapPointsX[c]/=this.precision;this.swapPointsY[c]/=this.precision}}};GCISLine.prototype.swapWkt=function(a,b,c,d){this.xPointsOld=this.xPoints;this.yPointsOld=this.yPoints;this.swappedWkt=c;this.swapWktMinScale=a;this.swapWktMaxScale=b;this.swapPrecision=(d&&this.precision)?this.precision:1
};GCISLine.prototype.containsPoint=function(j,h,w){var q,t,d,s,a,l,p,n,r,o,v,u,k,e;var g=w.calcMapX(this.lineWidth)-w.calcMapX(0);var f=this.xPoints.length-1;for(q=0;q<f;q++){t=this.xPoints[q];d=this.yPoints[q];s=this.xPoints[q+1];a=this.yPoints[q+1];l=min(t,s);p=min(d,a);n=max(t,s);r=max(d,a);if((l-g)<=j&&j<=(n+g)&&(p-g)<=h&&h<=(r+g)){if(n-l==0){o=1;
v=0;u=-n}else{if(r-p==0){o=0;v=1;u=-r}else{o=(a-d)/(s-t);v=-1;u=d-o*t}}k=o*j+v*h+u;e=Math.abs(k/Math.sqrt(o*o+v*v));if(e<=g){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,o,p,c,h,j,g,a){this.kind="poly";this.xPoints=b;this.yPoints=o;this.fillColor=p;this.lineWidth=c;this.lineColor=h;this.opacity=j;var l=b[0];var k=l;var e=o[0];var d=e;var f,n,m;var q=b.length;for(f=1;f<q;f++){n=b[f];m=o[f];if(n<l){l=n}if(n>k){k=n}if(m<e){e=m}if(m>d){d=m}}this.mapx1=l;
this.mapx2=k;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(k,c){var a=[];this.getBounds(a);var h=c.getBoundingBox();
if(rectIntersectRect(a.mapx1,a.mapx2,a.mapy1,a.mapy2,h[0],h[2],h[3],h[1])){k.setLineColor(this.lineColor);k.setLineWidth(this.lineWidth);k.setOpacity(this.opacity);k.setFillColor(this.fillColor);var d=[];var g=[];if(this.swappedWkt){if((this.swapWktMinScale<=c.scale)&&(this.swapWktMaxScale>=c.scale)){this.setWkt(this.swappedWkt,this.swapPrecision)
}else{this.xPoints=this.xPointsOld;this.yPoints=this.yPointsOld}}var e=c.calcPixelX(this.xPoints[0]);var l=c.calcPixelY(this.yPoints[0]);var m=this.xPoints.length;if(m==1){if(k.intersectPoint(e,l)){d.push(e,e+this.lineWidth);g.push(l,l);k.drawPolyline(d,g)}return}var f,b,j;for(f=1;f<m;f++){b=c.calcPixelX(this.xPoints[f]);
j=c.calcPixelY(this.yPoints[f]);if(k.intersectLine(e,l,b,j)){if(!d.length){d.push(e);g.push(l)}d.push(b);g.push(j)}else{if(d.length>0){k.drawPolyline(d,g)}d=[];g=[]}e=b;l=j}if(d.length){k.drawPolygon(d,g,!this.nofilled)}}};GCISPolygon.prototype.inPoly=function(c,n,m){var j=c.length;var f,a,o,h,d,l,b,k,g;
var e=false;if(j/2<3){return false}o=c[j-2];h=c[j-1];for(g=0;g<j;g=g+2){f=c[g];a=c[g+1];if(f>o){d=o;b=f;l=h;k=a}else{d=f;b=o;l=a;k=h}if((f<n)==(n<=o)&&((m-l)*(b-d)<(k-l)*(n-d))){e=!e}o=f;h=a}return e};GCISPolygon.prototype.containsPoint=function(a,f,e){var c=0;var d=[];var b=this.xPoints.length;for(c=0;
c<b;c++){d.push(this.xPoints[c]);d.push(this.yPoints[c])}return this.inPoly(d,a,f)};function GCISRect(h,f,c,b,i,a,d,e,j,g){this.kind="rect";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.kind="circle";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(a){if(a&&this.precision){return this.radius*this.precision}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 g=document.createElement("v:shape");if(b){g.filled=true;
g.fillColor=this.fillStyle;g.stroked=false}else{g.filled=false;g.fillColor="none";g.stroked=true;g.strokeweight=this.lineWidth-1}g.strokeColor=this.strokeStyle;var a=parseInt(this.vmlgraphic.div.style.width,10);var d=parseInt(this.vmlgraphic.div.style.height,10);g.coordsize=a+","+d;g.style.position="absolute";
g.style.left=this.offsetX;g.style.top=this.offsetY;g.style.width=this.vmlgraphic.div.style.width;g.style.height=this.vmlgraphic.div.style.height;g.path=this.path;var e,c;if(b){e=document.createElement("v:fill");e.opacity=this.globalAlpha;g.appendChild(e)}else{c=document.createElement("v:stroke");c.opacity=this.globalAlpha/2;
g.appendChild(c)}this.vmlgraphic.div.appendChild(g)};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.map=a;this.layer=a.getLayer(this.layerName);if(!this.layer){alert("No such layer : "+this.layerName+" in "+a.layers)
}},mouseDblClick:function(c){var b=this.map.browser;var e=b.getXposition(c);var d=b.getYposition(c);e-=b.getElementLeft(this.map.mainDiv);d-=b.getElementTop(this.map.mainDiv);var a=this.map.calcMapX(e);var f=this.map.calcMapY(d);if(!this.currentObject){if(this.kind=="line"){this.currentObject=new GCISLine([a],[f],this.size,this.color,this.opacity);
this.layer.addElement(this.currentObject)}else{if(this.kind=="poly"){this.currentObject=new GCISPolygon([a],[f],this.color,this.size,"#000000",this.opacity);this.layer.addElement(this.currentObject)}}}else{if(this.kind=="line"||this.kind=="poly"){this.currentObject.addPoint(a,f)}}this.layer.refresh()
}});function formatNumber(e,c,h,b,n,m,g,f){var l=Math.round(e*Math.pow(10,c));if(l>=0){g=f=""}var k=(""+Math.abs(l)).split("");var j=k.length-c;if(j<0){j--}for(var d=j;d<0;d++){k.unshift("0")}k.splice(j,0,b);while(j>3){j-=3;k.splice(j,0,h)}var a=n+g+k.join("")+f+m;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.map=a;this.layer=a.getLayer(this.layerName);if(!this.layer){alert("No such layer : "+this.layerName+" in "+a.layers)
}},onmousemove:function(a){this.isdragging=1;this.mouseDrag(a)},onmouseup:function(c){var i,d,h,g,e,b,a,k,f,j;if(!this.isdragging){j=this.map.browser;i=j.getXposition(c);d=j.getYposition(c);i-=j.getElementLeft(this.map.mainDiv);d-=j.getElementTop(this.map.mainDiv);h=this.map.calcMapX(i);g=this.map.calcMapY(d);
if(!this.currentObject){this.segmentdist=0;this.totaldist=0;this.layer.deleteAllElements();this.currentObject=new GCISLine([h],[g],this.size,this.color,this.opacity);this.isDrawingPoly=true;this.deleteLastPointPoly=false;this.layer.addElement(this.currentObject)}else{if(this.deleteLastPointPoly){this.currentObject.deleteLastPoint()
}e=this.currentObject.xPoints.length-1;if(e>=0){b=this.currentObject.xPoints[e];a=this.currentObject.yPoints[e];this.segmentdist=Math.sqrt(((h-b)*(h-b))+((g-a)*(g-a)));this.totaldist+=this.segmentdist;k=this.segmentdist*this.map.precision;f=this.totaldist*this.map.precision;if(this.divsegment){this.divsegment.innerHTML=formatNumber(k,0," ","",""," m","-","")
}if(this.divtotal){this.divtotal.innerHTML=formatNumber(f,0," ","",""," m","-","")}if(this.distanceListener){this.distanceListener.onDistanceChange(k,f)}}this.currentObject.addPoint(h,g);this.deleteLastPointPoly=false}this.layer.refresh()}this.isdragging=0;this.endDrag(c)},mouseDown:function(b){this.map.dragging=true;
var a=this.map.browser;this.beginDragCursorX=a.getXposition(b);this.beginDragCursorY=a.getYposition(b);this.beginDragX=this.map.currentX;this.beginDragY=this.map.currentY;this.map.currentDoc.onmousemove=GCUI.Function.bindAsEvent(this.onmousemove,this);this.map.currentDoc.onmouseup=GCUI.Function.bindAsEvent(this.onmouseup,this);
this.map.window.onmouseout=GCUI.Function.bindAsEvent(this.endDrag,this);a.cancelEvent(b)},mouseDrag:function(c,f){var m=document.getElementById("debug");if(m){m.innerHTML=""}var l=this.map.browser;var i=l.getXposition(c);var d=l.getYposition(c);var o=i-this.beginDragCursorX;var n=d-this.beginDragCursorY;
var h,g,e,b,a,j,k;if(!this.isDrawingPoly){this.map.currentX=this.map.calcMapDeltaX(this.beginDragX,-o);this.map.currentY=this.map.calcMapDeltaY(this.beginDragY,-n);this.map.moveMap(o,n,f)}else{this.isdragging=false;i-=l.getElementLeft(this.map.mainDiv);d-=l.getElementTop(this.map.mainDiv);h=this.map.calcMapX(i);
g=this.map.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){j=this.map.precision*Math.sqrt(((h-b)*(h-b))+((g-a)*(g-a)));
k=this.map.precision*this.totaldist+j;if(this.divsegment){this.divsegment.innerHTML=formatNumber(j,0," ","",""," m","-","")}if(this.divtotal){this.divtotal.innerHTML=formatNumber(k,0," ","",""," m","-","")}if(this.distanceListener){this.distanceListener.onDistanceChange(j,k)}}}l.cancelEvent(c)},endDrag:function(a){this.mouseDrag(a,true);
if(!this.isDrawingPoly){this.map.currentDoc.onmouseup=null;this.map.currentDoc.onmousemove=null}this.map.window.onmouseout=null;this.map.dragging=false;this.endMoveMap()},mouseDblClick:function(a){if(this.isDrawingPoly){this.isDrawingPoly=false;this.currentObject.deleteLastPoint();this.currentObject.deleteLastPoint();
this.currentObject=null;this.map.currentDoc.onmouseup=null;this.map.currentDoc.onmousemove=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.map=a;this.layer=a.getLayer(this.layerName);if(!this.layer){alert("No such layer : "+this.layerName+" in "+a.layers)}},onmousemove:function(a){this.isdragging=1;this.mouseDrag(a)},onmouseup:function(b){var d,c,a,e;if(!this.isdragging){d=this.map.browser.getXposition(b);
c=this.map.browser.getYposition(b);d-=this.map.browser.getElementLeft(this.map.mainDiv);c-=this.map.browser.getElementTop(this.map.mainDiv);a=this.map.calcMapX(d);e=this.map.calcMapY(c);if(!this.currentObject){if(this.kind=="line"){this.currentObject=new GCISLine([a],[e],this.size,this.color,this.opacity,this.featureId);
this.isDrawingPoly=true;this.deleteLastPointPoly=false;this.layer.addElement(this.currentObject)}else{if(this.kind=="poly"){this.currentObject=new GCISPolygon([a],[e],this.color,this.size,this.bordercolor,this.opacity,false,this.featureId);this.isDrawingPoly=true;this.deleteLastPointPoly=false;this.layer.addElement(this.currentObject)
}else{if(this.kind=="point"){this.currentObject=new GCISPoint(a,e,this.color,this.size,this.bordercolor,this.opacity)}}}}else{if(this.kind=="line"||this.kind=="poly"){if(this.deleteLastPointPoly){this.currentObject.deleteLastPoint()}this.currentObject.addPoint(a,e);this.deleteLastPointPoly=false}}this.layer.refresh()
}if(this.currentObject){if(this.kind=="circle"||this.kind=="rect"||this.kind=="point"){if(this.kind=="circle"){this.div.parentNode.removeChild(this.div)}this.isdragging=0;this.mouseDrag(b,true);if(!this.isDrawingPoly){this.map.currentDoc.onmouseup=null;this.map.currentDoc.onmousemove=null}this.map.window.onmouseout=null;
this.map.dragging=false;this.endMoveMap();this.notifyDrawingFinish();return}}this.isdragging=0;this.endDrag(b)},mouseDown:function(b){this.map.dragging=true;var a=this.map.browser;this.beginDragCursorX=a.getXposition(b);this.beginDragCursorY=a.getYposition(b);this.beginDragX=this.map.currentX;this.beginDragY=this.map.currentY;
this.map.currentDoc.onmousemove=GCUI.Function.bindAsEvent(this.onmousemove,this);this.map.currentDoc.onmouseup=GCUI.Function.bindAsEvent(this.onmouseup,this);a.cancelEvent(b)},mouseDrag:function(b,d){var l=document.getElementById("debug");if(l){l.innerHTML=""}var k=this.map.browser;var i=k.getXposition(b);
var c=k.getYposition(b);var n=i-this.beginDragCursorX;var m=c-this.beginDragCursorY;var g,f,h,a,e,j;if(this.kind=="line"||this.kind=="poly"){if(!this.isDrawingPoly){this.map.currentX=this.map.calcMapDeltaX(this.beginDragX,-n);this.map.currentY=this.map.calcMapDeltaY(this.beginDragY,-m);this.map.moveMap(n,m,d)
}else{this.isdragging=false;i-=k.getElementLeft(this.map.mainDiv);c-=k.getElementTop(this.map.mainDiv);g=this.map.calcMapX(i);f=this.map.calcMapY(c);if(this.deleteLastPointPoly){this.currentObject.deleteLastPoint()}this.currentObject.addPoint(g,f);this.deleteLastPointPoly=true;this.layer.refresh()}}else{if(!d){i-=k.getElementLeft(this.map.mainDiv);
c-=k.getElementTop(this.map.mainDiv);g=this.map.calcMapX(i);f=this.map.calcMapY(c);if(!this.currentObject){if(this.kind=="circle"){this.circleX=i;this.circleY=c;a=this.map.createElt("div");a.className="mapcircleradius";a.style.width="1px";a.style.left=i+"px";a.style.top=c+"px";e=this.map.createElt("div");
e.className="mapcircleradiusvalue";e.style.width="1px";e.innerHTML="0 m.";e.style.left="0px";this.div2=e;a.appendChild(e);this.map.getMapDiv().appendChild(a);this.div=a;this.currentObject=new GCISCircle(g,f,this.map.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.map.calcMapDeltaX(0,1),f,f+this.map.calcMapDeltaY(0,1),this.color,this.size,this.bordercolor,this.opacity,true,this.featureId)}if(this.kind=="point"){this.currentObject=new GCISPoint(g,f,this.color,this.size,this.bordercolor,this.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.map.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*this.map.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()}}}k.cancelEvent(b)},endDrag:function(a){this.mouseDrag(a,true);if(!this.isDrawingPoly){this.map.currentDoc.onmouseup=null;this.map.currentDoc.onmousemove=null}this.map.window.onmouseout=null;this.map.dragging=false;this.endMoveMap()},mouseDblClick:function(a){if(this.isDrawingPoly){this.isDrawingPoly=false;
this.currentObject.deleteLastPoint();this.currentObject.deleteLastPoint();this.map.currentDoc.onmouseup=null;this.map.currentDoc.onmousemove=null;this.notifyDrawingFinish()}},notifyDrawingFinish:function(){var a,b;for(a=0;a<this.map.drawingListeners.length;a++){b=this.map.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(d,c){if(d<c){return d}else{return c}}function max(d,c){if(d>c){return d}else{return c}}GCISZoomSelectionMode=GCUI.Class(GCISMoveMode,{initialize:function(){this.selectMode=0;
this.name="zoomSelection"},onmousemove:function(a){this.isMoved=true;this.mouseDrag(a)},mouseDown:function(e){if(this.map.animator){this.map.stopAnimation()}this.map.dragging=true;var d=this.map.browser;this.beginDragCursorX=d.getXposition(e);this.beginDragCursorY=d.getYposition(e);this.beginDragX=this.map.currentX;
this.beginDragY=this.map.currentY;var b=this.beginDragCursorX-d.getElementLeft(this.map.mainDiv);var a=this.beginDragCursorY-d.getElementTop(this.map.mainDiv);var c=new GCUI.Layer.RectZoomLayer(this.map,b,a);this.map.addLayer(c);this.isMoved=false;this.map.currentDoc.onmousemove=GCUI.Function.bindAsEvent(this.onmousemove,this);
this.map.currentDoc.onmouseup=GCUI.Function.bindAsEvent(this.endDrag,this);d.cancelEvent(e)},mouseDrag:function(l,a){if(!this.map.dragging){return}this.isMoved=true;var r=document.getElementById("debug");if(r){r.innerHTML=""}var q=this.map.browser;var f=q.getXposition(l);var j=q.getYposition(l);var e=f-this.beginDragCursorX;
var d=j-this.beginDragCursorY;this.map.getLayer("zoomsel").setDelta(e,d);var p,n,m,c,b,h,i,k,o,g;if(a){this.map.dragging=false;p=this.map.getLayer("zoomsel");n=this.map.calcMapX(p.getXmin());m=this.map.calcMapX(p.getXmax());c=this.map.calcMapY(p.getYmin());b=this.map.calcMapY(p.getYmax());h=min(n,m);
i=max(n,m);k=min(c,b);o=max(c,b);if(!this.unzoom){this.map.centerOnRect(h,k,i,o)}else{this.map.currentX=(h+i)/2;this.map.currentY=(k+o)/2;g=this.map.scale+3;if(g>this.map.maxScale){g=this.map.maxScale;this.map.refresh()}this.map.animateZoom(g,true)}this.map.removeLayer("zoomsel",p)}q.cancelEvent(l)},endDrag:function(b){var a;
if(this.isMoved){this.mouseDrag(b,true)}else{a=this.map.getLayer("zoomsel");this.map.removeLayer("zoomsel",a)}this.map.currentDoc.onmouseup=null;this.map.currentDoc.onmousemove=null;this.map.window.onmouseout=null;this.map.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=0;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.format=(j?j:"png");
this.protocol="geoportal";if(j=="pngt"){this.transparentColor=true}if(j!="png"&&j!="jpg"&&j!="png24"){this.format="png"}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(a){if(this.zooming){return
}if(this.animationVisible){this.hideAnimation()}},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},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 c=this.format;var e=a?a:this.dynMap.scale;
if(!c){c="png8"}var d=[this.server,this.mapName,this.mapVersion,this.tabName,c+(this.transparentColor?"t":""),this.tileWidth,this.tileHeight,e,b.mapTileX,b.mapTileY+"."+c.substring(0,3)];return d.join("/")},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)}}},refresh:function(c){if(!this.xRatios){this.initRatios(this.dynMap.ratios)
}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)}}},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(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])){this.displayCopyright=false;
c.image.src=this.dynMap.defaultImg;c.loadImage=null}else{this.displayCopyright=true;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"}},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)}}},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.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}},addCopyrightImage:function(a){if(this.logoImgs[a]){return}else{this.logoImgs[a]=true;this.logos.push(a)}this.refresh()},removeCopyrightImage:function(a){this.logoImgs[a]=false;var c=0;var b=[];for(c=0;c<this.logos.length;c++){if(this.logos[c]!=a){b.push(this.logos[c])
}}this.logos=b;this.refresh()}});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 x=" onclick=\"DynMapShowObjectSheet(DynMapGetMap(document,'"+this.dynMap.id+"'), '";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 y=[];var o;for(c=0;c<a;c++){r=this.objects[c];if(r.type){y.push(n);y.push(c);y.push(m);y.push(r.id);y.push(l)}else{if(r.innerHTML){y.push(n);y.push(c);y.push(k);y.push(r.id);y.push(j);y.push(r.innerHTML);y.push(i)}else{y.push(h);y.push(r.imgsrc);y.push(g);y.push(c);
y.push(f);if(r.text){y.push(x);y.push(r.id);y.push(s)}y.push(" />")}}if(r.name){if(r.objnamecss){p=r.objnamecss}o="";if(r.nameBackgroundColor){o="style=background-color:"+r.nameBackgroundColor+";"}y.push(w);y.push(p);y.push(u);y.push(c);y.push(t);y.push(r.id);y.push(s);y.push(o);y.push(e);y.push(r.name);
y.push(q)}}v.innerHTML=y.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},setObjectDivCss:function(b,a){var c=this.findObject(b);c.mainDiv.className=a
},addObjects:function(d,c){var b;var a=d.length;for(b=0;b<a;b++){this.addObject(d[b],c)}},toJSON:function(){var u,r,v,g,j,c,m,o,b,a,B,A,n,h;var e=this.objects.length;var z="";var l=this.dynMap.currentX;var k=this.dynMap.currentY;var q=this.dynMap.calcMapDeltaX(0,this.dynMap.width)/2;var w=-this.dynMap.calcMapDeltaY(0,this.dynMap.height)/2;
var f=this.dynMap.id+"_obj_";var d=this.dynMap.id+"_objname_";var s=this.dynMap.precision;var t=GCUI.Util.getStyle;for(u=0;u<e;u++){r=this.objects[u];if(Math.abs(r.mapx-l)<q&&Math.abs(r.mapy-k)<w){j='{"text":"'+r.name+'",';n=this.dynMap.currentDoc.getElementById(d+u);j+='"bgcol":"'+t(n,"background-color")+'",';
j+='"color":"'+t(n,"color")+'",';j+='"font":"'+t(n,"font-family")+'",';j+='"fontsize":"'+t(n,"font-size")+'",';j+='"hotspot":[0,0],"delta":['+(8-r.deltaX)+","+(-32-r.deltaY)+"]}";z+='{"type":"point","center":['+r.mapx*s+","+r.mapy*s+"]";if(r.type){v=r.type.getStyle(this.dynMap.scale);if(v.icon){h=this.dynMap.currentDoc.getElementById(f+u);
g=t(h,"background-image");g=g.replace("url(","").replace(")","").replace('"',"").replace('"',"");z+=',"style":{"type":"image","url":"'+g+'"}'}else{c=v.width;m=v.height;b="[0,0]";a="["+c+",0]";B="["+c+","+m+"]";A="[0,"+m+"]";o="["+b+","+a+","+B+","+A+","+b+"]";z+=',"style":{"type":"polygon","polygon":'+o+',"lineColor":"'+v.borderColor+'","lineWidth":'+v.borderWidth+',"opacity":'+(v.bgOpacity*100)+',"order":0,"fillColor":"'+v.bgColor+'"}'
}z+=',"hotspot":['+v.hotSpotX+","+v.hotSpotY}else{g=this.dynMap.currentDoc.getElementById(f+u).src;z+=',"label":'+j+',"style":{"type":"image","url":"'+g+'"}';z+=',"hotspot":['+(-r.deltaX)+","+(-r.deltaY)}z+='],"order":'+u+"}";if(u!=e-1){z+=","}}}return z},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},displayObj:function(b,a){b.mainDiv.style.display=a;
if(b.nameDiv){this.displayName(b,a)}},displayName:function(b,a){b.nameDiv.style.display=a},updateObject:function(e,a){if(!e.mainDiv){return}e.posx=this.dynMap.calcPixelX(e.mapx);e.posy=this.dynMap.calcPixelY(e.mapy);if(this.multiLabels){var f=e.posx+"_"+e.posy;if(!this.nbObjsInPosXY[f]){this.nbObjsInPosXY[f]=1
}else{this.nbObjsInPosXY[f]=this.nbObjsInPosXY[f]+1}}var b=true;var d=0;var g,c,i,h;if((e.posx>this.dynMap.width+d)||(e.posx<=-d)||(e.posy>this.dynMap.height+d)||(e.posy<=-d)){b=false}if(b){if(!e.visible&&e.mainDiv){this.displayObj(e,"block");e.visible=true}if(e.type){this.updateObjectStyle(e,a)}else{if(a&&e.innerHTML&&!this.dragMode){e.mainDiv.innerHTML=e.innerHTML
}i=(e.mainDiv&&e.mainDiv.width)?-e.mainDiv.width/2:0;h=(e.mainDiv&&e.mainDiv.height)?-e.mainDiv.height/2:0;if(!e.deltaX){e.deltaX=i}if(!e.deltaY){e.deltaY=h}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){this.displayObj(e,"block")
}else{this.displayObj(e,"none")}}if(e.nameDiv){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+(i==0?0:(e.deltaX-i))+8)+"px";e.nameDiv.style.top=(e.posy+(h==0?0:(e.deltaY-h))-32)+"px"}if(this.namedivminscale){if(this.namedivminscale<=this.dynMap.scale&&this.namedivmaxscale>this.dynMap.scale){this.displayName(e,"block")}else{this.displayName(e,"none")}}}}}else{if(e.visible){this.displayObj(e,"none");
e.visible=false}}},setNameDivVisibilityRange:function(a,b){this.namedivminscale=a;this.namedivmaxscale=b},activateMultiLabels:function(){this.multiLabels=true;this.nbObjsInPosXY=[];this.deltaPosNameX=[0,0,0,-1,-2,-2,-2,-1];this.deltaPosNameY=[22,5,-12,-12,-12,5,22,22]},updateObjectStyle:function(e,c){var a,d;
var g=e.type;var l,k,j,i,h,b,f;if(g&&e.mainDiv){d=e.mainDiv.style;a=g.getStyle(this.dynMap.scale);l=a?a.hotSpotX:e.mainDiv.width/2;k=a?a.hotSpotY:e.mainDiv.height/2;d.left=(e.posx-l)+"px";d.top=(e.posy-k)+"px";if(c||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){this.displayName(e,"block");if(this.multiLabels){j=this.nbObjsInPosXY[e.posx+"_"+e.posy];if(!e.nameW){e.nameW=e.nameDiv.clientWidth}b=Math.floor(j/9)*e.nameW;f=(j-1)%8;e.nameDiv.style.left=(e.posx-e.deltaX+b+e.nameW*this.deltaPosNameX[f])+"px";e.nameDiv.style.top=(e.posy+e.deltaY+b-this.deltaPosNameY[f])+"px"
}else{i=a.width/2-a.hotSpotX;h=a.height/2-a.hotSpotY;e.nameDiv.style.left=(e.posx+i+8)+"px";e.nameDiv.style.top=(e.posy+h-32)+"px"}e.nameDiv.className=a.objnamecss;if(this.namedivminscale){if(this.namedivminscale<=this.dynMap.scale&&this.namedivmaxscale>this.dynMap.scale){this.displayName(e,"block")}else{this.displayName(e,"none")
}}}else{this.displayName(e,"none")}}}}});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,h,c,i,f,k,j,l,a,d){this.name=b;
this.map=h;this.visible=true;this.layerImage=null;this.userId=f;this.transparentColor=c;this.gcisRequester=i;this.ulSequence=0;this.div=null;this.usemapname="#"+j;try{this.usemapelement=this.map.currentDoc.getElementById(j)}catch(g){}this.zindex=k;this.options=l;this.layerImage=null;this.linkingObject=a;
this.imgSize=(d&&d.size)?d.size:1},toJSON:function(a){var d=(this.transparentColor==-1)?"pngt":"png";var c=this.gcisRequester?this.gcisRequester.m_strMapName:this.map.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{var d=this.divMovable.style;d.left=this.leftorigin+b+"px";
d.top=this.toporigin+a+"px";d.visibility="visible";if(this.div.style.visibility!="hidden"){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.map=a;
var b=a.createElt("div");b.id="dynLayer_"+this.name;b.style.width="100%";b.style.height="100%";b.style.position="absolute";this.leftorigin=(this.imgSize-1)*(-this.map.width/2);this.toporigin=(this.imgSize-1)*(-this.map.height/2);b.style.left=this.leftorigin+"px";b.style.top=this.toporigin+"px";b.style.zIndex=this.zindex;
a.getMapDiv().appendChild(b);this.layerImage=this.map.createElt("img");this.layerImage.src=this.map.defaultImg;this.layerImage.style.border="none";this.layerImage.useMap=this.usemapname;this.layerImage.width=this.map.width;this.layerImage.height=this.map.height;b.appendChild(this.layerImage);this.lastX=this.map.currentX;
this.lastY=this.map.currentY;this.lastScale=this.map.scale;this.div=b;this.div.onmouseout=GCUI.Function.bindAsEvent(function(c){this.map.mouseMode.avoidMouseOutEvent=true},this);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=this.leftorigin+"px";this.divMovable.style.top=this.toporigin+"px";this.lastMovableLeft=this.leftorigin;this.lastMovableTop=this.toporigin;this.divMovable.style.zIndex=this.zindex;a.getMapDiv().appendChild(this.divMovable);this.divMovable.style.visibility="hidden";
this.divMovableImage=this.map.createElt("img");this.divMovableImage.src=this.map.defaultImg;this.divMovableImage.style.border="none";this.divMovableImage.width=this.map.width;this.divMovableImage.height=this.map.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.map.currentX;var b=this.map.currentY;if((!c)&&(this.lastX==d)&&(this.lastY==b)&&(this.lastScale==this.map.scale)){return
}this.lastX=d;this.lastY=b;this.lastScale=this.map.scale;var a=this.getLayerImageURL(d,b);this.tempImage=this.map.createElt("img");this.loadIsComplete=false;this.tempImage.onload=GCUI.Function.bindAsEvent(function(){if(this.allowLoadingImages){this.layerImage.onload=GCUI.Function.bindAsEvent(this.loadImg,this);
this.layerImage.src=this.tempImage.src}},this);this.tempImage.src=a;this.refreshAreas()},loadImg:function(){if(this.allowLoadingImages){this.div.style.visibility="visible";this.divMovable.style.visibility="hidden";this.divMovable.style.left=this.leftorigin+"px";this.divMovable.style.top=this.toporigin+"px";
this.divMovableImage.src=this.layerImage.src;this.loadIsComplete=true;if(this.onLoadComplete){this.onLoadComplete()}}},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.map.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.imgSize*this.map.width;var c=this.imgSize*this.map.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.map.scale,this.transparentColor,"",this.userId,this.ulSequence,this.options);
if(this.options){g+="&"+this.options}}else{a=this.map.server.substring(0,this.map.server.lastIndexOf("/map"));e=this.map.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.map.scale+"&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(c){var b,a;if(this.graphics){this.graphics.setSize(this.dynMap.width,this.dynMap.height,c);this.graphics.clear();a=this.elements.length;for(b=0;b<a;b++){this.elements[b].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(d,g){var b,c,a,f;var e=this.dynMap.precision;d.precision=e;if(g&&!d.wktInMeter){b=d.xPoints.length;a=d.xPoints;f=d.yPoints;for(c=0;c<b;c++){a[c]/=e;
f[c]/=e}if(d.radius){d.radius/=e}if(d.mapx1){d.mapx1/=e;d.mapx2/=e;d.mapy1/=e;d.mapy2/=e}}this.elements.push(d)},deleteAllElements:function(){this.elements=[]},deleteElement:function(d){var a=[];var c;var b=this.elements.length;for(c=0;c<b;c++){if(c!=d){a.push(this.elements[c])}}this.elements=a},toJSON:function(a){var d="";
var c;var f=this.dynMap.getBoundingBox();var e=[];var b=this.elements.length;for(c=0;c<b;c++){this.elements[c].getBounds(e);if(rectIntersectRect(e.mapx1,e.mapx2,e.mapy1,e.mapy2,f[0],f[2],f[3],f[1])){d+=this.elements[c].toJSON(a,c);if(c!=b-1){d+=","}}}return d},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 parseInt(this.div.style.zIndex,10)},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.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))}});
