var basePath = $('base').attr('href');
Cufon.replace('h1, h2, .title, .date .day, .date .month, .date .year');
$(document).ready(function(){
  toggleMultipleFocus('#topbar form input', '.newsletter form input[name="newsletter-naam"]', '.newsletter form input[name="newsletter-email"]', '#addguestbook input[name="naam"]', '#addcomment input[name="naam"]', '#addcomment input[name="email"]');

  /* Weather */
  getWeather();

  /* Panoramas */
  $("a.fancy").fancybox({
    type:'iframe',
    height:455,
    width:550
  });

  /* News */
  $('#content-holder #content .newsitem').click(function() {
    $('#content-holder #content .newsitem .text .p').not($('.text .p', this)).animate({height:'45px'}, 400);
    $('.text .p', this).animate({height:$('.text .p > div', this).outerHeight()}, 400);
  });
  $('#content-holder #content .newsitem .img img, #content-holder .row .news .newsitem .img img').click(function() {
    $.fancybox($(this).attr('src').replace('_thumb', ''), {
      scrolling:'no',
      type:'image',
      overlayColor:'#f5f6ef',
      overlayOpacity:0.9}
    );
  });
  if(window.location.hash != '') {
    var bits = window.location.hash.split('-');
    var obj = $('#content div[rel="' + bits[bits.length - 1] + '"]');
    if(obj.length > 0) {
      obj.click();
    }
  }

  /* Coloring book */
  $('.coloringbook img').click(function() {
    $.fancybox('print.php?' + $(this).attr('src').replace('_thumb', ''), {
      scrolling:'no',
      type:'iframe',
      overlayColor:'#f5f6ef',
      overlayOpacity:0.9,
      height:750,
      width:500}
    );
  });

  /* Contact */
  $('a[href="#verstuur"]').click(function(e) {
    e.preventDefault();
    var v1 = $('.contact input[name="naam"]').val();
    var v2 = $('.contact input[name="email"]').val();
    var v3 = $('.contact textarea[name="bericht"]').val();
    if(v1 != '' && v2 != '' && v3 != '') {
      $(this).parent().submit();
    } else {
      alert('Vul uw naam, e-mail en bericht in a.u.b.');
    }
  });

  /* Newsletter signup */
  $('a[href="#aanmelden"]').click(function(e) {
    e.preventDefault();
    var v1 = $('.newsletter input[name="newsletter-naam"]').val();
    var v2 = $('.newsletter input[name="newsletter-email"]').val();
    if(v1 != '' && v2 != '' && v1 != 'naam' && v2 != 'e-mailadres') {
      $(this).parent().submit();
    } else {
      alert('Vul uw naam en e-mailadres in a.u.b.');
    }
  });

  /* Guestbook */
  $('a[href="#toonaddbericht"]').click(function(e) {
    e.preventDefault();
    $('#addguestbook').slideToggle();
  });
  $('a[href="#plaatsbericht"]').click(function(e) {
    e.preventDefault();
    var v1 = $('#addguestbook input[name="naam"]').val();
    var v2 = $('#addguestbook textarea').val();
    if(v1 != '' && v1 != 'Naam (verplicht)' && v2 != '') {
      $(this).parent().parent().submit();
    } else {
      alert('Vul uw naam en bericht in a.u.b.');
    }
  });

  /* Filter */
  $('a[href="#filter"]').click(function(e) {
    e.preventDefault();
    $(this).parent().submit();
  });

  /* Comments */
  $('a[href="#plaatsreactie"]').click(function(e) {
    e.preventDefault();
    var v1 = $('#addcomment input[name="naam"]').val();
    var v2 = $('#addcomment input[name="email"]').val();
    if(v1 != '' && v1 != 'Naam (verplicht)' && v2 != '' && v2 != 'E-mail (verplicht)') {
      $(this).parent().submit();
    } else {
      alert('Vul uw naam en e-mailadres in a.u.b.');
    }
  });

  /* 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();
    }
  });

  /* Foto album */
  $('#album-holder img').click(function() {
    $('#album-big > img').attr('src', $(this).attr('src').replace('_thumb', ''));
    $('#album-big div span').html($(this).attr('title'));
  });
  if($('#album-holder img').length > 6) {
    var w = $('#album-holder img').length * 58;
    $('#album-left').click(function() {
      if(Number($('#album-holder').css('left').replace('px', '')) <= -58) {
        $('#album-holder').stop(true, true).animate({left:'+=58px'}, 400);
      }
    });
    $('#album-right').click(function() {
      if(Number($('#album-holder').css('left').replace('px', '')) > (336 + 58 - w)) {
        $('#album-holder').stop(true, true).animate({left:'-=58px'}, 400);
      }
    });
  }
  $('#album-big > div > img').click(function() {
    $.fancybox($('#album-big > img').attr('src').replace('.jpg', '_big.jpg'), {
      scrolling:'no',
      type:'image',
      overlayColor:'#f5f6ef',
      overlayOpacity:0.9}
    );
  });
  // Home version
  $('#content-holder .row .photoalbum .mask .holder img').click(function() {
    $.fancybox($(this).attr('src').replace('_home.jpg', '_big.jpg'), {
      scrolling:'no',
      type:'image',
      overlayColor:'#f5f6ef',
      overlayOpacity:0.9}
    );
  });

  /* Search */
  $('a[href="#zoeken"]').click(function(e) {
    e.preventDefault();
    var val = $(this).parent().find('input').val();
    if(val != '' && val != 'vul hier uw zoekterm in')
    $(this).parent().submit();
  });

  /* Print */
  $('#print').click(function(e) {
    e.preventDefault();
    window.print();
  });

  /* Home photoalbum scrollers */
  if($('#content-holder .row .photoalbum .mask .holder img').length > 3) {
    var w = $('#content-holder .row .photoalbum .mask .holder img').length * 140;
    $('#arrow-album-left').show().click(function() {
      if(Number($('#content-holder .row .photoalbum .mask .holder').css('left').replace('px', '')) <= -140) {
        $('#content-holder .row .photoalbum .mask .holder').stop(true, true).animate({left:'+=140px'}, 400);
      }
    });
    $('#arrow-album-right').show().click(function() {
      if(Number($('#content-holder .row .photoalbum .mask .holder').css('left').replace('px', '')) > (400 + 140 - w)) {
        $('#content-holder .row .photoalbum .mask .holder').stop(true, true).animate({left:'-=140px'}, 400);
      }
    });
  }

  /* Sidebar image slideshow */
  if($('.booking-bottom .img').length > 1) {
    sc = $('.booking-bottom .img').length;
    $('.booking-bottom .img').not(':eq(0)').css({opacity:0, display:'block'});
    setTimeout(startSidebarSlideshow, 5000);
  }

  /* Header slideshow */
  if($('#header img:not(.overlay)').length > 1) {
    hc = $('#header img:not(.overlay)').length;
    if($('#header .overlay .numbers').length > 0) {
      for(var i = 1; i <= hc; i++) {
        $('#header .overlay .numbers').append('<div class="number">' + i + '</div>');
      }
      $('#header .overlay .numbers .number').css({opacity:.7}).click(function() {
        if(slideshowIndex != $(this).index()) {
          clearTimeout(slideshowTimeout);
          slideshowIndex = $(this).index() - 1;
          startHeaderSlideshow();
        }
      });
      $('#header .overlay .numbers .number').eq(slideshowIndex).css({opacity:1});
    }
    $('#header img').not(':eq(0)').css({opacity:0, display:'block'});
    slideshowTimeout = setTimeout(startHeaderSlideshow, 5000);
  }
  if($('#header2 img:not(.overlay)').length > 1) {
    hc2 = $('#header2 img:not(.overlay)').length;
    $('#header2 img').not(':eq(0)').css({opacity:0, display:'block'});
    setTimeout(startHeader2Slideshow, 5000);
  }
});

function getWeather() {
  $.ajax({
    url:'rss.php',
    success:function(data) {
      if(data.indexOf('Warning') == -1) {
        $('#weather').html(data);
        Cufon.replace('#weather');
      }
    },
    error:function() {
      //alert('Er ging iets mis tijdens het opvragen van de informatie. Probeer het op een later tijdstip a.u.b. nogmaals.');
    }
  });
}

var slideshowIndex3 = 0;
var sc = 0;
var zi3 = 1001;
function startSidebarSlideshow() {
  slideshowIndex3++;
  $('.booking-bottom .img').eq(slideshowIndex3).css({zIndex:zi3++}).stop(true, true).animate({opacity:1}, {duration:1500, complete:function() {
    $(this).css({zIndex:1000});
    $('.booking-bottom .img').not($(this)).css({opacity:0, display:'block'});
    if(slideshowIndex3 == sc - 1) {
      zi3 = 1001;
      slideshowIndex3 = -1;
    }
    slideshowTimeout3 = setTimeout(startSidebarSlideshow, 5000);
  }});
}
var slideshowTimeout = 0;
var slideshowIndex = 0;
var hc = 0;
var zi = 1001;
function startHeaderSlideshow() {
  slideshowIndex++;
  if($('#header .overlay .numbers').length > 0) {
    $('#header .overlay .numbers .number').eq(slideshowIndex).css({opacity:1});
    $('#header .overlay .numbers .number').not(':eq(' + slideshowIndex + ')').css({opacity:.7});
  }
  $('#header img').stop();
  $('#header img').eq(slideshowIndex).css({zIndex:zi++, opacity:0}).stop().animate({opacity:1}, {duration:1500, complete:function() {
    $(this).css({zIndex:1000});
    $('#header img').not($(this)).css({opacity:0, display:'block'});
    if(slideshowIndex == hc - 1) {
      zi = 1001;
      slideshowIndex = -1;
    }
    slideshowTimeout = setTimeout(startHeaderSlideshow, 5000);
  }});
}
var slideshowIndex2 = 0;
var hc2 = 0;
var zi2 = 1001;
function startHeader2Slideshow() {
  slideshowIndex2++;
  $('#header2 img').eq(slideshowIndex2).css({zIndex:zi2++}).stop(true, true).animate({opacity:1}, {duration:1500, complete:function() {
    $(this).css({zIndex:1000});
    $('#header2 img').not($(this)).css({opacity:0, display:'block'});
    if(slideshowIndex2 == hc2 - 1) {
      zi2 = 1001;
      slideshowIndex2 = -1;
    }
    slideshowTimeout2 = setTimeout(startHeader2Slideshow, 5000);
  }});
}
var directionDisplay;
var map;
function doGoogleMaps(small) {
  directionsDisplay = new google.maps.DirectionsRenderer({draggable:true, suppressMarkers:true});
  var geocoder = new google.maps.Geocoder();
  if(geocoder) {
    geocoder.geocode({'address':'Cottessen 6, Vijlen'}, 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:15, center:latlng, mapTypeId:google.maps.MapTypeId.ROADMAP};
      var xtr = '';
      if(small != undefined) {
        xtr = '-small';
        myOptions = {zoom:15, disableDefaultUI:true, center:latlng, mapTypeId:google.maps.MapTypeId.ROADMAP};
      }
      map = new google.maps.Map(document.getElementById('maps' + xtr), myOptions);
      new google.maps.Marker({position:latlng, map:map});
      directionsDisplay.setMap(map);
      directionsDisplay.setPanel(document.getElementById("directions"));
    });
  }
}
var mapMarkers = {};
function getMarkers() {
  $.ajax({
    url:'ajax.php',
    success:function(data) {
      eval(data);
      doGoogleMap();
    }
  });
}
function doGoogleMap() {
  var latlng = new google.maps.LatLng('50.76049', '5.94198');
  var myOptions = {zoom:18, center:latlng, disableDefaultUI:true, mapTypeId:google.maps.MapTypeId.SATELLITE};
  map = new google.maps.Map(document.getElementById('map'), myOptions);

  // add markers
  for(var i in mapMarkers) {
    var t = mapMarkers[i];
    latlng = new google.maps.LatLng(t.lat, t.lng);
    var img = new google.maps.MarkerImage('mapicon.php?nr=' + i, new google.maps.Size(20, 20), new google.maps.Point(0,0), new google.maps.Point(10, 10));
    var marker = new google.maps.Marker({
      icon:img,
      position:latlng,
      map:map,
      title:t.title,
      t:Number(i)
    });
    mapMarkers[i]['marker'] = marker;
    google.maps.event.addListener(marker, 'mouseover', function() {
      for(var i in mapMarkers) {
        mapMarkers[i]['marker'].setIcon(new google.maps.MarkerImage('mapicon.php?nr=' + i, new google.maps.Size(20, 20), new google.maps.Point(0,0), new google.maps.Point(10, 10)));
      }
      this.setIcon(new google.maps.MarkerImage('mapicon.php?nr=' + this.t + '&active', new google.maps.Size(33, 33), new google.maps.Point(0,0), new google.maps.Point(16, 16)));
      mapOverlay(this.t);
    });
  }
}
function mapOverlay(id) {
  if($('#map-overlay').length < 1) {
    $('body').append($('<div id="map-overlay"></div>'));
  }
  $.ajax({
    url:'ajax.php',
    data:{id:id},
    success:function(data) {
      $('#map-overlay').css({left:($('#map').offset().left + 10) + 'px', top:($('#map').offset().top + 10) + 'px'}).html(data);
    }
  });
}
function getDirections(address) {
  var directionsService = new google.maps.DirectionsService();
  directionsService.route({origin:address, destination:'Cottessen 6, Vijlen', 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 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;
}
