var g_points;
var g_map;
var g_move = 1;
var g_idx = 0;

var ua = navigator.userAgent;
var g_isFirefox = ( ua != null && ua.indexOf( "Firefox/" ) != -1 );
var g_isMSIE = ( ua != null && ua.indexOf( "MSIE" ) != -1 );


function getPolylineData (url) {
  var request = GXmlHttp.create();
  request.open("GET", url, true);
  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      g_points = [];
      var xmlDoc = request.responseXML;
      var polyline = xmlDoc.getElementsByTagName("rte");
      for (var i = 0; i < polyline.length; i++) {
        var point = polyline[i].getElementsByTagName("rtept");
        for (var j = 0; j < point.length; j++) {
          g_points.push(new GPoint(parseFloat(point[j].getAttribute("lon")),parseFloat(point[j].getAttribute("lat"))));
        }
      }
      buildMap();
      buildPolylines();
    }
  }
  request.send(null);
}

function createMarker(point,html) {
  var marker = new GMarker(point);
  GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); });
  return marker;
}

function buildMap() {
  g_map = new GMap(document.getElementById("map"));
  g_map.addControl(new GLargeMapControl());
  g_map.addControl(new GScaleControl()) ;
  g_map.centerAndZoom(g_points[0],1);
  g_map.setMapType(G_SATELLITE_MAP);

  // Waypoints
  //  VER function createMarker(point,html)
  var point = new GPoint(-49.114219424,-26.4671640552);
  var marker = createMarker(point,'UNERJ - Centro Universitário de Jaraguá do Sul<br/><a href="http://www.unerj.br" target="_blank">www.unerj.br</a>')
  g_map.addOverlay(marker);

  var point = new GPoint(-49.084992927,-26.4796436025);
  var marker = createMarker(point,'Shopping Center Breithaupt<br/><a href="http://www.shoppingbreithaupt.com.br" target="_blank">www.shoppingbreithaupt.com.br</a>')
  g_map.addOverlay(marker);

  var point = new GPoint(-49.053788,-26.516836);
  var marker = createMarker(point,'Morro das Antenas - Vôo Livre<br/>Altura: 880 mts<br/>Decolagem: No,N,Ne,L,Se.<br/><a href="http://www.jcvl.com.br" target="_blank">www.jcvl.com.br</a>')
  g_map.addOverlay(marker);

  var point = new GPoint(-49.1545053161,-26.5234057535);
  var marker = createMarker(point,'Morro da Malwee - Vôo Livre<br/>Altura: 420 mts<br/>Decolagem: N,Ne,L<br/><a href="http://www.jcvl.com.br" target="_blank">www.jcvl.com.br</a>')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.0906656072,-26.5046409342);
  var marker = createMarker(point,'Prefeitura Municipal de Jaraguá do Sul<br/><a href="http://www.jaraguadosul.sc.gov.br" target="_blank">www.jaraguadosul.sc.gov.br</a>')
  g_map.addOverlay(marker);

  var point = new GPoint(-49.0867777552,-26.4979729056);
  var marker = createMarker(point,'Fórum')
  g_map.addOverlay(marker);

  var point = new GPoint(-49.0841901345,-26.4887511883);
  var marker = createMarker(point,'Hospital e Maternidade São José')
  g_map.addOverlay(marker);

  var point = new GPoint(-49.0824190083,-26.4749448928);
  var marker = createMarker(point,'Hospital Jaraguá')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.08321957,-26.4856953402);
  var marker = createMarker(point,'Colégio Marista São Luís')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.0806500527,-26.4779561607);
  var marker = createMarker(point,'Centro Cultural SCAR')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.0753808153,-26.4860613755);
  var marker = createMarker(point,'Clube Atlético Baependi')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.0819985718,-26.4948924412);
  var marker = createMarker(point,'Beira Rio Clube de Campo')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.062097924,-26.4880711126);
  var marker = createMarker(point,'Pouso Oficial Vôo Livre - JCVL<br/><a href="http://www.jcvl.com.br" target="_blank">www.jcvl.com.br</a>')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.1279031619,-26.5064499824);
  var marker = createMarker(point,'Parque Malwee')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.0701315696,-26.4853393824);
  var marker = createMarker(point,'Rodoviária')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.0954405525,-26.4895995373);
  var marker = createMarker(point,'Estádio Olímpico - ARENA')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.096990,-26.497730);
  var marker = createMarker(point,'Estádio João Marcatto - JUVENTUS')
  g_map.addOverlay(marker);

  var point = new GPoint(-49.079052,-26.480192);
  var marker = createMarker(point,'AABB Fone: (47) 3275-0424')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.093277,-26.498080);
  var marker = createMarker(point,'ACARAI Fone: (47) 3275-0199')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.100855,-26.470030);
  var marker = createMarker(point,'ARSEPUM Fone: (47) 3372-3232')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.073473,-26.478106);
  var marker = createMarker(point,'S.E.R.MARISOL  Fone: (47) 3275-2800')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.058082,-26.476683);
  var marker = createMarker(point,'ARWEG')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.090097,-26.475950);
  var marker = createMarker(point,'GINÁSIO ARTHUR MULLER')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.082048,-26.479872);
  var marker = createMarker(point,'CORPO DE BOMBEIROS Fone: (47) 2106-1010')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.085773,-26.499538);
  var marker = createMarker(point,'CIRETRAN Fone: (47) 3370-8383')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.084949,-26.481490);
  var marker = createMarker(point,'HOTEL ITAJARA Fone: (47) 3371-3799')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.083155,-26.482510);
  var marker = createMarker(point,'HOTEL NELO Fone: (47) 3371-7119')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.074449,-26.494399);
  var marker = createMarker(point,'HOTEL NORTH Fone: (47) 3371-2013')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.079713,-26.479938);
  var marker = createMarker(point,'HOTEL ETALAN Fone: (47) 3371-2133')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.083622,-26.479306);
  var marker = createMarker(point,'HOTEL PARTHENON Fone: (47) 3372-5800')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.056999,-26.480986);
  var marker = createMarker(point,'HOTEL BARRA VELHA WILLE Fone: (47) 3371-8611')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.063010,-26.494031);
  var marker = createMarker(point,'HOTEL PANORÂMICO')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.081251,-26.479124);
  var marker = createMarker(point,'HOTEL SAN SEBASTIAN FLAT Fone: (47) 3275-7500')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.148385,-26.390367);
  var marker = createMarker(point,'HOTEL ESTÂNCIA RIBEIRÃO GRANDE Fone: (47) 3275-1995')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.168355,-26.405088);
  var marker = createMarker(point,'HOTEL RECANTO VALE DAS PEDRAS')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.080263,-26.478369);
  var marker = createMarker(point,'ACIJS - Associação Comercial Fone: (47) 3275-7000')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.086134,-26.497922);
  var marker = createMarker(point,'DELEGACIA DE POLÍCIA Fone: (47) 3371-0123')
  g_map.addOverlay(marker);
  
  var point = new GPoint(-49.093669,-26.492418);
  var marker = createMarker(point,'14 BATALHÃO DA POLÍCIA MILITAR Fone: (47) 3371-9911')
  g_map.addOverlay(marker);
}

function handleWindowsResize() {
  var window_height = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight;
  document.getElementById("map").style.height=(window_height-75)+"px";
}

function buildPolylines() {
  // create multiple polylines if there are too many points
  var idx = 0;
  var polyline_point_limit = 200;
  do {
    g_map.addOverlay(new GPolyline(g_points.slice(idx,idx+polyline_point_limit+1),"#FFFF00", 4, 1));
    idx+= polyline_point_limit;
  } while (idx < g_points.length)
}
