// Javascript by Mark McClure's GPXToGoogleMap
// http://facstaff.unca.edu/mcmcclur/GoogleMaps/GPXToGoogleMap/

function load() {
  if (GBrowserIsCompatible()) {
    // Initialize
    var map = new GMap2(document.getElementById("map"));


    // Set up the custom map types
    // Technique is mostly described on mapki.com
    // getTileUrl method adapted from GPSVisualizer output

    // The USGS topo maps via terraservice.com
    var topoCopyright = new GCopyright(1,
      new GLatLngBounds(new GLatLng(18,-169),new GLatLng(72,-66) ),
        5, "by USGS");
    var topoCopyrightCollection = new GCopyrightCollection('Topo maps');
    topoCopyrightCollection.addCopyright(topoCopyright);
    
    var topoTileSize = 256;
    var topoURL = 'http://terraservice.net/ogcmap6.ashx?version=1.1.1&request=GetMap&styles=&srs=EPSG:4326&format=image/jpeg&bgcolor=0xCCCCCC&exceptions=INIMAGE&layers=DRG';
    topoGetTileURL=function(tile, zoom){
      var southWestPixel = new GPoint(tile.x*topoTileSize,(tile.y+1)*topoTileSize);
      var northEastPixel = new GPoint((tile.x+1)*topoTileSize,tile.y*topoTileSize);
      var southWestCoords = G_SATELLITE_MAP.getProjection().fromPixelToLatLng(southWestPixel,zoom);
      var northEastCoords = G_SATELLITE_MAP.getProjection().fromPixelToLatLng(northEastPixel,zoom);
      var bbox = southWestCoords.lng()+','+southWestCoords.lat()+','+northEastCoords.lng()+','+northEastCoords.lat();
      return topoURL+'&bbox='+bbox+'&width='+topoTileSize+'&height='+topoTileSize;
    }
    var topoTileLayers = [new GTileLayer(topoCopyrightCollection,5,17)];
    topoTileLayers[0].getTileUrl = topoGetTileURL;
    var topoMap = new GMapType(topoTileLayers, G_SATELLITE_MAP.getProjection(), "Topo",
      {errorMessage:"Data Not Found", tileSize:topoTileSize});
    map.addMapType(topoMap);
    
    // Now the USGS aerial maps via terraservice.com
    var aerialCopyright = new GCopyright(1,
      new GLatLngBounds(new GLatLng(18,-169),new GLatLng(72,-66) ),
        5, "by USGS");
    var aerialCopyrightCollection = new GCopyrightCollection('Aerial photography');
    aerialCopyrightCollection.addCopyright(aerialCopyright);
    
    var aerialTileSize = 256;
    var aerialURL = 'http://terraservice.net/ogcmap6.ashx?version=1.1.1&request=GetMap&styles=&srs=EPSG:4326&format=image/jpeg&bgcolor=0xCCCCCC&exceptions=INIMAGE&layers=DOQ';
    aerialGetTileURL=function(tile, zoom){
      var southWestPixel = new GPoint(tile.x*aerialTileSize,(tile.y+1)*aerialTileSize);
      var northEastPixel = new GPoint((tile.x+1)*aerialTileSize,tile.y*aerialTileSize);
      var southWestCoords = G_SATELLITE_MAP.getProjection().fromPixelToLatLng(southWestPixel,zoom);
      var northEastCoords = G_SATELLITE_MAP.getProjection().fromPixelToLatLng(northEastPixel,zoom);
      var bbox = southWestCoords.lng()+','+southWestCoords.lat()+','+northEastCoords.lng()+','+northEastCoords.lat();
      return aerialURL+'&bbox='+bbox+'&width='+aerialTileSize+'&height='+aerialTileSize;
    }
    var aerialTileLayers = [new GTileLayer(aerialCopyrightCollection,5,17)];
    aerialTileLayers[0].getTileUrl = aerialGetTileURL;
    var aerialMap = new GMapType(aerialTileLayers, G_SATELLITE_MAP.getProjection(), "Aerial",
      {errorMessage:"Data Not Found", tileSize:aerialTileSize});
    map.addMapType(aerialMap);
    // End custom map types
    
    
    // Add the controls and set up the map
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GScaleControl());
    var omc = new GOverviewMapControl();
    map.addControl(omc);
    omc.hide();
    
    map.setCenter(new GLatLng(35.1145, -82.7152), 11, G_NORMAL_MAP);

    // Place the waypoints
    var waypointMarker1 = new GMarker(
      new GLatLng(35.105895, -82.626275), {title:"Top of Ceasar's Head"});
    GEvent.addListener(waypointMarker1, "click", function() {
      waypointMarker1.openInfoWindowHtml("Top of Ceasar's Head <br />Top of the six mile climb to Ceasar's Head")});
    map.addOverlay(waypointMarker1);

    // Place the start and stop markers
    // Info for the icons
    var baseIcon = new GIcon();
    baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
    baseIcon.iconSize = new GSize(20, 34);
    baseIcon.shadowSize = new GSize(37, 34);
    baseIcon.iconAnchor = new GPoint(9, 34);
    baseIcon.infoWindowAnchor = new GPoint(9, 2);
    baseIcon.infoShadowAnchor = new GPoint(18, 25);
    var startIcon = new GIcon(baseIcon);
    startIcon.image = "http://www.google.com/mapfiles/dd-start.png";
    var pauseIcon = new GIcon(baseIcon);
    pauseIcon.image = "http://www.google.com/mapfiles/icon-dd-pause-trans.png";
    var stopIcon = new GIcon(baseIcon);
    stopIcon.image = "http://www.google.com/mapfiles/dd-end.png";


    var startStopMarker1 = new GMarker(new GLatLng(35.2173, -82.7361), {icon:startIcon, title:"Beginning and ending of track 1"});
    var startStopHTML1 = "Track 1 begins and ends here.";
    GEvent.addListener(startStopMarker1,"click",function() {
      startStopMarker1.openInfoWindowHtml(startStopHTML1);
    });
    map.addOverlay(startStopMarker1);


    // Place the tracks
    var ePolyline_1 = new GPolyline.fromEncoded({
      color: "#0000ff",
      weight: 4,
      opacity: 0.8,
      points: "ak}uElk~wNBCMQWGBB?Ch@`@?`@m@bAYKuA_AuAw@o@k@eBu@k@M{@CwB`@}An@aMdGeGjCw@DgDQiBQ}BK}GP{CB_CuAoFoD}H_FKCk@a@}A_AgB_Aw@UOJuHzTa@?aBcAQIe@z@_AlCiArDa@n@uCnBqA~@gAbAo@z@q@hC_@bAyCjIi@zBY`BGhAVbA`ApCXpARjFhA|A~@v@~Bd@jBT~@h@PTXv@JN|AbD`CpC~@v@d@Xv@BTJxGq@hAVh@?r@Wv@c@fAuA\\m@b@mANuC\\wDP_ACw@UuANk@TSvDs@zAKjAF|ANnDTXfBe@hRMnDm@fJCrDYlCv@~B~@fBFFXbAKhC`@fArFfDPFp@KdAw@jAi@dA]rBvBRNvCPp@?xHdB~B\\lA`@\\v@~@|Dd@l@z@?dAm@bAGd@JrGvDh@]?yA]iEfBeDNmAT_An@{@h@g@`B{@dAoAdDmCX{@?YsBcHLi@hBl@xBj@h@]B{@Lk@l@uAz@yAr@a@h@Mf@?zBPbF`BxGrBsDc[`@o@b@{@lKcLzB_D]cAz@Qf@Lv@BdBoBlAeB`DoDFM`Ae@jC_AxDqCv@]h@?z@d@jBnD`@r@n@v@z@|Av@jBxC`ItEdGv@d@fA`@pA\\vBPxAVhAm@h@QdAK`FuEf@BhBCv@BlAd@d@r@j@pApE|I|CpFCtClCxJv@t@xCbBtGhEdA`@nBJt@?vCtAh@\\XXhB|Cf@TxAw@pNuEjDaBbG_DlCkA`A`@V`@dAjBz@l@r@P~Bw@hCuApEyCpGaEXe@d@Qz@v@zBvDz@|B`A`Dl@bDThBfA~EbBbDJd@OjD?h@`@bAxGfDhCGnDYd@?TBfBz@nAlAr@jApAnBr@z@jDbFfCbF`@MjB|Bv@z@oBt@pEn@P?v\\~]gAB?BXBd@LJFfBd@jATbBTXF`Fd@pA?z@GbDi@hB}B~AwBbAcA~@e@bBMbAOvB{A`BoAj@Yp@QjBHv@Rv@XxA\\hCdAnFzDtApAXNbAz@rD\\lAf@dD`Fj@f@vBl@fAT`NFbEPlAi@d@Yj@U`DGPEhCyAI}CSv@o@`DPlAfEvFTb@BlBlArBX\\bAbBjBdD|AzCn@bAbAfJ?f@Gp@|AfDX\\|AtAnDlGyFlEWzBo@lGMlACn@SzBjHsBbFP\\NBP?`BBtAN`BPnGe@tIk@pAcJ~MmC{Oa@lAaD`IiAlDFtAhAvBXXfAz@\\lAOfD?~@N`@hCpCr@|ANtAYlAu@tAY\\]Xs@Js@Ki@c@iALi@l@MdAq@fCw@hAmG~@uDn@]RCb@bAnDDtAYz@CrAd@lApGdG`AlAVv@~A|Cl@\\`CJh@n@bAlEG|CL`CFh@CjBg@bAKPe@rB}@dBy@v@Uj@NrAdCxApC`AvHxCpJjFbC~@r@L~Ad@rAbAxBf@dDNlCXz@TdBfApArB|AdAxBh@nCd@j@P|ApAd@h@fBnFlArBNPXh@`B?z@ChCBvBKjB]hCs@VUv@]B]z@m@KI~BmCfDgET}DXsJ~@iCjDgH|AyCjHoO|\\qq@NRpAv@hCrBnAj@tArBlAjApAn@~D|CjB~@|Ar@`E|ApElA|APnBI~BPxCn@xBVfATX?dBLtC?n@`@hCpAfAd@dA\\~DdBtAr@fHzBrFjBbBXbNpEtAkBxAq@~@UxLmAnDa@rBQkAcECs@gBa@cAyAs@yCe@gBEqAdAuGfAsGdEbHzBmITo@lAyERo@b^vl@n@cAhEiG\\o@bAuAJYTf\\xFnB|AJlC~@p@^`@h@jB~@f@f@rD`BfABz@ClC?xHGfAjCr@TjAd@T\\fBf@t@XfDh@zE`@|Gf@X?`EVdE_CNQtHeFNQ\\_ChNaIv@rBXF|G|CtFrBfA\\vBz@]iVnBsBz@JfHaFlAw@oIXi@uAYQKUiA{@e@u@o@_BYgAa@mAi@cAa@qAF{@Ts@Re@`CwD~Q}QjB{@pAr@X?XChIFvB?vBFJz@rBjD]lA?Nf@CRiBj@g@fAv@|APj@?dBGbBz@nHvBnBwBjBl@h@`@`B{@f@CNGz@J`CYdBGnBFjDDjAF|B\\FMM{@m@}Ae@aBF]fAeAhC}AdCmCnAa@f@CpCw@p@CpAeBd@eELYBuAGw@k@a@m@s@yDkFYe@sAoBr^~IfDCR?TB~EGh@?j@BuAqNXQ~@hA`@a@xAs@z@KrHwBtD_BvBsB~@e@hGkBpAH`DjAjBf@xCl@hCtAl@TxD`Bl@TBxA]jDX~@~CdCbLvJ\\dCd@nBhA`BbC~@zBpWH\\nHsDTTw@tEv@bAfArBdAvBtAkDd@`ApAwEdBe@n@JbC?|HKdECiIs@uFLi@h@k@kHaBsBBuC`BsBLcB~@cCXqAfA{BHYbEgDz@cC|@aEfAmExCgChJ{Gg@}JnBmIfB_M_@iDSkDfAaEhAiGbAyAXe@\\sB`BsQByACiCLsB?Uz@qETuAt@{H\\{EHoBRuRXeNTiG~@oHn@oDpAmGv@eEh@_ArDoBjF}CxCyAhEkB\\UXa@XuAXiEJ_APwBBs@CgFTm@jAuAXo@KcAIQ?a@CGCJK??\\Ba@B?FGFQTCBa@m@wBeIuf@ImGOaAs@aF]gBuAeMYyAoAkFUiAiAuEOe@k@}DUkDGgECYUkIKyACyA?oDl@{FdAsI?qAk@qIGa@Yk@yAaBuAqA_CuCg@s@wByJa@cAs@cAKU_CgFo@iByA{EYgA{BgHa@iAkBmE?_APuA`@uEQyDYgCyA_FqCqKi@eCa@uAI]gAuC]s@qEC_AYg@]aByAw@wBGs@NcCj@eERkAH{IJ_H?kBCcAK{BE}AG_BLwBRgAj@wB\\oB\\uAX}ABY\\uAfD{OJeABuEUiCa@eDYg@mBsBgDwByFcCkCiCMQKiBReIb@uFtC}N`@kFFuEGuNM}FKeBw@yDa@{DGgFQeIi@_QIm@q@cDuAsF_B_HGm@C{@F{@`CcJbH{VxAgFNa@BUCIi@CyAHiLXKBqLR_CKmCa@}Ag@UCeBe@{E}AqAg@OCiC_AmC{@cCs@qJaDaD_AMI}HgC}RoGkBq@cCgBs@m@sB}ByAiBgFeGKUaAqAmB_Ck@w@iCaDgC}DQ]gD_JmBaGiCmGcCqC}D_EyEkFaEiEsBkBsBcAoBs@gJmC_EyAkBi@{IuCsB{@oBeAqBuA{AoASMw@m@_DuCi@c@mAgAgA{@cA_AgBqAgFaEgCcCaAmAYUa@O]?Yo@e@_CyAiIo@_DcAoDgAgCuAiCoBiCQK_CwByA_AiAo@yCyAgAe@wBMcBBqCPuA`@uIjBoBJw@LqARCL\\CLEJK}HhAwF~@gBd@sFhCiA`@}AX{@Xe@VmA`Au@p@gBTeB?kGa@}EGa@B{@GU?sDJqA\\_A~@a@hA]`DEBHTCFE??HOR?r@FtAGtA]rB{@~BoB~Ci@jAIdAB|ACjA]tAsBvEOl@QtACpAKnBg@dBYfBDnAd@vEMr@i@p@_A`@{B\\{ACeBSwB]mCYqE]qC\\gAl@aAv@m@\\w@TeA?_A]{@{@]iAKq@CqEmAoIYCsBGqAMSSa@eAIm@PaAzBqCj@sA?eAkByGYgBGeBQyA]aAoB{BcAs@_A?qAb@_AJe@Ko@c@mAkAeB}A_Ac@oIkAqAk@cAcAm@uAk@aBcA}Bs@sA]aAF{@TOnBqCz@cAr@iA|EaGYaBe@e@yAc@uASsBIsBLoBh@}Av@cAn@iAv@aBv@YIn@}E]o@oBF_CKw@Yc@YCOdEcDs@Tm@g@{@DuANs@`@TTXbD?dBM|AYhA{@~@wBcHsBi@aG\\m@cByAgAUUe@_As@aB_A{AqA`CCdB_AzEw@w@w@_CaBsEk@cAUQmBi@}BfHkNd@F?QTqCxCxAqGiDvDtC{D`@mAGw@Yq@UaAa@?B{@`BeGwB`EhAUiA`CXCpAaGUeA]kAeEoDKGlEQT_AiAJi@XeA`@_CXe@n@o@pAi@`BMz@?pASnAuAdA]`@EJ?hACbA?bDYnBCBYhBKhAUpAKnA?`Az@?GbANfAL\\NzCj@`B~@j@CJRN~A`AR|AYpAa@bAuAxAkAz@eAbA]j@DTN\\r@~@`B|AdCjB~@nAbAnBXr@LtAFbC?`CBnBKfAEr@Pd@FFHdABFCTBJIPD?IIBPHCM?P?GCFJMG?]Ga@OCENKjFC\\?r@UpCKzB?d@oI|M{@z@w@~@SpAyAlBp@b@ONqAj@a@`@mAxCoBrDyAdCgAIiEw@i@WeAIyCxAKLuAv@k@~@eBjAeCpAgAlAkB~D]z@Yf@_ArBz@v@jM|CJpAs@`BO|F\\hBeEfF_AnBo@hAe@jAMPOd@k@bAwFyAs@G]}AgCk@uASuFiAwFkAYEw@OaO_UgDJcDmByE}@aB{BmAYeBq@{GaCsBe@qCi@wIo@uCo@gDi@}EcAkDg@]jBClEUjDaBjJa@nBg@r@wB`BkAr@cDjAqA`@sJjD]HqAd@yCsMUCcAr@]\\aAhBY`@_EbFeGlG{FxFk@bAo@hCKtE?vKKbLI`PBtLXtGhArFl@jDv@lHXhDd@pH|@`KJzDNbLXfKHdINzI?p@GnD_A|H]fDk@bEqC`W]fE]fDa@~EGvB]`@g@rHO~CKhC?VqAbQEv@e@~Gm@rFeA|DcAnCkBxFGXmChGqEnJkBhEcAvBsB~EyAvDw@xAeE`KeBrDkBvE_AjDe@jF]vFo@lEaBpEsBrDcAxA{@dGc@jBkCdIMP_ApBw@nBi@|A}DbMmCvFwKtWsAxCqA`Cs@XuC?yA\\}CnAuDfBgAd@UFkFdEwDfBs@d@iCtAe@?aBXk@v@]\\e@BaBYuABeC\\s@BkA?s@G_CGiAI}CwBaB}AcBeBgAuAg@g@a@m@]qAa@wD]s@s@cAkAeGw@}AiAqAi@kBUgF]yA{@kAUQmEsBwD}AkFaCwBuCaBkCeAs@wBU_Ji@sHw@eI_B_FkAiEmAcJ{BqCw@yC}AUCKRMn@Cv@?bAFhAXz@fB`BdBxA`@f@TVhChEXn@RxAP`Bi@`CmArDs@vFa@nIX|AXv@v@pAvFjFd@~@L`@FfAY~CgAjHw@tE_ApCiAzB_A~A}A|A_CnByB|A{@Te@?mAY}Ak@qGyA{@XYbAQjD]|DGRa@v@yCrBmHtE{@f@_AXuAUyAqC]i@aIkGoA_CgBqE_A}CUc@cAKmACeBMeE?YKgAw@YY}DaD}Ac@eBCiL?}AGyAK]MuA{@Be@P]Ia@WQ?C",
      levels: "P@AC@?CAD??@CB@EAB@EA??C?G?@???B@HAEA?EA?AD?B@F?AB@EB?@BJAC@BD@@?CA?EABBAG?CA@E@@C@B@FAC??HBC@AAEA?@CBH?DAA?E?D@BAEC@AEBBDAICACB?E@ABABEABF@EB@B@C@E@C?GG?BADEB@D@@?D@BBAIB@?@C?CAG?B@EA@CE?@BF@@@DCFA@DB@CD?BAHAB?@FB?BAEAB?AAHAC@D@AC@C?BGD@@C@FA?@?BCC?DE?DD@H?@?@B?@D@AF?@DB@C?B@GB?@AD@@?DBDAC@GAE??C?BEJ?BECAC??@??DB?EB?BGE?@??FDAF??@AHDAFG?AGCB?BD@DAADBGA?DBABEBABE?AGACAACEAC@DBBDFA?AD?ABAACIB@BBA@BDAA@DBBD@@F@CB@?K?@AC@E@BAAA@G@CE?@@I@@ABACAD?@FACAC@?B?@E?A?@?C?A@HCAD??GADCC?BF?EF???HG??@@GGABCAA@BE@??ED?AA?EB@??IA?DACGD@A??HFBC?GEB@@AC@?@@BG?ACHCC?@?@FBC@EBBECA?CAEDADA@CB@D?B@HAB@BEABD@@AEC@F@D@A??HD@?@@?GFBDABABBACIBA?CA??FABE@D@DCE?EFBDA?GDCCEAA?LCCFCCGCB@A@DDA@EAGDBD@EAB?BDB@A?C?AD@BA@CG??BF@A?B@FA??B@CAAC@@BA@CBA?@ABIACC?@AC??@?AF@@?@?DB?DA?GA@A?DC@?@C???B?FA?C@E@???F?DC@DCAHA?C?B?@??BE?@???@?CAG?BEBCB?GBADBDAF@BAC?AD@@?B?GAA???M@A??@CAF??A???@?@?@??@HA?C?A?@??D?C@AE???FAC@@@?B@E@@?A@???A?B@B@AFA??CB@FA?C?A?IA@D@B@AABA?B?EA@B@C@?EABA@@?CBHAC?AB???B?B@CA@C@@CA@E@?B@C@BGABDA?A?DB@@CAJABDABE??C@FACCBEB@@AGADA@BD@?ADBEB@@?@GB@@@@DBH@CAEB@?@FBECAC@EAEBBGADBADABGECEB?B?AFCBEB?AD@GEDA?GEDADA@BDAECDFBE?C?ECFA?AK@AC@ACA@D??C????A@FCB?ABDAA@CE@C@@AF@AB@CA?F@A?B?B?A?B@@@AAAAA@ADA?AD???@@?HB?CBCD@ACA?FAAAE@?BB@BG???FBFBBCFC?@??@J@DC?????FFDCCC@?D?BB?@AHBAC?BG@C????FBF?B?AB@BIBC@?AEB?BB?@D??A??GB???B??ABC@??A??AHA@?C@??A?@@@@DB@AEB@C@CA?@?ADAA@JBCAD@?BBA@C@C?FABAA?B??HAB??@EAB?BCABCAC@G??D@BF@ABD???B@I@A?CAE?@B?DA?F@CAEB@CC@BGA?BE@C@IBAD@@CFA@B?E?B@HC?CDA@@F@?AE@A?BE?A?E@C@BA?P",
      zoomFactor: 2,
      numLevels: 18
    });
    map.addOverlay(ePolyline_1);

  }
}
