var basePath = $('base').attr('href');
Cufon.replace('h1, h2');
Cufon.replace('#menu ul li a', {fontFamily: 'Baskerville MT Std', hover:true});
$(document).ready(function(){

  /* Menu selection */
  $('.item .middle.menu h1').click(function() {
    $('.item .middle.menu .p').slideUp();
    $(this).parent().find('.p').slideDown();
  });
  if(window.location.hash != '') {
    $('.item .middle.menu h1' + window.location.hash).click();
  } else {
    $('.item .middle.menu h1').eq(0).click();
  }

  /* Get directions */
  $('a[href="#getdirections"]').click(function(e) {
    e.preventDefault();
    var adres = $('#maps-adres').val();
    var plaats = $('#maps-plaats').val();
    if(adres != '' && plaats != '') {
      getDirections(adres + ', ' + plaats);
    } else {
      alert('Vul beide velden in a.u.b.');
    }
  });
  $('#maps-plaats').keyup(function(e) {
    if(e.keyCode == 13) {
      $('a[href="#getdirections"]').click();
    }
  });

  /* Reserveren */
  $('a[href="#plaatsreservering"]').click(function(e) {
    e.preventDefault();
    var msg = '';
    if($('input[name="naam"]').val() == '') {
      msg += ' - Naam\n';
    }
    if($('input[name="adres"]').val() == '') {
      msg += ' - Adres\n';
    }
    if($('input[name="postcode"]').val() == '') {
      msg += ' - Postcode\n';
    }
    if($('input[name="plaats"]').val() == '') {
      msg += ' - Plaats\n';
    }
    if($('input[name="telefoon"]').val() == '') {
      msg += ' - Telefoon\n';
    }
    if(!isValidEmailAddress($('input[name="email"]').val())) {
      msg += ' - E-mail\n';
    }
    if($('input[name="aantal"]').val() == '') {
      msg += ' - Aantal personen\n';
    }
    var d1 = new Date($('select[name="jaar"]').val(), $('select[name="maand"]').val() - 1, $('select[name="dag"]').val(), $('select[name="uur"]').val(), $('select[name="minuut"]').val());
    var d2 = new Date();
    if(d1 < d2) {
      alert('De gekozen datum/tijd mag niet in het verleden liggen.');
    } else {
      if(msg == '') {
        $(this).parent().submit();
      } else {
        alert('Vul onderstaande velden in a.u.b.:\n' + msg);
      }
    }
  });

    /* Inschrijven */
  $('a[href="#verstuurinschrijving"]').click(function(e) {
    e.preventDefault();
    var msg = '';
    if($(this).parent().find('input[name="naam"]').val() == '') {
      msg += ' - Naam\n';
    }
    if($(this).parent().find('input[name="adres"]').val() == '') {
      msg += ' - Adres\n';
    }
    if($(this).parent().find('input[name="postcode"]').val() == '') {
      msg += ' - Postcode\n';
    }
    if($(this).parent().find('input[name="plaats"]').val() == '') {
      msg += ' - Plaats\n';
    }
    if($(this).parent().find('input[name="telefoon"]').val() == '') {
      msg += ' - Telefoon\n';
    }
    if($(this).parent().find('input[name="aantal"]').val() == '') {
      msg += ' - Aantal personen\n';
    }

    if(msg == '') {
      $(this).parent().submit();
    } else {
      alert('Vul onderstaande velden in a.u.b.:\n' + msg);
    }
  });

  /* Nieuwsbrief */
  $('a[href="#nieuwsbriefaanmelden"]').click(function(e) {
    e.preventDefault();
    if($('#newsletter-email').val() != '' && isValidEmailAddress($('#newsletter-email').val())) {
      $(this).parent().submit();
    } else {
      alert('Vul een geldig e-maildres in a.u.b.');
    }
  });

  /* Slideshow */
  if($('.mask img').length > 1) {
    sc = $('.mask img').length;
    $('.mask img').not(':eq(0)').css({opacity:0, display:'block'});
    $('.mask img').eq(0).css({opacity:1, display:'block'});
    startSidebarSlideshow();
  }

});

var slideshowIndex = -1;
var sc = 0;
var zi = 1001;
function startSidebarSlideshow() {
  slideshowIndex++;
  $('.mask img').eq(slideshowIndex).css({zIndex:zi++}).stop(true, true).animate({opacity:1}, {duration:1500, complete:function() {
    $(this).css({zIndex:1000});
    $('.mask img').not($(this)).css({opacity:0, display:'block'});
    if(slideshowIndex == sc - 1) {
      zi = 1001;
      slideshowIndex = -1;
    }
    slideshowTimeout = setTimeout(startSidebarSlideshow, 5000);
  }});
}
var directionDisplay;
var map;
function doGoogleMaps() {
  directionsDisplay = new google.maps.DirectionsRenderer({draggable:true, suppressMarkers:true});
  var geocoder = new google.maps.Geocoder();
  if(geocoder) {
    geocoder.geocode({'address':'Plankstraat 6, Maastricht'}, function(results, status) {
      if(status == google.maps.GeocoderStatus.OK) {
        var gLat = results[0].geometry.location.lat();
        var gLng = results[0].geometry.location.lng();
      }
      var latlng = new google.maps.LatLng(gLat, gLng);
      var myOptions = {zoom:17, center:latlng, mapTypeId:google.maps.MapTypeId.ROADMAP};
      map = new google.maps.Map(document.getElementById('maps'), myOptions);
      new google.maps.Marker({position:latlng, map:map});
      directionsDisplay.setMap(map);
      directionsDisplay.setPanel(document.getElementById("directions"));
    });
  }
}
function getDirections(address) {
  var directionsService = new google.maps.DirectionsService();
  directionsService.route({origin:address, destination:'Plankstraat 6, Maastricht', provideRouteAlternatives:false, travelMode:google.maps.DirectionsTravelMode.DRIVING, unitSystem:google.maps.DirectionsUnitSystem.METRIC}, function(result, status) {
    if(status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(result);
      var geocoder = new google.maps.Geocoder();
      if(geocoder) {
        geocoder.geocode({'address':address}, function(results, status) {
          if(status == google.maps.GeocoderStatus.OK) {
            var gLat = results[0].geometry.location.lat();
            var gLng = results[0].geometry.location.lng();
          }
          var latlng2 = new google.maps.LatLng(gLat, gLng);
          new google.maps.Marker({position:latlng2, map:map});
        });
      }
    } else {
      alert('Het adres "' + address + '" kan niet worden gevonden. Controleer het door u opgegeven adres op mogelijke typfouten.');
    }
  });
}

function preloadImages() {
  for(var i = 0; i < arguments.length; i++) {
    var oImg = new Image();
    oImg.src = arguments[i];
  }
}
function toggleMultipleFocus() {
  for(var i = 0; i < arguments.length; i++) {
    toggleFocus(arguments[i]);
  }
}
function toggleFocus(id) {
  var val = $(id).val();
  $(id).focus(function() {
    if($(this).val() == val) {$(this).val('');}
  }).blur(function() {
    if($(this).val() == '') {$(this).val(val);}
  });
}
function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^(("[\w-+\s]+")|([\w-+]+(?:\.[\w-+]+)*)|("[\w-+\s]+")([\w-+]+(?:\.[\w-+]+)*))(@((?:[\w-+]+\.)*\w[\w-+]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][\d]\.|1[\d]{2}\.|[\d]{1,2}\.))((25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\.){2}(25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
}
function tl(key, stripall, language) {
  if(stripall == undefined) {stripall = false;}
  if(language == undefined) {language = false;}
  var result = '';
  $.ajax({
    url:'tl.php',
    async: false,
    data:{key:key, stripall:stripall, language:language},
    success:function(data) {
       result = data;
    }
  });
  return result;
}
