function startSlideShow(base) {
  slideShow.imageList = Array();
  switch (base) {
    case "praktijk":
      slideShow.imageList = Array("/images/visuals/praktijk-01.jpg", "/images/visuals/praktijk-02.jpg", "/images/visuals/praktijk-03.jpg", "/images/visuals/praktijk-04.jpg", "/images/visuals/praktijk-05.jpg", "/images/visuals/praktijk-06.jpg", "/images/visuals/praktijk-07.jpg", "/images/visuals/praktijk-08.jpg", "/images/visuals/praktijk-09.jpg", "/images/visuals/praktijk-10.jpg", "/images/visuals/praktijk-11.jpg", "/images/visuals/praktijk-12.jpg", "/images/visuals/praktijk-13.jpg", "/images/visuals/praktijk-14.jpg", "/images/visuals/praktijk-15.jpg", "/images/visuals/praktijk-16.jpg", "/images/visuals/praktijk-17.jpg", "/images/visuals/praktijk-18.jpg");
      break;
    case "statafel-led":
      slideShow.imageList = Array("/images/visuals/statafel-led-01.jpg", "/images/visuals/statafel-led-02.jpg", "/images/visuals/statafel-led-03.jpg", "/images/visuals/statafel-led-04.jpg");
      break;
    case "tenten":
      slideShow.imageList = Array("/images/visuals/tenten-01.jpg", "/images/visuals/tenten-02.jpg", "/images/visuals/tenten-03.jpg", "/images/visuals/tenten-04.jpg", "/images/visuals/tenten-05.jpg", "/images/visuals/tenten-06.jpg", "/images/visuals/tenten-07.jpg", "/images/visuals/tenten-08.jpg", "/images/visuals/tenten-09.jpg", "/images/visuals/tenten-10.jpg", "/images/visuals/tenten-11.jpg", "/images/visuals/tenten-12.jpg", "/images/visuals/tenten-13.jpg", "/images/visuals/tenten-14.jpg", "/images/visuals/tenten-15.jpg", "/images/visuals/tenten-16.jpg", "/images/visuals/tenten-17.jpg", "/images/visuals/tenten-18.jpg");
      break;
  }
  slideShow.openBox();
}

function addToCart(product) {
	document.getElementById("frmProduct").value = product;
	document.getElementById("frmCount").value = document.getElementById(product).value;
	document.getElementById("order").submit();
}

function updateOrderForm() {
  document.getElementById("frmAction").value = "update";
  document.getElementById("orderFormBlind").style.display = "block";
  document.forms["orderForm"].submit();
}

function exitOrderForm(link) {
  try {
    document.getElementById("frmAction").value = link;
    document.forms["orderForm"].submit();
  } catch (error) {
    window.location.href = link;
  }
}

function initializeGoogleMaps() {
  var mapLocation = new google.maps.LatLng(51.605238, 4.704745);
  var mapCenter = new google.maps.LatLng(51.599, 4.710);
  var mapStyle = [
    {featureType: "all", stylers: [{saturation: -100}, {gamma: 0.6}]},
    {featureType: "landscape", stylers: [{lightness: -6}]},
    {featureType: "poi", elementType: "labels", stylers: [{visibility: "off"}]}
  ];
  var mapType = new google.maps.StyledMapType(mapStyle, {name: "Ad Roovers Verhuur"});
  var mapOptions = {zoom: 13, center: mapCenter, disableDefaultUI: true, backgroundColor: "#ffffff"};
  map = new google.maps.Map(document.getElementById("googleMapsMap"), mapOptions);
  map.mapTypes.set("styled", mapType);
  map.setMapTypeId("styled");
  google.maps.event.addListener(map, "tilesloaded", function() {styleGoogleMaps();});
  google.maps.event.addListener(map, "drag", function() {styleGoogleMaps();});
  var iconSize = new google.maps.Size(100, 100);
  var iconOrigin = new google.maps.Point(0, 0);
  var iconAnchor = new google.maps.Point(50, 87);
  var icon = new google.maps.MarkerImage("http://www.rooversverhuur.nl/images/maps-marker.png", iconSize, iconOrigin, iconAnchor);
  var marker = new google.maps.Marker({map: map, position: mapLocation, icon: icon, clickable: false});
}

function styleGoogleMaps() {
  var divs = document.getElementById("googleMapsMap").getElementsByTagName("div");
  divs[1].style.height = "330px";
  divs[1].style.borderRadius = "5px";
  for (var i = 0; i < divs.length; i++) {
    if (divs[i].style.zIndex == 1000000) {
      divs[i].style.paddingBottom = "17px";
    } else if (divs[i].style.zIndex == 1000001) {
      var anchors = divs[i].getElementsByTagName("a");
      var spans = divs[i].getElementsByTagName("span");
    }
  }
  for (var i = 0; i < anchors.length; i++) {
    anchors[i].style.color = "#031246";
    anchors[i].style.fontSize = "10px";
    anchors[i].style.fontStyle = "italic";
    anchors[i].style.textDecoration = "none";
  }
  for (var i = 0; i < spans.length; i++) {
    spans[i].style.color = "#000032";
    spans[i].style.fontSize = "10px";
    spans[i].style.textDecoration = "none";
  }
}

function getGoogleMapsDirections(origin) {
  if (document.getElementById("googleMapsDirections").innerHTML != "") {
    initializeGoogleMaps();
  }
  var directions = new google.maps.DirectionsService();
  var directionsDestination = new google.maps.LatLng(51.605238, 4.704745);
  var iconSize = new google.maps.Size(32, 32);
  var iconOrigin = new google.maps.Point(0, 0);
  var iconAnchor = new google.maps.Point(16, 16);
  var icon = new google.maps.MarkerImage("http://www.rooversverhuur.nl/images/maps-pin.png", iconSize, iconOrigin, iconAnchor);
  var directionsOptions = {map: map, markerOptions: {icon: icon, clickable: false}, polylineOptions: {strokeColor: "#031246", strokeOpacity: 0.6, strokeWeight: 5, clickable: false}};
  var directionsDisplay = new google.maps.DirectionsRenderer(directionsOptions);
  var directionsRequest = {origin: origin, destination: directionsDestination, travelMode: google.maps.TravelMode.DRIVING};
  var directionsCallBack = function(result, status) {
    document.getElementById("googleMapsDirections").innerHTML = "";
    if (status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(result);
      var directionsData = result.routes[0].legs[0];
      var directionsOutput = "";
      directionsOutput += "<table cellspacing=\"0\" cellpadding=\"0\" class=\"googleMapsDirectionsData\">";
      directionsOutput += "<tr><td class=\"googleMapsDirectionsLabel\">Vertrekadres</td><td class=\"googleMapsDirectionsValue\">" + directionsData.start_address + "</td></tr>";
      directionsOutput += "<tr><td class=\"googleMapsDirectionsLabel\">Bestemming</td><td class=\"googleMapsDirectionsValue\">De Lind 16e, 4841 KC Prinsenbeek, Nederland</td></tr>";
      directionsOutput += "<tr><td class=\"googleMapsDirectionsLabel\">Afstand</td><td class=\"googleMapsDirectionsValue\">" + formatDistance(directionsData.distance.value) + "</td></tr>";
      directionsOutput += "<tr><td class=\"googleMapsDirectionsLabel\">Reistijd</td><td class=\"googleMapsDirectionsValue\">" + formatDuration(directionsData.duration.value) + "</td></tr>";
      directionsOutput += "</table>";
      directionsOutput += "<h1 class=\"googleMapsAddress\">" + directionsData.start_address + "</h1>";
      for (var i = 0; i < directionsData.steps.length; i++) {
        directionsOutput += "<p class=\"googleMapsInstruction\">" + directionsData.steps[i].instructions + ". <i>(Volg&nbsp;" + formatDistance(directionsData.steps[i].distance.value) + ")</i></p>";
      }
      directionsOutput += "<p class=\"googleMapsLastInstruction\">Onze uitgiftehal bevindt zich <b>links</b> aan het einde van de straat.</p>";
      directionsOutput += "<h1 class=\"googleMapsAddress\">De Lind 16e, 4841 KC Prinsenbeek, Nederland</h1>";
      directionsOutput += "<p class=\"googleMapsCopyright\">" + result.routes[0].copyrights + "</p>";
      directionsOutput = replaceAll("<div style=\"font-size:0.9em\">", ".<br />", directionsOutput);
      directionsOutput = replaceAll("</div>", "", directionsOutput);
      document.getElementById("googleMapsDirections").innerHTML = directionsOutput;
    } else {
      switch (status) {
        case google.maps.DirectionsStatus.INVALID_REQUEST:
          document.getElementById("googleMapsDirections").innerHTML += "<p class=\"textError\">De route kan niet worden berekend door een technisch probleem.<br />De service gaf de volgende foutmelding: <b>Invalid request</b><br />Onze excuses voor het ongemak, probeer het later opnieuw.</p>";
          break;
        case google.maps.DirectionsStatus.MAX_WAYPOINTS_EXCEEDED:
          document.getElementById("googleMapsDirections").innerHTML += "<p class=\"textError\">De route kan niet worden berekend door een technisch probleem.<br />De service gaf de volgende foutmelding: <b>Max waypoints exceeded</b><br />Onze excuses voor het ongemak, probeer het later opnieuw.</p>";
          break;
        case google.maps.DirectionsStatus.NOT_FOUND:
          document.getElementById("googleMapsDirections").innerHTML += "<p class=\"textError\">De route kan niet worden berekend omdat het opgegeven vertrekadres<br />niet bekend is. Probeer het adres anders in te voeren of beperk u tot de<br />plaatsnaam of het postcodegebied.</p>";
          break;
        case google.maps.DirectionsStatus.OVER_QUERY_LIMIT:
          document.getElementById("googleMapsDirections").innerHTML += "<p class=\"textError\">De route kan op dit moment niet worden berekend omdat er<br />teveel aanvragen zijn gedaan in een te korte tijdsperiode.<br />Onze excuses voor het ongemak, probeer het later opnieuw.</p>";
          break;
        case google.maps.DirectionsStatus.REQUEST_DENIED:
          document.getElementById("googleMapsDirections").innerHTML += "<p class=\"textError\">De route kan niet worden berekend door een technisch probleem.<br />De service gaf de volgende foutmelding: <b>Request denied</b><br />Onze excuses voor het ongemak, probeer het later opnieuw.</p>";
          break;
        case google.maps.DirectionsStatus.UNKNOWN_ERROR:
          document.getElementById("googleMapsDirections").innerHTML += "<p class=\"textError\">De route kan niet worden berekend door een technisch probleem.<br />De service gaf de volgende foutmelding: <b>Unknown error</b><br />Onze excuses voor het ongemak, probeer het later opnieuw.</p>";
          break;
        case google.maps.DirectionsStatus.ZERO_RESULTS:
          document.getElementById("googleMapsDirections").innerHTML += "<p class=\"textError\">Er kan geen route worden berekend vanaf het opgegeven adres.<br />Mogelijk heeft u het adres niet volledig genoeg ingevoerd of kan<br />de afstand niet uitsluitend per auto worden afgelegd.</p>";
          break;
      }
    }
  }
  directions.route(directionsRequest, directionsCallBack);
}

function formatDistance(distance) {
  if (distance < 1000) {
    return distance + "&nbsp;meter";
  } else if (distance < 10000) {
    return (Math.round(distance / 100) / 10).toString().replace(".", ",") + "&nbsp;kilometer";
  } else {
    return Math.round(distance / 1000).toString().replace(".", ",") + "&nbsp;kilometer";
  }
}

function formatDuration(duration) {
  if (duration < 60) {
    return duration + "&nbsp;seconden";
  } else if (duration < 90) {
    return "1&nbsp;minuut";
  } else if (duration < 3570) {
    return Math.round(duration / 60) + "&nbsp;minuten";
  } else {
    hours = Math.floor((duration + 30) / 3600);
    minutes = Math.round((duration % 3600) / 60) % 60;
    if (minutes == 0) {
      return hours + "&nbsp;uur";
    } else if (minutes == 1) {
      return hours + "&nbsp;uur&nbsp;en&nbsp;1&nbsp;minuut";
    } else {
      return hours + "&nbsp;uur&nbsp;en&nbsp;" + minutes + "&nbsp;minuten";
    }
  }
}

function replaceAll(search, replace, string) {
  replacedString = string.replace(search, replace);
  while (string != replacedString) {
    string = replacedString;
    replacedString = string.replace(search, replace);
  }
  return replacedString;
}
