var GUIController=Class.create();GUIController.prototype={fj:null,gv:null,tz:null,ix:null,um:null,tp:true,oa:null,initialize:function(gw,hQ,te,zL,oP){this.oa=oP;this.fj=gw;this.gv=hQ;this.tz=zL;this.tp=$defined(te)?te:true;this.fj.addEventListener("onchangeview",this.xH.bind(this));this.fj.addEventListener("onresize",this.xC.bind(this));try{this.fj.addEventListener("onaddmeasurepoint",this.xA.bind(this));this.fj.addEventListener("onclearmeasurepoints",this.xB.bind(this));}catch(e){}try{this.fj.addEventListener("onloadbirdseye",this.xM.bind(this));this.fj.addEventListener("onbirdseyeloaded",this.vp.bind(this));this.fj.addEventListener("onbirdseyefailed",this.vp.bind(this));}catch(e){}this.fj.addEventListener("onmapstylechange",this.pn.bind(this));this.um=this.addEventType("onrssloaded");},nF:0,loadGeoRSS:function(gI){var fL=$defined(gI.url)?gI.url:null,gd=$defined(gI.collectionId)?gI.collectionId:"_defaultCollection",fS=$defined(gI.icon)?gI.icon:null,gp=$defined(gI.iconOffset)?gI.iconOffset:{x:0,y:0},kQ=$defined(gI.srs)?gI.srs:null,hv=$defined(gI.upperBound)?gI.upperBound:100,hL=$defined(gI.zoom)?gI.zoom:false,mZ=$defined(gI.zoomLowerBound)?gI.zoomLowerBound:0,fE=$defined(gI.onloadedCallback)?gI.onloadedCallback:null;if(fL==null){throw{message:"loadGeoRSS : Missing request field 'url'"}}if(fL.substring(0,1)=="/"){var yZ=window.location.href.substring(0,window.location.href.indexOf("/",8));fL=yZ+fL;}if(window.XMLHttpRequest){var oE=new window.XMLHttpRequest();oE.open("GET",fL,false);oE.send("");this.ix=oE.responseXML;this.oC(gd,fS,kQ,hv,hL,gp.x,gp.y,fE,mZ,++this.nF);}else{if(document.implementation&&document.implementation.createDocument){this.ix=document.implementation.createDocument("","",null);this.ix.async="false";this.ix.onload=this.oC.bind(this,gd,fS,kQ,hv,hL,gp.x,gp.y,fE,mZ,++this.nF);}else if(window.ActiveXObject){try{this.ix=new ActiveXObject("Microsoft.XMLDOM");this.ix.async="false";this.ix.onreadystatechange=this.oC.bind(this,gd,fS,kQ,hv,hL,gp.x,gp.y,fE,mZ,++this.nF);}catch(e){alert(e.message);}}else{return;}this.ix.load(fL);}},oC:function(gd,fS,kQ,hv,hL,nG,AF,fE,mZ,requestNr){if(this.nF>requestNr){}else{var x=this.ix.getElementsByTagName('item');var fl=0;try{fl=(x!=null)?x.length:0;}catch(e){}if(fl==0){x=this.ix.getElementsByTagName('entry');try{fl=(x!=null)?x.length:0;}catch(e){}}var gN=new Array();var ge=180,fZ= -180,fY= -90,gc=90;for(i=0;i<fl;i++){var fS=(fS!=null)?fS:"/Resource/Map/gfx2/leftmenu/poi/universitet.gif";var fM=null,gC="",lC=null,lJ=null,id=gd+"_"+i;var vN=x[i].childNodes;for(j=0;j<vN.length;j++){var fm=vN[j];if(fm.nodeType!=1){continue;}try{var il=fm.tagName;if(il=='title'){fM=fm.firstChild.nodeValue;}if(il=='description'||il=='content'){gC=fm.firstChild.nodeValue;for(var k=1;k<fm.childNodes.length;k++){gC+=fm.childNodes[k].nodeValue;}var cdataloc=gC.indexOf("<![CDATA[");if(cdataloc!= -1){var dlength=gC.length;gC=gC.substring(9,dlength-3);}}if(il=='icon'){fS=fm.firstChild.nodeValue;}if(il=='gisline:ikonurl'){fS=fm.firstChild.nodeValue;}if(il=='ikonurl'){fS=fm.firstChild.nodeValue;}if(il=='geo:lat'){lC=fm.firstChild.nodeValue;}if(il=='geo:long'){lJ=fm.firstChild.nodeValue;}if(il=='id'){id=fm.firstChild.nodeValue;}if(il=='georss:where'||il=='where'){var value=fm.text;if(value==null){value=fm.textContent;}if(value.indexOf(",")!= -1){value=value.replace(/,/g,".");}var pos=value.strip().split(" ");if(kQ!=null){var wgs=Utilities.Trans.UTMToLatLon(Number(pos[0]),Number(pos[1]),kQ+10);lC=wgs.lat;lJ=wgs.lon;}else{lC=Number(pos[0].strip());lJ=Number(pos[1].strip());}}}catch(e){}}if(lC!=null&&lJ!=null){var fC={'x':Number(lJ),'y':Number(lC)};if(fC.x!=0&&fC.y!=0){if(fC.x<ge)ge=fC.x;if(fC.x>fZ)fZ=fC.x;if(fC.y<gc)gc=fC.y;if(fC.y>fY)fY=fC.y;gN.push([id,fS,fC.y,fC.x,fM,{title:"tittel",description:"beskrivelse"},null,undefined,undefined,nG,AF]);}}}if(typeof hL!="undefined"&&hL==true){if(ge!=180&&fZ!= -180&&gc!=180&&fY!= -180){var po=80;var qD=fZ-ge;var rx=fY-gc;var fK=this.fj.getWidth();var AR=0;var pJ=0;if(this.gv!=null&&this.gv.isVisible()){pJ=fK-this.gv.getMenuWidth()-po;}else{pJ=fK-po;AR=po/fK;}var An=(qD*pJ)/fK;w=ge-(qD-An);e=fZ+qD*0.1;s=gc-rx*0.1;n=fY+rx*0.1;this.fj.setViewport(w,s,e,n,mZ);var fw=this.fj.getCenter();var fr=this.fj.getZoomLevel();this.fj.setInitialPosition(fw.lat,fw.lon,fr);}}if(gN.length>2){var xG=gN[gN.length-2];gN[gN.length-2]=gN[0];gN[0]=xG;}if(gN.length>0){this.fj.setHotspots(gd,gN,hv);}else{this.fj.removeHotspots(gd);}this.um.fire(gd,fl,{west:ge,east:fZ,south:gc,north:fY});if(fE!=null&&typeof fE=="function"){fE();}}},setFlag:function(fF,fH,fM,gk,sS){var fR=this.fj.setHotspot("/Resource/Map/images/gfx2/kartref/1.gif",fF,fH,-11,-28,$defined(fM)?fM:"",$defined(gk)?gk:"",null);if($defined(sS)&&sS){this.fj.showHotspotDialog(fR,150);}},pp:0,showSpinner:function(){this.pp++;$("spinner").style.display='block';},hideSpinner:function(){this.pp--;if(this.pp==0){$("spinner").style.display='none';}},vb:false,oX:"",pa:null,setPointData:function(pointData,gS){try{var kx=$H(pointData.toQueryParams());kx.unset("lat");kx.unset("lon");if($defined(gS)){kx.set("entrylat",gS.lat);kx.set("entrylon",gS.lon);}kx.unset("level");kx.unset("style");pointData=kx.toQueryString();}catch(e){}this.vb=true;this.oX=pointData;this.pa=$ifDefined(gS,null);if(this.tp){var hK=this.yj(pointData);if(hK!=""){this.gv.getMenu().weatherSearch(gS.lat,gS.lon,hK);}}},yj:function(xb){var gT=xb.toQueryParams();var hK="";if(!(gT.streetname==null||gT.streetname.empty())){hK=gT.streetname.replace(/\+/g," ");if(!(gT.gabix==null||gT.gabix.empty())){var lH=gT.gabix.split('_');if(!lH[0].empty()){hK+=" "+lH[0].replace(/\+/g,"");}}}else if(!(gT.street==null||gT.street.empty())){hK=gT.street.replace(/\+/g," ");if(!(gT.gabix==null||gT.gabix.empty())){var lH=gT.gabix.split('_');if(!lH[0].empty()){hK+=" "+lH[0].replace(/\+/g,"");}}}if(!(gT.area==null||gT.area.empty())){if(!hK.empty()){hK+=", ";}hK+=gT.area.replace(/\+/g," ");}if(hK.empty()&&gT.description!=null){hK=gT.description.replace(/\+/g," ");}return hK;},getPointData:function(){return this.oX;},getPointLocation:function(){return this.pa;},clearPointData:function(){this.vb=false;this.oX="";this.pa=null;},mu:false,lB:null,ov:null,vG:null,showShortestPath:function(qm,oD,rc){this.showShortestPathWayPoints([qm,oD],rc);},showShortestPathWayPoints:function(gB,rc){if(this.fj.getMapStyle()==MapController.Styles.BIRDS_EYE){this.fj.setMapStyle(MapController.Styles.REGULAR);}this.mu=true;if($defined(gB)&&gB.length>=2){this.lB=gB;this.vG=rc;this.ov=this.ov=this.uL(gB);}this.AN();},setShortestPath:function(qm,oD){this.setShortestPathWayPoints([qm,oD]);},setShortestPathWayPoints:function(gB){this.mu=true;this.lB=gB;this.ov=this.uL(gB);},uL:function(gB){var i,fl=gB.length;var pV=180,pH= -180,pR=180,pN= -180;for(i=0;i<fl;i++){var sP=gB[i].toQueryParams();var fF=parseFloat(sP.lat);var fH=parseFloat(sP.lon);if(fF<pV){pV=fF;}if(fF>pH){pH=fF;}if(fH<pR){pR=fH;}if(fH>pN){pN=fH;}}var fq={minLat:pV,maxLat:pH,minLon:pR,maxLon:pN};return fq;},getShortestPath:function(){if(this.mu){return{waypoints:this.lB,viewport:this.ov,language:this.vG}}return null;},disableShortestPath:function(){this.mu=false;if($defined(this.fj.removeWmsLayer)){this.fj.removeWmsLayer("shortestPathOverlay");}this.fj.hideLine("route");},ra:false,xM:function(){this.ra=true;this.showSpinner();},vp:function(){if(this.ra){this.hideSpinner();this.ra=false;}},pn:function(fi,gg){if(fi==MapController.Styles.BIRDS_EYE){Element.show($("minimapContainer"));if($defined(gg)){var AQ=["orientationNorth","orientationSouth","orientationEast","orientationWest"];AQ.each(function(fR){$(fR).removeClassName("selectedOrientation");});$("orientation"+gg).addClassName("selectedOrientation");}}else{Element.hide($("minimapContainer"));var si=$("options");if(si!=null){si.style.display="block";}}},AN:function(){if(!this.mu)return;var oI=null;var fL=null;if(this.lB!=null){var gq=this.createShortestPathQueryString(this.lB);fL="/Map/Page/RouteImageTransfer.aspx?"+gq;}else{fL="/Map/Page/RouteImage.aspx";}this.fj.addWmsLayer({id:"shortestPathOverlay",baseUrl:fL,layer:"route"});},createShortestPathQueryString:function(gB){var sU=new Hash();var i,fl=gB.length;for(i=0;i<fl;i++){var qx;if(gB[i].toQueryParams){qx=$H(gB[i].toQueryParams());}else{qx=$H(gB[i]);}qx.each(function(fm){if(fm.key!=null){var hn="";if(!(fm.key.endsWith("0")||fm.key.endsWith("1")||fm.key.endsWith("2")||fm.key.endsWith("3")||fm.key.endsWith("4")||fm.key.endsWith("5")||fm.key.endsWith("6")||fm.key.endsWith("7")||fm.key.endsWith("8")||fm.key.endsWith("9"))){hn=(i+1);}sU.set(fm.key+hn,encodeURI(fm.value));}});}return sU.toQueryString();},BY:function(){Element.show($("pop"));},BQ:function(){Element.hide($("pop"));},Ck:function(){this.gv.getMenu().resetDrawing();},Bx:function(yw){if(yw==MapController.MEASURE){this.gv.getMenu().showDistanceMeterPane();}},xH:function(Bw,BC,fr,BB,hS){this.toggleBBoxSearch(fr,hS);this.wx(hS);},toggleBBoxSearch:function(fr,hS){fr=$alternate(fr,this.fj.getZoomLevel.bind(this.fj));hS=$alternate(hS,this.fj.getMapProvider.bind(this.fj));jj=$("chkSearchBBox");if(jj!=null){var sX=$("chkSearchBBoxLabel");if(hS=="GLMap"&&fr<=7){jj.enable();sX.removeClassName("disabled");}else{jj.disable();sX.addClassName("disabled");}}},Cz:"GLMap",vV:$("map"),Bb:$("mapWrap"),lU:$("mapControls"),wx:function(hS){if(hS!=this.ld){this.lU.remove();if(hS=="GLMap"){this.lU.style.zIndex=1001;this.vV.appendChild(this.lU);}else{this.lU.style.zIndex=2003;this.Bb.appendChild(this.lU);}this.ld=hS;}},uI:$("options"),xC:function(){var oA=this.fj.getDimensions();this.uI.style.width=oA.width-10+'px';if(this.fj.getMapStyle()!=MapController.Styles.BIRDS_EYE){this.uI.style.display="inline";}},BZ:true,hideTipBox:function(){this.tz.disableBirdsEyeInfo();},mI:[],xA:function(gO,Cb){var gY=this.gv.getMenu();var gW=0;var iV=0;var jg=0;var iA=1;var hn="m";if(gO.length>1){gW=Utilities.Karto.getDistance(gO);if(gW>=1000){hn="km";iA=1000;}}if(gO.length>2){iV=Utilities.Karto.getArea(gO);jg=Utilities.Karto.getPerimeter(gO);}gY.$attemptInvoke(function(){gY.updateMeasurements((gW/iA).toFixed(2),(iV/iA/iA).toFixed(2),(jg/iA).toFixed(2),hn);if(gO.length==1){gY.collapsible.showPane(gY.Collapsible.PANELS.Measure,true,true);gY.collapsible.scrollTo(gY.Collapsible.PANELS.Measure);}});},xB:function(){var gY=this.gv.getMenu();gY.$attemptInvoke(gY.resetMeasurements);}};Object.extend(GUIController.prototype,new AbstractEventTrigger());