/**
 * Google Maps Integrations Script
 * Copyright Limepark 2010
 * Får endast användas på www.visitnora.se
 * E-post: info@limepark.se
 * Telefon: 0611 - 550 771
 */

var mapCanvases=new Array();var addMapCanvas=function(a){mapCanvases.push(a)};function initializeMaps(){for(i=0;i<mapCanvases.length;i++){mapObject=mapCanvases[i];mapObject.init()}}var limeparkMap=function(n,q,a,w,E){var e=n;var r=q;var C=null;var S=a;var Q={};var y=new Array();var L=new Array();var x=w;var f=E;var M=null;var v=null;var p=null;var K=null;var o=new google.maps.InfoWindow();var h=function(){$('.mp3player_placeholder:not(".fixed")').each(function(V){elmt=$(this);$("<div></div>").attr("id",elmt.attr("id")+"_player").appendTo(elmt);idA=elmt.attr("id").split("_");markerId=idA[1];elmt=$(this).addClass("fixed");var T={};var W={};var U={};T.mp3=S[markerId].mp3file;T.autoload=0;T.autoplay=1;T.showslider=1;swfobject.embedSWF("http://www.visitnora.se/download/18.539d1c491275e7d056480002198/player_mp3_maxi.swf",elmt.attr("id")+"_player","200","20","9.0.0","expressInstall.swf",T,W,U)})};var P=function(){var T=$(this).attr("title");params={mapAction:"getNodes","sv.contenttype":"application/json","X-Requested-With":"XMLHttpRequest"};params[r.mapCategoriesMetadataName]=T;$.get(x,params,D,"json");return false};var O=function(V,T){if(T==google.maps.DirectionsStatus.OK){}routeLogContainer=$("#routeLog");routeLogList=$("<ol></ol>").appendTo(routeLogContainer);function U(W){routeLogList=$("<li></li>").text(W).appendTo(routeLogList)}directionCoordinates=new Array();for(routeIter=0;routeIter<V.routes.length;routeIter++){route=V.routes[routeIter];for(legIter=0;legIter<route.legs.length;legIter++){leg=route.legs[legIter];for(stepIter=0;stepIter<leg.steps.length;stepIter++){step=leg.steps[stepIter];directionCoordinates.push(step.start_point);for(tStepIter=1;tStepIter<(step.lat_lngs.length-1);tStepIter++){directionCoordinates.push(step.lat_lngs[tStepIter])}if(stepIter==(leg.steps.length-1)){directionCoordinates.push(step.end_point)}}}}K=new google.maps.Polyline({path:directionCoordinates,strokeColor:"#FF0000",strokeOpacity:1,strokeWeight:2});K.setMap(C)};var z=function(){if(M==null){M=new google.maps.DirectionsService()}directionStart=L[0].getPosition();wayPoints=new Array();for(i=1;i<(L.length-1);i++){wayPoints.push({location:L[i].getPosition(),stopover:true})}directionEnd=L[(L.length-1)].getPosition();request={origin:directionStart,destination:directionEnd,provideRouteAlternatives:false,travelMode:google.maps.DirectionsTravelMode.WALKING,unitSystem:google.maps.DirectionsUnitSystem.METRIC};if(wayPoints.length>0){request.waypoints=wayPoints}M.route(request,O)};var d=function(T,U){google.maps.event.addListener(T,"click",function(){content="<h2>"+S[U].mapTitle+"</h2><br />"+S[U].markerInfo;o.close();if(S[U].mp3file!=""){content='<div id="mp3file_'+U+'" class="mp3player_placeholder" style="width:250px;height:20px;"></div>'+content}o.setContent(content);o.open(C,T);h()})};var H=function(){$("."+f).click(P)};var D=function(U,V,T){if(U.length>0){o.close();S=U;A.updateMarkers()}else{alert("Hittade inget att visa...")}};var k=function(T){alert(T.message);I()};var G=function(){for(i=0;i<y.length;i++){y[i].setMap(null)}};var t=function(){for(i=0;i<y.length;i++){y[i].setMap(C)}};var B=function(){u(y[0].getPosition())};var J=function(){y[0].setDraggable(true);y[0].setFlat(true);y[0].setCursor("move");google.maps.event.addListener(y[0],"dragend",B)};var b=function(){y[0].setDraggable(false);y[0].setFlat(false);y[0].setCursor("pointer")};var F=function(){if(C.controls[google.maps.ControlPosition.TOP].getLength()==1){C.controls[google.maps.ControlPosition.TOP].removeAt(0)}if(r.mapType=="collected"){G()}else{if(r.mapType=="object"){J()}}l()};var I=function(){if(C.controls[google.maps.ControlPosition.TOP].getLength()==1){C.controls[google.maps.ControlPosition.TOP].removeAt(0)}$("#"+e+"_editExt").remove();$("#"+e).removeClass("ubordered");if(r.mapType=="collected"){t()}else{if(r.mapType=="object"){b()}}R()};var N=function(T){y[0].setPosition(T)};var g=function(U){if(U.length==0){Q.geocodeAddress="";$("#"+e+"_addressInfo").text("Ingen adress funnen")}else{if(U.length==1){resultA=U[0];Q.geocodeAddress=resultA.formatted_address;if(typeof resultA.geometry.location!=="undefined"){N(resultA.geometry.location)}if(typeof resultA.geometry.viewport!=="undefined"){C.fitBounds(resultA.geometry.viewport)}$("#"+e+"_addressInfo").text(resultA.formatted_address)}else{if(U.length>1){$("#"+e+"_addressInfo").text("");var T=function(){if($(this).val()!=""){resultA=U[parseInt($(this).val())];Q.geocodeAddress=resultA.formatted_address;if(typeof resultA.geometry.location!=="undefined"){N(resultA.geometry.location)}if(typeof resultA.geometry.viewport!=="undefined"){C.fitBounds(resultA.geometry.viewport)}}};selectElement=$("<select></select>").change(T).attr("id",e+"addressOption");$("<option></option>").attr("value","").text("Välj precision...").appendTo(selectElement);for(i=0;i<U.length;i++){$("<option></option>").attr("value",i).text(U[i].formatted_address+(i==0?" (förvald)":"")).appendTo(selectElement)}selectElement.appendTo($("#"+e+"_addressInfo"))}}}};var u=function(T){if(v==null){v=new google.maps.Geocoder()}v.geocode({latLng:T,language:"sv",region:"se"},g)};var s=function(){if(v==null){v=new google.maps.Geocoder()}elmt=$("#"+e+"_lookupAddress");addressToLookUp=elmt.val();v.geocode({address:addressToLookUp,partialmatch:true,language:"sv",region:"se"},g)};var c=function(){saveData=new Object();mBounds=C.getBounds();msBounds=new Object();m;saveData.bounds=mBounds;saveData.mapZoomLevel=C.getZoom();saveData.mapTypeId=C.getMapTypeId();saveData.center={a:C.getCenter().lat(),b:C.getCenter().lng()};if(r.mapType=="object"&&y.length==1){oMarker=new Object();oMarker.position={a:y[0].getPosition().lat(),b:y[0].getPosition().lng()};oMarker.geocodeAddress=Q.geocodeAddress;saveData.markers=new Array();saveData.markers.push(oMarker)}mapData=JSON.stringify(saveData);$.post(x,{mapAction:"save",mapData:mapData,"sv.contenttype":"application/json","X-Requested-With":"XMLHttpRequest"},k,"json")};var j=function(){saveData=new Object();mBounds=C.getBounds();saveData.bounds=mBounds;saveData.mapZoomLevel=C.getZoom();saveData.mapTypeId=C.getMapTypeId();saveData.center={a:C.getCenter().lat(),b:C.getCenter().lng()};if(r.mapType=="object"&&y.length==1){oMarker=new Object();oMarker.position={a:y[0].getPosition().lat(),b:y[0].getPosition().lng()};oMarker.geocodeAddress=Q.geocodeAddress;saveData.markers=new Array();saveData.markers.push(oMarker)}mapData=JSON.stringify(saveData);$.post(x,{mapAction:"savepublish",mapData:mapData,"sv.contenttype":"application/json","X-Requested-With":"XMLHttpRequest"},k,"json")};var l=function(){controllerContainer=$("<div></div>").addClass("controllerContainer").get(0);controllerSaveButton=$("<div></div>").addClass("controllerButton").get(0);controllerPublishButton=$("<div></div>").addClass("controllerButton").get(0);controllerAbortButton=$("<div></div>").addClass("controllerButton").get(0);if(r.mapType=="object"&&y.length==1){searchAddressContainer=$("<div></div>").addClass("controllerContainer").addClass("clearfix").attr("id",e+"_editExt");controllerAddressField=$("<div></div>").addClass("controllerButton").append($("<input type='text'>").attr("id",e+"_lookupAddress").addClass("controllerText"));controllerFindAddressButton=$("<div></div>").addClass("controllerButton");controllerFindAddressButton.click(s);controllerFindAddressText=$("<div></div>").addClass("controllerText").text("Hitta address");addressInfo=$("<div></div>").addClass("infoBox").attr("id",e+"_addressInfo");controllerFindAddressButton.append(controllerFindAddressText);searchAddressContainer.append(controllerAddressField);searchAddressContainer.append(controllerFindAddressButton);searchAddressContainer.append(addressInfo);$("#"+e).after(searchAddressContainer);$("#"+e).addClass("ubordered")}google.maps.event.addDomListener(controllerSaveButton,"click",c);google.maps.event.addDomListener(controllerPublishButton,"click",j);google.maps.event.addDomListener(controllerAbortButton,"click",I);controllerSaveText=$("<div></div>").addClass("controllerText").text("Spara Kartvy").get(0);controllerPublishText=$("<div></div>").addClass("controllerText").text("Spara & Publicera Kartvy").get(0);controllerAbortText=$("<div></div>").addClass("controllerText").text("Avbryt").get(0);controllerSaveButton.appendChild(controllerSaveText);controllerPublishButton.appendChild(controllerPublishText);controllerAbortButton.appendChild(controllerAbortText);controllerContainer.appendChild(controllerSaveButton);controllerContainer.appendChild(controllerPublishButton);controllerContainer.appendChild(controllerAbortButton);controllerContainer.index=1;C.controls[google.maps.ControlPosition.TOP].push(controllerContainer)};var R=function(){controllerContainer=$("<div></div>").addClass("controllerContainer").get(0);controllerMakeEditableButton=$("<div></div>").addClass("controllerButton").get(0);google.maps.event.addDomListener(controllerMakeEditableButton,"click",F);controllerMakeEditableText=$("<div></div>").addClass("controllerText").text("Redigera kartinställningar").get(0);controllerMakeEditableButton.appendChild(controllerMakeEditableText);controllerContainer.appendChild(controllerMakeEditableButton);controllerContainer.index=1;C.controls[google.maps.ControlPosition.TOP].push(controllerContainer)};var A={init:function(){if(typeof e=="undefined"){alert("MapCanvasId is not defined")}else{if(typeof r=="undefined"){alert("The maps canvas properties is not defined")}else{if((typeof r.center.a!=="undefined")&&(typeof r.center.b!=="undefined")){latLng=new google.maps.LatLng(r.center.a,r.center.b)}else{if((typeof r.center.b!=="undefined")&&(typeof r.center.c!=="undefined")){latLng=new google.maps.LatLng(r.center.b,r.center.c)}}mapConf={zoom:r.mapZoomLevel,center:latLng,mapTypeId:r.mapTypeId,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,position:google.maps.ControlPosition.TOP_RIGHT}};C=new google.maps.Map(document.getElementById(e),mapConf)}}google.maps.event.addListenerOnce(C,"tilesloaded",this.initMarkers);if(typeof r.editable!=="undefined"&&r.editable==true){google.maps.event.addListenerOnce(C,"tilesloaded",this.makeEditable)}},initMarkers:function(){if(typeof S=="undefined"){}else{if(r.mapType=="collected"&&S.length>0){bounds=new google.maps.LatLngBounds();for(i=0;i<S.length;i++){poi=S[i];if((typeof poi.position.a!=="undefined")&&(typeof poi.position.b!=="undefined")){latLng=new google.maps.LatLng(poi.position.a,poi.position.b)}else{if((typeof poi.position.b!=="undefined")&&(typeof poi.position.c!=="undefined")){latLng=new google.maps.LatLng(poi.position.b,poi.position.c)}}markerSettings={position:latLng,title:poi.mapTitle,map:C};if(poi.mapObjectIcon!=""){markerSettings.icon=poi.mapObjectIcon}marker=new google.maps.Marker(markerSettings);d(marker,i);y.push(marker);if(poi.connect){L.push(marker)}if(r.customPredefinedSearch){if(!bounds.contains(latLng)){bounds.extend(latLng)}}}if(L.length>1){z()}H();if(r.customPredefinedSearch){C.fitBounds(bounds)}}else{if(r.mapType=="object"){if(typeof r.markers==="undefined"){latLng=new google.maps.LatLng(C.getCenter().lat(),C.getCenter().lng());y.push(new google.maps.Marker({position:latLng,title:"Kartmarkör",map:C}))}else{for(i=0;i<r.markers.length;i++){poi=r.markers[i];if((typeof poi.position.a!=="undefined")&&(typeof poi.position.b!=="undefined")){latLng=new google.maps.LatLng(poi.position.a,poi.position.b)}else{if((typeof poi.position.b!=="undefined")&&(typeof poi.position.c!=="undefined")){latLng=new google.maps.LatLng(poi.position.b,poi.position.c)}}y.push(new google.maps.Marker({position:latLng,title:poi.geocodeAddress,map:C}))}}}}}},updateMarkers:function(){if(typeof S=="undefined"){}else{L=new Array();for(i=0;i<y.length;i++){y[i].setMap(null)}if(K!=null){K.setMap(null)}bounds=new google.maps.LatLngBounds();for(i=0;i<S.length;i++){poi=S[i];if((typeof poi.position.a!=="undefined")&&(typeof poi.position.b!=="undefined")){latLng=new google.maps.LatLng(poi.position.a,poi.position.b)}else{if((typeof poi.position.b!=="undefined")&&(typeof poi.position.c!=="undefined")){latLng=new google.maps.LatLng(poi.position.b,poi.position.c)}}markerSettings={position:latLng,title:poi.mapTitle,map:C};if(poi.mapObjectIcon!=""){markerSettings.icon=poi.mapObjectIcon}marker=new google.maps.Marker(markerSettings);d(marker,i);y.push(marker);if(poi.connect){L.push(marker)}if(!bounds.contains(latLng)){bounds.extend(latLng)}}if(L.length>1){z()}}C.fitBounds(bounds);C.setCenter(bounds.getCenter())},makeEditable:function(){R()}};return A};google.maps.event.addDomListener(window,"load",initializeMaps);
