var GUIController=Class.create();GUIController.prototype={al:null,bw:null,pU:null,eb:null,qd:null,cK:null,pS:false,pO:true,jm:null,initialize:function(bD,dn,ou,oV,xV,kL){this.jm=kL;this.al=bD;this.bw=dn;this.pU=xV;this.pS=$defined(ou)?ou:false;this.pO=$defined(oV)?oV:true;this.al.addEventListener("onbeginpan",this.vH.bind(this));this.al.addEventListener("onbeginpan",this.closeBubble.bind(this));this.al.addEventListener("onendpan",this.vE.bind(this));this.al.addEventListener("onpan",this.vL.bind(this));this.al.addEventListener("onchangeview",this.closeBubble.bind(this));this.al.addEventListener("onchangeview",this.vK.bind(this));this.al.addEventListener("onchangeview",this.vy.bind(this));this.al.addEventListener("onresize",this.vQ.bind(this));try{this.al.addEventListener("onprocessrequest",this.vR.bind(this));this.al.addEventListener("onaddmeasurepoint",this.wc.bind(this));this.al.addEventListener("onclearmeasurepoints",this.wd.bind(this));}catch(e){}try{this.al.addEventListener("onloadbirdseye",this.vF.bind(this));this.al.addEventListener("onbirdseyeloaded",this.oz.bind(this));this.al.addEventListener("onbirdseyefailed",this.oz.bind(this));}catch(e){}this.al.addEventListener("onmapstylechange",this.mX.bind(this));this.qd=this.addEventType("onrssloaded");this.cK='<div id="pop" class="boble">';this.cK+='	<div class="topp">';this.cK+='		<div class="kropp">';this.cK+='			<div class="indikator"></div>';this.cK+='			<p class="lukk"><a href="#" title="Lukk"><img onclick="guiController.closeBubble();" src="/Resource/Map/images/gfx2/bubble2/lukkekryss.gif" width="16" height="13" /></a></p>';this.cK+='			<div class="innhold" id="bubbleContentPlaceholder">';this.cK+='			</div>';if(this.pS){this.cK+='          <p class="promo_1881"><a href="http://www.1881.no/" target="_blank"><img src="/Resource/Map/images/gfx2/bubble2/1881_logo_boble.gif" alt="1881.no" width="30" height="31" /></a> Informasjon fra <a href="http://www.1881.no/" target="_blank">1881.no</a></p>';}this.cK+='		</div>';this.cK+='	</div>';this.cK+='	<div class="bunn">';this.cK+='		<div class="indikator"></div>';this.cK+='	</div>';this.cK+='</div>';},jM:0,loadGeoRSS:function(bW){var aM=$defined(bW.url)?bW.url:null,bj=$defined(bW.collectionId)?bW.collectionId:"_defaultCollection",bf=$defined(bW.icon)?bW.icon:null,bq=$defined(bW.iconOffset)?bW.iconOffset:{x:0,y:0},hn=$defined(bW.srs)?bW.srs:null,cO=$defined(bW.upperBound)?bW.upperBound:100,dv=$defined(bW.zoom)?bW.zoom:false,hK=$defined(bW.zoomLowerBound)?bW.zoomLowerBound:0,aG=$defined(bW.onloadedCallback)?bW.onloadedCallback:null;if(aM==null){throw{message:"loadGeoRSS : Missing request field 'url'"}}if(aM.substring(0,1)=="/"){var xe=window.location.href.substring(0,window.location.href.indexOf("/",8));aM=xe+aM;}if(window.XMLHttpRequest){var mk=new window.XMLHttpRequest();mk.open("GET",aM,false);mk.send("");this.eb=mk.responseXML;this.lY(bj,bf,hn,cO,dv,bq.x,bq.y,aG,hK,++this.jM);}else{if(document.implementation&&document.implementation.createDocument){this.eb=document.implementation.createDocument("","",null);this.eb.async="false";this.eb.onload=this.lY.bind(this,bj,bf,hn,cO,dv,bq.x,bq.y,aG,hK,++this.jM);}else if(window.ActiveXObject){try{this.eb=new ActiveXObject("Microsoft.XMLDOM");this.eb.async="false";this.eb.onreadystatechange=this.lY.bind(this,bj,bf,hn,cO,dv,bq.x,bq.y,aG,hK,++this.jM);}catch(e){alert(e.message);}}else{return;}this.eb.load(aM);}},lY:function(bj,bf,hn,cO,dv,ew,fA,aG,hK,requestNr){if(this.jM>requestNr){}else{var x=this.eb.getElementsByTagName('item');var ao=0;try{ao=(x!=null)?x.length:0;}catch(e){}if(ao==0){x=this.eb.getElementsByTagName('entry');try{ao=(x!=null)?x.length:0;}catch(e){}}var cb=new Array();var bu=180,bo= -180,bp= -90,bs=90;for(i=0;i<ao;i++){var bf=(bf!=null)?bf:"/Resource/Map/gfx2/leftmenu/poi/universitet.gif";var aS=null,aW="",ia=null,ip=null,id=bj+"_"+i;var rP=x[i].childNodes;for(j=0;j<rP.length;j++){var ap=rP[j];if(ap.nodeType!=1){continue;}try{var dP=ap.tagName;if(dP=='title'){aS=ap.firstChild.nodeValue;}if(dP=='description'||dP=='content'){aW=ap.firstChild.nodeValue;for(var k=1;k<ap.childNodes.length;k++){aW+=ap.childNodes[k].nodeValue;}var cdataloc=aW.indexOf("<![CDATA[");if(cdataloc!= -1){var dlength=aW.length;aW=aW.substring(9,dlength-3);}}if(dP=='icon'){bf=ap.firstChild.nodeValue;}if(dP=='gisline:ikonurl'){bf=ap.firstChild.nodeValue;}if(dP=='ikonurl'){bf=ap.firstChild.nodeValue;}if(dP=='geo:lat'){ia=ap.firstChild.nodeValue;}if(dP=='geo:long'){ip=ap.firstChild.nodeValue;}if(dP=='id'){id=ap.firstChild.nodeValue;}if(dP=='georss:where'||dP=='where'){var value=ap.text;if(value==null){value=ap.textContent;}if(value.indexOf(",")!= -1){value=value.replace(/,/g,".");}var pos=value.strip().split(" ");if(hn!=null){var wgs=Utilities.Trans.UTMToLatLon(Number(pos[0]),Number(pos[1]),hn+10);ia=wgs.lat;ip=wgs.lon;}else{ia=Number(pos[0].strip());ip=Number(pos[1].strip());}}}catch(e){}}if(ia!=null&&ip!=null){var aE={'x':Number(ip),'y':Number(ia)};if(aE.x!=0&&aE.y!=0){if(aE.x<bu)bu=aE.x;if(aE.x>bo)bo=aE.x;if(aE.y<bs)bs=aE.y;if(aE.y>bp)bp=aE.y;cb.push([id,bf,aE.y,aE.x,aS,{title:"tittel",description:"beskrivelse"},this.cb_onHotspotTrigger.bind(this),undefined,undefined,ew,fA]);}}}if(typeof dv!="undefined"&&dv==true){if(bu!=180&&bo!= -180&&bs!=180&&bp!= -180){var nP=80;var mY=bo-bu;var qv=bp-bs;var aO=this.al.getWidth();var xC=0;var gI=0;if(this.bw!=null&&this.bw.isVisible()){gI=aO-this.bw.getMenuWidth()-nP;}else{gI=aO-nP;xC=nP/aO;}var uo=(mY*gI)/aO;w=bu-(mY-uo);e=bo+mY*0.1;s=bs-qv*0.1;n=bp+qv*0.1;this.al.setViewport(w,s,e,n,hK);var ay=this.al.getCenter();var ax=this.al.getZoomLevel();this.al.setInitialPosition(ay.lat,ay.lon,ax);}}if(cb.length>2){var tH=cb[cb.length-2];cb[cb.length-2]=cb[0];cb[0]=tH;}if(cb.length>0){this.al.setHotspots(bj,cb,cO);}else{this.al.removeHotspots(bj);}this.qd.fire(bj,ao,{west:bu,east:bo,south:bs,north:bp});if(aG!=null&&typeof aG=="function"){aG();}}},setFlag:function(aC,aD,aS,de,jI){var aP=this.al.setHotspot("/Resource/Map/images/gfx2/kartref/1.gif",aC,aD,-11,-28,$defined(aS)?aS:"",$defined(de)?de:"",$defined(jI)&&jI?this.cb_onHotspotTrigger.bind(this):null);if($defined(jI)&&jI){this.al.showHotspotDialog(aP,150);}},jZ:false,qY:null,cb_onHotspotTrigger:function(aS,aW,aC,aD,dj,cY,dN){if($defined(aW)&&((Object.isString(aW)&&aW.isJSON())|| !Object.isString(aW))){var de=Object.isString(aW)?eval(aW):aW;this.jm.displayBubble(aS,de,aC,aD,dj,cY,dN);}else{if(this.jZ){this.closeBubble();}var fA=0;var ew=0;try{var rY=$("bubbleContainer");var lB=$dom("div");lB.innerHTML=this.cK;lB.$addTo(rY);var hg=$('bubbleContentPlaceholder');hg.innerHTML=(aW!=null)?aW:"";var av=$("pop");av.style.display="none";var zA=Element.getHeight(av);var pg=Element.getWidth(av);var gI=this.al.getWidth();var lQ=this.al.getHeight();var ic=parseInt(dj);var gC=parseInt(cY);var eG=true;var jr=true;if(ic+pg>gI){ew= -pg;jr=false;}else{ew=21;}var fG=0;if(gC>lQ/2){eG=false;fG=gC;}else{eG=true;fG=parseInt(lQ-gC);fA=21;}if(eG&&jr){av.addClassName("pos_top-left");}else if(eG){av.addClassName("pos_top-right");}else if(jr){av.addClassName("pos_bottom-left");}else{av.addClassName("pos_bottom-right");}ic=ic+ew;var yJ=hg.scrollHeight;if(fG>420){fG=420;}if(ic<gI&&gC<lQ){av.style.display="block";if($defined(document.body.style.maxHeight)){hg.style.maxHeight=fG-80+"px";if(!eG){hg.style.height=av.getHeight()+"px";fA-=av.getHeight();}}else{var aJ=av.getHeight();if(aJ<=fG){hg.style.height=aJ-60+"px";if(!eG){fA-=aJ;}}else{hg.style.height=fG-60+"px";if(!eG){fA-=fG;}}}gC=gC+fA;av.style.left=ic+"px";av.style.top=gC+"px";this.jZ=true;}else{rY.removeChild(lB);}}catch(e){}this.qY={title:aS,description:aW,lat:aC,lon:aD,offsetY:fA,offsetX:ew};}},closeBubble:function(){var av=$("pop");if(av!=null){Element.remove(av);}this.jZ=false;this.qY=null;},sn:null,changeBubbleRouteSearchHeader:function(om,cs){var av=$("labelRouteSearch_"+cs);if(av!=null){av.innerHTML="Veibeskrivelse "+om;}var kn=$("txtRouteSearch_"+cs);if(kn!=null){kn.focus();kn.select();kn.observe('keypress',function(event){if(event.keyCode==Event.KEY_RETURN){var rc=$("imgRouteSearchButton_"+cs);if(rc!=null){rc.click();}event.stop();}});}this.sn=om;},onBubbleRouteSearchClick:function(aC,aD,nX,eu,cs){var lS=this.bw.getMenu().routePlanningController;if(lS!=null){lS.clear();if(this.sn.toLowerCase()=="fra"){menuController.getMenu().addAsTo({'lat':aC,'lon':aD},nX);if(eu!=null&&(eu.description==$F('txtRouteSearch_'+cs))){menuController.getMenu().addAsFrom({'lat':eu.lat,'lon':eu.lon},eu.description);}else{menuController.getMenu().setStartRoutePoint({description:$F('txtRouteSearch_'+cs)});}}else{menuController.getMenu().addAsFrom({'lat':aC,'lon':aD},nX);if(eu!=null&&(eu.description==$F('txtRouteSearch_'+cs))){menuController.getMenu().addAsTo({'lat':eu.lat,'lon':eu.lon},eu.description);}else{menuController.getMenu().setDestinationRoutePoint({description:$F('txtRouteSearch_'+cs)});}}lS.search();}},nS:0,showSpinner:function(){this.nS++;$("spinner").style.display='block';},hideSpinner:function(){this.nS--;if(this.nS==0){$("spinner").style.display='none';}},rF:false,np:"",nn:null,setPointData:function(pointData,bE){try{var gu=$H(pointData.toQueryParams());gu.unset("lat");gu.unset("lon");if($defined(bE)){gu.set("entrylat",bE.lat);gu.set("entrylon",bE.lon);}gu.unset("level");gu.unset("style");pointData=gu.toQueryString();}catch(e){}this.rF=true;this.np=pointData;this.nn=$ifDefined(bE,null);if(this.pO){var ds=this.wu(pointData);if(ds!=""){this.bw.getMenu().weatherSearch(bE.lat,bE.lon,ds);}}},wu:function(te){var cj=te.toQueryParams();var ds="";if(!(cj.streetname==null||cj.streetname.empty())){ds=cj.streetname.replace(/\+/g," ");if(!(cj.gabix==null||cj.gabix.empty())){var hZ=cj.gabix.split('_');if(!hZ[0].empty()){ds+=" "+hZ[0].replace(/\+/g,"");}}}else if(!(cj.street==null||cj.street.empty())){ds=cj.street.replace(/\+/g," ");if(!(cj.gabix==null||cj.gabix.empty())){var hZ=cj.gabix.split('_');if(!hZ[0].empty()){ds+=" "+hZ[0].replace(/\+/g,"");}}}if(!(cj.area==null||cj.area.empty())){if(!ds.empty()){ds+=", ";}ds+=cj.area.replace(/\+/g," ");}if(ds.empty()&&cj.description!=null){ds=cj.description.replace(/\+/g," ");}return ds;},getPointData:function(){return this.np;},getPointLocation:function(){return this.nn;},clearPointData:function(){this.rF=false;this.np="";this.nn=null;},hN:false,ig:null,js:null,sv:null,showShortestPath:function(lN,lc,mn){this.showShortestPathWayPoints([lN,lc],mn);},showShortestPathWayPoints:function(cg,mn){if(this.al.getMapStyle()==MapController.Styles.BIRDS_EYE){this.al.setMapStyle(MapController.Styles.REGULAR);}this.hN=true;if($defined(cg)&&cg.length>=2){this.ig=cg;this.sv=mn;this.js=this.js=this.rm(cg);}this.vl();},setShortestPath:function(lN,lc){this.setShortestPathWayPoints([lN,lc]);},setShortestPathWayPoints:function(cg){this.hN=true;this.ig=cg;this.js=this.rm(cg);},rm:function(cg){var i,ao=cg.length;var mR=180,me= -180,mQ=180,nB= -180;for(i=0;i<ao;i++){var rH=cg[i].toQueryParams();var aC=parseFloat(rH.lat);var aD=parseFloat(rH.lon);if(aC<mR){mR=aC;}if(aC>me){me=aC;}if(aD<mQ){mQ=aD;}if(aD>nB){nB=aD;}}var aq={minLat:mR,maxLat:me,minLon:mQ,maxLon:nB};return aq;},getShortestPath:function(){if(this.hN){return{waypoints:this.ig,viewport:this.js,language:this.sv}}return null;},disableShortestPath:function(){this.hN=false;if($defined(this.al.removeWmsLayer)){this.al.removeWmsLayer("shortestPathOverlay");}this.al.hideLine("route");},nR:false,vF:function(){this.nR=true;this.showSpinner();},oz:function(){if(this.nR){this.hideSpinner();this.nR=false;}},mX:function(am,bk){if(am==MapController.Styles.BIRDS_EYE){Element.show($("minimapContainer"));if($defined(bk)){var iK=["orientationNorth","orientationSouth","orientationEast","orientationWest"];iK.each(function(aP){$(aP).removeClassName("selectedOrientation");});$("orientation"+bk).addClassName("selectedOrientation");}}else{Element.hide($("minimapContainer"));var po=$("printSend");if(po!=null){po.style.display="block";}}},vl:function(){if(!this.hN)return;var kJ=null;var aM=null;if(this.ig!=null){var bB=this.createShortestPathQueryString(this.ig);aM="/Map/Page/RouteImageTransfer.aspx?"+bB;}else{aM="/Map/Page/RouteImage.aspx";}this.al.addWmsLayer({id:"shortestPathOverlay",baseUrl:aM,layer:"route"});},createShortestPathQueryString:function(cg){var gK=new Hash();var i,ao=cg.length;for(i=0;i<ao;i++){var uc=$H(cg[i].toQueryParams());uc.each(function(ap){if(ap.key!=null){var cF="";if(!(ap.key.endsWith("0")||ap.key.endsWith("1")||ap.key.endsWith("2")||ap.key.endsWith("3")||ap.key.endsWith("4")||ap.key.endsWith("5")||ap.key.endsWith("6")||ap.key.endsWith("7")||ap.key.endsWith("8")||ap.key.endsWith("9"))){cF=(i+1);}gK.set(ap.key+cF,encodeURI(ap.value));}});}return gK.toQueryString();},yz:function(){Element.show($("pop"));},zd:function(){Element.hide($("pop"));},zn:null,yY:null,zH:null,yL:null,zM:null,zz:null,qk:null,vH:function(bv){try{this.uU(bv);}catch(e){}},uU:function(bv){var gY=$("mapControls");if(bv=="GLMap"){if(gY!=null){this.qk=gY.getStyle("z-index");gY.setStyle({"zIndex":"999"});}}},wz:function(bv){if(bv=="GLMap"){var gY=$("mapControls");if(gY!=null){gY.setStyle({"zIndex":this.qk});}}},vE:function(bv){try{this.wz(bv);}catch(e){}},wA:false,vL:function(nc,nj){if(this.wA){this.uv(nc,nj);}else{this.closeBubble();}},uv:function(nc,nj){if(this.jZ){var lg=$("pop");var jr=Element.getStyle(lg,"left").replace(/px/g,"");;var eG=Element.getStyle(lg,"top").replace(/px/g,"");var uk=Number(jr)+nc;var tJ=Number(eG)+nj;Element.setStyle(lg,{"left":uk,"top":tJ});}},yC:function(){this.bw.getMenu().resetDrawing();},yZ:function(tU){if(tU==MapController.MEASURE){this.bw.getMenu().showDistanceMeterPane();}},yA:"GLMap",uO:$("map"),vk:$("mapWrap"),ih:$("mapControls"),vK:function(zu,zv,zr,zs,fJ){if(fJ!=this.hk){this.ih.remove();if(fJ=="GLMap"){this.ih.style.zIndex=1001;this.uO.appendChild(this.ih);}else{this.ih.style.zIndex=2003;this.vk.appendChild(this.ih);}this.hk=fJ;}},qE:$("printSend"),vQ:function(){var ls=this.al.getDimensions();this.qE.style.width=ls.width-10+'px';if(this.al.getMapStyle()!=MapController.Styles.BIRDS_EYE){this.qE.style.display="inline";}},yF:true,hideTipBox:function(){this.pU.disableBirdsEyeInfo();},vy:function(){},vR:function(sN,bE,lh){switch(sN){case "setRouteStart":case "setRouteDestination":case "setRouteVia":break;case "showCoordinates":this.cb_onHotspotTrigger("","<div id='pointInfoContainer'><table><tr><td><img style='padding-right:12px' src='/Resource/Map/images/gfx2/spinner.gif' /></td><td><span style='font-size:20px;font-weight:bold'>Henter info</span></td></tr></table></div>",bE.y,bE.x,lh.x,lh.y);Opplysningen.Online.Web.Map.WebAtlasMap.POIProxy.GetPointInfo(bE.y,bE.x,this.wt,this.ww,{thisbind:this,pixelCoordinate:lh,coordinate:bE,contentContainerId:'pointInfoContainer'});break;}},wt:function(aw,cH){$(cH.contentContainerId).update(aw);},ww:function(aw,cH){$(cH.contentContainerId).update("<div style='font-size:14px;color:Red'>Beklager! Feil under henting av info, vennligst pr&oslash;v p&aring; nytt.</div>");},iI:[],wc:function(dB,za){var bl=this.bw.getMenu();var cA=0;var fd=0;var eC=0;var eg=1;var cF="m";if(dB.length>1){cA=Utilities.Karto.getDistance(dB);if(cA>=1000){cF="km";eg=1000;}}if(dB.length>2){fd=Utilities.Karto.getArea(dB);eC=Utilities.Karto.getPerimeter(dB);}bl.$attemptInvoke(function(){bl.updateMeasurements((cA/eg).toFixed(2),(fd/eg/eg).toFixed(2),(eC/eg).toFixed(2),cF);if(dB.length==1){bl.collapsible.showPane(bl.Collapsible.PANELS.Measure,true,true);bl.collapsible.scrollTo(bl.Collapsible.PANELS.Measure);}});},wd:function(){var bl=this.bw.getMenu();bl.$attemptInvoke(bl.resetMeasurements);}};Object.extend(GUIController.prototype,new AbstractEventTrigger());