// JavaScript Document
var data = [
 	
 { name: "Telenor", date: "1 Mbit/s ned", com : "Helt ok hastiget", lat:"57.685890920344136", lng:"11.9586181640625" },
 { name:"Telenor", date: "250 kbit. 3G", com :"", lat:"57.684789742960504", lng:"11.98007583618164" },
 { name: "Telia", date: " Homezone surf", com :"", lat:"57.690845804531236", lng:"11.981964111328125" },
 { name: "WiFi zone", date: "5 Mbit/s", com :"", lat:"57.6907540535736", lng:"11.989517211914062" },
 { name: "Telia", date: "5 Mbit/s. ADSL bredband" , com :"Bra", lat:"57.696442173621826", lng:"12.001190185546875" },
 { name: "Tre", date: "1.4 Mbit/s HSDPA", com :"", lat:"57.69569107185034", lng:"11.987006664276123" },
 { name: "Tre", date: "300 kbit. 3G", com :"", lat:"57.6947966097315", lng:"11.987403631210327" },
 { name: "wifi zone", date: "2 Mbit/s", com :"", lat:"57.698001663442064", lng:"11.974067687988281" },
 { name: "Telia", date: "iPhone", com :"", lat:"57.69405694168217", lng:"11.967887878417969" },
{ name: "Tre", date: "1.7 Mbit/s HSDPA", com :"", com: "Det g&#229;r snabbt h&#228;r", lat:"57.69635043683574", lng:"11.951923370361328" },		
 { name: " Telenor", date: " Homezone surf", com :"", lat:"57.6958917494207", lng:"11.9476318359375" },
 { name: "Telia", date: "45 kbit/s. GPRS", com :"", lat:"57.69240553526455", lng:"11.930809020996094" },
 { name: "Telenor", date: "150 kbit. 3G", com :"", lat:"57.706440090684424", lng:"11.928577423095703" },
 { name: "Telenor", date: "150 kbit. 3G", com :"", lat:"57.71808555913969", lng:"11.943340301513672" },
 { name: "Telia", date: "150 kbit. iPhone", com :"", lat:"57.71175895833186", lng:"12.002906799316406" },
 { name: "Tele2", date: "40 kbit. GPRS", com :"", lat:"57.70378036385503", lng:"12.015438079833984" },
 { name: " Telenor", date: " Homezone surf", com :"", lat:"57.706348379218", lng:"12.002220153808594" },
  { name: "Tre", date: "1.7 Mbit/s HSDPA", com :"Bra t&#228;ckning inomhus", lat:"57.712584229838065", lng:"12.0135498046875" }
];

var map, route;
var points = [];
var gmarkers = [];
var count =0;
var stopClick = false;


function addIcon(icon) { // Add icon attributes

 icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
 icon.iconSize = new GSize(25, 30);
 icon.shadowSize = new GSize(25, 30);
 icon.iconAnchor = new GPoint(15, 30);
 icon.infoWindowAnchor = new GPoint(19, 2);
 icon.infoShadowAnchor = new GPoint(18, 25);
}


function addClickevent(marker) { // Add a click listener to the markers

 GEvent.addListener(marker, "click", function() {
  marker.openInfoWindowHtml(marker.content);
  /* Change count to continue from the last manually clicked marker
  *  Better syntax since Javascript 1.6 - Unfortunately not implemented in IE.
  *  count = gmarkers.indexOf(marker);
  */
  count = marker.nr;
  stopClick = true;
 });
 return marker;
}


function buildMap() {

 if(GBrowserIsCompatible()) {
  map = new GMap2(document.getElementById("map"));
  map.setCenter(new GLatLng(11.966514587402343,57.70327591086719), 13);
  map.addControl(new GSmallMapControl());
  map.addControl(new GMapTypeControl());

  // Light blue marker icons
  var icon = new GIcon();
  icon.image = "images/animation-marker.png";
  addIcon(icon);

  for(var i = 0; i < data.length; i++) {
   points[i] = new GLatLng(parseFloat(data[i].lat), parseFloat(data[i].lng));
   gmarkers[i] = new GMarker(points[i], icon);

   // Store data attributes as property of gmarkers
   var html ="<div class='infowindow'>" +
   "<font size='+1'><strong>" + data[i].name + "<\/font><p><br /><font color='#6fb53b'>" +
   data[i].date + "<\/strong><br /></font>" + "<font color='#a9a8a8'>" + data[i].com + "</font><\/p><\/div>";
   gmarkers[i].content = html;
   gmarkers[i].nr = i;
   addClickevent(gmarkers[i]);
   map.addOverlay(gmarkers[i]);
  }
  // Draw polylines between marker points
  var poly= new GPolyline(points, "#e5e3e3", 3, .5);
  map.addOverlay(poly);

  // Open infowindow of first marker
  gmarkers[0].openInfoWindowHtml( gmarkers[0].content);

  route =setTimeout("anim()", 3600);
 }
} 


function haltAnim() {

 if(route) {
  clearTimeout(route);
  stopClick = true;
 }
}


function carryOn() {

 if(stopClick == true) anim();
 stopClick = false;
}


function anim() {

 count++;
 if(count < points.length) {
  // Use counter as array index
  map.panTo(points[count]);
  gmarkers[count].openInfoWindowHtml( gmarkers[count].content);
  var delay = 3400;
  if((count+1) != points.length)
   var dist = points[count].distanceFrom(points[count+1]);

  // Adjust delay
  if( dist < 10000 ) {
   delay = 2000;
  }
  if( dist > 80000 ) {
   delay = 4200;
  }
  route = setTimeout("anim()", delay);
 }
  else {
  clearTimeout(route);
  count = 0;
  route = null;
 }
}


function playAgain() {

 GUnload();
 if(route) clearTimeout(route);
 stopClick = false;
 count = 0;
 buildMap();
}
