
var map;var localSearch=new GlocalSearch();var icon=new GIcon();icon.image="http://www.google.com/mapfiles/marker.png";icon.shadow="http://www.google.com/mapfiles/shadow50.png";icon.iconSize=new GSize(20,34);icon.shadowSize=new GSize(37,34);icon.iconAnchor=new GPoint(10,34);var iconDummy=new GIcon();iconDummy.iconSize=new GSize(20,34);iconDummy.shadowSize=new GSize(37,34);iconDummy.iconAnchor=new GPoint(10,34);var pCode;var WIND_SPEED_ZOOM=13;function usePointFromPostcode(postcode,callbackFunction){document.getElementById("loading_id").className='loadingShow';pCode=postcode;localSearch.setSearchCompleteCallback(null,function(){if(localSearch.results[0])
{var resultLat=localSearch.results[0].lat;var resultLng=localSearch.results[0].lng;var point=new GLatLng(resultLat,resultLng);callbackFunction(point);}else{alert("Postcode not found!");}});localSearch.execute(postcode+", UK");}
function placeMarkerAtPoint(point)
{var marker=new GMarker(point,icon);map.addOverlay(marker);}
function setCenterToPoint(point)
{map.setCenter(point,WIND_SPEED_ZOOM);}
function showPointLatLng(point)
{alert("Latitude: "+point.lat()+"\nLongitude: "+point.lng());}
function getWindSpeedForPostcode(pc){document.getElementById("loading_id").className='loadingShow';pCode=pc;if(isNI(pc)){usePointFromPostcode(pc,setGoogleCoordinatesAndShowWindSpeeds);}else{pcaGeocodePostcodeBegin(pCode,'','','NEXTG11112','BP93-ZW46-BZ92-GN33',"setPACoordinatesAndShowWindSpeeds");}}
function setGoogleCoordinatesAndShowWindSpeeds(point){var mainCoord=new postCodeCoordinates("","","","","",point.lat(),point.lng(),"");var windSpeeds=generateWindSpeed(mainCoord,pCode);showWindSpeedForPostcode(windSpeeds);}
function setPACoordinatesAndShowWindSpeeds(){if(pcaIsError)
{alert(pcaErrorMessage);}
else{var mainCoord=new postCodeCoordinates(pca_location,pca_grid_east_m[0],pca_grid_north_m[0],pca_latitude[0],pca_longitude[0],pca_wgs84_latitude[0],pca_wgs84_longitude[0],pca_os_reference);var windSpeeds=generateWindSpeed(mainCoord,pCode);showWindSpeedForPostcode(windSpeeds);}}
function showWindSpeedForPostcode(windSpeeds){var details='<span class="markerPanel">Your Postcode: '+ pCode+'</span>';removeExistingMarkers();var point=new GLatLng(windSpeeds[0][1],windSpeeds[0][2]);setPostcodeMarker(point,details);details='';details=details+windSpeeds[1][0];details="<div id=\"popup\">"+details+"<\/div>";var mainWindPoint=new GLatLng(windSpeeds[1][1],windSpeeds[1][2]);setCenterToPoint(mainWindPoint);setMarkerWithOn(mainWindPoint,details);setOtherMarkers(windSpeeds);document.getElementById("loading_id").className='panelHide';}
function redrawMap(point){var lat=point.lat();var lng=point.lng();var windSpeeds=getWindSpeed(lat,lng,pCode);var details='Your Post code: '+pCode;removeExistingMarkers();setPostcodeMarker(point,details);details='';details=details+windSpeeds[0][0];details="<div id=\"popup\">"+details+"<\/div>";var mainWindPoint=new GLatLng(windSpeeds[0][1],windSpeeds[0][2]);setCenterToPoint(mainWindPoint);setMarkerWithOn(mainWindPoint,details);setOtherMarkers(windSpeeds);document.getElementById("loading_id").className='panelHide';}
function removeExistingMarkers(){map.clearOverlays();}
function setOtherMarkers(windSpeeds){var marker;var grid1Details="<div id=\"popup\">"+windSpeeds[2][0]+"<\/div>";var grid1opts={"icon":iconDummy,"clickable":true,"labelText":grid1Details,"labelOffset":new GSize(0,0)};var point1=new GLatLng(windSpeeds[2][1],windSpeeds[2][2]);marker=new LabeledMarker(point1,grid1opts);map.addOverlay(marker);var grid2Details="<div id=\"popup\">"+windSpeeds[3][0]+"<\/div>";var grid2opts={"icon":iconDummy,"clickable":true,"labelText":grid2Details,"labelOffset":new GSize(0,0)};var point2=new GLatLng(windSpeeds[3][1],windSpeeds[3][2]);marker=new LabeledMarker(point2,grid2opts);map.addOverlay(marker);var grid3Details="<div id=\"popup\">"+windSpeeds[4][0]+"<\/div>";var grid3opts={"icon":iconDummy,"clickable":true,"labelText":grid3Details,"labelOffset":new GSize(0,0)};var point3=new GLatLng(windSpeeds[4][1],windSpeeds[4][2]);marker=new LabeledMarker(point3,grid3opts);map.addOverlay(marker);var grid4Details="<div id=\"popup\">"+windSpeeds[5][0]+"<\/div>";var grid4opts={"icon":iconDummy,"clickable":true,"labelText":grid4Details,"labelOffset":new GSize(0,0)};var point4=new GLatLng(windSpeeds[5][1],windSpeeds[5][2]);marker=new LabeledMarker(point4,grid4opts);map.addOverlay(marker);var grid5Details="<div id=\"popup\">"+windSpeeds[6][0]+"<\/div>";var grid5opts={"icon":iconDummy,"clickable":true,"labelText":grid5Details,"labelOffset":new GSize(0,0)};var point5=new GLatLng(windSpeeds[6][1],windSpeeds[6][2]);marker=new LabeledMarker(point5,grid5opts);map.addOverlay(marker);var grid6Details="<div id=\"popup\">"+windSpeeds[7][0]+"<\/div>";var grid6opts={"icon":iconDummy,"clickable":true,"labelText":grid6Details,"labelOffset":new GSize(0,0)};var point6=new GLatLng(windSpeeds[7][1],windSpeeds[7][2]);marker=new LabeledMarker(point6,grid6opts);map.addOverlay(marker);var grid7Details="<div id=\"popup\">"+windSpeeds[8][0]+"<\/div>";var grid7opts={"icon":iconDummy,"clickable":true,"labelText":grid7Details,"labelOffset":new GSize(0,0)};var point7=new GLatLng(windSpeeds[8][1],windSpeeds[8][2]);marker=new LabeledMarker(point7,grid7opts);map.addOverlay(marker);var grid8Details="<div id=\"popup\">"+windSpeeds[9][0]+"<\/div>";var grid8opts={"icon":iconDummy,"clickable":true,"labelText":grid8Details,"labelOffset":new GSize(0,0)};var point8=new GLatLng(windSpeeds[9][1],windSpeeds[9][2]);marker=new LabeledMarker(point8,grid8opts);map.addOverlay(marker);}
function setPostcodeMarker(point,details){var marker=new GMarker(point);map.addOverlay(marker);GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml(details);});}
function setMarkerWithOn(point,details){var opts={"icon":iconDummy,"clickable":true,"labelText":details,"labelOffset":new GSize(0,0)};var marker=new LabeledMarker(point,opts);map.addOverlay(marker);}
function mapLoad(){if(GBrowserIsCompatible()){map=new GMap2(document.getElementById("map"));map.addControl(new GLargeMapControl());map.setCenter(new GLatLng(54.622978,-2.592773),5,G_PHYSICAL_MAP);map.addMapType(G_PHYSICAL_MAP);var hierarchy=new GHierarchicalMapTypeControl();hierarchy.addRelationship(G_SATELLITE_MAP,G_HYBRID_MAP,null,true);map.addControl(hierarchy);map.addControl(new GScaleControl());}}
function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}
function addUnLoadEvent(func){var oldonunload=window.onunload;if(typeof window.onunload!='function'){window.onunload=func;}else{window.onunload=function(){oldonunload();func();}}}
addLoadEvent(mapLoad);addUnLoadEvent(GUnload);