"].join("")}}),CWM.messages.AOIImport=compileAll({title:"Import AOI",label:{geodataTab:{title:"From Data",tooltip:"Enter geo-data, or paste from clipboard"},geodata:"Enter Geomark or text data",geodataPlaceholder:"Enter Geomark URL or text data, or paste from clipboard"},button:{accept:"Import"},help:{upload:["
Import an AOI from a local spatial dataset.
","
Select a file to load.
","
Supported file types include:
","
Shapefiles (SHP)
","
KML
","
GPX
","
GeoJSON
","
ZIP file containing any of above
","
"].join(""),geodata:["
Import an AOI geometry from a Geomark or from text.
","
Supported data types include:
","
Geomark URL or ID
","
KML
","
GeoJSON
","
WKT
","
"].join("")}}),CWM.messages.ImportDetails=compileAll({title:"Import details"}),CWM.messages.SelectProjection=compileAll({title:"Choose Projection",label:{selectPRJ:"From PRJ file"}}),CWM.messages.Export=compileAll({title:"Export AOI",label:{description:"Description",format:"Format",text:"Data Text",serialization:"{0}"},button:{accept:"Close",create:"Export",copy:"Copy",download:"Download"},status:{generating:"Generating {0}",copied:"{0} copied",create:"Ready to export to {0}"},error:{copyFailed:"Copy failed"},wasGenerated:'A {0} was generated:
{1}',comment:"Exported from CWM on {0}"}),CWM.messages.Measurement=compileAll({label:{lengthUnit:{kilometers:"km"},areaUnit:{hectares:"ha"},area:"Area:",perimeter:"Perimeter:",length:"Distance:"},title:{measureArea:"Measure Area",measureDistance:"Measure Distance",clearMeasurement:"Clear Measurement",measurementTools:"Measurement Tools"}}),CWM.messages.Print=compileAll({title:"Print Map",label:{title:"Title",notes:"Notes",layout:"Layout",scale:"Scale",resolution:"Resolution"},button:{accept:"Print"}}),CWM.messages.Markup=compileAll({toolbar:{title:"Markup Tools",zoom:"Zoom to Markup",rectangle:"Draw Rectangle",polygon:"Draw Polygon",line:"Draw Line",circle:"Draw Circle",point:"Draw Point",label:"Draw Label",edit:"Edit User Markup",delete:"Delete Selected Markup",clear:"Clear All User Markup"},style:{shape:{colour:"Choose Shape Colour",lineDash:"Choose Shape Line Style"},symbol:{colour:"Choose Point Colour",type:"Choose Point Type",size:"Choose Point Size"},text:{colour:"Choose Label Colour",family:"Choose Label Font Style",size:"Choose Label Size",edit:"Edit Label Text"}},dialog:{title:"Edit label",label:"Label",placeholder:"label"}}),CWM.messages.Session=compileAll({title:"Save / Load Session",label:{importTab:{title:"Load",tooltip:"Load a map session from a file"},exportTab:{title:"Save",tooltip:"Save current map session to file"},details:"Session Details"},button:{cancel:"Cancel",import:"Load",export:"Save"},status:{readyToImport:"Ready to load",readyToExport:"Ready to save"},error:{}});var rectangle="Click-and-hold on map to define corner point. Drag to define opposite corner.",polygon="Click on map to add edges. Double-click to finish.",circle="Click-and-hold on map to define center point. Drag to define radius.",point="Click on map to add point.";function brJoin(){return[].slice.call(arguments).join(" ")}CWM.messages.ToolInformation=compileAll({DrawRectangleControl:rectangle,DrawPolygonControl:polygon,DrawPathControl:polygon,DrawPointControl:point,DrawCircleControl:circle,EditAOIControl:brJoin("Click on feature to select.","Hover over edge to see endpoints and midpoint.",'Drag endpoint to move it, or hit Del to delete it.',"Drag edge midpoint to add another edge.","Drag center point to move feature."),SelectByBox:rectangle,SelectByPolygon:polygon,Unselect:rectangle,DrawRectangleMarkup:rectangle,DrawPolygonMarkup:polygon,DrawCircleMarkup:circle,DrawLineMarkup:polygon,DrawPointMarkup:point,DrawLabelMarkup:"Click on map to add label.",EditMarkup:brJoin("Click on feature to select and see handles.",'Drag handle to move it, or hit Del to delete it.',"Drag edge midpoint to add another edge.")}),CWM.messages.ToolInformation.NavigationControl=function(map){return'Drag to move map. Double-click zoom into location. Shift-Drag to zoom to rectangle.'+(map.controls.navCtrl.handlers.wheel.active?" Scroll-wheel zoom in and out of map.":"")}}(CWM,jQuery),function(CWM){"use strict";CWM.Util={},CWM.Util.log=function(msg){window.console&&console.log(msg)},CWM.Util.clamp=function(val,min,max){return val").append($.map(rowsCols,function(row,i){return $("