var BouvetMapContainer=function(n,t,i,r){var u=[],f,e=function(){f=0};return e.prototype={constructor:e,addBouvetmap:function(n){return u.push(n),f++,f-1},getBouvetmap:function(n){return u[n]},getNumber:function(){return u.length},resizeAllMaps:function(){u.forEach(function(n){var t=n.getCenter();r.maps.event.trigger(n,"resize");n.setCenter(t)})}},e}(window,document,jQuery,google),bmc=new BouvetMapContainer,BouvetMap=function(n,t,i,r){function it(){var n={};return n.zoom=c,n.lat=h.lat(),n.lng=h.lng(),JSON.stringify({Markers:f,Data:n})}function s(){v.length>0&&i(v).length>0&&i(v).val(it())}function w(n){var t=u;u=n;n!==-1&&(i("#markerInputHeader").val(f[n].titletext),i("#markerTextareaDescription").val(f[n].description));(t>-1||n!==-1)&&tt();r.maps.Map.prototype.switchSelected(t,n)}function rt(){var n,t,h,c;if(o){for(n='<div id="map_menu" style="position:relative; top:-60px;left:0; width:100%; height:60px; display:none; background-color: #efefef; z-index:10000000; overflow:hidden;">',n+='<div style="margin:10px;">',t=0;t<b.length;t++)h="mapImage"+t,c=p+b[t],n+='<span><img id="'+h+'" src="'+c+'" alt="Parkeringsicon"><\/span>';n+='<span style="float:right; margin-left: 5px;"><input type="button" class="btn" onclick="return false;" id="markerChangeButton" value="Endre tekst"/><\/span>';n+='<span style="float:right; margin-left: 5px;"><input type="button" class="btn" onclick="return false;" id="markerDeleteButton" value="Slett"/><\/span>';n+='<br style="margin:0; height: 0; padding:0; clear: both;"/>';n+='<p><label for="markerInputHeader">Tittel<\/label><\/p>';n+='<p><input id="markerInputHeader" type="text" name="markerHeader"/><\/p>';n+='<p><label for="markerTextareaDescription">Beskrivelse<\/label><\/p>';n+='<p><textarea id="markerTextareaDescription" name="markerDescription"><\/textarea><\/p>';n+="<\/div><\/div>";i(n).insertAfter(e);i("[id^=mapImage]").click(function(){if(u>-1){var t=r.maps.Map.prototype.getMarkersById(u),n=i(this).attr("src").split("/");f[u].icon=n[n.length-1];t.setIcon(i(this).attr("src"));s()}});i("#markerChangeButton").click(function(){u>-1?y?(i("#map_menu").css("height","60px"),i("#map_menu").css("top","-60px"),i("#markerDeleteButton").css("display","block"),i("#markerChangeButton").prop("value","Endre tekst"),w(-1),s(),i("#map_menu").css("display","none")):(i("#map_menu").css("height","300px"),i("#map_menu").css("top","-300px"),i("#markerDeleteButton").css("display","none"),i("#markerChangeButton").prop("value","Lukk")):(i("#map_menu").css("height","60px"),i("#map_menu").css("top","-60px"),i("#markerDeleteButton").css("display","block"),i("#markerChangeButton").prop("value","Endre tekst"),i("#map_menu").css("display","none"),w(-1));y=!y})}}function tt(){var t=!1,n=null;o?(t=!0,r.maps.Map.prototype.clearMarkers(),n=l):n=bmc.getBouvetmap(k);f.forEach(function(e){var a=new r.maps.LatLng(e.latitude,e.longitude),h=new r.maps.Marker({position:a,map:n,draggable:t,animation:null,icon:{url:p+e.icon,size:new r.maps.Size(30,45)},title:e.titletext,shadow:p+"icon-shadow.png"}),c,l;h.set("id",e.tablePosition);h.set("description",e.description);c='<div id="content"><div id="siteNotice"><\/div><h3 id="markerTitleHeader">'+e.titletext+'<\/h1><div id="markerDescriptionHeader"><p>'+e.description+"<\/p><\/div><\/div>";l=new r.maps.InfoWindow({content:c});o&&(r.maps.Map.prototype.addMarker(h),r.maps.event.addListener(h,"dragstart",function(){}),r.maps.event.addListener(h,"rightclick",function(){i("#map_menu").css("display","block");u!==h.get("id")&&w(h.get("id"))}));r.maps.event.addListener(h,"click",function(){l.open(n,h)});o&&r.maps.event.addListener(h,"dragend",function(n){f[h.get("id")].latitude=n.latLng.lat();f[h.get("id")].longitude=n.latLng.lng();s()})})}function ut(){o&&(r.maps.event.addListener(l,"rightclick",function(n){var t=g(n.latLng.lat(),n.latLng.lng(),"Legg til tittel her","Legg til en beskrivelse her","icon-empty.png");i("#map_menu").css("display","none");w(t);s()}),r.maps.Map.prototype.markers=[],r.maps.Map.prototype.addMarker=function(n){this.markers[this.markers.length]=n},r.maps.Map.prototype.getMarkers=function(){return this.markers},r.maps.Map.prototype.getMarkersById=function(n){var t=null;return this.markers.forEach(function(i){i.get("id")===n&&(t=i)}),t},r.maps.Map.prototype.clearMarkers=function(){for(var n=0;n<this.markers.length;n++)this.markers[n].setMap(null);this.markers=[]},r.maps.Map.prototype.switchSelected=function(n,t){var u,f;i("#map_menu").css("display","block");n>-1&&(u=r.maps.Map.prototype.getMarkersById(n),u!=null&&u.setAnimation(null));t>-1&&(f=r.maps.Map.prototype.getMarkersById(t),f!=null&&f.setAnimation(r.maps.Animation.BOUNCE))},r.maps.event.addListener(l,"zoom_changed",function(){c=l.getZoom();s()}),r.maps.event.addListener(l,"dragend",function(){h=l.getCenter();s()}));tt();o&&(i("#markerDeleteButton").click(function(){if(u>-1){var n=r.maps.Map.prototype.getMarkersById(u);n.setMap(null);delete f[u];u=-1;s()}}),i("#markerInputHeader").keyup(function(){var n=i(this).val(),t=r.maps.Map.prototype.getMarkersById(u);t!=null&&(t.setTitle(n),f[u].titletext=n,s())}).keyup(),i("#markerTextareaDescription").keyup(function(){var n=i(this).val(),t=r.maps.Map.prototype.getMarkersById(u);t!=null&&(t.set("description",n),f[u].description=n,s())}).keyup())}function g(n,t,i,r,u){var e={};return e.latitude=n,e.longitude=t,e.titletext=i,e.description=r,e.icon=u,e.tablePosition=a,f.push(e),a++,a-1}function nt(n){return!isNaN(parseFloat(n))&&isFinite(n)}function ft(){var n,u,f;try{i(e).length>0?(n=i(e).parent().width(),i(e).css("width",n),i(e).css("height",n),n>600&&i(e).css("height","600px"),u={zoom:c,center:h,mapTypeId:r.maps.MapTypeId.ROADMAP},f=e.replace("#",""),o?l=new r.maps.Map(i(e)[0],u):k=bmc.addBouvetmap(new r.maps.Map(t.getElementById(f),u)),ut()):console.log("Missing canvas. You need a container to draw the map inside.")}catch(s){console.log("Function drawMap "+s)}}var e,v,h,c,l,f=[],b=[],a,u,y,p,o,k,d=function(){e="#map_canvas";h=new r.maps.LatLng(60.390664155556543,5.3250913085937555);c=14;a=0;u=-1;y=!1;o=!1;k=0;f=[]};return d.prototype={constructor:d,setMapContainer:function(n){try{n.charAt(0)==="#"?e=n:console.log("The containerid must start with #.")}catch(t){console.log("Function setMapContainer "+t)}},setDataContainer:function(n){try{n.charAt(0)==="#"?v=n:console.log("The datacontainerid must start with #.")}catch(t){console.log("Function setDataContainer "+t)}},setEditMode:function(n){o=n},setDataValues:function(n){var u,f,t,l,s,a;try{if(n!=null&&n!="undefined"){for(h=new r.maps.LatLng(n.Data.lat,n.Data.lng),c=n.Data.zoom,u=n.Markers,f=new r.maps.LatLngBounds,t=0;t<u.length;t++)u[t]!=null&&(g(u[t].latitude,u[t].longitude,u[t].titletext,u[t].description,u[t].icon),l=new r.maps.LatLng(u[t].latitude,u[t].longitude),f.extend(l));if(!o&&(s=i(".bouvetgooglemap").width(),s<630)){var v=f.getSouthWest(),y=f.getNorthEast(),p=v.lng(),w=y.lng(),e=w-p;e<0&&(e+=360);e!==0&&(a=Math.round(Math.log(s*360/e/256)/Math.LN2),c=a-1,h=f.getCenter())}}}catch(b){console.log("Function setDataValues "+b)}},setMapCenter:function(n,t){try{nt(n)&&nt(t)?h=new r.maps.LatLng(n,t):console.log("Some of the parameters is not a number in setMapCenter.")}catch(i){console.log("Function setMapCenter "+i)}},setZoomFactor:function(n){try{nt(n)?c=n:console.log("Zoomfactor is not a number in setZoomFactor.")}catch(t){console.log("Function setZoomFactor "+t)}},setMarkerImages:function(n){b=n.slice();rt()},setImageFolderUrl:function(n){p=n},addMarker:function(n,t,i,r,u){g(n,t,i,r,u)},addMarkers:function(n){if(n.length>0){var t=n.split("#");t.forEach(function(n){var i=n.split(","),t={};t.latitude=i[0];t.longitude=i[1];t.titletext=i[2];t.description=i[3];t.icon=i[4];t.tablePosition=a;f.push(t);a++})}},writeMarkers:function(){var n="",t=1;f.forEach(function(i){n+=i.latitude+","+i.longitude+","+i.titletext+","+i.description+","+i.icon;t!==a&&(n+="#");t++})},drawMap:function(){ft()}},d}(window,document,jQuery,google)