var mapDiv=document.getElementById('map');;var instructionsDiv=document.getElementById('instructions');var params,map,om;var boats,markers;var colors=['ff0000','00ff00','0000ff','ffff00','ff00ff','00ffff','990000','009900','000099','999900','990099','009999','99ffff','ff99ff','ffff99','9999ff','99ff99','ff9999','ff9900','ff0099','00ff99','99ff00','9900ff','0099ff','000000','ffffff','999999',];var nColors=colors.length;var baseIcon=new GIcon();baseIcon.iconSize=new GSize(19,19);baseIcon.iconAnchor=new GPoint(9,9);baseIcon.infoWindowAnchor=new GPoint(7,7);function Setup() {try {if(!GBrowserIsCompatible()) {mapDiv.innerHTML='Sorry, your browser is not compatible with Google Maps.';return;} SetLanguage(LANG_ENGLISH);instructionsDiv.innerHTML=''+_mInstructions+'';params=GetParameters();if(!params['class']) params['class']='all';if(!params.days) params.days='last5';om=new OverlayMessage(mapDiv);map=new GMap2(mapDiv,{draggableCursor:'default'});map.addControl(new GLargeMapControl());map.addMapType(WMS_TOPO_MAP);map.addMapType(WMS_DOQ_MAP);map.addControl(new GMapTypeControl());map.addControl(new GScaleControl());map.setCenter(new GLatLng(31,-138),4);om.Set('Loading...');HttpGet('data.xml',RequestChecker);} catch(e) {GLog.write('Setup:\n'+Props(e));}} function RequestChecker(request) {try {var xmlDoc=request.responseXML.documentElement;var clasElements=xmlDoc.getElementsByTagName('class');clasNames=[];for(var i=0;ilastDay) lastDay=day;}} boats=[];markers=[];var nPositions=0;var wLat=0,wLng=0;var boatElements=xmlDoc.getElementsByTagName('boat');for(var i=0;i0&&lat==points[points.length-1].lat()&&lng==points[points.length-1].lng()) continue;var marker=new GMarker(point,{icon:MakeIcon(day,color),title:boat.name});marker.lat=lat;marker.lng=lng;marker.day=day;marker.dst2go=positionElements[j].getAttribute('dst2go');marker.cortime=positionElements[j].getAttribute('cortime');marker.stdcl=positionElements[j].getAttribute('stdcl');marker.stdfl=positionElements[j].getAttribute('stdfl');marker.eta=positionElements[j].getAttribute('eta');marker.boatNum=boatNum;GEvent.addListener(marker,'click',MakeCaller(PopUp,nPositions));map.addOverlay(marker);markers.push(marker);++nPositions;points.push(point);if((boat.id!='AE'||params['class']=='A')&&lng=2) map.addOverlay(new GPolyline(points,'#'+color));}} map.setCenter(new GLatLng(wLat,wLng),5);var daysSelect=document.getElementById('days');if(params.days=='all') daysSelect.selectedIndex=0;else if(params.days=='last15') daysSelect.selectedIndex=1;else if(params.days=='last10') daysSelect.selectedIndex=2;else if(params.days=='last7') daysSelect.selectedIndex=3;else if(params.days=='last5') daysSelect.selectedIndex=4;else if(params.days=='last4') daysSelect.selectedIndex=5;else if(params.days=='last3') daysSelect.selectedIndex=6;else if(params.days=='last2') daysSelect.selectedIndex=7;else if(params.days=='last') daysSelect.selectedIndex=8;var clasSelect=document.getElementById('class');clasSelect[0].selected=true;var n=1;for(var clas in clasNames) {if(clas!='clear') {clasSelect[n]=new Option(clasNames[clas],clas);if(params['class']==clas) clasSelect[n].selected=true;++n;}} om.Clear();} catch(e) {GLog.write('RequestChecker:\n'+Props(e));}} function MakeIcon(day,bgcolor) {var icon=new GIcon(baseIcon);icon.image='icons/'+day+'_'+bgcolor+'.png';return icon;} function PopUp(i) {try {var boatNum=markers[i].boatNum;var html='
'+boats[boatNum].name+', July '+markers[i].day+':
N '+markers[i].lat+' W '+(-markers[i].lng)+'
'+markers[i].dst2go+' miles to go
Time: '+markers[i].cortime+', ETA: '+markers[i].eta+'
#'+markers[i].stdcl+' in class ('+clasNames[boats[boatNum].clas]+'), #'+markers[i].stdfl+' in fleet
'+boats[boatNum].type+' out of '+boats[boatNum].from+'
Owned/skippered by '+boats[boatNum].owner+'
';markers[i].openInfoWindowHtml(html,{maxWidth:300});} catch(e) {GLog.write('PopUp:\n'+Props(e));}}