function AJAXMAP(l,dp,eb,bC){this.l=l;this.bU=$(l);this.aT=null;this.ei=[];this.am=256;this.P=0;this.I=0;this.aN=265960;this.aM=6647720;this.K=265960;this.M=6647720;this.m={'bottom':0,'left':0,'top':0,'right':0};this.cb=0;this.bY=0;this.cY=eb;this.n=4;this.dp=dp;this.aQ=5;this.aR=8;this.ba=1;this.aJ=0;this.at=null;this.cq=false;this.o={'x':0,'y':0};this.f={'x':0,'y':0};this.V=null;this.bB=null;this.cM=0;this.ab=null;this.O=0;this.aD={'x':0,'y':0};this.dO=32633;this.aC='EPSG:32633';this.aU=false;this.aL=null;this.bR=null;this.T=null;this.B=null;this.bf=false;this.v=[];this.aA=null;this.bC=bC?bC:'test';this.aH={};this.aH['blank']=new Image();this.aH['loading']=this.aH['blank'];this.bc=[];this.as=[];this.ak=[];this.cn=null;this.eA=null;this.trackCoords=null;this.aY=true;this.aW=false;this.dk=0;this.dj=0;this.ah=true;this.Q=null;this.ez={'x':0,'y':0};this.cx=true;this.bZ=false;this.H=[];this.zoomCounter=0;this.zoomTimerId=null;this.cK='default';this.cS=false;};AJAXMAP.ZOOMLEVELS=[56,128,256,512,1024,2048,5120,10240,20480,40960,81920,131072,262144,524288,1000000];AJAXMAP.prototype={init:function(J,cp,dB){if(J)J=this.aa(J);if(cp){this.n=cp;}if(dB){this.aJ=dB;}this.O=AJAXMAP.ZOOMLEVELS[this.n]/256;if(J){var cN=new Coordinate(J.x,J.y,J.srs);var ao=this.ao(J);this.aN=ao.x;this.aM=ao.y;this.K=ao.x;this.M=ao.y;}this.db();tileLayer=new Layer({'type':'webatlastile','visible':true,'name':'Tile Webatlas'});this.addLayer(tileLayer);Event.observe(this.l+'mouselayer','mousemove',this.cA.bindAsEventListener(this));Event.observe(this.l+'mouselayer','click',this.aX.bindAsEventListener(this));Event.observe(this.l+'mouselayer','mousedown',this.bi.bindAsEventListener(this));Event.observe(this.l+'mouselayer','mouseup',this.bz.bindAsEventListener(this));Event.observe(this.l+'mouselayer','mouseout',this.bt.bindAsEventListener(this));Event.observe(this.l+'mouselayer','mouseover',this.bA.bindAsEventListener(this));Event.observe(this.l+'mouselayer','dblclick',this.bT.bindAsEventListener(this));Event.observe(this.l+'mouselayer','contextmenu',this.ct.bindAsEventListener(this));if(this.cY){Event.observe(window,'resize',this.resizeEventHandler.bindAsEventListener(this));}Event.observe($(this.l),"mousewheel",this.dD.bindAsEventListener(this));Event.observe($(this.l),"DOMMouseScroll",this.dD.bindAsEventListener(this));if(this.P==0&&this.I==0){this.P=this.bU.offsetWidth;this.I=this.bU.offsetHeight;}if(this.P==0&&this.I==0){this.co();}if(this.cY){this.dm(false);}else{this.ag(false);}if(J)this.az(cN,false);this.cS=true;},bi:function(U){this.o=this.bD(U);this.bB=new Coordinate(this.m.left+(this.O*this.o.x),this.m.top-(this.O*this.o.y),this.aC);this.cq=true;if(this.cz(U)=="MIDDLE"&& !this.aW){this.cn.style.zIndex='2';this.bf=true;this.T.style.display='block';this.T.style.top=this.f.y+"px";this.T.style.left=this.f.x+"px";this.T.style.width="0px";this.T.style.height="0px";}if(this.cK=='DrawBoundingBox'){this.cn.style.zIndex='2';this.T.style.display='block';this.T.style.top=this.f.y+"px";this.T.style.left=this.f.x+"px";this.T.style.width="0px";this.T.style.height="0px";}$(this.l).fire("map:grabbed");U.stop();},aX:function(U){$(this.l).fire("map:mouseClicked",{'mouseMapCoords':this.V,'mouseCoords':this.f});},ct:function(U){},bT:function(U){if(this.ah)if(!this.aW)this.zoomIn(new Coordinate(this.V.x,this.V.y));},bz:function(U){this.release(this.aD);this.T.style.display='none';this.ab=new Coordinate(this.m.left+(this.O*(this.P/2)),this.m.top-(this.O*(this.I/2)),this.aC);if(this.bf&&this.B!=null){this.zoomOnBoundingBox(this.B);this.B=null;this.bf=false;}if(this.cK=='DrawBoundingBox'&&this.B!=null){var eu={'bottom':this.B.y1,'left':this.B.x1,'top':this.B.y2,'right':this.B.x2};$(this.l).fire("map:boundingboxSelected",{'boundingbox':eu});this.B=null;}$(this.l).fire("map:mouseUp",{'button':this.cz(U)});},bt:function(U){this.release(this.aD);$(this.l).fire("map:mouseOut");},bA:function(U){$(this.l).fire("map:mouseOver");},cA:function(U){this.f=this.bD(U);if(this.ah){if(this.cq){this.cM++;if(this.cM%3==0){if(this.bf){this.B={'x1':0,'y1':0,'x2':0,'y2':0};if(this.f.y<this.o.y){this.T.style.top=this.f.y+"px";this.T.style.height=this.o.y-this.f.y+"px";this.B.y1= -(this.o.y*this.O-this.M);this.B.y2= -(this.f.y*this.O-this.M);}else{this.T.style.top=this.o.y+"px";this.T.style.height=this.f.y-this.o.y+"px";this.B.y1= -(this.f.y*this.O-this.M);this.B.y2= -(this.o.y*this.O-this.M);}if(this.f.x<this.o.x){this.T.style.left=this.f.x+"px";this.T.style.width=this.o.x-this.f.x+"px";this.B.x1=this.f.x*this.O+this.K;this.B.x2=this.o.x*this.O+this.K;}else{this.T.style.left=this.o.x+"px";this.T.style.width=this.f.x-this.o.x+"px";this.B.x2=this.f.x*this.O+this.K;this.B.x1=this.o.x*this.O+this.K;}}else{this.aD={'x':this.f.x-this.o.x,'y':this.f.y-this.o.y};this.aG(this.aD,true);$(this.l).fire("map:dragging",{'offsetCoords':this.aD});if(!this.bZ){$(this.l).fire("map:dragBegin",{'mouseMapCoords':this.V,'mouseCoords':this.f,'boundingBox':this.m});this.bZ=true;}}}}else{this.V=new Coordinate(this.f.x*this.O+this.K,-(this.f.y*this.O-this.M),this.aC);}}if(this.cK=='DrawBoundingBox'){this.B={'x1':0,'y1':0,'x2':0,'y2':0};if(this.f.y<this.o.y){this.T.style.top=this.f.y+"px";this.T.style.height=this.o.y-this.f.y+"px";this.B.y1= -(this.o.y*this.O-this.M);this.B.y2= -(this.f.y*this.O-this.M);}else{this.T.style.top=this.o.y+"px";this.T.style.height=this.f.y-this.o.y+"px";this.B.y1= -(this.f.y*this.O-this.M);this.B.y2= -(this.o.y*this.O-this.M);}if(this.f.x<this.o.x){this.T.style.left=this.f.x+"px";this.T.style.width=this.o.x-this.f.x+"px";this.B.x1=this.f.x*this.O+this.K;this.B.x2=this.o.x*this.O+this.K;}else{this.T.style.left=this.o.x+"px";this.T.style.width=this.f.x-this.o.x+"px";this.B.x2=this.f.x*this.O+this.K;this.B.x1=this.o.x*this.O+this.K;}}$(this.l).fire("map:mouseMoved",{'mouseMapCoords':this.V,'mouseCoords':this.f});this.V=new Coordinate(this.f.x*this.O+this.K,-(this.f.y*this.O-this.M),this.aC);return false;},setState:function(cP){this.cK=cP;if(cP=='DrawBoundingBox'){this.disallowMouseNavigation();}else{this.allowMouseNavigation();}},move:function(aD,cs){this.aD=aD;this.aG(this.aD,true);this.release(aD,cs);this.ab=new Coordinate(this.m.left+(this.O*(this.P/2)),this.m.top-(this.O*(this.I/2)),this.aC);},resizeEventHandler:function(e){this.resize();},resize:function(I,P){this.bd();var user=false;if(I!=null){var G=P;var D=I;user=true;}else{var G=0;var D=0;if(window.innerWidth){G=window.innerWidth;D=window.innerHeight;}else{G=document.compatMode=='CSS1Compat'?document.documentElement.clientWidth:document.body.clientWidth;D=document.compatMode=='CSS1Compat'?document.documentElement.clientHeight:document.body.clientHeight;}if(G%2){G--;}if(D%2){D--;}}this.P=G;this.I=D;if(user){$(this.l).style.width=G+"px";$(this.l).style.height=D+"px";if(this.Q!=null){this.Q.element.width=G;this.Q.element.height=D;}}else{al=this.be($(this.l));ai=this.aZ($(this.l));$(this.l).style.width=G-ai+"px";$(this.l).style.height=D-al+"px";if(this.Q!=null){this.Q.element.width=G-ai;this.Q.element.height=D-al;}}if(I==null){this.P=G-ai;this.I=D-al;}this.ag(true);this.updateBB();$(this.l).fire("map:resized");},co:function(){var G=0;var D=0;if(window.innerWidth){G=window.innerWidth;D=window.innerHeight;}else{G=document.compatMode=='CSS1Compat'?document.documentElement.clientWidth:document.body.clientWidth;D=document.compatMode=='CSS1Compat'?document.documentElement.clientHeight:document.body.clientHeight;}if(G%2){G--;}if(D%2){D--;}al=this.be($(this.l));ai=this.aZ($(this.l));this.P=G-ai;this.I=D-al;},dm:function(load,I,P){this.bd();var user=false;if(I!=null){var G=P;var D=I;user=true;}else{var G=0;var D=0;if(window.innerWidth){G=window.innerWidth;D=window.innerHeight;}else{G=document.compatMode=='CSS1Compat'?document.documentElement.clientWidth:document.body.clientWidth;D=document.compatMode=='CSS1Compat'?document.documentElement.clientHeight:document.body.clientHeight;}if(G%2){G--;}if(D%2){D--;}}this.P=G;this.I=D;al=this.be($(this.l));ai=this.aZ($(this.l));if(user){$(this.l).style.width=G+"px";$(this.l).style.height=D+"px";if(this.Q!=null){this.Q.element.width=G-ai;this.Q.element.height=D-al;}}else{$(this.l).style.width=G-ai+"px";$(this.l).style.height=D-al+"px";if(this.Q!=null){this.Q.element.width=G-ai;this.Q.element.height=D-al;}}if(I==null){this.P=G-ai;this.I=D-al;}this.ag(false);$(this.l).fire("map:resized");},cF:function(){for(var i=0;i<this.H.length;i++){if(this.H[i].type!='wmsoverlay'){for(var c=0;c<this.H[i].tiles.length;c++){for(var r=0;r<this.H[i].tiles[c].length;r++){var F=this.H[i].tiles[c][r];this.bQ(F);}}}}},bD:function(U){return{'x':Event.pointerX(U)-this.aZ($(this.l)),'y':Event.pointerY(U)-this.be($(this.l))};},ag:function(dc){if(this.I==0)this.I=200;if(this.P==0)this.P=200;var rows=Math.ceil(this.I/this.am)+1;var cols=Math.ceil(this.P/this.am)+1;this.eq=rows;this.er=cols;for(var i=0;i<this.H.length;i++){this.H[i].tiles=[];if(this.H[i].visible==true){for(var c=0;c<cols;c++){var cX=[];for(var r=0;r<rows;r++){this.ba=this.ba==this.aR?this.ba=this.aQ:this.ba+1;var F={'element':null,'posx':256*c,'posy':256*r,'xIndex':c,'yIndex':r,'host':this.ba,'layer':this.H[i]};cX.push(F);}this.H[i].tiles.push(cX);}}}this.aG({'x':0,'y':0},dc);},aG:function(ad,dc){if(!ad){ad={'x':0,'y':0};}this.aL.style.top=ad.y+"px";this.aL.style.left=ad.x+"px";for(i=0;i<this.bc.length;i++){var overlay=this.bc[i];}for(i=0;i<this.as.length;i++){var overlay=this.as[i];overlay.style.left=ad.x+'px';overlay.style.top=ad.y+'px';}this.aA.style.top=this.dk+ad.y+'px';this.aA.style.left=this.dj+ad.x+'px';for(i=0;i<this.v.length;i++){var d=this.v[i];d.element.style.left=d.x+ad.x+'px';d.element.style.top=d.y+ad.y+'px';}for(var i=0;i<this.H.length;i++){if(this.H[i].type!='wmsoverlay'){for(var c=0;c<this.H[i].tiles.length;c++){for(var r=0;r<this.H[i].tiles[c].length;r++){var F=this.H[i].tiles[c][r];F.posx=(F.xIndex*this.am)+this.cb+ad.x;F.posy=(F.yIndex*this.am)+this.bY+ad.y;var bJ=true;if(F.posx>this.P){do{F.xIndex-=this.H[i].tiles.length;F.posx=(F.xIndex*this.am)+this.cb+ad.x;}while(F.posx>this.P);if(F.posx+this.am<0){bJ=false;}}else{while(F.posx< -this.am){F.xIndex+=this.H[i].tiles.length;F.posx=(F.xIndex*this.am)+this.cb+ad.x;}if(F.posx>this.P){bJ=false;}}if(F.posy>this.I){do{F.yIndex-=this.H[i].tiles[c].length;F.posy=(F.yIndex*this.am)+this.bY+ad.y;}while(F.posy>this.I);if(F.posy+this.am<0){bJ=false;}}else{while(F.posy< -this.am){F.yIndex+=this.H[i].tiles[c].length;F.posy=(F.yIndex*this.am)+this.bY+ad.y;}if(F.posy>this.I){bJ=false;}}if(dc&&bJ){this.bQ(F);}if(F.element){F.element.style.top=F.posy+'px';F.element.style.left=F.posx+'px';}}}}}},addNavigationGUI:function(gui){gui.mapControl=this;this.at.appendChild(gui.element);gui.element.style.zIndex=2;},addDrawCanvas:function(canvasIn){this.Q=canvasIn;this.Q.parent=this;var ae=this.l+'canvas';this.Q.element.setAttribute('id',ae);this.aL.appendChild(this.Q.element);var G=0;var D=0;if(window.innerWidth){G=window.innerWidth;D=window.innerHeight;}else{G=document.compatMode=='CSS1Compat'?document.documentElement.clientWidth:document.body.clientWidth;D=document.compatMode=='CSS1Compat'?document.documentElement.clientHeight:document.body.clientHeight;}this.Q.element.width=this.P;this.Q.element.height=this.I;if(/msie/i.test(navigator.userAgent)){var hack=G_vmlCanvasManager.initElement(this.getDrawCanvas().element);this.getDrawCanvas().element=hack;this.getDrawCanvas().useex=true;}canvas=this.Q.element;this.Q.surface=canvas.getContext("2d");},getDrawCanvas:function(){return this.Q;},centerOnCoords:function(ac,mouse){ac=this.aa(ac);var coordsperpixel=256/AJAXMAP.ZOOMLEVELS[this.n];if(mouse){var ad={'x':Math.floor(((ac.x-this.K)* -coordsperpixel)+(this.f.x)),'y':Math.floor(((ac.y-this.M)*coordsperpixel)+(this.f.y))};}else{var ad={'x':Math.floor(((ac.x-this.K)* -coordsperpixel)+(this.P/2)),'y':Math.floor(((ac.y-this.M)*coordsperpixel)+(this.I/2))};}this.bL();this.aG(ad,true);this.release(ad,false);this.ab={'x':this.m.left+(this.O*(this.P/2)),'y':this.m.top-(this.O*(this.I/2))};this.ab=new Coordinate(this.m.left+(this.O*(this.P/2)),this.m.top-(this.O*(this.I/2)),this.aC);},az:function(ac,mouse){ac=this.aa(ac);var coordsperpixel=256/AJAXMAP.ZOOMLEVELS[this.n];if(mouse){var ad={'x':Math.floor(((ac.x-this.K)* -coordsperpixel)+(this.f.x)),'y':Math.floor(((ac.y-this.M)*coordsperpixel)+(this.f.y))};}else{var ad={'x':Math.floor(((ac.x-this.K)* -coordsperpixel)+(this.P/2)),'y':Math.floor(((ac.y-this.M)*coordsperpixel)+(this.I/2))};}this.bL();this.aG(ad,true);this.release(ad,false);},addAnnotation:function(d){d.coordinate=this.aa(d.coordinate);screenCoords=this.geoToScreenCoordinates(d.coordinate);var div=document.createElement('div');div.setAttribute('id',d.id);var img=document.createElement('img');d.element=div;d.parent=this;Event.observe(d.element,'click',d.aX.bindAsEventListener(d));Event.observe(d.element,'mouseover',d.bA.bindAsEventListener(d));Event.observe(d.element,'mouseout',d.bt.bindAsEventListener(d));Event.observe(d.element,'mouseup',d.bz.bindAsEventListener(d));Event.observe(d.element,'mousedown',d.bi.bindAsEventListener(d));img.src=d.iconURL;div.style.position="absolute";div.style.left=screenCoords.x+d.xOffset+'px';div.style.top=screenCoords.y+d.yOffset+'px';d.x=screenCoords.x+d.xOffset;d.y=screenCoords.y+d.yOffset;div.appendChild(img);d.img=img;div.appendChild(img);this.at.appendChild(d.element);d.element.style.zIndex=1;this.v.push(d);return d.id;},removeAnnotation:function(id){for(var i=0;i<this.v.length;i++){var d=this.v[i];if(d.id==id){this.at.removeChild(d.element);this.v.splice(i,1);return;}}},removeAnnotationGroup:function(dS){var removed=0;do{removed=0;for(var i=0;i<this.v.length;i++){var d=this.v[i];if(d.group==dS){this.at.removeChild(d.element);this.v.splice(i,1);removed=1;break;}}}while(removed==1);},getAnnotation:function(id){for(i=0;i<this.v.length;i++){var d=this.v[i];if(d.id==id){return d;}}},getAnnotations:function(){return this.v;},showAnnotationPopup:function(d){if(this.aY){this.aA.innerHTML=d.title+'<p>'+d.description+'</p>';var bh=0;var bl=0;if(d.x>this.P-250){bh= -275;}else{bh=25;}if(d.y<150){bl=0;}else{bl= -150;}this.aA.style.top=d.y+bl+'px';this.aA.style.left=d.x+bh+'px';this.dj=d.x+bh;this.dk=d.y+bl;this.popupTimerId=setTimeout("$('"+this.l+"annotation_popup').style.display = 'block'",700);}},hideAnnotationPopup:function(d){clearTimeout(this.popupTimerId);$(this.l+'annotation_popup').style.display='none';},addLayer:function(bV){bV.id="layer_"+this.H.length;this.H.push(bV);if(this.cS==true){this.bd();this.ag(true);if(bV.type=="wmsoverlay")this.bu();}return bV.id;},removeLayer:function(dT){for(var i=0;i<this.H.length;i++){if(this.H[i].id==dT){this.H.splice(i,1);return;}}},showLayer:function(id,zindex){for(var i=0;i<this.H.length;i++){if(this.H[i].id==id){if(zindex){this.H[i].zindex=zindex;}if(this.H[i].visible==false){this.H[i].visible=true;this.bd();this.ag(true);}}}},hideLayer:function(id){for(var i=0;i<this.H.length;i++){if(this.H[i].id==id)if(this.H[i].visible==true){this.H[i].visible=false;this.bd();this.ag(true);}}this.cF();},getLayers:function(){return this.H;},cB:function(ad){for(i=0;i<this.v.length;i++){var d=this.v[i];d.x=d.x+ad.x;d.y=d.y+ad.y;}},bL:function(){for(var i=0;i<this.v.length;i++){d=this.v[i];if(d.upperbound<this.n||d.lowerbound>this.n){d.element.style.display='none';}else{d.element.style.display='block';}screenCoords=this.geoToScreenCoordinates(d.coordinate);d.x=screenCoords.x+d.xOffset;d.y=screenCoords.y+d.yOffset;d.element.style.left=d.x+'px';d.element.style.top=d.y+'px';}},refreshAnnotations:function(){for(var i=0;i<this.v.length;i++){d=this.v[i];if(d.upperbound<this.n||d.lowerbound>this.n){d.element.style.display='none';}else{d.element.style.display='block';}screenCoords=this.geoToScreenCoordinates(d.coordinate);d.x=screenCoords.x+d.xOffset;d.y=screenCoords.y+d.yOffset;d.element.style.left=d.x+'px';d.element.style.top=d.y+'px';}},dV:function(annotation){d=annotation;if(d.upperbound<this.n||d.lowerbound>this.n){d.element.style.display='none';}else{d.element.style.display='block';}screenCoords=this.geoToScreenCoordinates(d.coordinate);d.x=screenCoords.x+d.xOffset;d.y=screenCoords.y+d.yOffset;d.element.style.left=d.x+'px';d.element.style.top=d.y+'px';},clearAnnotations:function(){for(var i=0;i<this.v.length;i++){var d=this.v[i];this.at.removeChild(d.element);}this.v=[];},loadGeoRSS:function(url){if(document.implementation&&document.implementation.createDocument){xmlDoc=document.implementation.createDocument("","",null);xmlDoc.async="false";xmlDoc.onload=this.addAnnotationsFromXML;}else if(document.documentElement&&typeof document.documentElement.style.maxHeight!="undefined"){var xmlIsland=document.getElementById("xmlI");xmlIsland.async=false;xmlIsland.load(url);xmlDoc=xmlIsland;this.addAnnotationsFromXML();return;}else if(window.ActiveXObject){xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.onreadystatechange=this.addAnnotationsFromXML;}else{alert('Your browser can\'t handle this script');return;}xmlDoc.load(url);},addAnnotationsFromXML:function(){var x=xmlDoc.getElementsByTagName('item');for(i=0;i<x.length;i++){var icon="media/icons/newsfire-icon.png";for(j=0;j<x[i].childNodes.length;j++){if(x[i].childNodes[j].nodeType!=1){continue;}if(x[i].childNodes[j].tagName=='title'){var title=x[i].childNodes[j].firstChild.nodeValue;}if(x[i].childNodes[j].tagName=='description'){var description=x[i].childNodes[j].firstChild.nodeValue;}if(x[i].childNodes[j].tagName=='icon'){icon=x[i].childNodes[j].firstChild.nodeValue;}if(x[i].childNodes[j].tagName=='geo:lat'){var geoLat=x[i].childNodes[j].firstChild.nodeValue;}if(x[i].childNodes[j].tagName=='geo:long'){var geoLon=x[i].childNodes[j].firstChild.nodeValue;}var coords={'y':Number(geoLon),'x':Number(geoLat)};var newCoords=map.decimalDegreesToUTM(coords);map.trackCoords=newCoords;}map.addAnnotation(new Annotation(newCoords,title,description,icon));}},disableZoom:function(){this.aW=true;},enableZoom:function(){this.aW=false;},animateZoomIn:function(){var tiles=this.H[0].tiles;for(var i=0;i<tiles.length;i++){tileCol=tiles[i];for(var j=0;j<tileCol.length;j++){var tile=tileCol[j];var qx=parseInt((tile.posx+128)/256);var qy=parseInt((tile.posy+128)/256);if(tile.element!=null){tile.element.style.width=parseInt(tile.element.style.width)+40+'px';tile.element.style.height=parseInt(tile.element.style.height)+40+'px';tile.element.style.left= -50+parseInt(tile.element.style.left)+qx*40+'px';tile.element.style.top= -50+parseInt(tile.element.style.top)+qy*40+'px';}}}if(this.zoomCounter==5){this.zoomCounter=0;clearInterval(this.zoomTimerId);map.zoomIn();return;}this.zoomCounter++;var self=this;},animateZoomOut:function(){var tiles=this.H[0].tiles;for(var i=0;i<tiles.length;i++){tileCol=tiles[i];for(var j=0;j<tileCol.length;j++){var tile=tileCol[j];var qx=parseInt((tile.posx+256)/256);var qy=parseInt((tile.posy+256)/256);if(tile.element!=null){tile.element.style.width=parseInt(tile.element.style.width)-40+'px';tile.element.style.height=parseInt(tile.element.style.height)-40+'px';tile.element.style.left=50+parseInt(tile.element.style.left)-qx*40+'px';tile.element.style.top=50+parseInt(tile.element.style.top)-qy*40+'px';}}}if(this.zoomCounter==5){this.zoomCounter=0;clearInterval(this.zoomTimerId);map.zoomOut();return;}this.zoomCounter++;var self=this;},zoomIn:function(J){if(this.n>0){this.bd();if(!this.ab){this.ab=new Coordinate(this.m.left+(this.O*(this.P/2)),this.m.top-(this.O*(this.I/2)),this.aC);}if(J){J=this.aa(J);this.ab=J;}this.cb=0;this.bY=0;this.n=this.n-1;this.O=AJAXMAP.ZOOMLEVELS[this.n]/256;var aj=this.ao(this.ab);this.aN=aj.x;this.aM=aj.y;this.K=this.aN;this.M=this.aM;this.ag(false);this.az(this.ab);$(this.l).fire("map:zoomedIn",{'boundingBox':this.m});$(this.l).fire("map:zoomed");}},zoomOut:function(J){if(this.n<AJAXMAP.ZOOMLEVELS.length-1){this.bd();if(!this.ab){this.ab=new Coordinate(this.m.left+(this.O*(this.P/2)),this.m.top-(this.O*(this.I/2)),this.aC);}if(J){J=this.aa(J);this.ab=J;}this.cb=0;this.bY=0;this.n=parseInt(this.n)+1;this.O=AJAXMAP.ZOOMLEVELS[this.n]/256;var aj=this.ao(this.ab);this.aN=aj.x;this.aM=aj.y;this.K=this.aN;this.M=this.aM;this.ag(false);this.az(this.ab);$(this.l).fire("map:zoomedOut",{'boundingBox':this.m});$(this.l).fire("map:zoomed");}},mouseZoomIn:function(){if(this.n>0){this.bd();if(!this.ab&& !this.aU){this.ab=new Coordinate(this.m.left+(this.O*(this.P/2)),this.m.top-(this.O*(this.I/2)),this.aC);}if(this.aU){this.ab=new Coordinate(this.V.x,this.V.y,this.aC);}this.cb=0;this.bY=0;this.n=this.n-1;this.O=AJAXMAP.ZOOMLEVELS[this.n]/256;var aj=this.ao(this.ab);this.aN=aj.x;this.aM=aj.y;this.K=this.aN;this.M=this.aM;this.ag(false);this.az(this.ab,this.aU);$(this.l).fire("map:zoomedIn",{'boundingBox':this.m});$(this.l).fire("map:zoomed");}},mouseZoomOut:function(){if(this.n<AJAXMAP.ZOOMLEVELS.length-1){this.bd();if(!this.ab&& !this.aU){this.ab=new Coordinate(this.m.left+(this.O*(this.P/2)),this.m.top-(this.O*(this.I/2)),this.aC);}if(this.aU){this.ab=new Coordinate(this.V.x,this.V.y,this.aC);}this.cb=0;this.bY=0;this.n=parseInt(this.n)+1;this.O=AJAXMAP.ZOOMLEVELS[this.n]/256;var aj=this.ao(this.ab);this.aN=aj.x;this.aM=aj.y;this.K=this.aN;this.M=this.aM;this.ag(false);this.az(this.ab,this.aU);$(this.l).fire("map:zoomedOut",{'boundingBox':this.m});$(this.l).fire("map:zoomed");}},zoom:function(level,J){if(level<AJAXMAP.ZOOMLEVELS.length&&level>=0){this.bd();if(!this.ab){this.ab=new Coordinate(this.m.left+(this.O*(this.P/2)),this.m.top-(this.O*(this.I/2)),this.aC);}if(J){J=this.aa(J);this.ab=J;}this.cb=0;this.bY=0;this.n=level;this.O=AJAXMAP.ZOOMLEVELS[this.n]/256;var aj=this.ao(this.ab);this.aN=aj.x;this.aM=aj.y;this.K=this.aN;this.M=this.aM;this.ag(false);this.az(this.ab,false);$(this.l).fire("map:zoomed");}},centerAndZoom:function(cJ,level){if(level==this.n)this.az(cJ,false);else this.zoom(level,cJ);},zoomOnBoundingBox:function(ac,center,cv){var dP=ac.x2-ac.x1;var dU=ac.y2-ac.y1;var dz=this.P/2;var dg=this.I/2;var aV=new Coordinate(ac.x1+(dP/2),ac.y1+(dU/2),this.aC);for(var i=0;i<AJAXMAP.ZOOMLEVELS.length;i++){var dI=AJAXMAP.ZOOMLEVELS[i];var bX=dI/256;var dy=aV.x+(dz*bX);var dx=aV.y+(dg*bX);if(dy>ac.x2&&dx>ac.y2){if(this.n==i&& !center){return{'zoom':i,'coordinate':aV};}if(!cv&&this.n>0){this.zoom(i,aV);}return{'zoom':i,'coordinate':aV};}}if(!cv){this.zoom(i,aV);}return{'zoom':i,'coordinate':aV};},zoomOnAnnotations:function(){if(this.v.length==0){return;}var x1=this.v[0].coordinate.x;var y1=this.v[0].coordinate.y;var x2=this.v[0].coordinate.x;var y2=this.v[0].coordinate.y;for(i=0;i<this.v.length;i++){if(this.v[i].coordinate.x>x2){x2=this.v[i].coordinate.x;}if(this.v[i].coordinate.x<x1){x1=this.v[i].coordinate.x;}if(this.v[i].coordinate.y>y2){y2=this.v[i].coordinate.y;}if(this.v[i].coordinate.y<y1){y1=this.v[i].coordinate.y;}}this.zoomOnBoundingBox({'x1':x1,'y1':y1,'x2':x2,'y2':y2},true);},db:function(){this.bU.style.position="absolute";this.bU.style.zIndex=10;this.bU.style.overflow="hidden";var df=document.getElementById(this.l);var k=document.createElement('div');var ae=this.l+'tilelayer';k.innerHTML='<!-- -->';k.setAttribute('id',ae);this.bU.appendChild(k);k.style.position="absolute";k.style.top="0px";k.style.left="0px";k.style.width="100%";k.style.height="100%";k.style.overflow="hidden";this.aT=k;var df=document.getElementById(this.l);var k=document.createElement('div');var ae=this.l+'staticdrawlayer';k.innerHTML='<!-- -->';k.setAttribute('id',ae);k.style.position="absolute";k.style.top="0px";k.style.left="0px";k.style.width="100%";k.style.height="100%";k.style.zIndex=1000;this.bU.appendChild(k);this.bR=k;var df=document.getElementById(this.l);var k=document.createElement('div');var ae=this.l+'drawlayer';k.innerHTML='<!-- -->';k.setAttribute('id',ae);k.style.position="absolute";k.style.top="0px";k.style.left="0px";k.style.width="100%";k.style.height="100%";k.style.zIndex=1000;this.bU.appendChild(k);this.aL=k;var df=document.getElementById(this.l);var k=document.createElement('div');var ae=this.l+'mouselayer';k.innerHTML='<!-- -->';k.setAttribute('id',ae);k.style.position="absolute";k.style.top="0px";k.style.left="0px";k.style.width="100%";k.style.height="100%";k.style.zIndex=1000;k.style.overflow="hidden";this.bU.appendChild(k);this.at=k;var df=document.getElementById(this.l);var k=document.createElement('div');var ae=this.l+'zoomBox';k.innerHTML='<!-- -->';k.setAttribute('id',ae);this.at.appendChild(k);k.style.position="absolute";k.style.border="solid 1px";k.style.width="0px";k.style.height="0px";k.style.top="0px";k.style.left="10px";k.style.display='none';k.style.zIndex=2;this.T=k;var k=document.createElement('div');var ae=this.l+'surface';k.innerHTML='<!-- -->';k.setAttribute('id',ae);k.style.position="absolute";k.style.top="0px";k.style.left="0px";k.style.width="100%";k.style.height="100%";k.style.zIndex=0;k.style.background="url(media/interface/default/blank_1px.gif)";this.at.appendChild(k);this.cn=k;var df=document.getElementById(this.l);var k=document.createElement('div');var ae=this.l+'annotation_popup';k.innerHTML='<!-- -->';k.setAttribute('id',ae);this.at.appendChild(k);k.style.position="absolute";k.style.width="250px";k.style.height="150px";k.style.top="29px";k.style.left="130px";k.style.display='none';k.style.padding='10px';k.style.zIndex=1000;k.style.backgroundColor='white';k.style.border='solid 1px';this.aA=k;},bQ:function(F){var bx,cj;var cc=this.aN+(F.xIndex*AJAXMAP.ZOOMLEVELS[this.n]);var ce=this.aM-(F.yIndex*AJAXMAP.ZOOMLEVELS[this.n])-AJAXMAP.ZOOMLEVELS[this.n];if(F.layer.type=='webatlastile'){bx=cj='http://ts'+F.host+'.webatlas.no/?x1='+cc+'&y1='+ce+'&z='+AJAXMAP.ZOOMLEVELS[this.n]+'&s='+this.aJ+'&l=1';}if(F.layer.type=='osmtile'){c=new Coordinate(cc,ce);cC=this.UTMToLatLon(c);tilename=this.getOSMName(cC.y,cC.x,this.n);bx=cj='http://b.tile.openstreetmap.org/'+tilename+'.png';}else if(F.layer.type=='wms'){bx=cj=F.layer.wmsRequest.url+'?REQUEST=GetMap&SERVICE='+F.layer.wmsRequest.service+'&SRS='+F.layer.wmsRequest.srs+'&VERSION='+F.layer.wmsRequest.version+'&FORMAT='+F.layer.wmsRequest.format+'&LAYERS='+F.layer.wmsRequest.layers+'&STYLES='+F.layer.wmsRequest.styles+'&TRANSPARENT='+F.layer.wmsRequest.transparent+'&BGCOLOR='+F.layer.wmsRequest.bgColor+'&BBOX='+cc+','+ce+','+(cc+AJAXMAP.ZOOMLEVELS[this.n])+','+(ce+AJAXMAP.ZOOMLEVELS[this.n])+'&WIDTH=256&HEIGHT=256';}if(F.element!=null&&F.element.parentNode!=null&&F.element.relativeSrc!=cj){this.aT.removeChild(F.element);}var bj=this.aH[bx];if(!bj){bj=this.aH[bx]=this.bp(cj);}bj.onload=null;if(bj.image){bj.image.onload=null;}if(!bj.parentNode){F.element=this.aT.appendChild(bj);}if(F.element!=null){F.element.style.zIndex=F.layer.zIndex;}},dN:function(tile,forceBlankImage){var tileImgId,src;var useBlankImage=false;var cc=this.aN+(tile.xIndex*AJAXMAP.ZOOMLEVELS[this.n]);var ce=this.aM-(tile.yIndex*AJAXMAP.ZOOMLEVELS[this.n])-AJAXMAP.ZOOMLEVELS[this.n];if(tile.layer.type=='webatlastile'){tileImgId=src='http://ts'+tile.host+'.webatlas.no/?x1='+cc+'&y1='+ce+'&z='+AJAXMAP.ZOOMLEVELS[this.n]+'&s='+this.aJ+'&l=1';}if(tile.element!=null&&tile.element.parentNode!=null&&tile.element.relativeSrc!=src){this.aT.removeChild(tile.element);}var tileImg=this.aH[tileImgId];if(!tileImg){tileImg=this.aH[tileImgId]=this.bp(src);}var loadingImgId='loading:'+cc+':'+ce;var loadingImg=this.aH[loadingImgId];if(!loadingImg){loadingImg=this.aH[loadingImgId]=this.bp(this.aH['loading'].src);}loadingImg.targetSrc=tileImgId;var well=this.aT;tile.element=well.appendChild(loadingImg);tileImg.onload=function(){if(loadingImg.parentNode&&loadingImg.targetSrc==tileImgId){tileImg.style.top=loadingImg.style.top;tileImg.style.left=loadingImg.style.left;well.replaceChild(tileImg,loadingImg);tile.element=tileImg;}tileImg.onload=null;return false;};if(tile.element!=null){tile.element.style.zIndex=tile.layer.zIndex-1000;}},toggleMapStyle:function(){if(this.aJ==0){this.aJ=1;}else{this.aJ=0;}this.cF();this.aG({'x':0,'y':0});},bp:function(cj){var aI=document.createElement('img');aI.src=cj;aI.alt="Loading Tile...";aI.relativeSrc=cj;aI.className='tile';aI.style.width=this.am+'px';aI.style.height=this.am+'px';aI.style.top="-256px";aI.style.left="-256px";aI.style.position='absolute';return aI;},bd:function(){this.ei=null;for(eh in this.aH){var aI=this.aH[eh];aI.onload=null;aI.src='media/interface/blank.png';if(aI.image){aI.image.onload=null;}if(aI.parentNode!=null){this.aT.removeChild(aI);}}this.aH={};this.aH['blank']=new Image();this.aH['loading']=this.aH['blank'];},release:function(L,cs){if(!(L.x+L.y)==0){this.aL.style.top=0+"px";this.aL.style.left=0+"px";this.cb+=L.x;this.bY+=L.y;this.cB(L);this.aD={'x':0,'y':0};this.K-=L.x*this.O;this.M=this.M+L.y*this.O;var bM=this.M-this.I*this.O;var ca=this.K+this.P*this.O;this.m={'bottom':bM,'left':this.K,'top':this.M,'right':ca};this.V=new Coordinate(this.f.x*this.O+this.K,-(this.f.y*this.O-this.M),this.aC);if(!cs){$(this.l).fire("map:moved",{'mouseMapCoords':this.V,'mouseCoords':this.f,'boundingBox':this.m,'move':L});$(this.l).fire("map:dragEnd",{'mouseMapCoords':this.V,'mouseCoords':this.f,'boundingBox':this.m});this.bZ=false;}this.updateWMSLayers();this.cO();}this.cq=false;this.cn.style.zIndex='0';},updateBB:function(){var bM=this.M-this.I*this.O;var ca=this.K+this.P*this.O;this.m={'bottom':bM,'left':this.K,'top':this.M,'right':ca};},cO:function(){if(this.cx==true){var aI=document.createElement('img');aI.src="http://services.webatlas.no/weblog/Log2.aspx?"+"WMS-REQUEST=BBOX="+this.m.left+","+this.m.bottom+","+this.m.right+","+this.m.top+"&MAPSTYLE="+this.aJ+"&ZOOMLEVEL="+AJAXMAP.ZOOMLEVELS[this.n]+"&PROVIDER="+this.bC+"&CUSTOMER="+this.bC+"&SERVER=TS1";aI=null;}},disableLogging:function(){this.cx=false;},getOSMName:function(ed,es,cp){var eg=parseInt(Math.floor((es+180)/360*(Math.pow(2,cp))));var ef=parseInt(Math.floor((1-Math.log(Math.tan(ed*Math.PI/180)+1/Math.cos(ed*Math.PI/180))/Math.PI)/2*(Math.pow(2,cp))));return(""+cp+"/"+eg+"/"+ef);},addWMSLayer:function(bS,dQ,dR){if(bS.id==null){bS.id=this.ak.length;}ey=dQ?dQ:0;ev=dR?dR:99;bS.lb=ey;bS.ub=ev;for(var i=0;i<this.ak.length;i++){if(bS.id==this.ak[i].id){this.ak[i]=bS;this.updateWMSLayers();return bS.id;}}this.ak.push(bS);this.updateWMSLayers();return bS.id;},removeWMSLayer:function(ew){for(var i=0;i<this.ak.length;i++){if(ew==this.ak[i].id){this.ak.splice(i,1);this.updateWMSLayers();return;}}},updateWMSLayers:function(){var tilelayer=this.aL;for(var i=0;i<this.bc.length;i++){tilelayer.removeChild(this.bc[i]);}this.bc=[];for(var i=0;i<this.ak.length;i++){var req=this.ak[i];if(req.lb<=this.n&&req.ub>=this.n){var img=document.createElement('img');var url=req.url;var di=$H({"REQUEST":"GetMap","SERVICE":req.service,"VERSION":req.version,"SRS":this.aC,"FORMAT":req.format,"LAYERS":req.layers,"TRANSPARENT":"true","STYLES":req.styles,"WIDTH":this.P,"HEIGHT":this.I,"BBOX":[this.m.left,this.m.bottom,this.m.right,this.m.top].join(',')});var bg="";if(url.indexOf("?")== -1){bg="?";}else if(!(url.endsWith("?")||url.endsWith("&"))){bg="&";}url=url+bg+di.toQueryString();img.src=url;img.alt="Loading custom layer...";img.relativeSrc=this.ak[i].serverURL;img.className='overlay';img.style.position='absolute';img.style.top=0+'px';img.style.left=0+'px';tilelayer.appendChild(img);this.bc.push(img)}}this.bu();},bu:function(){var tilelayer=this.aT;for(var i=0;i<this.as.length;i++){tilelayer.removeChild(this.as[i]);}this.as=[];for(var i=0;i<this.H.length;i++){if(this.H[i].type=='wmsoverlay'){var req=this.H[i].wmsRequest;var img=document.createElement('img');var url=req.url;var di=$H({"REQUEST":"GetMap","SERVICE":req.service,"VERSION":req.version,"SRS":this.aC,"FORMAT":req.format,"LAYERS":req.layers,"TRANSPARENT":"true","STYLES":req.styles,"WIDTH":this.P,"HEIGHT":this.I,"BBOX":[this.m.left,this.m.bottom,this.m.right,this.m.top].join(',')});var bg="";if(url.indexOf("?")== -1){bg="?";}else if(!(url.endsWith("?")||url.endsWith("&"))){bg="&";}url=url+bg+di.toQueryString();img.src=url;img.alt="Loading custom layer...";img.className='overlay';img.style.position='absolute';img.style.top=0+'px';img.style.left=0+'px';img.style.zIndex=this.H[i].zIndex;tilelayer.appendChild(img);this.as.push(img)}}},getDistancelatlon:function(ac){var dA=0.0;var R=6371;for(var i=0;i<ac.length-1;i++){var point1=ac[i];var point2=ac[i+1];point1=this.UTMToLatLon(point1);point2=this.UTMToLatLon(point2);var distance=Math.acos(Math.sin(point1.y*Math.PI/180)*Math.sin(point2.y*Math.PI/180)+Math.cos(point1.y*Math.PI/180)*Math.cos(point2.y*Math.PI/180)*Math.cos((point2.x-point1.x)*Math.PI/180))*R;dA+=distance;}return dA;},getHeight:function(){return this.I;},getWidth:function(){return this.P;},getDrawLayer:function(){return this.aL;},getStaticDrawLayer:function(){return this.bR;},getMouseLayer:function(){return this.at;},getMapContainer:function(){return this.l;},getTrackCoords:function(){tmpcoord=this.trackCoords;this.trackCoords=null;return tmpcoord;},getCenterCoordinate:function(){return new Coordinate(this.m.left+(this.O*(this.P/2)),this.m.top-(this.O*(this.I/2)),this.aC);},getBoundingBox:function(){return this.m;},setEPSG:function(epsg){this.dO=epsg;},getEPSG:function(){return this.dO;},setMapStyle:function(ea){this.aJ=ea;this.cF();this.aG({'x':0,'y':0});},disableAnnotationInfo:function(){this.aY=false;},enableAnnotationInfo:function(){this.aY=true;},getMapStyle:function(){return this.aJ;},getCurrentMouseCoords:function(){return this.f;},getMouseDownCoords:function(){return this.o;},getMouseDownMapCoords:function(){return this.bB;},getMouseMapCoords:function(){return this.V;},setMouseZoom:function(dJ){this.aU=dJ;},allowMouseNavigation:function(){this.ah=true;},disallowMouseNavigation:function(){this.ah=false;},getZoomLevel:function(){return this.n;},be:function(cI){cH=cI.offsetTop;aS=cI.offsetParent;while(aS!=null){cH+=aS.offsetTop;if(aS!=null){aS=aS.offsetParent;}}return cH;},aZ:function(cI){cH=cI.offsetLeft;aS=cI.offsetParent;while(aS!=null){cH+=aS.offsetLeft;aS=aS.offsetParent;}return cH;},cz:function(U){if(U.which==null){dr=(U.button<2)?"LEFT":((U.button==4)?"MIDDLE":"RIGHT");}else{dr=(U.which<2)?"LEFT":((U.which==2)?"MIDDLE":"RIGHT");}return dr;},aa:function(J){return J.transform(this.aC);},geoToScreenCoordinates:function(L){L=this.aa(L);var cf=256/AJAXMAP.ZOOMLEVELS[this.n];var cb=(L.x-this.K)*cf;var bY=(this.M-L.y)*cf;return{'x':cb,'y':bY};},getPixelLatLon:function(pixel){var coordsperpixel=AJAXMAP.ZOOMLEVELS[this.n]/256;utm={'x':(this.m.left+(pixel.x*coordsperpixel)),'y':(this.m.top-(pixel.y*coordsperpixel))};latLon=this.UTMToLatLon(new Coordinate(utm.x,utm.y));return latLon;},decimalDegreesToUTM:function(L){return L.toUTM(L.x,L.y,L.epsgToZone(this.aC));},UTMToLatLon:function(ck){return ck.fromUTM(ck.x,ck.y,ck.epsgToZone(this.aC));},getDistance:function(points){var t=0.0;for(var i=0;i<points.length-1;i++){var point1=points[i];var point2=points[i+1];var distance=Math.sqrt((point2.x-point1.x)*(point2.x-point1.x)+(point1.y-point2.y)*(point1.y-point2.y));t+=distance;}return this.cE(t,0);},getCircuit:function(points){var t=0.0;if(points.length>2){for(var i=0;i<points.length-1;i++){var point1=points[i];var point2=points[i+1];var distance=Math.sqrt((point2.x-point1.x)*(point2.x-point1.x)+(point1.y-point2.y)*(point1.y-point2.y));t+=distance;}}if(points.length>2){var distance=Math.sqrt((points[points.length-1].x-points[0].x)*(points[points.length-1].x-points[0].x)+(points[0].y-points[points.length-1].y)*(points[0].y-points[points.length-1].y));t+=distance;}return this.cE(t,0);},getArea:function(points){var t=0.0;if(points.length>2){var numPoints=points.length;t=(points[points.length-1].x*points[0].y)-(points[0].x*points[points.length-1].y);for(var i=0;i<numPoints-1;i++){t=t+(points[i].x*points[i+1].y)-(points[i+1].x*points[i].y);}t=t/2;}if(t<0){t= -t;}return this.cE(t,0);},ao:function(L){var dX=parseInt(L.x/AJAXMAP.ZOOMLEVELS[this.n]);var ec=parseInt(L.y/AJAXMAP.ZOOMLEVELS[this.n]);var ej=AJAXMAP.ZOOMLEVELS[this.n]*dX;var ek=AJAXMAP.ZOOMLEVELS[this.n]*ec;return new Coordinate(ej,ek,L.srs);},cE:function(Num,Places){if(Places>0){if((Num.toString().length-Num.toString().lastIndexOf('.'))>(Places+1)){var Rounder=Math.pow(10,Places);return Math.round(Num*Rounder)/Rounder;}else return Num;}else return Math.round(Num);},dD:function(U){var bW=0;if(!U){U=window.event;}if(U.wheelDelta){bW=U.wheelDelta/120;}else if(U.detail){bW= -U.detail/3;}if(bW){this.dY(bW);}if(U.preventDefault){U.preventDefault();}U.returnValue=false;},dY:function(bW){if(!this.aW){if(bW<0){if(this.ah)this.mouseZoomOut();}else{if(this.ah)this.mouseZoomIn();}}}};function Annotation(L,dE,cy,cW,bh,bl,cD,cG,cV){this.parent=null;this.id= ++annotationStatic.annotationCount;this.coordinate=L;this.title=dE?dE:"";this.description=cy?cy:"";this.lowerbound=cD?cD:0;this.upperbound=cG?cG:99;this.xOffset=bh?parseInt(bh):0;this.yOffset=bl?parseInt(bl):0;this.group=cV?cV:0;this.x=0;this.y=0;this.img=null;this.iconURL=cW?cW:'http://www.webatlas.no/webatlasapi/v/071009/media/interface/default/markers/flag_blue.gif';this.element=null;};var annotationStatic={'annotationCount':0};Annotation.prototype={aX:function(U){$(this.element).fire("annotation:mouseClicked",{'annotation':this});},bz:function(U){$(this.element).fire("annotation:mouseUp",{'annotation':this});},bi:function(U){$(this.element).fire("annotation:mouseDown",{'annotation':this});},bt:function(U){$(this.element).fire("annotation:mouseOut",{'annotation':this});this.parent.hideAnnotationPopup();},bA:function(U){$(this.element).fire("annotation:mouseIn",{'annotation':this});this.parent.showAnnotationPopup(this);},dW:0};function Layer(au){this.type=au.type?au.type:'webatlastile';this.name=au.name?au.name:'';this.zIndex=au.zIndex?au.zIndex:0;this.wmsRequest=au.wmsrequest?au.wmsrequest:null;if(au.visible!='undefined'&&au.visible!=null)this.visible=au.visible;else this.visible=true;};Layer.prototype={};function Coordinate(cb,bY,aC){this.x=cb;this.y=bY;this.srs=aC?aC:'EPSG:32633';};Coordinate.prototype={toUTM:function(x,y,zone){var dK=parseFloat(x);var ep=parseFloat(y);var cT=Math.PI;var et=cT/4;var cl=cT/180;var ci=180.0/cT;var dC=6378137;var w=0.00669438;var ds=0.9996;var bk;var af;var en;var cR;var du;var bo;var dL;var dH=(dK+180)-parseInt((dK+180)/360)*360-180;var aK=ep*cl;var dM=dH*cl;var cg;var bm;bm=Math.abs(zone);bk=(bm-1)*6-180+3;cg=bk*cl;af=(w)/(1-w);en=dC/Math.sqrt(1-w*Math.sin(aK)*Math.sin(aK));cR=Math.tan(aK)*Math.tan(aK);du=af*Math.cos(aK)*Math.cos(aK);bo=Math.cos(aK)*(dM-cg);dL=dC*((1-w/4-3*w*w/64-5*w*w*w/256)*aK-(3*w/8+3*w*w/32+45*w*w*w/1024)*Math.sin(2*aK)+(15*w*w/256+45*w*w*w/1024)*Math.sin(4*aK)-(35*w*w*w/3072)*Math.sin(6*aK));var dn=(ds*en*(bo+(1-cR+du)*bo*bo*bo/6+(5-18*cR+cR*cR+72*du-58*af)*bo*bo*bo*bo*bo/120)+500000.0);var cw=(ds*(dL+en*Math.tan(aK)*(bo*bo/2+(5-cR+9*du+4*du*du)*bo*bo*bo*bo/24+(61-58*cR+cR*cR+600*du-330*af)*bo*bo*bo*bo*bo*bo/720)));if(zone<0)cw+=10000000.0;return new Coordinate(dn,cw,zone>=0?"EPSG:326"+zone:"EPSG:327"+(-zone));},fromUTM:function(x,y,zone){var cT=Math.PI;var cl=cT/180;var ci=180.0/cT;var ds=0.9996;var dC=6378137;var w=0.00669438;var af=(w)/(1-w);var bH=(1-Math.sqrt(1-w))/(1+Math.sqrt(1-w));var dZ,cr,cd,el,bn,dL;var bk;var dq,eo,aB;var bm=zone;var y0=0;if(bm<0){y0=10000000.0;}bk=(bm-1)*6-180+3;dL=(y-y0)/ds;dq=dL/(dC*(1-w/4-3*w*w/64-5*w*w*w/256));aB=dq+(3*bH/2-27*bH*bH*bH/32)*Math.sin(2*dq)+(21*bH*bH/16-55*bH*bH*bH*bH/32)*Math.sin(4*dq)+(151*bH*bH*bH/96)*Math.sin(6*dq);eo=aB*ci;dZ=dC/Math.sqrt(1-w*Math.sin(aB)*Math.sin(aB));cr=Math.tan(aB)*Math.tan(aB);cd=af*Math.cos(aB)*Math.cos(aB);el=dC*(1-w)/Math.pow(1-w*Math.sin(aB)*Math.sin(aB),1.5);bn=(x-500000.0)/(dZ*ds);Lat=aB-(dZ*Math.tan(aB)/el)*(bn*bn/2-(5+3*cr+10*cd-4*cd*cd-9*af)*bn*bn*bn*bn/24+(61+90*cr+298*cd+45*cr*cr-252*af-3*cd*cd)*bn*bn*bn*bn*bn*bn/720);Lat=Lat*ci;Long=(bn-(1+2*cr+cd)*bn*bn*bn/6+(5-2*cd+28*cr-3*cd*cd+8*af+24*cr*cr)*bn*bn*bn*bn*bn/120)/Math.cos(aB);Long=bk+Long*ci;return new Coordinate(Long,Lat,"EPSG:4326");},epsgToZone:function(epsg_code){if(epsg_code.indexOf("EPSG:")==0){if(epsg_code.substr(5,3)=="326")return parseInt(epsg_code.substr(8,3));if(epsg_code.substr(5,3)=="327")return-parseInt(epsg_code.substr(8,3));}return 0;},transform:function(to_srs){if(this.srs==to_srs)return new Coordinate(this.x,this.y,this.srs);var from_zone=this.epsgToZone(this.srs);var to_zone=this.epsgToZone(to_srs);if(from_zone==0&&this.srs!="EPSG:4326")throw "Unknown cooddinate system: "+this.srs;if(to_zone==0&&to_srs!="EPSG:4326")throw "Unknown cooddinate system: "+to_srs;if(from_zone==0&&to_zone!=0)return this.toUTM(this.x,this.y,to_zone);if(from_zone!=0&&to_zone==0)return this.fromUTM(this.x,this.y,from_zone);if(from_zone!=0&&to_zone!=0){var geo=this.fromUTM(this.x,this.y,from_zone);return geo.toUTM(geo.x,geo.y,to_zone);}throw "Unable to transform between "+this.srs+" and "+to_srs;}};function Move(cb,bY){this.x=cb;this.y=bY;};Move.prototype={};function WMSRequest(dw,H,dh,cZ,dv,cU,cu,da){this.id= ++WMSRequestStatic.WMSRequestCount;this.url=dw;this.layers=H;this.format=dh?dh:'image/png';this.service=cZ?cZ:'WMS';this.styles=dv?dv:'';this.version=cU?cU:'1.1';this.transparent=cu?cu:'true';this.bgColor=da?da:'0xFFFFFF';this.srs='EPSG:32633';};var WMSRequestStatic={'WMSRequestCount':0};WMSRequest.prototype={addLayer:function(bV){this.layers+=','+bV;}};function WAPICanvas(){var k=document.createElement('canvas');k.setAttribute('width',100);k.setAttribute('height',100);k.style.position="absolute";k.style.top="0px";k.style.left="0px";k.style.width="100%";k.style.height="100%";k.style.zIndex=1000;this.element=k;this.surface=null;this.lines=[];this.parent=null;this.A={'X':0,'Y':0};this.C={'X':200,'Y':200};this.useex=false;this.m_groups=new Hash();this.m_defaultGroupName="_default";Event.observe(document,'map:resized',this.redraw.bindAsEventListener(this));Event.observe(document,'map:moved',this.redraw.bindAsEventListener(this));Event.observe(document,'map:zoomed',this.redraw.bindAsEventListener(this));};WAPICanvas.prototype={addPolyLine:function(dG,Z){Z=this._parseOptions(Z);var bb=this.m_groups.get(Z.group);if(bb==null){bb=[];this.m_groups.set(Z.group,bb);}bb.push(dG);if(!Z.supressRedraw)this.redraw();},redraw:function(){this.surface.clearRect(0,0,this.element.width,this.element.height);this.A={'X':0,'Y':0};this.C={'X':this.parent.getWidth(),'Y':this.parent.getHeight()};var de=this.m_groups.values();for(var g=0;g<de.length;g++){var bb=de[g];for(var i=0;i<bb.length;i++){this.surface.beginPath();this.surface.strokeStyle=bb[i].rgba;this.surface.lineWidth=bb[i].lineWidth;this.surface.lineCap='round';var bv=[];for(var j=0;j<bb[i].coordinates.length;j++){var dF=this.parent.geoToScreenCoordinates(bb[i].coordinates[j]);bv.push(dF);}for(var j=0;j<bv.length;j++){if(j!=bv.length-1){var dF=bv[j];var ee=bv[j+1];var lineSegment={'Start':{'X':parseInt(dF.x),'Y':parseInt(dF.y)},'End':{'X':parseInt(ee.x),'Y':parseInt(ee.y)}};lineSegment.Dy=lineSegment.End.Y-lineSegment.Start.Y;lineSegment.Dx=lineSegment.End.X-lineSegment.Start.X;var intersects=true;var skipPoint=false;if(lineSegment.Start.X==lineSegment.End.X&&lineSegment.Start.Y==lineSegment.End.Y)skipPoint=true;if(skipPoint==false){if(this.surface.useex)intersects=this.clipLine(lineSegment);if(intersects==true){this.surface.moveTo(lineSegment.Start.X,lineSegment.Start.Y);this.surface.lineTo(lineSegment.End.X,lineSegment.End.Y);}}}}this.surface.stroke();}}},clear:function(Z){Z=this._parseOptions(Z);if(Z.group==this.m_defaultGroupName){this.m_groups=new Hash();}else this.m_groups.unset(Z.group);if(!Z.supressRedraw)this.redraw();},_parseOptions:function(Z){var aO=false;var cL=this.m_defaultGroupName;var by=typeof Z;if(by!="undefined"){if(by=="boolean"){aO=Z;}else if(by=="string"&&(Z=="true"||Z=="false")){aO=Z=="true";}else if(by=="string"){cL=Z;}else{var cQ=Z.supressRedraw;aO=typeof cQ=="boolean"?cQ:aO;cQ=Z.group;cL=typeof cQ=="string"?cQ:cL;}}return{supressRedraw:aO,group:cL};},clipStartTop:function(line){line.Start.X+=line.Dx*(this.A.Y-line.Start.Y)/line.Dy;line.Start.Y=this.A.Y;},clipStartBottom:function(line){line.Start.X+=line.Dx*(this.C.Y-line.Start.Y)/line.Dy;line.Start.Y=this.C.Y;},clipStartRight:function(line){line.Start.Y+=line.Dy*(this.C.X-line.Start.X)/line.Dx;line.Start.X=this.C.X;},clipStartLeft:function(line){line.Start.Y+=line.Dy*(this.A.X-line.Start.X)/line.Dx;line.Start.X=this.A.X;},clipEndTop:function(line){line.End.X+=line.Dx*(this.A.Y-line.End.Y)/line.Dy;line.End.Y=this.A.Y;},clipEndBottom:function(line){line.End.X+=line.Dx*(this.C.Y-line.End.Y)/line.Dy;line.End.Y=this.C.Y;},clipEndRight:function(line){line.End.Y+=line.Dy*(this.C.X-line.End.X)/line.Dx;line.End.X=this.C.X;},clipEndLeft:function(line){line.End.Y+=line.Dy*(this.A.X-line.End.X)/line.Dx;line.End.X=this.A.X;},clipLine:function(line){var lineCode=0;if(line.End.Y<this.A.Y)lineCode+=8;else if(line.End.Y>this.C.Y)lineCode+=4;if(line.End.X>this.C.X)lineCode+=2;else if(line.End.X<this.A.X)lineCode+=1;if(line.Start.Y<this.A.Y)lineCode+=128;else if(line.Start.Y>this.C.Y)lineCode+=64;if(line.Start.X>this.C.X)lineCode+=32;else if(line.Start.X<this.A.X)lineCode+=16;switch(lineCode){case 0:return true;case 1:this.clipEndLeft(line);return true;case 2:this.clipEndRight(line);return true;case 4:this.clipEndBottom(line);return true;case 5:this.clipEndLeft(line);if(line.End.Y>this.C.Y)this.clipEndBottom(line);return true;case 6:this.clipEndRight(line);if(line.End.Y>this.C.Y)this.clipEndBottom(line);return true;case 8:this.clipEndTop(line);return true;case 9:this.clipEndLeft(line);if(line.End.Y<this.A.Y)this.clipEndTop(line);return true;case 10:this.clipEndRight(line);if(line.End.Y<this.A.Y)this.clipEndTop(line);return true;case 16:this.clipStartLeft(line);return true;case 18:this.clipStartLeft(line);this.clipEndRight(line);return true;case 20:this.clipStartLeft(line);if(line.Start.Y>this.C.Y)return false;this.clipEndBottom(line);return true;case 22:this.clipStartLeft(line);if(line.Start.Y>this.C.Y)return false;this.clipEndBottom(line);if(line.End.X>this.C.X)this.clipEndRight(line);return true;case 24:this.clipStartLeft(line);if(line.Start.Y<this.A.Y)return false;this.clipEndTop(line);return true;case 26:this.clipStartLeft(line);if(line.Start.Y<this.A.Y)return false;this.clipEndTop(line);if(line.End.X>this.C.X)this.clipEndRight(line);return true;case 32:this.clipStartRight(line);return true;case 33:this.clipStartRight(line);this.clipEndLeft(line);return true;case 36:this.clipStartRight(line);if(line.Start.Y>this.C.Y)return false;this.clipEndBottom(line);return true;case 37:this.clipStartRight(line);if(line.Start.Y>this.C.Y)return false;this.clipEndBottom(line);if(line.End.X<this.A.X)this.clipEndLeft(line);return true;case 40:this.clipStartRight(line);if(line.Start.Y<this.A.Y)return false;this.clipEndTop(line);return true;case 41:this.clipStartRight(line);if(line.Start.Y<this.A.Y)return false;this.clipEndTop(line);if(line.End.X<this.A.X)this.clipEndLeft(line);return true;case 64:this.clipStartBottom(line);return true;case 65:this.clipStartBottom(line);if(line.Start.X<this.A.X)return false;this.clipEndLeft(line);if(line.End.Y>this.C.Y)this.clipEndBottom(line);return true;case 66:this.clipStartBottom(line);if(line.Start.X>this.C.X)return false;this.clipEndRight(line);return true;case 72:this.clipStartBottom(line);this.clipEndTop(line);return true;case 73:this.clipStartBottom(line);if(line.Start.X<this.A.X)return false;this.clipEndLeft(line);if(line.End.Y<this.A.Y)this.clipEndTop(line);return true;case 74:this.clipStartBottom(line);if(line.Start.X>this.C.X)return false;this.clipEndRight(line);if(line.End.Y<this.A.Y)this.clipEndTop(line);return true;case 80:this.clipStartLeft(line);if(line.Start.Y>this.C.Y)this.clipStartBottom(line);return true;case 82:this.clipEndRight(line);if(line.End.Y>this.C.Y)return false;this.clipStartBottom(line);if(line.Start.X<this.A.X)this.clipStartLeft(line);return true;case 88:this.clipEndTop(line);if(line.End.X<this.A.X)return false;this.clipStartBottom(line);if(line.Start.X<this.A.X)this.clipStartLeft(line);return true;case 90:this.clipStartLeft(line);if(line.Start.Y<this.A.Y)return false;this.clipEndRight(line);if(line.End.Y>this.C.Y)return false;if(line.Start.Y>this.C.Y)this.clipStartBottom(line);if(line.End.Y<this.A.Y)this.clipEndTop(line);return true;case 96:this.clipStartRight(line);if(line.Start.Y>this.C.Y)this.clipStartBottom(line);return true;case 97:this.clipEndLeft(line);if(line.End.Y>this.C.Y)return false;this.clipStartBottom(line);if(line.Start.X>this.C.X)this.clipStartRight(line);return true;case 104:this.clipEndTop(line);if(line.End.X>this.C.X)return false;this.clipStartRight(line);if(line.Start.Y>this.C.Y)this.clipStartBottom(line);return true;case 105:this.clipEndLeft(line);if(line.End.Y>this.C.Y)return false;this.clipStartRight(line);if(line.Start.Y<this.A.Y)return false;if(line.End.Y<this.A.Y)this.clipEndTop(line);if(line.Start.Y>this.C.Y)this.clipStartBottom(line);return true;case 128:this.clipStartTop(line);return true;case 129:this.clipStartTop(line);if(line.Start.X<this.A.X)return false;this.clipEndLeft(line);return true;case 130:this.clipStartTop(line);if(line.Start.X>this.C.X)return false;this.clipEndRight(line);return true;case 132:this.clipStartTop(line);this.clipEndBottom(line);return true;case 133:this.clipStartTop(line);if(line.Start.X<this.A.X)return false;this.clipEndLeft(line);if(line.End.Y>this.C.Y)this.clipEndBottom(line);return true;case 134:this.clipStartTop(line);if(line.Start.X>this.C.X)return false;this.clipEndRight(line);if(line.End.Y>this.C.Y)this.clipEndBottom(line);return true;case 144:this.clipStartLeft(line);if(line.Start.Y<this.A.Y)this.clipStartTop(line);return true;case 146:this.clipEndRight(line);if(line.End.Y<this.A.Y)return false;this.clipStartTop(line);if(line.Start.X<this.A.X)this.clipStartLeft(line);return true;case 148:this.clipEndBottom(line);if(line.End.X<this.A.X)return false;this.clipStartLeft(line);if(line.Start.Y<this.A.Y)this.clipStartTop(line);return true;case 150:this.clipStartLeft(line);if(line.Start.Y>this.C.Y)return false;this.clipEndRight(line);if(line.End.Y<this.A.Y)return false;if(line.Start.Y<this.A.Y)this.clipStartTop(line);if(line.End.Y>this.C.Y)this.clipEndBottom(line);return true;case 160:this.clipStartRight(line);if(line.Start.Y<this.A.Y)this.clipStartTop(line);return true;case 161:this.clipEndLeft(line);if(line.End.Y<this.A.Y)return false;this.clipStartTop(line);if(line.Start.X>this.C.X)this.clipStartRight(line);return true;case 164:this.clipEndBottom(line);if(line.End.X>this.C.X)return false;this.clipStartRight(line);if(line.Start.Y<this.A.Y)this.clipStartTop(line);return true;case 165:this.clipEndLeft(line);if(line.End.Y<this.A.Y)return false;this.clipStartRight(line);if(line.Start.Y>this.C.Y)return false;if(line.End.Y>this.C.Y)this.clipEndBottom(line);if(line.Start.Y<this.A.Y)this.clipStartTop(line);return true;}return false;}};function PolyLine(ac,Z){this.coordinates=ac?ac:[];if(Z){this.rgba=Z.rgba?Z.rgba:"rgba(0,0,0,1.0)";this.lineWidth=Z.lineWidth?Z.lineWidth:2;}else{this.rgba="rgba(0,0,0,1.0)";this.lineWidth=2;}};PolyLine.prototype={addPoint:function(cJ){this.coordinates.push(cJ);}};function GUI(aw){this.aP="http://www.webatlas.no/webatlasapi/v/latest/media/interface/default/";this.aw=aw?aw:'small';this.mapControl=null;this.element=document.createElement('div');divIdName='guibackground';this.element.style.position="absolute";this.element.style.left="16px";this.element.setAttribute('id',divIdName);Event.observe(this.element,'mouseup',this.bP.bindAsEventListener(this));Event.observe(this.element,'dblclick',this.bP.bindAsEventListener(this));Event.observe(this.element,'mousedown',this.bP.bindAsEventListener(this));var aF=document.createElement('div');aF.style.background="url("+this.aP+this.aw+"/east.jpg)";aF.style.position="absolute";aF.style.width="16px";aF.style.height="16px";aF.style.left="32px";aF.style.top="34px";aF.setAttribute('id','eastButton');this.element.appendChild(aF);Event.observe(aF,'click',this.bO.bindAsEventListener(this));var aE=document.createElement('div');aE.style.background="url("+this.aP+this.aw+"/west.jpg)";aE.style.position="absolute";aE.style.width="16px";aE.style.height="16px";aE.style.left="0px";aE.style.top="34px";aE.setAttribute('id','westButton');this.element.appendChild(aE);Event.observe(aE,'click',this.bN.bindAsEventListener(this));var ax=document.createElement('div');ax.style.background="url("+this.aP+this.aw+"/north.jpg)";ax.style.position="absolute";ax.style.width="16px";ax.style.height="16px";ax.style.left="16px";ax.style.top="17px";ax.setAttribute('id','northButton');this.element.appendChild(ax);Event.observe(ax,'click',this.bK.bindAsEventListener(this));var av=document.createElement('div');av.style.background="url("+this.aP+this.aw+"/south.jpg)";av.style.position="absolute";av.style.width="16px";av.style.height="16px";av.style.left="16px";av.style.top="50px";av.setAttribute('id','southButton');this.element.appendChild(av);Event.observe(av,'click',this.bI.bindAsEventListener(this));var ar=document.createElement('div');ar.style.background="url("+this.aP+this.aw+"/normal.jpg)";ar.style.position="absolute";ar.style.width="48px";ar.style.height="16px";ar.style.left="0px";ar.style.top="104px";ar.setAttribute('id','style_normalButton');this.element.appendChild(ar);Event.observe(ar,'click',this.bq.bindAsEventListener(this));var ay=document.createElement('div');ay.style.background="url("+this.aP+this.aw+"/ortho.jpg)";ay.style.position="absolute";ay.style.width="48px";ay.style.height="16px";ay.style.left="0px";ay.style.top="122px";ay.setAttribute('id','style_orthoButton');this.element.appendChild(ay);Event.observe(ay,'click',this.bw.bindAsEventListener(this));var ap=document.createElement('div');ap.style.background="url("+this.aP+this.aw+"/hybrid.jpg)";ap.style.position="absolute";ap.style.width="48px";ap.style.height="16px";ap.style.left="0px";ap.style.top="140px";ap.setAttribute('id','style_hybridButton');this.element.appendChild(ap);Event.observe(ap,'click',this.bs.bindAsEventListener(this));var aq=document.createElement('div');aq.style.background="url("+this.aP+this.aw+"/zoom_In.jpg)";aq.style.position="absolute";aq.style.width="16px";aq.style.height="16px";aq.style.left="16px";aq.style.top="68px";aq.setAttribute('id','zoomInButton');this.element.appendChild(aq);Event.observe(aq,'click',this.bG.bindAsEventListener(this));var an=document.createElement('div');an.style.background="url("+this.aP+this.aw+"/zoom_Out.jpg)";an.style.position="absolute";an.style.width="16px";an.style.height="16px";an.style.left="16px";an.style.top="86px";an.setAttribute('id','zoomOutButton');this.element.appendChild(an);Event.observe(an,'click',this.bF.bindAsEventListener(this));};GUI.prototype={bI:function(bE){aD=new Move(0,parseInt(-this.mapControl.getHeight()/3));this.mapControl.move(aD);bE.stop();},bK:function(bE){aD=new Move(0,parseInt(this.mapControl.getHeight()/3));this.mapControl.move(aD);bE.stop();},bO:function(bE){aD=new Move(parseInt(-this.mapControl.getWidth()/3),0);this.mapControl.move(aD);bE.stop();},bN:function(bE){aD=new Move(parseInt(this.mapControl.getHeight()/3),0);this.mapControl.move(aD);bE.stop();},bq:function(bE){this.mapControl.setMapStyle(0);bE.stop();},bw:function(bE){this.mapControl.setMapStyle(1);bE.stop();},bs:function(bE){this.mapControl.setMapStyle(2);bE.stop();},bG:function(bE){this.mapControl.zoomIn();bE.stop();},bF:function(bE){this.mapControl.zoomOut();bE.stop();},bP:function(bE){bE.stop();}}; 
