
var oldAir=false;var oldWater=false;var tempHash=new Object();function GetStations(){var air=false;var water=false;for(var i in stationLayers){if(stationLayers[i]=="waterStations"){water=true;}
if(stationLayers[i]=="airStations"){air=true;}}
if(air||water){var mapWidth=document.getElementById('myMap').clientWidth;var mapHeight=document.getElementById('myMap').clientHeight;var mapCenter=map.getCenter();var pixelCenter=map.tryLocationToPixel(mapCenter);var x1=pixelCenter.x-(mapWidth/2);var y1=pixelCenter.y-(mapHeight/2);var x2=pixelCenter.x+(mapWidth/2);var y2=pixelCenter.y+(mapHeight/2);var latLong1=map.tryPixelToLocation(new Microsoft.Maps.Point(x1,y1));var latLong2=map.tryPixelToLocation(new Microsoft.Maps.Point(x2,y2));if(air&&water){if(oldAir&&oldWater){tempHash=stationHash;}
ScriptablePushpinService.GetStationDescriptionsForMapBoundaries(latLong1.latitude,latLong2.longitude,latLong2.latitude,latLong1.longitude,null,stationAmount,map.getZoom(),GetStationDescriptionsForMapBoundaries_OnSuccess,GetStationDescriptionsForMapBoundaries_OnFailed);}
else if(air){if(oldAir){tempHash=stationHash;}
ScriptablePushpinService.GetStationDescriptionsForMapBoundaries(latLong1.latitude,latLong2.longitude,latLong2.latitude,latLong1.longitude,"Air",stationAmount,map.getZoom(),GetStationDescriptionsForMapBoundaries_OnSuccess,GetStationDescriptionsForMapBoundaries_OnFailed);}
else if(water){if(oldWater){tempHash=stationHash;}
ScriptablePushpinService.GetStationDescriptionsForMapBoundaries(latLong1.latitude,latLong2.longitude,latLong2.latitude,latLong1.longitude,"Water",stationAmount,map.getZoom(),GetStationDescriptionsForMapBoundaries_OnSuccess,GetStationDescriptionsForMapBoundaries_OnFailed);}
oldAir=air;oldWater=water;}}
function GetStationDescriptionsForMapBoundaries_OnSuccess(result){if(result!=null){var stationArray=result;HideAllTileLayers();for(var i=0;i<stationArray.length;i++){if(!isStationIdLoaded(stationArray[i].StationId)){var latLong=new Microsoft.Maps.Location(stationArray[i].Latitude,stationArray[i].Longitude);var shape=new Microsoft.Maps.Pushpin(latLong);var localIcon=stationIconNoData.replace(/id=""/,"id='"+stationArray[i].StationId.toString()+"'");var value;switch(stationArray[i].StationPurpose){case"Water":value="EEAWater";break;case"Air":default:value="EEAAir";break;}
if(stationArray[i].QualityIndex==0||stationArray[i].QualityIndex==null){value+="NoData";}else{value+=stationArray[i].QualityIndex.toString();}
localIcon=localIcon.replace(/ICON/,value);shape.setOptions({icon:localIcon});pushpinLayer.push(shape);stationHash[stationArray[i].StationId.toString()]=shape;}
else{stationHash[stationArray[i].StationId.toString()]=tempHash[stationArray[i].StationId.toString()];}
map.entities.push(stationLayer);}}else{ShowSelectedTileLayers();}}
function isStationIdLoaded(stationId){for(var i in tempHash){if(stationId==i){return true;}}
return false;}
function GetStationDescriptionsForMapBoundaries_OnFailed(result){}
function GetStation(stationId){ScriptablePushpinService.GetStationHtml(stationId,stationId,userCulture,GetStation_OnSuccess,GetStation_OnFailed);return true;}
function GetStation_OnSuccess(result){if(stationHash[result.Id.toString()]==undefined){stationHash[result.Id.toString()]=tempStation;}
var loadingDiv=$("#loading").parent().parent();if(loadingDiv.html()!=null){loadingDiv.html(result.Html);}
else{$("#Pushpin").parent().html(result.Html);}}
function GetStation_OnFailed(result){}
