function PreInitialiseMap(){}function InitialiseMap(){var u=$("#staticMap"),i=$("#map-canvas"),f=$("#actionbar"),h=$("#GoogleClientID").attr("value"),c,t,e,o,s,r;u!=null&&u.toggleClass("hide"),i!=null&&(i.height($(window).height()-300),i.toggleClass("hide")),f!=null&&f.toggleClass("hide"),c=new google.maps.LatLng(-26.5,133),t=getSession("mapType"),t==null&&(t=google.maps.MapTypeId.ROADMAP),supressInfoWindow=!1,e={minZoom:3,client:h,mapTypeId:t,gestureHandling:"greedy"},map=new google.maps.Map($("div#map-canvas").get(0),e);var l=$("#Latitude").attr("value"),a=$("#Longitude").attr("value"),n=new google.maps.LatLng(Number(l),Number(a));map.setOptions({center:n,zoom:16}),o={location:n},s=new google.maps.Geocoder,s.geocode(o,function(t,i){if(i==google.maps.GeocoderStatus.OK){var r=t[0].geometry.viewport;r=r.extend(n),map.fitBounds(r)}else map.setOptions({center:n,zoom:16})}),r={},r.SM=Number($("#BSearchMask").attr("value")),marker=new google.maps.Marker({position:n,map:map,title:"Toilet",ToiletID:$("#HRToiletID").attr("value"),icon:GetMapPinImage(r,null),draggable:!1}),google.maps.event.addListener(map,"maptypeid_changed",function(){var n=map.getMapTypeId();setSession("mapType",n)}),typeof FinishedUpdatingMap=="function"&&google.maps.event.addListener(map,"zoom_changed",function(){FinishedUpdatingMap(map)})}function csUpdateToilet(){var n=$("#linkForm");return n.length>0&&($("#linkForm").attr("action","/Toilet/CSUpdate"),$($("#linkForm")).submit()),!1}function GenerateBSearchMask(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g,nt,tt,it,rt){var ut=0;return ut=ut|xISMALE,ut=ut|xISACCESSIBLEMALE,ut=ut|xISFEMALE,ut=ut|xISACCESSIBLEFEMALE,ut=ut|xISUNISEX,ut=ut|xISACCESSIBLEUNISEX,n||(ut=ut&~xISACCESSIBLEMALE,ut=ut&~xISACCESSIBLEFEMALE,ut=ut&~xISACCESSIBLEUNISEX),t||(ut=ut&~xISUNISEX),i||(ut=ut&~xISFEMALE),r||(ut=ut&~xISMALE),u&&(ut=ut|xISDUMPPOINT),f&&(ut=ut|xISCHANGINGPLACES),e!=null&&e&&(ut=ut|xISPARKING),o!=null&&o&&(ut=ut|xISPARKINGACCESSIBLE),s!=null&&s&&(ut=ut|xISBABYCHANGE),h!=null&&h&&(ut=ut|xISSHARPSDISPOSAL),c!=null&&c&&(ut=ut|xISSHOWERS),l!=null&&l&&(ut=ut|xISSANITARYDISPOSAL),a!=null&&a&&(ut=ut|xISDRINKINGWATER),v!=null&&v&&(ut=ut|xISKEYREQUIRED),y!=null&&y&&(ut=ut|xISMLAKKEY),p!=null&&p&&(ut=ut|xISPAYMENTREQUIRED),w!=null&&w&&(ut=ut|xISACCESSLIMITED),b!=null&&b&&(ut=ut|xISAMBULANT),k!=null&&k&&(ut=ut|xISLHTRANSFER),d!=null&&d&&(ut=ut|xISRHTRANSFER),g!=null&&g&&(ut=ut|xISADULTCHANGE),nt!=null&&nt&&(ut=ut|xISOPENALLHOURS),tt!=null&&tt&&(ut=ut|xISOPENDAYLIGHTHOURS),it!=null&&it&&(ut=ut|xISCLOSED),rt!=null&&rt&&(ut=ut|xISOPENINGHOURSVARIABLE),ut}function GetWithSelectedPrioritiesText(n,t){var i="";return i=CheckMissingMaskFlag(n,xISPARKING,"parking",i,t),i=CheckMissingMaskFlag(n,xISPARKINGACCESSIBLE,"accessible parking",i,t),i=CheckMissingMaskFlag(n,xISLHTRANSFER,"LH transfer",i,t),i=CheckMissingMaskFlag(n,xISRHTRANSFER,"RH transfer",i,t),i=CheckMissingMaskFlag(n,xISADULTCHANGE,"adult change",i,t),i=CheckMissingMaskFlag(n,xISAMBULANT,"ambulant",i,t),i=CheckMissingMaskFlag(n,xISBABYCHANGE,"baby change facilities",i,t),i=CheckMissingMaskFlag(n,xISSHARPSDISPOSAL,"sharps disposal",i,t),i=CheckMissingMaskFlag(n,xISSHOWERS,"showers",i,t),i=CheckMissingMaskFlag(n,xISSANITARYDISPOSAL,"sanitary disposal",i,t),i=CheckMissingMaskFlag(n,xISDRINKINGWATER,"drinking water",i,t),i=CheckMissingMaskFlag(n,xISMLAKKEY,"MLAK keys",i,t),i=CheckMissingMaskFlag(n,xISOPENALLHOURS,"Open 24 hours",i,t),i=CheckMissingMaskFlag(n,xISDUMPPOINT,"caravan dumpoints",i,t),i=CheckMissingMaskFlag(n,xISCHANGINGPLACES,"Changing Places",i,t),i!=""&&(i=" with "+i),i}function CheckMissingMaskFlag(n,t,i,r,u){var e=", ",f=" or ";return u==null?HasFlag(n,t)&&(r!=null&&r!=""&&(r=r.replace(f,e),r=r+f),r+=i):(f=" and ",HasFlag(u,t)&&!HasFlag(n,t)&&(r!=null&&r!=""&&(r=r.replace(f,e),r=r+f),r+=i)),r}function HasFlag(n,t){return(n&t)==t}function missingMaskInfo(n,t){var i="",r=t===undefined?"map":t;return n>0&&(i=GetWithSelectedPrioritiesText(n)),i!==""?"There are no toilets"+GetWithSelectedPrioritiesText(n)+" on the "+r+".":""}function searchMaskInfo(n,t,i){var r="",u=i===undefined?"map":i;return n>0&&(r=GetWithSelectedPrioritiesText(t,n)),r!==""?"There are toilets"+r+" on the "+u+".":""}function myActionFavourites(){saveType="Save",getSaveDialog()}function myActionEmail(){saveType="Email",reSaveToiletSimple(),$("#mailToLink").get(0).click()}function myActionFacebook(){saveType="Facebook",reSaveToiletSimple(),href=$("#actionBarFacebook").attr("href"),window.open(href,"facebook_share_dialog","width=626,height=436")}function myActionTwitter(){saveType="Twitter",reSaveToiletSimple(),href=$("#actionBarTwitter").attr("href"),window.open(href,"twitter_dialog","width=626,height=436")}function myActionGooglePlus(){saveType="Google",reSaveToiletSimple(),href=$("#actionBarGoogle").attr("href"),window.open(href,"google_dialog","width=626,height=436")}function getSaveDialog(){$.ajax({url:"/Toilet/SaveToiletPartial/"+saveType,cache:!1,dataType:"html",success:function(n){$("#saveToiletParent").html(n),$("#saveToiletForm").submit(function(n){n.preventDefault(),saveToilet()}),resetFormValidation("#saveToiletForm");var t=$("#saveToiletParent");t!=null&&t.length==1&&(saveType!="Facebook"&&saveType!="Twitter"&&saveType!="Google"&&saveType!="Email"?showSaveToiletModal(!0):showSaveToiletModal(!1))}})}function myActionPrint(){window.print()}function showSaveToiletModal(n){$("#myToiletHRID").attr("value",$("#HRToiletID").attr("value")),$("#toiletQuestion").text('Add the toilet "'+$("#Title").text()+'" to My Toilets?'),$("#sendToiletQuestion").text('Do you want to send the toilet "'+$("#Title").text()+'"?'),$("#mdErrors").text(""),n?$("#SaveToiletModal").modal():saveToilet()}function BuildReSaveData(){var n={};n.__RequestVerificationToken=$("input[name='__RequestVerificationToken']").attr("value");switch(saveType){case"Facebook":n.SendViaEmail=!1,n.SendViaFacebook=!0,n.SendViaGoogle=!1,n.SendViaTwitter=!1;break;case"Email":n.SendViaEmail=!0,n.SendViaFacebook=!1,n.SendViaGoogle=!1,n.SendViaTwitter=!1;break;case"Google":n.SendViaEmail=!1,n.SendViaFacebook=!1,n.SendViaGoogle=!0,n.SendViaTwitter=!1;break;case"Twitter":n.SendViaEmail=!1,n.SendViaFacebook=!1,n.SendViaGoogle=!1,n.SendViaTwitter=!0}return n}function reSaveToiletSimple(){var t=BuildReSaveData(),n;return $.ajax({type:"POST",url:"/api/FavouriteToiletAPI/IncrementShareCount",data:t,async:!1,success:function(n){n.Success?isSuccess=!0:handleValidationMessages(n)},error:function(n,t,i){handleAjaxErrors(n,t,i)}}),n={},n.Success=isSuccess,n}function saveToilet(){var i=$($("#saveToiletForm").get(0)),n="",t=!1;Modernizr.localstorage&&(localStorage.ToiletSaveData!=undefined&&localStorage.ToiletSaveData!=null&&localStorage.ToiletSaveData!="null"?(n=localStorage.ToiletSaveData,localStorage.ToiletSaveData=null,t=!0):(n=i.serialize(),n=n.replace("SaveToFavourites=true&SaveToFavourites=false","SaveToFavourites=true"),localStorage.ToiletSaveData=n)),i.valid()&&$.ajax({type:"POST",url:"/api/FavouriteToiletAPI/SaveToilet",data:n,error:function(n,i,r){t?r!="Unauthorized"&&handleAjaxErrors(n,i,r):handleAjaxErrors(n,i,r,"SaveToilet")=="login loaded"&&(wantingToSave=!0,$("#SaveToiletModal").modal("hide"))},success:function(n){n.Success?(Modernizr.localstorage&&(localStorage.ToiletSaveData=null),$("#SaveToiletModal").modal("hide"),$("#lfsSaveToilet").show(),saveType!="Facebook"&&saveType!="Twitter"&&saveType!="Google"&&(saveType!="Email"||$("#SaveToFavourites").is(":checked"))&&messages.temporaryMessage([new displayMessage(messageType.SUCCESS,"",messages.saveToilet)],8e3)):n.Message=="Unauthorized"?t||(wantingToSave=!0,$("#SaveToiletModal").modal("hide"),loadAndShowLoginForm()):handleModalDialogErrorMessages(n,"SaveToilet")}})}function PostLogin(){wantingToSave?$.ajax({url:"/Toilet/SaveToiletPartial/"+saveType,cache:!1,dataType:"html",success:function(n){return $("#saveToiletParent").html(n),$("#saveToiletForm").submit(function(n){n.preventDefault(),saveToilet()}),wantingToSave&&($("#myToiletHRID").attr("value",$("#HRToiletID").attr("value")),$("#toiletQuestion").text('Do you want to add the toilet "'+$("#Title").text()+'" to your My Toilets?'),$("#sendToiletQuestion").text('Do you want to send the toilet "'+$("#Title").text()+'"?'),$("#SaveToiletModal").modal("hide"),saveToilet(),wantingToSave=!1),!1}}):typeof FunctionQueue!="undefined"&&FunctionQueue.paused==!0?FunctionQueue.paused=!1:Modernizr.sessionstorage&&sessionStorage.PictureFile!=undefined&&sessionStorage.PictureFile!=null&&sessionStorage.PictureFile!="null"?($("#file").attr("value",sessionStorage.PictureFile),$("#PictureSelectorModal").modal(),$("#pictureForm").submit()):location.reload()}function closeToiletDialog(){$("#SaveToiletModal").modal("hide")}function myActionGPS(){var n="",i=document.URL,t=$("#edit_Title").attr("value");i.indexOf("Create")>0||t!=undefined&&t.length<1?($("#GPS_Alert").get(0).innerHTML="<div class='alert alert-warning'><h4>Download is only available for an existing, approved toilet.<br />Retry download after this toilet has been approved.<\/h4><\/div>",$("#downloadGPSSubmit").addClass("hide")):($("#GPS_Alert").get(0).innerHTML="",$("#downloadGPSSubmit").removeClass("hide"),n=$("#HRToiletID").attr("value"),$("#GPS_HRToiletIDs").attr("value",n)),$("#DownloadGPSModal").modal()}function BuildToiletSideIcon(n,t){var i=$("#toilet-icon-template").clone().html();return i.replace(/{{tooltip}}/g,n).replace("{{icon}}",t)}function BuildToiletIconList(n){var t="";(HasFlag(n.SM,xISACCESSIBLEMALE)||HasFlag(n.SM,xISACCESSIBLEFEMALE)||HasFlag(n.SM,xISACCESSIBLEUNISEX))&&(t+=BuildToiletSideIcon("Accessible","wheelchair")),HasFlag(n.SM,xISUNISEX)&&(t+=BuildToiletSideIcon("Unisex","mf")),HasFlag(n.SM,xISMALE)&&(t+=BuildToiletSideIcon("Male","m")),HasFlag(n.SM,xISFEMALE)&&(t+=BuildToiletSideIcon("Female","f")),HasFlag(n.SM,xISACCESSIBLEUNISEX)&&(t+=BuildToiletSideIcon("Accessible Unisex","mfa")),HasFlag(n.SM,xISACCESSIBLEMALE)&&(t+=BuildToiletSideIcon("Accessible Male","ma")),HasFlag(n.SM,xISACCESSIBLEFEMALE)&&(t+=BuildToiletSideIcon("Accessible Female","fa")),HasFlag(n.SM,xISDUMPPOINT)&&(t+=BuildToiletSideIcon("Dump point","dumppoint")),HasFlag(n.SM,xISPARKING)&&(t+=BuildToiletSideIcon("Parking","parking")),HasFlag(n.SM,xISPARKINGACCESSIBLE)&&(t+=BuildToiletSideIcon("Parking accessible","parkingacc")),HasFlag(n.SM,xISLHTRANSFER)&&(t+=BuildToiletSideIcon("LH Transfer","transfer_lh")),HasFlag(n.SM,xISRHTRANSFER)&&(t+=BuildToiletSideIcon("RH Transfer","transfer_rh")),HasFlag(n.SM,xISADULTCHANGE)&&(t+=BuildToiletSideIcon("Adult change","adultchange")),HasFlag(n.SM,xISCHANGINGPLACES)&&(t+=BuildToiletSideIcon("Changing Places accredited facility","changingplaces")),HasFlag(n.SM,xISAMBULANT)&&(t+=BuildToiletSideIcon("Ambulant","ambulant"));switch(n.F){case"Bus station":t+=BuildToiletSideIcon(n.F,"bus");break;case"Caravan park":t+=BuildToiletSideIcon(n.F,"caravan");break;case"Camping ground":t+=BuildToiletSideIcon(n.F,"camp");break;case"Car park":t+=BuildToiletSideIcon(n.F,"motor");break;case"Train station":t+=BuildToiletSideIcon(n.F,"train");break;case"Service station":t+=BuildToiletSideIcon(n.F,"fuel");break;case"Park or reserve":t+=BuildToiletSideIcon(n.F,"park");break;case"Airport":t+=BuildToiletSideIcon(n.F,"plane");break;case"Sporting facility":t+=BuildToiletSideIcon(n.F,"sport");break;case"Food outlet":t+=BuildToiletSideIcon(n.F,"food");break;case"Shopping centre":t+=BuildToiletSideIcon(n.F,"shop")}return HasFlag(n.SM,xISPAYMENTREQUIRED)&&(t+=BuildToiletSideIcon("Payment required","payment")),HasFlag(n.SM,xISKEYREQUIRED)&&(t+=BuildToiletSideIcon("Key required","key")),HasFlag(n.SM,xISMLAKKEY)&&(t+=BuildToiletSideIcon("MLAK key","mlak")),HasFlag(n.SM,xISACCESSLIMITED)&&(t+=BuildToiletSideIcon("Access limited","lock")),HasFlag(n.SM,xISSHOWERS)&&(t+=BuildToiletSideIcon("Showers","shower")),HasFlag(n.SM,xISBABYCHANGE)&&(t+=BuildToiletSideIcon("Baby change","babychange")),HasFlag(n.SM,xISDRINKINGWATER)&&(t+=BuildToiletSideIcon("Drinking water","water")),HasFlag(n.SM,xISSHARPSDISPOSAL)&&(t+=BuildToiletSideIcon("Sharps disposal","syringe")),HasFlag(n.SM,xISSANITARYDISPOSAL)&&(t+=BuildToiletSideIcon("Sanitary disposal","disposal")),t}function BuildMiniToilet(n){var r=$("#toilet-mini-template").clone().html(),t="",i;return t=n.O==null?"unknown":n.O,i=r.replace("{{title}}",n.T).replace(/{{toiletId}}/g,n.ID).replace("{{score}}",n.S).replace("{{icons}}",BuildToiletIconList(n)).replace("{{address1}}",n.A1).replace("{{open}}",t).replace("{{mapicon}}",GetMapImageName(n)).replace("{{locality}}",(n.A1==null||n.A1==""?"":", ")+n.L)}function BuildMarkerImage(n,t){var i=0,r=0,u=0,f=0,e=0,o=0,h,c,l,s,a;return MarkerIconDefinitions[n]==null?(h=$("."+n).css("background-position"),h==undefined?(c=$("."+n).css("background-position-x"),l=$("."+n).css("background-position-y"),e=Number(c.match("[0-9]+")[0]),o=Number(l.match("[0-9]+")[0])):(s=$("."+n).css("background-position").match(/[0-9]+/g),e=Number(s[0]),o=Number(s[1])),i=Number($("."+n).css("width").match("[0-9]+")[0]),r=Number($("."+n).css("height").match("[0-9]+")[0]),t=="centre"?(u=Math.floor(i/2),f=Math.floor(r/2)):t=="bottomthird"?(u=Math.floor(i/3),f=r):(u=n.indexOf("-pin")>0?13:Math.floor(i/2),f=r),MarkerIconDefinitions[n]={x:e,y:o,width:i,height:r,pinX:u,pinY:f}):(i=MarkerIconDefinitions[n].width,r=MarkerIconDefinitions[n].height,e=MarkerIconDefinitions[n].x,o=MarkerIconDefinitions[n].y,u=MarkerIconDefinitions[n].pinX,f=MarkerIconDefinitions[n].pinY),a=new google.maps.MarkerImage("/Images/toiletmap-icons.png?v=2",new google.maps.Size(i,r),new google.maps.Point(e,o),new google.maps.Point(u,f))}function GetMapPinImage(n){var r,i=GetMapImageName(n);return images[i]==null&&(images[i]=BuildMarkerImage(i+"-pin")),r=images[i]}function GetHightlightedMapPinImage(n){var r,i=GetMapImageName(n)+"-pin-highlight";return images[i]==null&&(images[i]=BuildMarkerImage(i)),r=images[i]}function GetMapImageName(n){var t;return t=HasFlag(n.SM,xISDUMPPOINT)?"dumppoint":HasFlag(n.SM,xISACCESSIBLEMALE)&&HasFlag(n.SM,xISACCESSIBLEFEMALE)||HasFlag(n.SM,xISACCESSIBLEUNISEX)?"mfa":HasFlag(n.SM,xISUNISEX)?"mf":HasFlag(n.SM,xISMALE)&&HasFlag(n.SM,xISFEMALE)?"mf":HasFlag(n.SM,xISACCESSIBLEFEMALE)?"fa":HasFlag(n.SM,xISFEMALE)?"f":HasFlag(n.SM,xISACCESSIBLEMALE)?"ma":HasFlag(n.SM,xISMALE)?"m":"mf"}function AreBoundsEqual(n,t){var i=!1;return i=n==null&&t==null?!0:n==null||t==null?!1:n.getSouthWest().lat()==t.getSouthWest().lat()&&n.getSouthWest().lng()==t.getSouthWest().lng()&&n.getNorthEast().lat()==t.getNorthEast().lat()&&n.getNorthEast().lng()==t.getNorthEast().lng()}function recordTiming(n,t){var i=new Date,r=i.getTime()-t.getTime();buildTimingMessage(n,r,t)}function accumulateTime(n,t){var i=new Date,r=i.getTime()-n.getTime();return t+=r}function buildTimingMessage(n,t,i){timingMessage+="\n"+n+" took "+t+" milliseconds to run. "+(i==null?"":"Started-"+formatTime(i))}function formatTime(n){var u="",f=0,i=0,r=0,t=0,e;return f=n.getHours(),i=n.getMinutes(),i<10&&(i="0"+i),r=n.getSeconds(),r<10&&(r="0"+r),t=n.getMilliseconds(),t<10&&(e="00"+t),t<100&&(e="0"+t),u=f+":"+i+":"+r+":"+t}function ToiletMiniClick(n){typeof onToiletMiniClick=="function"&&onToiletMiniClick(n)}function onToiletMiniClick(n){markerClick(n)}function ensureBoundsAreBestFit(n){var i=!0,t=map.getBounds(),r=n.getNorthEast().lng()-n.getSouthWest().lng(),u=n.getSouthWest().lat()-n.getNorthEast().lat(),f=t.getNorthEast().lng()-t.getSouthWest().lng(),e=t.getSouthWest().lat()-t.getNorthEast().lat();return r<=f/2*1.01&&u*-1<=e/-2*1.01&&(map.setZoom(map.getZoom()+1),i=!1),i}var marker,FunctionQueue={},wantingToSave,saveType,MarkerIconDefinitions,timingMessage;FunctionQueue.theQueue=[],FunctionQueue.canSave=!0,FunctionQueue.paused=!1,FunctionQueue.WrapFunction=function(n,t,i){var r=function(){return n.apply(t,i)};FunctionQueue.theQueue.push(r)},FunctionQueue.RunFunction=function(){FunctionQueue.theQueue.length>0&&FunctionQueue.canSave&&!FunctionQueue.paused&&(FunctionQueue.canSave=!1,FunctionQueue.theQueue.shift()().always(function(){FunctionQueue.canSave=!0}),$("#saveSuccessfull").hide())},$(function(){window.setInterval(FunctionQueue.RunFunction,100)});var xISMALE=1,xISACCESSIBLEMALE=2,xISFEMALE=4,xISACCESSIBLEFEMALE=8,xISUNISEX=16,xISACCESSIBLEUNISEX=32,xISDUMPPOINT=64,xISPARKING=128,xISPARKINGACCESSIBLE=256,xISBABYCHANGE=512,xISSHARPSDISPOSAL=1024,xISSHOWERS=2048,xISSANITARYDISPOSAL=4096,xISDRINKINGWATER=8192,xISKEYREQUIRED=16384,xISMLAKKEY=32768,xISPAYMENTREQUIRED=65536,xISACCESSLIMITED=131072,xISOPENALLHOURS=262144,xISOPENDAYLIGHTHOURS=524288,xISCLOSED=1048576,xISOPENINGHOURSVARIABLE=2097152,xISAMBULANT=4194304,xISLHTRANSFER=8388608,xISRHTRANSFER=16777216,xISADULTCHANGE=33554432,xISCHANGINGPLACES=67108864;wantingToSave=!1,saveType="Save",$("#saveToiletForm").submit(function(n){saveToiletFormSubmit(this,n)}),$(function(){Modernizr.localstorage&&localStorage.ToiletSaveData!=undefined&&localStorage.ToiletSaveData!=null&&localStorage.ToiletSaveData!="null"&&saveToilet();var n=window.location,i=$("#Title").text(),t="mailto:?to=&subject=View%20my%20map&body="+encodeURIComponent(n)+"%0D%0A",r="https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(n),u="https://twitter.com/intent/tweet?url="+encodeURIComponent(n)+"&text="+encodeURIComponent(i),f="https://plus.google.com/share?url="+encodeURIComponent(n);$("#mailToLink").attr("href",t),$("#actionBarEmail").attr("href",t),$("#actionBarFacebook").attr("href",r),$("#actionBarTwitter").attr("href",u),$("#actionBarGoogle").attr("href",f)});var map,markers={},mapImage,toiletInfo,images={},toilets={},updateCallTimeout,AustraliaBounds,calloutDisplayTimeout,supressInfoWindow,startMapTime;$(function(){startMapTime=+new Date,PreInitialiseMap(),AustraliaBounds=new google.maps.LatLngBounds(new google.maps.LatLng(-43.658327,112.9239721),new google.maps.LatLng(-9.2268057,153.6386738)),InitialiseMap()}),MarkerIconDefinitions=[],timingMessage=""