var POIController=Class.create();POIController.INDEX=0;POIController.prototype={eb:null,jm:null,fN:null,al:null,jY:null,bw:null,hk:null,kD:null,yr:true,ge:{x:0,y:0},qw:false,zi:null,dC:0,kp:null,initialize:function(kL,bD,dn,tc,wO,rJ,bq,pe){this.jY="POI_"+(++POIController.INDEX);if($defined(rJ)){this.yr=rJ;}if($defined(bq)){this.ge=bq;}if($defined(pe)){this.qw=pe;}this.kD=tc;this.bw=dn;this.jm=kL;this.al=bD;this.fN=$H({"fotoboks":{selected:true,viewport:null,featureNumber:"20011,20012,20013,20014,20015,20016,20017,20018",upperLevel:4},"apotek":{selected:false,viewport:null,featureNumber:"523100",upperLevel:4},"buss":{selected:false,viewport:null,featureNumber:"9942",upperLevel:4},"minibank":{selected:false,viewport:null,featureNumber:"7397",upperLevel:4},"kjopesenter":{selected:false,viewport:null,featureNumber:"521200",upperLevel:4},"skole":{selected:false,viewport:null,featureNumber:"801021",upperLevel:4},"fergeleie":{selected:false,viewport:null,featureNumber:"7352",upperLevel:4},"barnehage":{selected:false,viewport:null,featureNumber:"853270",upperLevel:4},"phus":{selected:false,viewport:null,featureNumber:"7313",upperLevel:4},"universitet":{selected:false,viewport:null,featureNumber:"7377",upperLevel:4},"pplass":{selected:false,viewport:null,featureNumber:"7369",upperLevel:4},"trikk":{selected:false,viewport:null,featureNumber:"9943",upperLevel:4},"tbane":{selected:false,viewport:null,featureNumber:"9944",upperLevel:4},"samlepunkt":{selected:false,viewport:null,featureNumber:"200"},"nettavisen":{selected:true,viewport:null,featureNumber:"100",upperLevel:6},"forhandsvalglokaler":{selected:false,viewport:null,featureNumber:"21000",upperLevel:4},"valglokaler":{selected:false,viewport:null,featureNumber:"21001",upperLevel:4},"trafikkmelding":{selected:false,viewport:null,featureNumber:"101",upperLevel:6}});this.kp=wO;if(this.kp.get('1881poi')!=null){try{var wN=$H(this.kp.get('1881poi'));this.fN.each(function(je){var jb=wN.get(je.key);if(jb!=null){je.value.selected=jb.selected;}});}catch(e){}}bD.addEventListener("onchangeview",this.iE.bind(this));bD.addEventListener("onmapstylechange",this.nx.bind(this));Event.observe('contentContainer','lytebox:end',this.vs.bindAsEventListener(this));},poiUpdated:function(bv,sj){if(Object.isString(bv)){this.fN.get(bv).selected=sj;var bO=this.al.getViewport();this.fN.get(bv).viewport=bO;}else{var bO=this.al.getViewport();var i,ao=bv.length;for(i=0;i<ao;i++){var oZ=this.fN.get(bv[i]);oZ.selected=sj;oZ.viewport=bO;}}this.kp.put('1881poi',this.fN);},poiChecked:function(bv){this.poiUpdated(bv,true);},poiUnchecked:function(bv){this.poiUpdated(bv,false);},vs:function(){this.refreshView();},refreshView:function(){var bO=this.al.getViewport();this.pw(bO);},getPOICollection:function(){return this.fN;},wj:function(){var eA="";var aQ=this.al.getZoomLevel();var xk=function(aw){if(aw[1].selected&&aw[1].upperLevel>=aQ){if(eA!=""){eA+=",";}eA+=aw[1].featureNumber;}};this.fN.each(xk);return eA;},pw:function(bO){var eA=this.wj();if(this.al.getZoomLevel()<=6&&this.hk=="GLMap"){this.wI(eA);}else{this.al.removeHotspots(this.jY);}},wI:function(eA){if(this.hk!=null&&this.hk=="VirtualEarthMap"){return;}var bO=this.al.getViewport();var gs=Utilities.Trans.decimalDegreesToUTM({x:bO.minLon,y:bO.minLat});var gw=Utilities.Trans.decimalDegreesToUTM({x:bO.maxLon,y:bO.maxLat});try{if(this.qw){var oq=this.al.getDimensions();this.dC++;this.kD(eA,gs.x,gs.y,gw.x,gw.y,true,oq.width,oq.height,21,21,this.pM,this.pN,{thisbind:this,requestId:this.dC});}else{this.kD(eA,gs.x,gs.y,gw.x,gw.y,this.pM,this.pN,{thisbind:this,requestId:this.dC});}}catch(e){}},getLastRequestId:function(){return this.dC;},pM:function(aw,ru){var lk=ru.thisbind;if(ru.requestId==poiController.getLastRequestId()){lk.jm.loadBubbleClusters(aw,{"collectionId":lk.jY,"upperBound":6,iconOffset:{x: -10,y: -10}});}},pN:function(aw,lk){},nx:function(am){this.iE(null,am,this.al.getZoomLevel(),null,this.al.getMapProvider());},kV:null,iE:function(ay,am,ax,aq,fJ){this.hk=fJ;var bl=this.bw.getMenu();if(am!=MapController.Styles.BIRDS_EYE&&fJ=="GLMap"){this.al.removeHotspots(this.jY);if(this.kV!=null){clearTimeout(this.kV);}this.kV=setTimeout((function(aq){this.pw(aq);}).bind(this,aq),1000);}}}