var map;var old_bounds;var mapbounds;var mgr;var origin_id="";var firstPoint=1;var route_data_len=0;var routesActive=false;var infoOpen=false;var link_marker;var lrg_ap_marker;var med_ap_marker;var sml_ap_marker;var smlr_ap_marker;var tny_ap_marker;var nr_marker;var close_marker;var mm_destinations;var routeInfo;var infoTabs;var route_data;var airport_data;var line_data;var zoom_level;var zlim;function createMarker(point,name,infoTabs,icontype){var marker=0;if(icontype===0){marker=new GMarker(point,link_marker)}else if(icontype==1){marker=new GMarker(point,lrg_ap_marker)}else if(icontype==2){marker=new GMarker(point,med_ap_marker)}else if(icontype==3){marker=new GMarker(point,sml_ap_marker)}else if(icontype==4){marker=new GMarker(point,smlr_ap_marker)}else if(icontype==5){marker=new GMarker(point,tny_ap_marker)}else if(icontype==6){marker=new GMarker(point,nr_marker)}GEvent.addListener(marker,"click",function(){infoOpen=true;marker.openInfoWindowTabsHtml(infoTabs)});return marker}function createCloseMarker(point,name){var marker=new GMarker(point,close_marker);GEvent.addListener(marker,"click",function(){routesActive=false;map.clearOverlays();mgr.toggle();mm_destinations.clearMarkers()});return marker}function createPolyLine(line_data,routeInfo,isAirlineData){var polyOptions={geodesic:true};var polyline=0;if(route_data_len<100){polyline=new GPolyline([new GLatLng(line_data[0].getAttribute("airport_lat"),line_data[0].getAttribute("airport_long")),new GLatLng(line_data[1].getAttribute("airport_lat"),line_data[1].getAttribute("airport_long"))],"#000000",2,0.3,polyOptions);GEvent.addListener(polyline,"click",function(point){map.openInfoWindowTabsHtml(point,routeInfo)})}if(isAirlineData){mm_destinations.addMarker(createMarker(new GLatLng(line_data[0].getAttribute("airport_lat"),line_data[0].getAttribute("airport_long")),"airport destination",routeInfo,0),0,17);mm_destinations.addMarker(createMarker(new GLatLng(line_data[1].getAttribute("airport_lat"),line_data[1].getAttribute("airport_long")),"airport destination",routeInfo,0),0,17);if(firstPoint){map.panTo(new GLatLng(line_data[1].getAttribute("airport_lat"),line_data[1].getAttribute("airport_long")),4);firstPoint=0}}else{if(line_data[0].getAttribute("airport_id")==origin_id){mm_destinations.addMarker(createMarker(new GLatLng(line_data[1].getAttribute("airport_lat"),line_data[1].getAttribute("airport_long")),"airport destination",routeInfo,0),0,17);mm_destinations.addMarker(createCloseMarker(new GLatLng(line_data[0].getAttribute("airport_lat"),line_data[0].getAttribute("airport_long")),"close"),0,17)}else{mm_destinations.addMarker(createMarker(new GLatLng(line_data[0].getAttribute("airport_lat"),line_data[0].getAttribute("airport_long")),"airport destination",routeInfo,0),0,17);mm_destinations.addMarker(createCloseMarker(new GLatLng(line_data[1].getAttribute("airport_lat"),line_data[1].getAttribute("airport_long")),"close"),0,17)}}return polyline}function drawPolyRoutes(dataxml,responseCode){var alArr="";if(dataxml.length===0){}else{if(GBrowserIsCompatible()){var xml=GXml.parse(dataxml);line_data=xml.documentElement.getElementsByTagName("gc_coords");var airline_codes=xml.documentElement.getElementsByTagName("airline");var image="graphics/whereables.png";for(var x=0;x<airline_codes.length;x++){alArr+='<div class="wrapper"><div class="tl"></div><div class="tr"></div><div class="bl"></div><div class="br"></div><a href="javascript: void(0)" onclick="launchPop(\'airlines/'+airline_codes[x].getAttribute("airline_code")+'\')"><img style="position: relative; border: 0;" src="airlinelogos/_sfpg_data/thumb/'+airline_codes[x].getAttribute("airline_code")+'.gif" title="leave a review for this airline!"/></a></div>'}alArr+='<br><br>';routeInfo=[new GInfoWindowTab("General",'<div class="infoBox"><div class="infoBox">'+line_data[0].getAttribute("airport_name")+" (<b>"+line_data[0].getAttribute("airport_id")+"</b>) - "+line_data[1].getAttribute("airport_name")+" (<b>"+line_data[1].getAttribute("airport_id")+"</b>)"+"<br><br>"+"Operated By:<br><br> "+alArr+'leave a review for the airline by clicking on the logo!'+'<br><br><iframe id="dynamIframe" src="info_window_adsense.html" width="280" height="90" hspace="0" vspace="0" frameborder="0"></iframe>'+"<div><img style='position: relative; border: 0; ' src='"+image+"'></div>")];map.addOverlay(createPolyLine(line_data,routeInfo,0))}}}function drawAirlineRoutes(dataxml,responseCode){if(dataxml.length===0){}else{if(GBrowserIsCompatible()){var xml=GXml.parse(dataxml);line_data=xml.documentElement.getElementsByTagName("gc_coords");var image="graphics/whereables.png";routeInfo=[new GInfoWindowTab("General",'<div class="infoBox"><div class="infoBox">'+line_data[0].getAttribute("airport_name")+" (<b>"+line_data[0].getAttribute("airport_id")+"</b>) - "+line_data[1].getAttribute("airport_name")+" (<b>"+line_data[1].getAttribute("airport_id")+"</b>)"+"<br/><br/><div><img style='position: relative; border: 0; ' src='"+image+"'></div>")];map.addOverlay(createPolyLine(line_data,routeInfo,1))}}}function loadAirportRoutes(dataxml,responseCode){if(dataxml.length===0){}else{if(GBrowserIsCompatible()){var xml=GXml.parse(dataxml);route_data=xml.documentElement.getElementsByTagName("route");for(var i=0;i<route_data.length;i++){GDownloadUrl('generatepolyline.php?from_id='+route_data[i].getAttribute("from_apt")+'&to_id='+route_data[i].getAttribute("to_apt"),drawPolyRoutes)}}}}function loadAirlineRoutes(dataxml,responseCode){if(dataxml.length===0){}else{if(GBrowserIsCompatible()){var xml=GXml.parse(dataxml);route_data=xml.documentElement.getElementsByTagName("route");route_data_len=route_data.length;for(var i=0;i<route_data_len;i++){GDownloadUrl('generatepolyline.php?from_id='+route_data[i].getAttribute("from_apt")+'&to_id='+route_data[i].getAttribute("to_apt"),drawAirlineRoutes)}}}}function loadAirportLocations(dataxml,responseCode){if(dataxml.length===0){}else{if(GBrowserIsCompatible()){var xml=GXml.parse(dataxml);airport_data=xml.documentElement.getElementsByTagName("airport");for(var i=0;i<airport_data.length;i++){var image="graphics/whereables.png";var a_id="'"+airport_data[i].getAttribute("airport_id")+"'";var name_id="'airports/"+airport_data[i].getAttribute("airport_name")+" -"+airport_data[i].getAttribute("airport_id")+"'";infoTabs=[new GInfoWindowTab("General",'<div class="infoBox"><div class="infoBox">'+airport_data[i].getAttribute("airport_name")+" (<b>"+airport_data[i].getAttribute("airport_id")+"</b>) <br>"+"Number of Routes: <b>"+airport_data[i].getAttribute("route_count")+'</b>'+'<br/><br/><center><a href="javascript: void(0)" onclick="launchPop('+name_id+')"><img src="graphics/review.png" title="read or write reviews for this airport" border="0"/></a><a href="javascript: void(0)" onclick="showRoutes('+a_id+')"><img src="graphics/routes.png" title="show all the routes from this airport" border="0"/></a><a href="javascript: void(0)" onclick="launchAddRoute('+a_id+')"><img src="graphics/addroute.png" title="suggest another route" border="0"/></a></center><br><br>'+'<br><br><iframe id="dynamIframe" src="info_window_adsense.html" width="260" height="80" hspace="0" vspace="0" frameborder="0"></iframe>'+"</div><div><img style='position: relative; border: 0; ' src='"+image+"'></div>")];var point=new GLatLng(parseFloat(airport_data[i].getAttribute("latitude")),parseFloat(airport_data[i].getAttribute("longitude")));if(airport_data[i].getAttribute("route_count")>100){mgr.addMarker(createMarker(point,"airport",infoTabs,1),0,17)}else if(airport_data[i].getAttribute("route_count")>50){mgr.addMarker(createMarker(point,"airport",infoTabs,2),2,17)}else if(airport_data[i].getAttribute("route_count")>18){mgr.addMarker(createMarker(point,"airport",infoTabs,3),5,17)}else if(airport_data[i].getAttribute("route_count")>=6){mgr.addMarker(createMarker(point,"airport",infoTabs,4),7,17)}else if(airport_data[i].getAttribute("route_count")>0){mgr.addMarker(createMarker(point,"airport",infoTabs,5),8,17)}else if(airport_data[i].getAttribute("route_count")===0){mgr.addMarker(createMarker(point,"airport",infoTabs,6),8,17)}}}}}function displayMarkers(zoom_flag){if(!routesActive){var z_flag=zoom_flag;var new_bounds=map.getBounds();var sw=new_bounds.getSouthWest();var ne=new_bounds.getNorthEast();var dist=sw.distanceFrom(ne)/2000;if((((old_bounds.contains(sw)&&old_bounds.contains(ne))&&!z_flag)||infoOpen)){infoOpen=false}else{var dx=ne.lng()-sw.lng();var dy=ne.lat()-sw.lat();dx*=0.2;dy*=0.2;bounds=new GLatLngBounds(new GLatLng(sw.lat()-dy,sw.lng()-dx),new GLatLng(ne.lat()+dy,ne.lng()+dx));mapbounds=bounds;zoomLevel=map.getZoom();zlim=get_zoom_limit();GDownloadUrl('getairportsinlocation.php?lat='+map.getCenter().lat()+'&lon='+map.getCenter().lng()+'&rad='+dist+'&zoom_limit='+zlim,loadAirportLocations)}old_bounds=mapbounds}}function refreshAirports(){var dst=map.getBounds().getSouthWest().distanceFrom(map.getBounds().getNorthEast())/2000;zlim=get_zoom_limit();GDownloadUrl('getairportsinlocation.php?lat='+map.getCenter().lat()+'&lon='+map.getCenter().lng()+'&rad='+(dst/6.0)+'&zoom_limit='+zlim,loadAirportLocations)}function get_zoom_limit(){zoomLevel=map.getZoom();if(zoomLevel<=4){zlim=64}else if(zoomLevel>4&&zoomLevel<=7){zlim=18}else if(zoomLevel>7&&zoomLevel<=8){zlim=6}else if(zoomLevel>8){zlim=0}return zlim}function showRoutes(id){routesActive=true;origin_id=id;mgr.toggle();GDownloadUrl('getairportroutes.php?apt_choice='+id,loadAirportRoutes)}function showAirlineRoutes(airline_id){$.fn.colorbox.close();routesActive=true;mgr.toggle();document.getElementById("airline_logo").innerHTML='<a href="javascript: void(0)" onclick="closeAirlineRoutes()"><img style="position:absolute; top:-3%; left:-3%;" src="/graphics/xx.png"></a><img style="border:1px solid #555;" src="airlinelogos/'+airline_id+'.gif" width="200" title="airline routes"/>';$("#airline_logo").fadeIn(1000);GDownloadUrl('getairlineroutes.php?airline_choice='+airline_id,loadAirlineRoutes)}function closeAirlineRoutes(){firstPoint=1;routesActive=false;map.clearOverlays();mgr.toggle();mm_destinations.clearMarkers();$("#airline_logo").fadeOut(1000)}function clearMap(){map.clearOverlays()}function loadIcons(){close_marker=new GIcon();close_marker.image="/graphics/x.png";close_marker.iconSize=new GSize(30,30);close_marker.iconAnchor=new GPoint(14,14);close_marker.infoWindowAnchor=new GPoint(20,1);link_marker=new GIcon();link_marker.image="/graphics/airportmarker_link.png";link_marker.iconSize=new GSize(10,10);link_marker.iconAnchor=new GPoint(5,4);link_marker.infoWindowAnchor=new GPoint(12,1);nr_marker=new GIcon();nr_marker.image="/graphics/airportmarker_noroutes.png";nr_marker.iconSize=new GSize(8,12);nr_marker.iconAnchor=new GPoint(5,4);nr_marker.infoWindowAnchor=new GPoint(12,1);lrg_ap_marker=new GIcon();lrg_ap_marker.image="/graphics/airportmarker.png";lrg_ap_marker.iconSize=new GSize(24,24);lrg_ap_marker.iconAnchor=new GPoint(19,16);lrg_ap_marker.infoWindowAnchor=new GPoint(20,5);med_ap_marker=new GIcon();med_ap_marker.image="/graphics/airportmarker_m.png";med_ap_marker.iconSize=new GSize(18,18);med_ap_marker.iconAnchor=new GPoint(17,15);med_ap_marker.infoWindowAnchor=new GPoint(23,1);sml_ap_marker=new GIcon();sml_ap_marker.image="/graphics/airportmarker_s.png";sml_ap_marker.iconSize=new GSize(13,13);sml_ap_marker.iconAnchor=new GPoint(10,10);sml_ap_marker.infoWindowAnchor=new GPoint(20,1);smlr_ap_marker=new GIcon();smlr_ap_marker.image=sml_ap_marker.image;smlr_ap_marker.iconSize=new GSize(9,9);smlr_ap_marker.iconAnchor=new GPoint(8,8);smlr_ap_marker.infoWindowAnchor=new GPoint(12,1);tny_ap_marker=new GIcon();tny_ap_marker.image=sml_ap_marker.image;tny_ap_marker.iconSize=new GSize(8,8);tny_ap_marker.iconAnchor=new GPoint(5,4);tny_ap_marker.infoWindowAnchor=new GPoint(12,1)}function launchEmailForm(){var src="/apt/contact";$.fn.colorbox({href:src,width:"1000px",height:"570px",opacity:"0.60",iframe:true})}function launchAirlineList(){if(routesActive){firstPoint=1;routesActive=false;map.clearOverlays();mgr.toggle();mm_destinations.clearMarkers();$("#airline_logo").fadeOut(1000)}var src="/airlinelist_scroll/scroll_index.shtml";$.fn.colorbox({href:src,width:"1000px",height:"570px",opacity:"0.60",iframe:true})}function launchPop(id){var src="/apt/"+id+"/";$.fn.colorbox({href:src,width:"1000px",height:"570px",opacity:"0.75",iframe:true})}function launchAddRoute(id){var src="add_new_route.html?apt_id="+id+"&";$.fn.colorbox({href:src,width:"50%",height:"63%",opacity:"0.75",iframe:true})}function launchInfo(){var src="/apt";$.fn.colorbox({href:src,width:"1000px",height:"570px",opacity:"0.60",iframe:true})}function launchSearch(){var src="/apt/search";$.fn.colorbox({href:src,width:"900px",height:"570px",opacity:"0.60",iframe:true})}function launchRecentActivity(){var src="/apt/recentcomments/";$.fn.colorbox({href:src,width:"300px",height:"570px",opacity:"0.0",iframe:true,position:"absolute",top:0,left:0})}function launchURL(url){var src=url;$.fn.colorbox({href:src,width:"1000px",height:"570px",opacity:"0.75",iframe:true})}function linemaker_load(){map=new GMap2(document.getElementById("whereables"));var topRight2=new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(15,30));map.addControl(new GLargeMapControl(),topRight2);map.enableScrollWheelZoom();map.setCenter(new GLatLng(51,3),4);GEvent.addListener(map,'moveend',function(){displayMarkers(0)});GEvent.addListener(map,'zoomend',function(){displayMarkers(1)});loadIcons();mgr=new MarkerManager(map);mm_destinations=new MarkerManager(map);old_bounds=map.getBounds();mapbounds=old_bounds;var mapdist=(mapbounds.getSouthWest()).distanceFrom(mapbounds.getNorthEast())/2000;zlim=64;GDownloadUrl('getairportsinlocation.php?lat='+map.getCenter().lat()+'&lon='+map.getCenter().lng()+'&rad='+mapdist+'&zoom_limit='+zlim,loadAirportLocations)}
