function debuginfo(aa,ba){try{if($("debug")){}}
catch(e){}}
gridmap_version=1.3;function GridTabWidget(ca,da,ea,fa,ga,sp){this.slaveList=new Array();this.master=ca;this.current=null;this.dir=ea;this.height="22px";this.xOffset=fa;this.yOffset=ga;this.look=da;this.space=sp;this.initialize();};GridTabWidget.prototype.getTag=function(){return this.master;};GridTabWidget.prototype.addTab=function(ha,ia,ja){var ka=new GridTabButton(this,this.slaveList.length,ha,ia,ja,this.look);this.slaveList.push(ka);};GridTabWidget.prototype.getCurrent=function(){return this.current;};GridTabWidget.prototype.setCurrent=function(i){for(var j=0;j<this.slaveList.length;++j){if(j==i){if(this.look=='img'){this.slaveList[j].setActiveImg();}
else if(this.look=='default'){this.slaveList[j].setActiveDefault();}}
else{if(this.look=='img'){this.slaveList[j].setDefaultImg();}
else if(this.look=='default'){this.slaveList[j].setDefaultDefault();}}}};GridTabWidget.prototype.initialize=function(){this.master.style.position="relative";this.master.style.overflow="hidden";this.master.style.background="#E0ECF3";};GridTabWidget.prototype.setBackgroundColor=function(c){this.master.style.background=c;};GridTabWidget.prototype.getHeightTillIndex=function(i){var la=0;if(this.look=='img'){if(i==0)return this.yOffset+5;for(var j=0;j<i;++j){if(j==0){la+=(25+this.space+this.xOffset+15);}
else{la+=(25+this.space+10);}}}
else if(this.look=='default'){if(i==0)return this.xOffset;for(var j=0;j<i;++j){if(j==0){la+=(25+this.space+this.yOffset);}
else{la+=(25+this.space);}}}
return la;};GridTabWidget.prototype.getWidthTillIndex=function(i){var ma=0;if(this.look=='img'){if(i==0)return this.xOffset+5;for(var j=0;j<i;++j){if(j==0){ma+=(this.slaveList[j].getWidth()+this.space+this.xOffset+15);}
else{ma+=(this.slaveList[j].getWidth()+this.space+10);}}}
else if(this.look=='default'){if(i==0)return this.xOffset;for(var j=0;j<i;++j){if(j==0){ma+=(this.slaveList[j].getWidth()+this.space+this.xOffset);}
else{ma+=(this.slaveList[j].getWidth()+this.space);}}}
return ma;};function GridTabButton(na,i,oa,w,pa,l){this.slave=document.createElement('div');this.masterObj=na;this.masterTag=this.masterObj.getTag();this.index=i;this.value=oa;this.valueTag=document.createTextNode(this.value);this.id=oa;this.width=w;this.height=parseInt(this.masterObj.height);this.execFunc=pa;this.imgPath="";this.look=l;this.initialize();if(this.look=='img'){this.initializeImg();}
else if(this.look=='default'){this.initializeDefault();}};GridTabButton.prototype.handleClick=function(qa){this.masterObj.setCurrent(this.index);this.execFunc();}
GridTabButton.prototype.getTag=function(){return this.slave;};GridTabButton.prototype.getWidth=function(){return this.width;};GridTabButton.prototype.setDefaultImg=function(){this.slave.style.backgroundImage="url("+this.imgPath+"bg_w.png)";this.slave.style.color="#ffffff";this.imgL.src=this.imgPath+"bg_w_left.png";this.imgR.src=this.imgPath+"bg_w_right.png";};GridTabButton.prototype.setDefaultDefault=function(){this.slave.style.background="#E0ECF3";this.slave.style.color="#2F507A";};GridTabButton.prototype.setActiveImg=function(){this.slave.style.backgroundImage="url("+this.imgPath+"bg_c.png)";this.slave.style.color="#ffffff";this.imgL.src=this.imgPath+"bg_c_left.png";this.imgR.src=this.imgPath+"bg_c_right.png";};GridTabButton.prototype.setActiveDefault=function(){this.slave.style.background="#E0ECF3";this.slave.style.color="#FF0000";};GridTabButton.prototype.handleOver=function(){this.slave.style.background="#DCB9C0";};GridTabButton.prototype.handleOut=function(){this.slave.style.background="#E0ECF3";};GridTabButton.prototype.initialize=function(){this.slave.onclick=this.handleClick.bindAsEventListener(this);this.slave.onmouseover=this.handleOver.bind(this);this.slave.onmouseout=this.handleOut.bind(this);this.slave.style.position="absolute";this.slave.style.overflow="hidden";this.slave.style.cursor="pointer";this.slave.align="left";this.slave.style.paddingLeft="4px";this.slave.style.paddingTop="2px";this.slave.style.fontFamily="Arial";this.slave.style.fontSize="14";this.slave.style.fontWeight="bold";this.slave.style.color="#2F507A";this.slave.style.width=this.width+'px';this.slave.style.height=this.height+'px';if(this.masterObj.dir=="h"){this.slave.style.top=this.masterObj.yOffset+'px';this.slave.style.left=this.masterObj.getWidthTillIndex(this.index)+'px';}
else{this.slave.style.top=this.masterObj.getHeightTillIndex(this.index)+"px";this.slave.style.left=this.masterObj.xOffset+"px";}
this.slave.appendChild(this.valueTag);this.masterTag.appendChild(this.slave);};GridTabButton.prototype.initializeImg=function(){this.slave.style.backgroundImage="url("+this.imgPath+"bg_w.png)";this.slave.style.backgroundRepeat="repeat-x";this.slave.style.borderTop="1px solid black";this.slave.style.borderBottom="1px solid black";this.imgL=document.createElement('img');this.imgR=document.createElement('img');this.imgL.src=this.imgPath+"bg_w_left.png";this.imgL.style.position="absolute";this.imgL.style.top=this.masterObj.yOffset+'px';this.imgL.style.width="5px";this.imgL.style.height=this.height+'px';this.imgL.style.left=(this.masterObj.getWidthTillIndex(this.index)-5)+'px';this.imgR.src=this.imgPath+"bg_w_right.png";this.imgR.style.position="absolute";this.imgR.style.top=this.masterObj.yOffset+'px';this.imgR.style.width="5px";this.imgR.style.height=this.height+'px';this.imgR.style.left=(this.masterObj.getWidthTillIndex(this.index)+this.width)+'px';this.masterTag.appendChild(this.imgL);this.masterTag.appendChild(this.imgR);};GridTabButton.prototype.initializeDefault=function(){this.slave.style.background="#E0ECF3";};var Subject={register:function(ra){if(!this.observers.include(ra)){this.observers.push(ra);}},unregister:function(sa){if(this.observers.include(sa))this.observers.without(sa);},notify:function(){this.observers.invoke('update');}};var Observer={update:function(){this._update.call(this);}};var GridStatusBar=Class.create();GridStatusBar.prototype={initialize:function(ta){this.mapO=$(ta);var sb=document.createElement("div");this.sbTag=$(sb);var c=new Image();this.closeTag=$(c);this.closeTag.id="close";var o=new Image();this.openTag=$(o);this.openTag.id="open";this.initCSS();},setBgHexColor:function(ua){this.sbTag.setStyle({background:ua});},setBgRGBColor:function(r,g,b){this.sbTag.setStyle({background:'#'+$A(arguments).invoke('toColorPart').join('')});},setOpacity:function(o){this.sbTag.setStyle({opacity:o})},initCSS:function(){this.openTag.src="img/open.png";this.sbTag.style.positon="absolute";this.sbTag.onmousedown=function(){return false;};this.sbTag.onmousemove=function(){return false;};this.sbTag.onmouseup=function(){return false;};this.sbTag.setStyle({zIndex:"20",background:"#ffffaa",opacity:"0.8",left:"0px",top:this.mapO.getHeight()-25+"px",width:this.mapO.getWidth()+"px",height:"25px"});this.sbTag.makePositioned();this.openTag.onmousedown=this._open.bindAsEventListener(this);this.openTag.onmousemove=function(){return false;}
this.openTag.onmouseup=function(){return false;}
this.openTag.style.position="absolute";this.openTag.setStyle({zIndex:"21",left:this.mapO.containerTag.getWidth()-22+"px",top:this.mapO.containerTag.getHeight()-22+"px",width:"16px",height:"16px",cursor:"pointer"});this.openTag.makePositioned();this.openTag.hide();this.closeTag.src="img/close.png";this.closeTag.style.position="absolute";this.closeTag.onmousedown=this._close.bindAsEventListener(this);this.closeTag.onmousemove=function(){return false;}
this.closeTag.onmouseup=function(){return false;}
this.closeTag.setStyle({zIndex:"21",cursor:"pointer",left:this.mapO.containerTag.getWidth()-22+"px",top:"3px",width:"16px",height:"16px"});this.closeTag.makePositioned();this.sbTag.appendChild(this.closeTag);this.mapO.containerTag.appendChild(this.openTag);this.mapO.containerTag.appendChild(this.sbTag);},_close:function(va){Event.stop(va);this.sbTag.hide();this.openTag.show();},_open:function(wa){Event.stop(wa);this.sbTag.show();this.openTag.hide();}};var GridMapButton=Class.create();GridMapButton.prototype={initialize:function(xa,ya,za,sO){this.mapO=$(xa);var bt=document.createElement("div");this.buttonTag=$(bt);this.title=document.createTextNode(ya);this.funcP=za;this._initCSS(sO);},_initCSS:function(sO){this.buttonTag.oncontextmenu=function(){return false;};this.buttonTag.onmousedown=this._action.bindAsEventListener(this);this.buttonTag.onmousemove=function(){return false;};this.buttonTag.onmouseup=function(){return false;};this.buttonTag.style.position="absolute";this.buttonTag.setStyle({zIndex:sO.zIndex||"40",border:sO.border||"1px solid gray",background:sO.background||"#ff00ff",cursor:sO.cursor||"pointer",left:sO.left||"100px",top:sO.top||"5px",width:sO.width||"80px",height:sO.height||"20px",padding:sO.padding||"5px",float:sO.float||"left",fontFamily:sO.fontFamily||"Arial",fontSize:sO.fontSize||"12px",fontWeight:sO.fontWeigth||"bold"});this.buttonTag.makePositioned();this.buttonTag.appendChild(this.title);this.mapO.containerTag.appendChild(this.buttonTag);},_action:function(Aa){Event.stop(Aa);new Effect.Highlight(this.buttonTag,{});this.funcP();}};var GridEnvelope=Class.create();GridEnvelope.prototype={initialize:function(Ba,Ca,Da,Ea){this.bbox=$A(arguments);this._checkBounds();},isValid:function(){if(this.bbox.all())return true;return false;},_checkBounds:function(){if(this.bbox.size()!=4||(this.bbox[0]>this.bbox[2]||this.bbox[1]>this.bbox[3]))throw "EnvelopeBoundsException";},clear:function(){this.bbox.clear();},getXmin:function(){return this.bbox[0];},getYmin:function(){return this.bbox[1];},getXmax:function(){return this.bbox[2];},getYmax:function(){return this.bbox[3];},getWidth:function(){return this.bbox[2]-this.bbox[0];},getHeight:function(){return this.bbox[3]-this.bbox[1];},getCenter:function(){return new GridPoint(this.bbox[0]+this.getWidth()/2,this.bbox[1]+this.getHeight()/2);},setXmin:function(x){this.bbox[0]=x;this._checkBounds();},setYmin:function(y){this.bbox[1]=y;this._checkBounds();},setXmax:function(x){this.bbox[2]=x;this._checkBounds();},setYmax:function(y){this.bbox[3]=y;this._checkBounds();},setWidth:function(w){var Fa=this.bbox[0];var Ga=this.getWidth();this.bbox[0]=Fa+Ga/2 - w/2;this.bbox[2]=Fa+Ga/2 + w/2;},setHeight:function(h){var Ha=this.bbox[1];var Ia=this.getHeight();this.bbox[1]=Ha+Ia/2 - h/2;this.bbox[3]=Ha+Ia/2 + h/2;},setBox:function(Ja,Ka,La,Ma){this.bbox=$A(arguments);this._checkBounds();},copyEnvelope:function(Na){if(Na instanceof GridEnvelope){this.setBox(Na.getXmin(),Na.getYmin(),Na.getXmax(),Na.getYmax());}
else{throw "NoValidEnvelopeException";}},unionEnvelope:function(Oa){if(Oa instanceof GridEnvelope){this.setBox(Math.min(this.getXmin(),Oa.getXmin()),Math.min(this.getYmin(),Oa.getYmin()),Math.max(this.getXmax(),Oa.getXmax()),Math.max(this.getYmax(),Oa.getYmax()));}
else{throw "NoValidEnvelopeException";}},union:function(Pa){if(Pa instanceof GridGeometry){this.bbox[0]=(Pa.bbox.getXmin()<this.bbox[0])?Pa.bbox.getXmin():this.bbox[0];this.bbox[1]=(Pa.bbox.getYmin()<this.bbox[1])?Pa.bbox.getYmin():this.bbox[1];this.bbox[2]=(Pa.bbox.getXmax()>this.bbox[2])?Pa.bbox.getXmax():this.bbox[2];this.bbox[3]=(Pa.bbox.getYmax()>this.bbox[3])?Pa.bbox.getYmax():this.bbox[3];}
else throw "NoValidGeometryException";},force2Envelope:function(Qa){if(Qa instanceof GridEnvelope){this.bbox[0]=(this.bbox[0]<Qa.bbox[0])?Qa.bbox[0]:this.bbox[0];this.bbox[1]=(this.bbox[1]<Qa.bbox[1])?Qa.bbox[1]:this.bbox[1];this.bbox[2]=(this.bbox[2]>Qa.bbox[2])?Qa.bbox[2]:this.bbox[2];this.bbox[3]=(this.bbox[3]>Qa.bbox[3])?Qa.bbox[3]:this.bbox[3];}},shift:function(dx,dy){this.bbox[0]-=dx;this.bbox[1]-=dy;this.bbox[2]-=dx;this.bbox[3]-=dy;},expand:function(l,b,r,t){this.bbox[0]-=l;this.bbox[1]-=b;this.bbox[2]+=r;this.bbox[3]+=t;},setBuffer:function(b){this.setWidth(this.getWidth()+2*b);this.setHeight(this.getHeight()+2*b);},setBufferFactor:function(a,b){this.setWidth(this.getWidth()*a+2*b);this.setHeight(this.getHeight()*a+2*b);},contains:function(Ra){if(Ra instanceof GridGeometry){return((Ra.bbox.getXmin()>=this.bbox[0]&&Ra.bbox.getXmin()<=this.bbox[2])&&(Ra.bbox.getXmax()>=this.bbox[0]&&Ra.bbox.getXmax()<=this.bbox[2])&&(Ra.bbox.getYmin()>=this.bbox[1]&&Ra.bbox.getYmin()<=this.bbox[3])&&(Ra.bbox.getYmax()>=this.bbox[1]&&Ra.bbox.getYmax()<=this.bbox[3]));}
else throw "NoValidGeometryException";},intersects:function(Sa){if(Sa instanceof GridGeometry){return((Sa.bbox.getXmin()<=this.bbox[0]&&Sa.bbox.getXmax()<=this.bbox[2])||(Sa.bbox.getXmin()>=this.bbox[0]&&Sa.bbox.getXmax()>=this.bbox[2]))&&((Sa.bbox.getYmin()<=this.bbox[1]&&Sa.bbox.getYmax()<=this.bbox[3])||(Sa.bbox.getYmin()>=this.bbox[1]&&Sa.bbox.getYmax()>=this.bbox[3]));}
else throw "NoValidGeometryException";},toArray:function(){return this.bbox.toArray();},toString:function(){return this.bbox.join("+");}};var GridGeometry=Class.create();GridGeometry.prototype={initialize:function(){this.bbox=new GridEnvelope(0,0,0,0);}};var GridPoint=Class.create();GridPoint.prototype=Object.extend(new GridGeometry(),{initialize:function(x,y,z){this.setPoint(x,y,z);},setPoint:function(x,y,z){this.x=(x==null)?0:x;this.y=(y==null)?0:y;this.z=(z==null)?0:z;this.bbox.setBox(this.x,this.y,this.x,this.y);this.bbox.setBuffer(1);},toString:function(){return "POINT("+this.x+" "+this.y+" "+this.z+")";}});var GridLine=Class.create();GridLine.prototype=Object.extend(new GridGeometry(),{initialize:function(){this.bbox.setBox(1,1,2,2);}});var GridMap=Class.create();GridMap.prototype={initialize:function(Ta,Ua){this.containerTag=$(Ta);this.mapTag=$(new Image());var Va=document.createElement("div");this.canvasTag=$(Va);this.canvasTag.id="canv";this.loadTag=$(new Image());this.loaded=false;this.observers=$A([]);Object.extend(this,Subject);this.pixDim={width:0,height:0};this.limitScale={min:undefined,max:undefined};this.curExtent=new GridEnvelope(null,null,null,null);this.fullExtent=new GridEnvelope(null,null,null,null);this.borderExtent=new GridEnvelope(null,null,null,null);if(Ua.mapext)this.setFullExtent(Ua.mapext[0],Ua.mapext[1],Ua.mapext[2]);(Ua.layers)?this.setLayers(Ua.layers):this.layers=[];this.cgi=Ua.cgi||undefined;this.mapFile=Ua.map||undefined;this.mode=Ua.mode||"map";this.args=Ua.args||"";this.parentMap=Ua.parentMap||undefined;this.lang="de";this.curState=undefined;this.states=$H({pan:new GridPanState(this),zoombox:new GridZoomBoxState(this),sel:new GridSelState(this),ref:new GridReferenceState(this),digitize:new GridDigitizeState(this),selectbox:new GridSelectBoxState(this)});try{this.digitizeCnv=new jsGraphics(this.canvasTag);this.selectBoxCnv=new jsGraphics(this.canvasTag);this.selectBoxCnv.setColor("blue");this.digitizeCnv.setColor("red");this.digitizedX=new Array();this.digitizedY=new Array();this.digitizeType=null;this.selectBoxXmin=0;this.selectBoxXmax=0;this.selectBoxYmin=0;this.selectBoxYmax=0;}
catch(e){}
this.showScalebar=false;this.zoomEffect=false;this.initCSS();this.setState("pan");debuginfo(3,"map initialised");},initCSS:function(){this.containerTag.makePositioned();this.containerTag.makeClipping();this.containerTag.oncontextmenu=function(){return false;};this.containerTag.onmousedown=function(){return false;};this.mapTag.onmousedown=function(){return false;};this.mapTag.oncontextmenu=function(){return false;};this.mapTag.galleryImg="no";this.mapTag.onselectstart=function(){return false;};this.mapTag.ondrag=function(){return false;};Position.clone(this.containerTag,this.mapTag);this.mapTag.setStyle({zIndex:"1"});this.mapTag.onload=this.mapLoaded.bind(this);this.canvasTag.style.position="absolute";this.canvasTag.setStyle({zIndex:"2",left:"0px",top:"0px",width:this.containerTag.getWidth()+"px",height:this.containerTag.getHeight()+"px"});this.containerTag.makePositioned();this.loadTag.src="img/processing.gif";this.loadTag.oncontextmenu=function(){return false;};this.loadTag.style.position="absolute";this.loadTag.setStyle({zIndex:"10",left:this.containerTag.getWidth()/2 - 100/2+"px",top:this.containerTag.getHeight()/2 - 75/2+"px"});this.loadTag.makePositioned();this.loadTag.hide();this.containerTag.appendChild(this.mapTag);this.containerTag.appendChild(this.canvasTag);this.containerTag.appendChild(this.loadTag);Position.absolutize(this.mapTag);},setZoomEffect:function(Wa){this.zoomEffect=Wa;},setScalebar:function(b){this.showScalebar=b;},getParentMap:function(){return this.parentMap;},setParentMap:function(pm){this.parentMap=pm;},setWidth:function(w){this.containerTag.setStyle({width:w+"px"});},getWidth:function(){return this.containerTag.getWidth();},setHeight:function(h){this.containerTag.setStyle({height:h+"px"});},getHeight:function(){return this.containerTag.getHeight();},setCgi:function(Xa){this.cgi=Xa;},setMapFile:function(Ya){this.mapFile=Ya;},setMode:function(m){this.mode=m;},setArgs:function(a){this.args=a;},setBgHexColor:function(Za){this.containerTag.setStyle({background:Za});},setBgRGBColor:function(r,g,b){this.containerTag.setStyle({background:'#'+$A(arguments).invoke('toColorPart').join('')});},setState:function(s){if(this.states.get(s)==null){alert("Unknown state '"+s+"'");}
else{this.curState=s;this.states.get(s).activate();}},getState:function(){return this.states.get(this.curState).getName(this.lang);},getStateByCode:function($a){return this.states.get($a);},addState:function(ab,bb){eval("this.states."+ab+" = "+bb);},setSelectFunc:function(cb){this.getStateByCode("sel").setAction(cb);},setLayers:function(db){this.layers=db.split(',').invoke('strip');},addLayer:function(eb){if(!this.layers.include(eb)){this.layers=this.layers.concat(eb).invoke('strip');}},addLayers:function(fb){fb.split(',').invoke('strip').each(function(gb,hb){this.addLayer(gb);}.bind(this));},removeLayer:function(ib){if(this.layers.include(ib))this.layers=this.layers.without(ib);},removeLayers:function(jb){jb.split(',').invoke('strip').each(function(kb,lb){this.removeLayer(kb);}.bind(this));},toggleLayer:function(mb){if(this.layers.include(mb))this.removeLayer(mb);else this.addLayers(mb);},toggleLayers:function(nb){nb.split(',').invoke('strip').each(function(ob,pb){this.toggleLayer(ob);}.bind(this));},getLayers:function(){return this.layers;},zoom:function(qb){this.curExtent.setWidth(this.curExtent.getWidth()/qb);this.curExtent.setHeight(this.curExtent.getHeight()/qb);var rb=this.curExtent.getXmin();var tb=this.curExtent.getYmin();var ub=this.curExtent.getXmax();var vb=this.curExtent.getYmax();this.setExtent(rb,tb,ub,vb);this.redraw(new Effect.Scale(this.mapTag,qb*100,{scaleFromCenter:true}));},zoomToFullExtent:function(){this.curExtent.copyEnvelope(this.fullExtent);this.redraw();},getMinScale:function(){return this.limitScale.min;},setMinScale:function(wb){this.limitScale.min=wb;},getMaxScale:function(){return this.limitScale.max;},setMaxScale:function(xb){this.limitScale.max=xb;},getScale:function(){return(this.curExtent.getWidth()/(0.0254*this.containerTag.getWidth()/81));},setScale:function(s){var c=this.getMapCentroid();var ww=s*(0.0254*this.containerTag.getWidth()/81);var hh=s*(0.0254*this.containerTag.getHeight()/81);this.curExtent.setBox(c.x-ww / 2, c.y - hh / 2,c.x+ww / 2, c.y + hh / 2);this._fixAspectRatio();},x2Real:function(x){return x*this.pixDim.width+this.curExtent.getXmin();},y2Real:function(y){return this.curExtent.getYmax()-y*this.pixDim.height;},real2X:function(x){if(this.pixDim.width==0)return -1;return parseInt((x-this.curExtent.getXmin())/this.pixDim.width);},real2Y:function(y){if(this.pixDim.height==0)return -1;return parseInt((this.curExtent.getYmax()-y)/this.pixDim.height);},setDigitizedColor:function(yb){try{this.digitizeCnv.setColor(yb);}
catch(e){}},getDigitizedType:function(){return this.digitizeType;},addPoint:function(x,y){this.digitizedX.push(x);this.digitizedY.push(y);},drawDigitized:function(){try{this.digitizeCnv.clear();this.digitizeCnv.paint();if(this.digitizedX.length>0){var zb=new Array();var Ab=new Array();for(var i=0;i<this.digitizedX.length;i++){zb.push(parseInt(this.real2X(this.digitizedX[i])));Ab.push(parseInt(this.real2Y(this.digitizedY[i])));}
if(this.digitizeType=="line")this.digitizeCnv.drawPolyline(zb,Ab);if(this.digitizeType=="polygon")this.digitizeCnv.drawPolygon(zb,Ab);if(this.digitizeType=="point"){for(var j=0;j<zb.length;j++){this.digitizeCnv.drawRect(zb[j],Ab[j],2,2);}}
this.digitizeCnv.paint();}}
catch(e){}},getDigitizedX:function(){return this.digitizedX;},getDigitizedY:function(){return this.digitizedY;},clearDigitized:function(){try{this.digitizeCnv.clear();this.digitizeCnv.paint();this.digitizedX=new Array();this.digitizedY=new Array();}
catch(e){}},setSelectBox:function(Bb,Cb,Db,Eb){this.selectBoxXmin=Bb;this.selectBoxXmax=Cb;this.selectBoxYmin=Db;this.selectBoxYmax=Eb;this.drawSelectBox();},getSelectBoxXmin:function(){return this.selectBoxXmin;},getSelectBoxXmax:function(){return this.selectBoxXmax;},getSelectBoxYmin:function(){return this.selectBoxYmin;},getSelectBoxYmax:function(){return this.selectBoxYmax;},drawSelectBox:function(){try{this.selectBoxCnv.clear();this.selectBoxCnv.paint();var Fb=this.real2X(this.selectBoxXmin);var Gb=this.real2Y(this.selectBoxYmax);var Hb=-(this.real2Y(this.selectBoxYmax)-this.real2Y(this.selectBoxYmin));var Ib=(this.real2X(this.selectBoxXmax)-this.real2X(this.selectBoxXmin));if(!(Hb<1||Ib<1)){this.selectBoxCnv.drawRect(Fb,Gb,Ib,Hb);this.selectBoxCnv.paint();}}
catch(e){}},clearSelectBox:function(){this.setSelectBox(0,0,0,0);},_fixAspectRatio:function(){var Jb=Math.abs(this.fullExtent.getWidth()/this.fullExtent.getHeight());var Kb=Math.abs(this.curExtent.getWidth()/this.curExtent.getHeight());var Lb=this.getMapCentroid();if(Kb>Jb){var Mb=Math.abs(this.curExtent.getWidth()/Jb);this.curExtent.setYmin(Lb.y-Mb/2);this.curExtent.setYmax(Lb.y+Mb/2);}
else if(Kb<Jb){var Nb=Math.abs(this.curExtent.getHeight()*Jb);this.curExtent.setXmin(Lb.x-Nb/2);this.curExtent.setXmax(Lb.x+Nb/2);}},_checkScale:function(){var s=this.getScale();if(this.limitScale.min&&(s<this.limitScale.min))this.setScale(this.limitScale.min);if(this.limitScale.max&&(s>this.limitScale.max))this.setScale(this.limitScale.max);},_checkBorder:function(){if(this.borderExtent.isValid()){this.curExtent.force2Envelope(this.borderExtent);this._fixAspectRatio();}},getMapCentroid:function(){return this.curExtent.getCenter();},setMapCentroid:function(x,y){var c=this.getMapCentroid();var dx=c.x-x;var dy=c.y-y;this.curExtent.shift(dx,dy);},outOfBounds:function(){if(this.lang=="de")return "Achtung! Ausserhalb der Kartenabgrenzung.";else if(this.lang=="en")return "New extent out of bounds!";else return "New extent out of bounds!";},getExtent:function(){return this.curExtent.bbox;},setExtent:function(Ob,Pb,Qb,Rb){var Sb=this.getBorderXmin();var Tb=this.getBorderYmin();var Ub=this.getBorderXmax();var Vb=this.getBorderYmax();var Wb=false;if(Ob<Sb){Qb=Sb+(Qb-Ob);Ob=Sb;Wb=true;}
if(Pb<Tb){Rb=Tb+(Rb-Pb);Pb=Tb;Wb=true;}
if(Qb>Ub){Ob=Ub-(Qb-Ob);Qb=Ub;Wb=true;}
if(Rb>Vb){Pb=Vb-(Rb-Pb);Rb=Vb;Wb=true;}
this.curExtent.setBox(Ob,Pb,Qb,Rb);this._checkBorder();this._fixAspectRatio();},getFullExtent:function(){return this.fullExtent.bbox;},setFullExtent:function(Xb,Yb,Zb){var $b=((this.containerTag.getHeight()/this.containerTag.getWidth())*(Zb-Xb))+Yb;this.fullExtent.setBox(Xb,Yb,Zb,$b);this._fixAspectRatio();this.curExtent.copyEnvelope(this.fullExtent);},setFullExtentRatio:function(){var ac=this.fullExtent.getXmin();var bc=this.fullExtent.getXmax();var cc=this.fullExtent.getYmin();var dc=((this.containerTag.getHeight()/this.containerTag.getWidth())*(bc-ac))+cc;this.fullExtent.setBox(ac,cc,bc,dc);this._fixAspectRatio();},getBorderExtent:function(){return this.borderExtent.bbox;},getBorderXmin:function(){return this.borderExtent.bbox[0];},getBorderYmin:function(){return this.borderExtent.bbox[1];},getBorderXmax:function(){return this.borderExtent.bbox[2];},getBorderYmax:function(){return this.borderExtent.bbox[3];},setBorderExtent:function(ec,fc,gc,hc){this.borderExtent.setBox(ec,fc,gc,hc);},recalcPixelSize:function(){this.pixDim.width=this.curExtent.getWidth()/this.containerTag.getWidth();this.pixDim.height=this.curExtent.getHeight()/this.containerTag.getHeight();},resetMapsize:function(){var ic=this.fullExtent.getXmin();var jc=this.fullExtent.getXmax();var kc=this.fullExtent.getYmin();var lc=((this.containerTag.getHeight()/this.containerTag.getWidth())*(jc-ic))+kc;this.fullExtent.setBox(ic,kc,jc,lc);this._fixAspectRatio();this.recalcPixelSize();},toQueryString:function(){var mc=this.cgi;if(mc.indexOf("?")<0){mc+="?";}
else{mc+="&";};var l="layers="+this.layers.join(' ');var nc="mapext="+this.curExtent.bbox.join('+');var s="mapsize="+this.containerTag.getWidth()+'+'+this.containerTag.getHeight();mc=mc+"&"+nc+"&"+s+"&"+l;if(this.showScalebar){mc=mc+"&scalebar=embed";}
return mc+"&"+this.args;},redraw:function(oc){this.loadTag.show();this.recalcPixelSize();this._checkScale();this._checkBorder();this.recalcPixelSize();this.loaded=false;this.mapTag.src=this.toQueryString();this.drawDigitized();this.drawSelectBox();this.effect=oc;this.notify();},mapLoaded:function(){this.loaded=true;if(this.effect){this.effect.cancel();}
Position.clone(this.containerTag,this.mapTag);this.loadTag.hide();this.canvasTag.show();},effectFinished:function(){if(!this.loaded){this.loadTag.show();}}};var GridZoomCmd=Class.create();GridZoomCmd.prototype={initialize:function(pc,qc,rc){this.mapO=pc;this.type=qc;this.effect=rc||false;this.zRatio=1.5;},getName:function(){if(this.mapO.lang=="de"&&this.type=="in")return "Vergr�ssern";else if(this.mapO.lang=="en"&&this.type=="in")return "zoom in";else if(this.mapO.lang=="de"&&this.type!="in")return "Verkleinern";else if(this.mapO.lang=="en"&&this.type!="in")return "zoom out";else return "zoom";},getInRatio:function(){return this.zRatio;},getOutRatio:function(){return 1/this.zRatio;},setRatio:function(i){this.zRatio=i;},execute:function(){if(this.type=='in'){this.mapO.zoom(this.getInRatio());}
else{this.mapO.zoom(this.getOutRatio());}}};var GridScaleCmd=Class.create();GridScaleCmd.prototype={initialize:function(sc,tc,uc){this.mapO=sc;this.scale=tc;this.scaleO=uc;},getName:function(){if(this.mapO.lang=="de")return "Ma?stab setzen 1:"+this.scale;else if(this.mapO.lang=="en")return "set scale to 1:"+this.scale;else return "set scale to 1:"+this.scale;},execute:function(vc){var wc=1;if(this.scale=="plus"){wc=this.scaleO.getScaleButton(this.scaleO.currentScale).nextScale;}
else if(this.scale=="minus"){wc=this.scaleO.getScaleButton(this.scaleO.currentScale).prevScale;}
else{wc=this.scale;}
debuginfo(1,"Scale set to "+wc);if(wc){var xc=this.mapO.getScale()/wc;this.mapO.zoom(xc,this.mapO);new Effect.Highlight(this.scaleO.getScaleButton(wc).buttonTag,{});this.scaleO.setScale(wc);}
if(vc)Event.stop(vc);}};var GridFullExtentCmd=Class.create();GridFullExtentCmd.prototype={initialize:function(yc){this.mapO=yc;},getName:function(){if(this.mapO.lang=="de")return "Gesamtansicht";else if(this.mapO.lang=="en")return "full extent";else return "full extent";},execute:function(){this.mapO.curExtent.copyEnvelope(this.mapO.fullExtent);this.mapO.redraw();}};var GridPanCmd=Class.create();GridPanCmd.prototype={initialize:function(zc){this.mapO=zc;},getName:function(){if(this.mapO.lang=="de")return "Verschieben";else if(this.mapO.lang=="en")return "pan";else return "pan";},execute:function(){this.mapO.setState('pan');}};var GridDigitizeCmd=Class.create();GridDigitizeCmd.prototype={initialize:function(Ac,Bc){this.mapO=Ac;this.mapO.digitizeType=Bc;},getName:function(){if(this.mapO.lang=="de")return "Digitalisieren";else if(this.mapO.lang=="en")return "Digitize";else return "Digitize";},execute:function(){this.mapO.setState('digitize');}};var GridZoomBoxCmd=Class.create();GridZoomBoxCmd.prototype={initialize:function(Cc){this.mapO=Cc;},getName:function(){if(this.mapO.lang=="de")return "Rechteckauswahl";else if(this.mapO.lang=="en")return "zoombox";else return "zoombox";},execute:function(){this.mapO.setState('zoombox');}};var GridSelCmd=Class.create();GridSelCmd.prototype={initialize:function(Dc,Ec){this.mapO=Dc;this.func=Ec;},getName:function(){if(this.mapO.lang=="de")return "Auswahl";else if(this.mapO.lang=="en")return "selection";else return "Selection";},execute:function(){this.mapO.setSelectFunc(this.func);this.mapO.setState('sel');}};var GridSelectBoxCmd=Class.create();GridSelectBoxCmd.prototype={initialize:function(Fc){this.mapO=Fc;},getName:function(){if(this.mapO.lang=="de")return "Rechteckauswahl";else if(this.mapO.lang=="en")return "selectbox";else return "selectbox";},execute:function(){this.mapO.setState('selectbox');}};var GridSelectBoxClearCmd=Class.create();GridSelectBoxClearCmd.prototype={initialize:function(Gc){this.mapO=Gc;},getName:function(){if(this.mapO.lang=="de")return "SelectBox löschen";else if(this.mapO.lang=="en")return "clear selectbox";else return "clear selectbox";},execute:function(){this.mapO.clearSelectBox();}};var GridDigitizedClearCmd=Class.create();GridDigitizedClearCmd.prototype={initialize:function(Hc){this.mapO=Hc;},getName:function(){if(this.mapO.lang=="de")return "Linie löschen";else if(this.mapO.lang=="en")return "clear digitized";else return "clear digitized";},execute:function(){this.mapO.clearDigitized();}};var GridBaseState=Class.create();GridBaseState.prototype={initialize:function(){this._init.apply(this,arguments);},_init:function(Ic){this.mapO=$(Ic);},_resetMapState:function(){this.mapO.containerTag.onclick=function(){return false;};this.mapO.containerTag.onmousedown=function(){return false;};this.mapO.containerTag.onmousemove=function(){return false;};this.mapO.containerTag.onmouseup=function(){return false;};this.mapO.containerTag.onmouseout=function(){return false;};},_addWheelEvent:function(){if(this.mapO){if(Prototype.Browser.IE||Prototype.Browser.Opera){this.mapO.containerTag.onmousewheel=this._mWheel.bindAsEventListener(this);}
else{this.mapO.containerTag.addEventListener("DOMMouseScroll",this._mWheel.bindAsEventListener(this),false);}}},_mWheel:function(Jc){}};var GridSelectBoxState=Class.create();GridSelectBoxState.prototype=Object.extend(new GridBaseState(),{initialize:function(Kc){this.mapO=Kc;var Lc=document.createElement('div');this.selectBTag=$(Lc);this._initCSS();this.selectPosX=$H({start:0,stop:0});this.selectPosY=$H({start:0,stop:0});},_initCSS:function(){this.selectBTag.style.visibility="hidden";this.selectBTag.setStyle({zIndex:"5",border:"2px dashed #ffffff",background:"blue",opacity:"0.5"});this.mapO.containerTag.appendChild(this.selectBTag);},getName:function(Mc){if(Mc=="de")return "SelectBox";else if(Mc=="en")return "selectbox";else return "SelectBox";},activate:function(){this._resetMapState();Position.absolutize(this.selectBTag);this.mapO.containerTag.setStyle({cursor:"crosshair"});this.mapO.containerTag.onmousedown=this._selectStart.bindAsEventListener(this);},disable:function(){},_selectStart:function(Nc){var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=Event.pointerX(Nc)-cO[0];var y=Event.pointerY(Nc)-cO[1];this.mapO.containerTag.onmousedown=function(){return false;}
this.mapO.containerTag.onmousemove=this._selectMove.bindAsEventListener(this);this.mapO.containerTag.onmouseup=this._selectStop.bindAsEventListener(this);this._selectBoxBegin(x,y);},_selectMove:function(Oc){var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=Event.pointerX(Oc)-cO[0];var y=Event.pointerY(Oc)-cO[1];this._selectBoxMotion(x,y);},_selectStop:function(Pc){this._selectBoxEnd();this.activate();},_selectBoxBegin:function(x,y){this.selectPosX.set('start',x);this.selectPosY.set('start',y);},_selectBoxMotion:function(x,y){this.selectPosX.set('stop',x);this.selectPosY.set('stop',y);this.selectBTag.style.visibility="visible";this.selectBTag.setStyle({left:this.selectPosX.values().min()+"px",top:this.selectPosY.values().min()+"px",width:this.selectPosX.values().max()-this.selectPosX.values().min()+"px",height:this.selectPosY.values().max()-this.selectPosY.values().min()+"px"});},_selectBoxEnd:function(x,y){this.selectBTag.style.visibility="hidden";if(Math.abs(this.selectPosX.get('stop')-this.selectPosX.get('start'))>3||Math.abs(this.selectPosY.get('stop')-this.selectPosY.get('start'))>3){var Qc=this.mapO.curExtent.getXmin()+this.selectPosX.values().min()*this.mapO.pixDim.width;var Rc=this.mapO.curExtent.getYmin()+(this.mapO.getHeight()-this.selectPosY.values().max())*this.mapO.pixDim.height;var Sc=this.mapO.curExtent.getXmax()-(this.mapO.getWidth()-this.selectPosX.values().max())*this.mapO.pixDim.width;var Tc=this.mapO.curExtent.getYmax()-this.selectPosY.values().min()*this.mapO.pixDim.height;this.mapO.setSelectBox(Qc,Sc,Rc,Tc);this.mapO.drawSelectBox();}}});var GridDigitizeState=Class.create();GridDigitizeState.prototype=Object.extend(new GridBaseState(),{getName:function(Uc){if(Uc=="de")return "Auswahl";else if(Uc=="en")return "select";else return "Select";},activate:function(){this._resetMapState();this.mapO.containerTag.setStyle({cursor:"crosshair"});this.mapO.containerTag.onmousedown=this._digitizeStart.bindAsEventListener(this);},disable:function(){this._resetMapState();},_digitizeStart:function(Vc){Position.absolutize(this.mapO.mapTag);var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=this.mapO.x2Real(Event.pointerX(Vc)-cO[0]);var y=this.mapO.y2Real(Event.pointerY(Vc)-cO[1]);this.mapO.addPoint(x,y);this.mapO.drawDigitized();this.mapO.containerTag.onmousedown=this._digitizeStart.bindAsEventListener(this);}});var GridPanState=Class.create();GridPanState.prototype=Object.extend(new GridBaseState(),{initialize:function(Wc){this._init(Wc);this.startPos={x:0,y:0};this.elPos={left:0,top:0};this._addWheelEvent();},getName:function(Xc){if(Xc=="de")return "Verschieben";else if(Xc=="en")return "pan";else return "Pan";},activate:function(){this._resetMapState();this.mapO.containerTag.setStyle({cursor:"move"});this.mapO.containerTag.onmousedown=this._panStart.bindAsEventListener(this);},disable:function(){this._resetMapState();},_panStart:function(Yc){this.mapO.canvasTag.hide();Position.absolutize(this.mapO.mapTag);var cO=Position.cumulativeOffset(this.mapO.containerTag);var rO=Position.realOffset(this.mapO.mapTag);this.startPos.x=Event.pointerX(Yc)-cO[0];this.startPos.y=Event.pointerY(Yc)-cO[1];this.elPos.left=0;this.elPos.top=0;this.mapO.containerTag.onmousemove=this._panMove.bindAsEventListener(this);this.mapO.containerTag.onmouseup=this._panStop.bindAsEventListener(this);this.mapO.containerTag.onclick=this._panStop.bindAsEventListener(this);this.mapO.containerTag.onmouseout=this._panStopForced.bindAsEventListener(this);},_panStopTest:function(Zc){alert("out of box");},_panMove:function($c){var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=Event.pointerX($c)-cO[0];var y=Event.pointerY($c)-cO[1];this.mapO.mapTag.setStyle({left:this.elPos.left+x-this.startPos.x+"px",top:this.elPos.top+y-this.startPos.y+"px",width:this.mapO.containerTag.getWidth()+"px",height:this.mapO.containerTag.getHeight()+"px"});},_panStop:function(ad){this.mapO.canvasTag.show();var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=Event.pointerX(ad)-cO[0];var y=Event.pointerY(ad)-cO[1];var xx=this.elPos.left+x-this.startPos.x;var yy=this.elPos.top+y-this.startPos.y;if((xx!=0)||(yy!=0)){this._doPan(xx,yy);}
this.activate();},_panStopForced:function(bd){var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=Event.pointerX(bd)-cO[0];var y=Event.pointerY(bd)-cO[1];if(x>1&&x<this.mapO.getWidth()-1&&y>1&&y<this.mapO.getHeight()-1){return};this._panStop(bd);var xx=this.elPos.left+x-this.startPos.x;var yy=this.elPos.top+y-this.startPos.y;if((xx!=0)||(yy!=0)){this._doPan(xx,yy);}
this.activate();},_doPan:function(x,y){var cd=x*this.mapO.pixDim.width;var dd=y*this.mapO.pixDim.height;var ed=this.mapO.curExtent.getXmin()-cd;var fd=this.mapO.curExtent.getYmin()+dd;var gd=this.mapO.curExtent.getXmax()-cd;var hd=this.mapO.curExtent.getYmax()+dd;this.mapO.setExtent(ed,fd,gd,hd);this.mapO.redraw();}});var GridZoomBoxState=Class.create();GridZoomBoxState.prototype=Object.extend(new GridBaseState(),{initialize:function(jd){this.mapO=jd;var kd=document.createElement('div');this.zoomBTag=$(kd);this._initCSS();this.zoomPosX=$H({start:0,stop:0});this.zoomPosY=$H({start:0,stop:0});},_initCSS:function(){this.zoomBTag.style.visibility="hidden";this.zoomBTag.setStyle({zIndex:"5",border:"2px dashed #ffffff",background:"red",opacity:"0.5"});this.mapO.containerTag.appendChild(this.zoomBTag);},getName:function(ld){if(ld=="de")return "Rechteckzoom";else if(ld=="en")return "zoombox";else return "ZoomBox";},activate:function(){this._resetMapState();Position.absolutize(this.zoomBTag);this.mapO.containerTag.setStyle({cursor:"crosshair"});this.mapO.containerTag.onclick=function(){return false;};this.mapO.containerTag.onmousedown=this._zoomStart.bindAsEventListener(this);},disable:function(){},_zoomStart:function(md){var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=Event.pointerX(md)-cO[0];var y=Event.pointerY(md)-cO[1];this.mapO.containerTag.onmousedown=function(){return false;}
this.mapO.containerTag.onmousemove=this._zoomMove.bindAsEventListener(this);this.mapO.containerTag.onmouseup=this._zoomStop.bindAsEventListener(this);this._zoomBoxBegin(x,y);},_zoomMove:function(od){var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=Event.pointerX(od)-cO[0];var y=Event.pointerY(od)-cO[1];this._zoomBoxMotion(x,y);},_zoomStop:function(pd){this._zoomBoxEnd();this.activate();},_zoomBoxBegin:function(x,y){this.zoomPosX.set('start',x);this.zoomPosY.set('start',y);},_zoomBoxMotion:function(x,y){this.zoomPosX.set('stop',x);this.zoomPosY.set('stop',y);this.zoomBTag.style.visibility="visible";this.zoomBTag.setStyle({left:this.zoomPosX.values().min()+"px",top:this.zoomPosY.values().min()+"px",width:this.zoomPosX.values().max()-this.zoomPosX.values().min()+"px",height:this.zoomPosY.values().max()-this.zoomPosY.values().min()+"px"});},_zoomBoxEnd:function(x,y){this.zoomBTag.style.visibility="hidden";if(Math.abs(this.zoomPosX.get('stop')-this.zoomPosX.get('start'))>3||Math.abs(this.zoomPosY.get('stop')-this.zoomPosY.get('start'))>3){var qd=this.mapO.curExtent.getXmin()+this.zoomPosX.values().min()*this.mapO.pixDim.width;var rd=this.mapO.curExtent.getYmin()+(this.mapO.getHeight()-this.zoomPosY.values().max())*this.mapO.pixDim.height;var sd=this.mapO.curExtent.getXmax()-(this.mapO.getWidth()-this.zoomPosX.values().max())*this.mapO.pixDim.width;var td=this.mapO.curExtent.getYmax()-this.zoomPosY.values().min()*this.mapO.pixDim.height;this.zoomPosX.set('start',0);this.zoomPosX.set('stop',0);this.zoomPosY.set('start',0);this.zoomPosY.set('stop',0);this.mapO.setExtent(qd,rd,sd,td);this.mapO.redraw();}}});var GridReferenceState=Class.create();GridReferenceState.prototype=Object.extend(new GridBaseState(),{initialize:function(ud){this._init(ud);Object.extend(this,Observer);this.startPos={x:0,y:0};this.elPos={left:0,top:0};var rt=document.createElement("div");this.refTag=$(rt);this._initCSS();},_initCSS:function(){this.refTag.style.position="absolute";this.refTag.setStyle({cursor:"move",left:"0px",top:"0px",width:"0px",height:"0px",zIndex:"51",border:"2px solid #000000",background:"#cccccc",opacity:"0.7"});this.refTag.hide();this.refTag.onmousedown=this._shiftStart.bindAsEventListener(this);this.mapO.containerTag.appendChild(this.refTag);},getName:function(vd){if(vd=="de")return "?berblick";else if(vd=="en")return "reference";else return "Reference";},activate:function(){this._resetMapState();this.refTag.show();if(this.mapO.parentMap){this.mapO.parentMap.register(this);}
this.mapO.containerTag.setStyle({cursor:"auto"});},disable:function(){this._resetMapState();},_shiftStart:function(wd){var cO=Position.cumulativeOffset(this.mapO.containerTag);this.startPos.x=Event.pointerX(wd)-cO[0];this.startPos.y=Event.pointerY(wd)-cO[1];this.elPos.left=parseInt(this.refTag.getStyle("left"))||0;this.elPos.top=parseInt(this.refTag.getStyle("top"))||0;this.refTag.onmousemove=this._shiftMove.bindAsEventListener(this);this.refTag.onmouseup=this._shiftStop.bindAsEventListener(this);},_shiftMove:function(xd){var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=Event.pointerX(xd)-cO[0];var y=Event.pointerY(xd)-cO[1];this.refTag.setStyle({left:this.elPos.left+x-this.startPos.x+"px",top:this.elPos.top+y-this.startPos.y+"px"});},_shiftStop:function(yd){var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=Event.pointerX(yd)-cO[0];var y=Event.pointerY(yd)-cO[1];var xx=this.elPos.left+x-this.startPos.x;var yy=this.elPos.top+y-this.startPos.y;this.refTag.setStyle({left:xx+"px",top:yy+"px"});if((xx!=0)||(yy!=0)){this._doShift(xx,yy);}
this.refTag.onmousemove=function(){return false;};this.refTag.onmouseup=function(){return false;};},_doShift:function(x,y){var zd=this.mapO.x2Real(x);var Ad=this.mapO.y2Real(y);var Bd=zd+this.mapO.parentMap.curExtent.getWidth();var Cd=Ad-this.mapO.parentMap.curExtent.getHeight();this.mapO.parentMap.setExtent(zd,Cd,Bd,Ad);this.mapO.parentMap.redraw();},_update:function(){this._setPos();},_setPos:function(){var Dd=this.mapO.real2X(this.mapO.parentMap.curExtent.getXmin());var Ed=this.mapO.real2Y(this.mapO.parentMap.curExtent.getYmin());var Fd=this.mapO.real2X(this.mapO.parentMap.curExtent.getXmax());var Gd=this.mapO.real2Y(this.mapO.parentMap.curExtent.getYmax());this.refTag.setStyle({left:Dd+"px",top:Gd+"px",width:Math.abs(Fd-Dd)+"px",height:Math.abs(Gd-Ed)+"px"});}});var GridSelState=Class.create();GridSelState.prototype=Object.extend(new GridBaseState(),{initialize:function(Hd){this._init(Hd);this._addWheelEvent();this.action=null;},getName:function(Id){if(Id=="de")return "Auswahl";else if(Id=="en")return "select";else return "Select";},activate:function(){this._resetMapState();this.mapO.containerTag.setStyle({cursor:"help"});this.mapO.containerTag.onmousedown=this._selStart.bindAsEventListener(this);},disable:function(){this._resetMapState();},setAction:function(Jd){this.action=Jd;},_selStart:function(Kd){Position.absolutize(this.mapO.mapTag);var cO=Position.cumulativeOffset(this.mapO.containerTag);var x=this.mapO.x2Real(Event.pointerX(Kd)-cO[0]);var y=this.mapO.y2Real(Event.pointerY(Kd)-cO[1]);this.mapO.mapselect=x+" "+y;if(this.action!=null){this.action();}}});var GridButton=Class.create();GridButton.prototype={initialize:function(Ld,Md,Nd,Od){this.imageTag=$(new Image());this.imageTag.src=Md;this.cmd=Ld;this.state=Nd||false;this.title=Od;this._initCSS();},_initCSS:function(){this.imageTag.title=this.title||this.cmd.getName();this.imageTag.setStyle({cursor:"pointer",margin:"5px",background:this.tbO.tbTag.getStyle("background")});if(this.tbO.align=="horizontal"){this.imageTag.setStyle({float:"left"});}
this.imageTag.onclick=this._click.bindAsEventListener(this);this.imageTag.onmouseover=this.showInfo.bindAsEventListener(this);this.imageTag.onmouseout=this.hideInfo.bindAsEventListener(this);this.tbO.tbTag.appendChild(this.imageTag);},showInfo:function(Pd){if(this.title){overlib(this.title,FGCOLOR,'#FFFF80',LEFT);}
Event.stop(Pd);},hideInfo:function(Qd){try{nd();}
catch(e){}
Event.stop(Qd);},_click:function(Rd){this.cmd.execute();new Effect.Highlight(this.imageTag,{});Event.stop(Rd);if(this.state==true){this.tbO.actions.each(function(Sd){Sd._clearState();});this._setState();}},_setState:function(){this.imageTag.setStyle({background:"#FFFFFF",border:"1px solid black"});},_clearState:function(){this.imageTag.setStyle({background:"",border:"0px none"});}};var GridToolbarButton=Class.create();GridToolbarButton.prototype={initialize:function(Td,Ud,Vd,Wd,Xd){this.tbO=$(Td);this.imageTag=$(new Image());this.imageTag.src=Vd;this.cmd=Ud;this.state=Wd||false;this.title=Xd;this.isOn=false;this._initCSS();if(this.cmd instanceof GridPanCmd){this._setState();this.isOn=true;}},_initCSS:function(){this.imageTag.title=this.title||this.cmd.getName();this.imageTag.setStyle({cursor:"pointer",margin:"5px",background:this.tbO.tbTag.getStyle("background")});if(this.tbO.align=="horizontal"){this.imageTag.setStyle({float:"left"});}
this.imageTag.onclick=this._click.bindAsEventListener(this);this.imageTag.onmouseover=this.showInfo.bindAsEventListener(this);this.imageTag.onmouseout=this.hideInfo.bindAsEventListener(this);this.tbO.tbTag.appendChild(this.imageTag);},showInfo:function(Yd){if(this.title){overlib(this.title,FGCOLOR,'#FFFF80',LEFT);}
Event.stop(Yd);},hideInfo:function(Zd){try{nd();}
catch(e){}
Event.stop(Zd);},_click:function($d){this.cmd.execute();new Effect.Highlight(this.imageTag,{});Event.stop($d);if(this.state==true){if(this.tbO.isSingleState()){this.tbO.actions.each(function(ae){ae._clearState();});this._setState();}
else{if(this.isOn){this.isOn=false;this._clearState();}
else{this.isOn=true;this._setState();}}}},_setState:function(){this.imageTag.setStyle({background:"#FFFFFF",border:"1px solid black"});},_clearState:function(){this.imageTag.setStyle({background:"",border:"0px none"});}};var GridScaleSetter=Class.create();GridScaleSetter.prototype={initialize:function(be,ce){this.tbO=$(be);this.mapO=ce;this.scales=new Hash();this.currentScale=undefined;this.container=$(document.createElement("div"));this.container.setStyle({textAlign:"center"});Object.extend(this,Observer);this.mapO.register(this);this._initCSS();},_initCSS:function(){this.tbO.tbTag.appendChild(this.container);},setStyle:function(de){this.container.setStyle(de);},addScale:function(ee){var fe={iconon:ee.iconon,iconoff:ee.iconoff,scale:ee.scale,prevScale:this.currentScale};this.currentScale=fe.scale;if(fe.prevScale)this.getScaleButton(fe.prevScale).nextScale=fe.scale;fe.cmd=new GridScaleCmd(this.mapO,fe.scale,this);var ge=$(document.createElement("div"));var he=$(new Image());he.src=fe.iconoff;ge.title=ee.title||fe.cmd.getName();ge.setStyle({cursor:"pointer",margin:"1px",opacity:1.0});if(this.tbO.align=="horizontal"){ge.setStyle({float:"left"});}
ge.onclick=fe.cmd.execute.bindAsEventListener(fe.cmd);if(ee.title){ge.onmouseover=this.showInfo.bindAsEventListener(this);ge.onmouseout=this.hideInfo.bindAsEventListener(this);}
ge.appendChild(he);fe.buttonTag=ge;fe.imageTag=he;this.container.appendChild(ge);this.scales.set("scale"+fe.scale,fe)},addScalePlus:function(ie){var je={icon:ie.icon};je.cmd=new GridScaleCmd(this.mapO,"plus",this);var ke=$(document.createElement("div"));var le=$(new Image());le.src=je.icon;ke.title=ie.title||je.cmd.getName();ke.setStyle({cursor:"pointer",margin:"1px 1px 20px 1px"});if(this.tbO.align=="horizontal"){ke.setStyle({float:"left"});}
ke.onclick=je.cmd.execute.bindAsEventListener(je.cmd);if(ie.title){ke.onmouseover=this.showInfo.bindAsEventListener(this);ke.onmouseout=this.hideInfo.bindAsEventListener(this);}
ke.appendChild(le);je.buttonTag=ke;je.imageTag=le;this.container.appendChild(ke);},addScaleMinus:function(me){var ne={icon:me.icon};ne.cmd=new GridScaleCmd(this.mapO,"minus",this);var oe=$(document.createElement("div"));var pe=$(new Image());pe.src=ne.icon;oe.title=me.title||ne.cmd.getName();oe.setStyle({cursor:"pointer",margin:"20px 1px 1px 1px"});if(this.tbO.tbTag.getStyle("background")){oe.setStyle({background:this.tbO.tbTag.getStyle("background")});}
if(this.tbO.align=="horizontal"){oe.setStyle({float:"left"});}
oe.onclick=ne.cmd.execute.bindAsEventListener(ne.cmd);if(me.title){oe.onmouseover=this.showInfo.bindAsEventListener(this);oe.onmouseout=this.hideInfo.bindAsEventListener(this);}
oe.appendChild(pe);ne.buttonTag=oe;ne.imageTag=pe;this.container.appendChild(oe);},showInfo:function(qe){Event.stop(qe);},hideInfo:function(re){try{nd();}
catch(e){}
Event.stop(re);},getScaleButton:function(se){return this.scales.get("scale"+se);},setScale:function(te){this.currentScale=te;this.scales.each(function(ue){if(ue.key=="scale"+te){ue.value.imageTag.src=ue.value.iconon;}
else{ue.value.imageTag.src=ue.value.iconoff;}});},_clearState:function(){},_update:function(){var ve=this.mapO.getScale();var we=0;var xe=0;var ye=0;var ze=0;this.scales.values().each(function(k){we=k.scale-ve;if(we<0)we=-we;xe=we+1;ye=we+1;if(k.nextScale)xe=k.nextScale-k.scale;if(xe<0)xe=-xe;if(k.prevScale)ye=k.prevScale-k.scale;if(ye<0)ye=-ye;if(we<=xe&&we<=ye){this.setScale(k.scale);ze=k.scale;}}.bind(this));debuginfo(2,"ScaleSetter updated, mapscale="+ve+", setterscale="+ze);}};var GridToolbarSeparator=Class.create();GridToolbarSeparator.prototype={initialize:function(Ae){this.tbO=$(Ae);var Be=document.createElement("div");this.sepTag=$(Be);this.tbO.tbTag.appendChild(this.sepTag);this._initCSS();},_initCSS:function(){if(this.tbO.align=="horizontal"){this.sepTag.setStyle({float:"left",width:"0",height:"30px",marginTop:"4px",marginLeft:"8px",marginRight:"8px",marginBottom:"0",border:"1px solid black"});}
else if(this.tbO.align=="vertical"){this.sepTag.setStyle({float:"none",width:"30px",height:"0px",marginTop:"8px",marginBottom:"8px",marginLeft:"4px",marginRight:"0",border:"1px solid black"});}}};var GridToolbar=Class.create();GridToolbar.prototype={initialize:function(Ce,De,Ee){this.tbTag=$(Ce);this.align=De;this.drag=Ee||false;this.actions=$A([]);this.separators=$A([]);this.highlightColor="#000000";this.singleState=true;this._initCSS();},_initCSS:function(){if(this.drag){new Draggable(this.tbTag,{zIndex:"50"});}
this.tbTag.setStyle({padding:"0px"});},addButton:function(Fe,Ge,He,Ie){this.actions.push(new GridToolbarButton(this,Fe,Ge,He,Ie));},addSeparator:function(){this.separators.push(new GridToolbarSeparator(this));},setSingleState:function(Je){this.singleState=Je;},isSingleState:function(){return this.singleState;},setAlign:function(a){this.align=a;if(a=="horizontal"){this.actions.each(function(Ke){Ke.buttonTag.setStyle({float:"left"});});}
else if(a=="vertical"){this.actions.each(function(Le){Le.buttonTag.setStyle({float:"none"});});}
this.separators.invoke('_initCSS');},setBorder:function(Me,Ne){switch(Ne){case "left":this.tbTag.setStyle({borderLeft:Me});break;case "right":this.tbTag.setStyle({borderRight:Me});break;case "top":this.tbTag.setStyle({borderTop:Me});break;case "bottom":this.tbTag.setStyle({borderBottom:Me});break;default:this.tbTag.setStyle({border:Me});break;}},setBgHexColor:function(Oe){this.tbTag.setStyle({background:Oe});},setBgRGBColor:function(r,g,b){this.tbTag.setStyle({background:'#'+$A(arguments).invoke('toColorPart').join('')});},setHighlightHexColor:function(Pe){this.highlightColor=Pe;},setHighlightRGBColor:function(r,g,b){this.highlightColor='#'+$A(arguments).invoke('toColorPart').join('');},getHighlightColor:function(){return this.highlightColor;},_rotate:function(Qe){Event.stop(Qe);this.tbTag.setStyle({width:this.tbTag.getHeight()+"px",height:this.tbTag.getWidth()+"px"});var a=(this.align=="vertical")?"horizontal":"vertical";this.setAlign(a);}};GridOverlayInfobox=Class.create();GridOverlayInfobox.prototype={initialize:function(Re){this.osO=Re;this.width=Re.styleO.boxwidth||200;this.height=Re.styleO.boxheight||200;this.bgcolorBox="#DDDD66";this.infoBox=$(document.createElement("div"));new Draggable(this.infoBox,{});this.infoBoxShadow1=$(document.createElement("div"));this.infoBoxShadow2=$(document.createElement("div"));this.titleTag=$(document.createElement("div"));this.closeTag=$(new Image());this.contentTag=$(document.createElement("div"));this._initCSS();},_initCSS:function(){this.infoBox.setStyle({position:"absolute",cursor:"auto",zIndex:"500",left:"50px",top:"50px",width:this.width+"px",height:this.height+"px",lineHeight:"1.3em",fontSize:"0.8em",background:this.bgcolorBox,fontFamily:"Arial",border:"1px solid #000000"});this.infoBox.makePositioned();this.infoBox.hide();this.infoBoxShadow1.setStyle({position:"absolute",cursor:"auto",zIndex:"500",left:this.width+"px",top:"5px",width:"5px",height:this.height+"px",background:"#666666"});this.infoBoxShadow1.makePositioned();this.infoBoxShadow2.setStyle({position:"absolute",cursor:"auto",zIndex:"500",left:"5px",top:this.height+"px",width:this.width+"px",height:"5px",background:"#666666"});this.infoBoxShadow2.makePositioned();this.titleTag.setStyle({position:"absolute",margin:"0px",width:(this.width-3)+"px",height:"15px",left:"0px",top:"0px",paddingTop:"3px",paddingLeft:"3px",fontWeight:"bold",borderBottom:"1px solid #000000"});this.titleTag.makePositioned();this.closeTag.src="img/icons/close.png",this.closeTag.setStyle({position:"absolute",cursor:"pointer",zIndex:"501",width:"15px",height:"15px",left:parseInt(this.infoBox.getStyle("width"))-18+"px",top:"1px"});this.closeTag.makePositioned();this.closeTag.onclick=function(Se){Event.stop(Se);this.infoBox.hide();}.bindAsEventListener(this);this.contentTag.setStyle({position:"absolute",backgroundColor:"transparent",margin:"5px",width:(this.width-10)+"px",height:(this.height-23)+"px",left:"0px",top:"20px"});this.contentTag.makePositioned();this.infoBox.appendChild(this.titleTag);this.infoBox.appendChild(this.closeTag);this.infoBox.appendChild(this.contentTag);this.infoBox.appendChild(this.infoBoxShadow1);this.infoBox.appendChild(this.infoBoxShadow2);this.osO.mapO.containerTag.appendChild(this.infoBox);},show:function(Te){this._setPos(Te.get('x'),Te.get('y'));this.contentTag.innerHTML="loading ...";this.infoBox.show();new Ajax.Request(this.osO.url+"?service="+this.osO.serviceid+"&item="+Te.get('id'),{method:"get",onComplete:function(Ue){var Ve=$A(Ue.responseXML.getElementsByTagName("item"));if(Ve.length>0){var We=$A(Ve[0].attributes);var Xe=new Hash();for(var jj=0,jjl=We.length;jj<jjl;jj=jj+1){var Ye=We[jj];Xe.set(Ye.nodeName,Ye.nodeValue);}
this.titleTag.innerHTML=Xe.get('title')||'No title';this.width=Xe.get('width')||this.width;this.height=Xe.get('height')||this.height;this.contentTag.innerHTML=Ve[0].childNodes[0].data;this.resize();}
else{this.contentTag.innerHTML="no information available";}}.bind(this)});},hide:function(){this.infoBox.hide();},resize:function(){this.infoBox.setStyle({width:this.width+"px",height:this.height+"px"});this.infoBoxShadow1.setStyle({left:this.width+"px",height:this.height+"px"});this.infoBoxShadow2.setStyle({top:this.height+"px",width:this.width+"px"});this.titleTag.setStyle({width:(this.width-3)+"px"});this.closeTag.setStyle({left:(this.width-18)+"px"});},setWidth:function(w){this.width=w;this.resize();},setHeight:function(h){this.height=h;this.resize();},setBgRGBColor:function(r,g,b){this.infoBox.setStyle({background:'#'+$A(arguments).invoke('toColorPart').join('')});},setBgHexColor:function(Ze){this.infoBox.setStyle({background:Ze});},setContentRGBColor:function(r,g,b){var $e='#'+$A(arguments).invoke('toColorPart').join('');this.contentTag.setStyle({background:$e});this.infoBox.setStyle({borderTop:"4px solid "+$e,borderRight:"4px solid "+$e});},setContentHexColor:function(af){this.contentTag.setStyle({background:af});this.infoBox.setStyle({borderTop:"4px solid "+af,borderRight:"4px solid "+af});},setBoxSize:function(w,h){this.infoBox.setStyle({width:w+"px",height:h+"px"});this.closeTag.setStyle({left:parseInt(this.infoBox.getStyle("width"))-18+"px"});},_setPos:function(x,y){var l=this.osO.mapO.real2X(x);var t=this.osO.mapO.real2Y(y);var w=parseInt(this.infoBox.getStyle("width"));var h=parseInt(this.infoBox.getStyle("height"));var bf=0;var cf=0;var df="_";(this.osO.mapO.getWidth()-l)<w?df+="l":df+="r";(t<h)?df+="u":df+="o";switch(df){case "_lo":bf=l-w+"px";cf=t-h-15+"px";break;case "_lu":bf=l-w+"px";cf=t+24-35+"px";break;case "_ro":bf=l+15+"px";cf=t-h-15+"px";break;case "_ru":bf=l+15+"px";cf=t+24-35+"px";break;default:bf=l-w+"px";cf=t-h+"px";break;}
this.infoBox.setStyle({left:bf,top:cf});}};GridOverlayPopup=Class.create();GridOverlayPopup.prototype={initialize:function(ef,ff,gf){this.urlbase=ef;this.width=ff||800;this.heigt=gf||550;this.toolbar=true;this.location=true;this.status=true;this.menubar=true;this.scrollbars=true;this.resizable=true;},_initCSS:function(){},show:function(hf){var jf=hf.get("width")||this.width;var kf=hf.get("height")||this.height;var lf="width="+jf+",height="+kf;if(this.scrollbars)lf+=",scrollbars=yes";if(this.toolbar)lf+=",toolbar=yes";if(this.location)lf+=",location=yes";if(this.status)lf+=",status=yes";if(this.menubar)lf+=",menubar=yes";if(this.resizable)lf+=",resizable=yes";var mf=hf.get('url');if(this.urlbase)mf=this.urlbase+mf;var w=window.open(mf,"",lf);w.focus();},hide:function(){}};GridOverlayItem=Class.create();GridOverlayItem.prototype={initialize:function(nf,of,pf){this.osO=nf;this.iconO=pf||{};this.contentO=$H(of);this.id=this.contentO.get("id");debuginfo(3,"  title -> "+this.contentO.get('title'));debuginfo(3,"  x/y -> "+this.contentO.get('x')+"/"+this.contentO.get('y'));debuginfo(3,"  icon  -> "+this.contentO.get('icon'));if(this.osO.box.isValid()){this.osO.box.union(new GridPoint(parseFloat(this.contentO.get('x')),parseFloat(this.contentO.get('y'))));}
else{try{this.osO.box.setBox(parseFloat(this.contentO.get('x'))-1,parseFloat(this.contentO.get('y'))-1,parseFloat(this.contentO.get('x'))+1,parseFloat(this.contentO.get('y'))+1);}
catch(e){alert(e);}}
this._initCSS();},_initCSS:function(){if(this.contentO.get('icon')||this.iconO.icon){var qf=(this.iconO.iconBase?this.iconO.iconBase:"");var rf=qf+(this.contentO.get('icon')||this.iconO.icon);this.iconTag=$(new Image());this.iconTag.id=this.osO.serviceid;this.iconTag.src=rf;var sf=this.contentO.get('offsetx')||-this.iconTag.width/2;var tf=this.contentO.get('offsety')||-this.iconTag.width/2;if(this.iconO.iconOffset){sf=this.iconO.iconOffset.x;tf=this.iconO.iconOffset.y;}
var uf=this.osO.mapO.real2X(this.contentO.get('x'))+parseInt(sf);var vf=this.osO.mapO.real2Y(this.contentO.get('y'))+parseInt(tf);this.iconTag.style.position="absolute";this.iconTag.title=this.contentO.get('title');this.iconTag.onmouseup=function(){return false;};this.iconTag.onmousemove=function(){return false;};this.iconTag.onmousedown=this.show.bindAsEventListener(this);var wf="400";if(this.contentO.get('zindex'))wf=this.contentO.get('zindex');this.iconTag.setStyle({cursor:"pointer",zIndex:wf,left:uf+"px",top:vf+"px"});if(this.osO.hasMaplabel()&&this.contentO.get('maplabel')){this.labelTag=$(document.createElement("div"));this.labelTag.id=this.osO.serviceid;this.labelTag.innerHTML=this.contentO.get('maplabel');this.labelTag.setStyle({color:"#000000",fontSize:"9px",padding:"1px",background:"#FFFFFF",opacity:"0.8",position:"absolute",zIndex:wf,left:uf+"px",top:(vf-12)+"px"});this.osO.mapO.canvasTag.appendChild(this.labelTag);}
this.osO.mapO.canvasTag.appendChild(this.iconTag);}
else{var im=document.createElement("div");this.imTag=$(im);this.imTag.onmouseup=function(){return false;};this.imTag.onmousemove=function(){return false;};this.imTag.onmousedown=this.show.bindAsEventListener(this);this.imTag.style.position="absolute";this.imTag.title=this.contentO.get('title');this.imTag.setStyle({cursor:"pointer",zIndex:"25",left:this.osO.mapO.real2X(this.contentO.get('x'))+this.iconO.iconOffset.x+"px",top:this.osO.mapO.real2Y(this.contentO.get('y'))+this.iconO.iconOffset.y+"px",width:this.iconO.iconDim.width+"px",height:this.iconO.iconDim.height+"px"});this.osO.mapO.canvasTag.appendChild(this.imTag);}},showIcon:function(){var xf=this.contentO.get('offsetx')||-this.iconTag.width/2;var yf=this.contentO.get('offsety')||-this.iconTag.width/2;var zf=this.osO.mapO.real2X(this.contentO.get('x'))+parseInt(xf);var Af=this.osO.mapO.real2Y(this.contentO.get('y'))+parseInt(yf);this.iconTag.setStyle({left:zf+"px",top:Af+"px"});},show:function(Bf){Event.stop(Bf);new Effect.Pulsate(this.iconTag);var Cf=this.iconO.boxwidth;var Df=this.iconO.boxheight;if(this.contentO.get('url')){var Ef=new GridOverlayPopup(this.osO.styleO.urlbase,Cf,Df);Ef.show(this.contentO);}
else{this.osO.showItem(this.contentO);}},remove:function(){this.iconTag.remove();if(this.labelTag)this.labelTag.remove();},getContent:function(){return this.contentO;}};var GridOverlayService=Class.create();GridOverlayService.prototype={initialize:function(Ff,Gf,Hf,If,Jf){this.serviceid=Ff||"no_id";this.url=Hf;this.params=$H(If);this.mapO=Gf;this.styleO=Jf;this.zoomBuffer=Jf.zoomBuffer||{factor:1.5,buffer:500};this.scaleLimits=$H({min:0,max:1000000000000});this.box=new GridEnvelope(null,null,null,null);this.overlays=$A([]);this.itemInfo=null;this.visible=true;this.maplabel=Jf.maplabel||false;Object.extend(this,Observer);this.mapO.register(this);this.action=undefined;this.noItemMessage="No items found";this._initCSS();},_initCSS:function(){if(Object.keys(this.styleO).indexOf("selIcon")>-1){var h=new Image();this.highlightTag=$(h);this.highlightTag.src=this.styleO.selIcon;this.highlightTag.onmouseup=function(){return false;};this.highlightTag.onmousemove=function(){return false;};this.highlightTag.onmousedown=function(){return false;};this.highlightTag.style.position="absolute";this.highlightTag.setStyle({zIndex:"24",left:"0px",top:"0px",width:this.styleO.selIconDim.width+"px",height:this.styleO.selIconDim.height+"px"});this.highlightTag.hide();this.mapO.canvasTag.appendChild(this.highlightTag);}},setNoItemMessage:function(s){this.noItemMessage=s;},setParam:function(k,y){this.params.set(k,y);},setParams:function(Kf){this.params.update(Kf);},clearParams:function(){this.params=new Hash();},setStyle:function(Lf){this.styleO=$H(this.styleO).merge(Lf);},setZoomBuffer:function(Mf){this.zoomBuffer=Mf;},getMinScale:function(){return this.scaleLimits.get('min');},getMaxScale:function(){return this.scaleLimits.get('max');},setMinScale:function(Nf){this.scaleLimits.set('min',Nf);},setMaxScale:function(Of){this.scaleLimits.set('max',Of);},setScaleRange:function(Pf,Qf){this.setMinScale(Pf);this.setMaxScale(Qf);},setVisible:function(Rf){this.visible=Rf;if(!Rf)this._clear();},isVisible:function(){if(this.visible)return true;return false;},show:function(Sf,Tf){this.setVisible(true);this.execute(Sf,Tf);},hide:function(Uf){this.setVisible(false);this._clear();},hasMaplabel:function(){if(this.maplabel)return true;return false;},size:function(){return this.overlays.size();},addItem:function(Vf,Wf){this.overlays.push(new GridOverlayItem(this,Vf,{icon:Wf.icon,iconDim:Wf.iconDim,iconOffset:Wf.iconOffset,iconBase:Wf.iconBase}));},ping:function(){alert("HALLO");},toQueryString:function(){if(this.url==null)return "";if(this.url.indexOf("?")>-1){return this.url+"&"+this.params.toQueryString();}
return this.url+"?"+this.params.toQueryString();},execute:function(Xf,Yf){if(this.visible&&this._checkScale()){if(!Xf){this.setParam('xmin',this.mapO.curExtent.getXmin());this.setParam('xmax',this.mapO.curExtent.getXmax());this.setParam('ymin',this.mapO.curExtent.getYmin());this.setParam('ymax',this.mapO.curExtent.getYmax());this.setParam('scale',this.mapO.getScale());}
debuginfo(2,this.toQueryString());debuginfo(2,"iconBase = "+this.styleO.iconBase);if(this.url!=null){this._clear();new Ajax.Request(this.url,{method:"post",requestHeaders:["Pragma","no-cache","Cache-Control","must-revalidate","If-Modified-Since",document.lastModified],parameters:this.params.toQueryString(),onComplete:function(Zf){debuginfo(3,Zf.responseXML);var $f=$A(Zf.responseXML.getElementsByTagName("item"));debuginfo(2,"overlay size = "+$f.length);for(var ii=0,iil=$f.length;ii<iil;++ii){var ag=new Hash();var bg=$A($f[ii].attributes);for(var jj=0,jjl=bg.length;jj<jjl;jj=jj+1){var cg=bg[jj];ag.set(cg.nodeName,cg.nodeValue);}
ag.set('title',$f[ii].childNodes[0].data);this.overlays.push(new GridOverlayItem(this,ag,{icon:this.styleO.icon,iconDim:this.styleO.iconDim,iconOffset:this.styleO.iconOffset,iconBase:this.styleO.iconBase,boxwidth:this.styleO.boxwidth,boxheight:this.styleO.boxheight}));}
if(Xf){if(this.overlays.size()>0){this.mapO.curExtent.copyEnvelope(this.box);this.mapO.curExtent.setBufferFactor(this.zoomBuffer.factor,this.zoomBuffer.buffer);this.mapO._fixAspectRatio();}
else{if(this.noItemMessage!=""){alert(this.noItemMessage);}}
this.mapO.redraw();debuginfo(2,"zoomto done -> "+this.mapO.curExtent.toString());}
else if(Yf){if(this.overlays.size()>0){this.mapO.curExtent.unionEnvelope(this.box);this.mapO.curExtent.setBufferFactor(this.zoomBuffer.factor,this.zoomBuffer.buffer);this.mapO._fixAspectRatio();}
this.mapO.redraw();}}.bind(this)});}
else{for(var ii=0,iil=this.overlays.length;ii<iil;++ii){this.overlays[ii].showIcon();}}}
else{this._clear();}},showItem:function(dg){if(this.itemInfo==null){this.itemInfo=new GridOverlayInfobox(this);}
if(this.styleO.showtype=="yahoo"){debuginfo(1,"display overlay item details for ID="+$H(dg).get("id"));showDialog(this.styleO.showtypespec,$H(dg).get("id"));}
else if(this.styleO.showtype=="none"){return;}
else{this.itemInfo.show(dg);}},_checkScale:function(){var cS=this.mapO.getScale();if(cS>=this.getMinScale()&&cS<=this.getMaxScale())return true;else return false;},_clear:function(){this.box=new GridEnvelope(null,null,null,null);if(this.action)this.action.hide();if(this.overlays){this.overlays.each(function(eg){eg.remove();});this.overlays.clear();}},_update:function(){this.execute(false);},setBgHexColor:function(fg){if(this.action instanceof GridOverlayInfobox){this.action.setBgHexColor(fg);}},setBgRGBColor:function(r,g,b){if(this.action instanceof GridOverlayInfobox){this.action.setBgRGBColor(r,g,b);}},setContentRGBColor:function(r,g,b){if(this.action instanceof GridOverlayInfobox){this.action.setContentRGBColor(r,g,b);}},setContentHexColor:function(gg){if(this.action instanceof GridOverlayInfobox){this.action.setContentHexColor(gg);}},setBoxSize:function(w,h){if(this.action instanceof GridOverlayInfobox){this.action.setBoxSize(w,h);}}};