var tick = 0;
var scrollStop, banner, approche, services, cahiers, apropos, contact;


$.easing.elasout = function(x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
};

  
function isBanner() 
{
	var docViewTop = $(window).scrollTop(),
		docViewBottom = docViewTop + $(window).height(),
		elemTop = $(banner).offset().top,
		elemBottom = elemTop + $(banner).height();
	var pageMiddle = (docViewBottom - docViewTop) / 2 + docViewTop;
	return elemTop <= pageMiddle && pageMiddle <= elemBottom;
}

function isApproche() 
{
	var docViewTop = $(window).scrollTop(),
		docViewBottom = docViewTop + $(window).height(),
		elemTop = $(approche).offset().top,
		elemBottom = elemTop + $(approche).height();
	var pageMiddle = (docViewBottom - docViewTop) / 2 + docViewTop;
	return elemTop <= pageMiddle && pageMiddle <= elemBottom;
}

function isServices() 
{
	var docViewTop = $(window).scrollTop(),
		docViewBottom = docViewTop + $(window).height(),
		elemTop = $(services).offset().top,
		elemBottom = elemTop + $(services).height();
	var pageMiddle = (docViewBottom - docViewTop) / 2 + docViewTop;
	return elemTop <= pageMiddle && pageMiddle <= elemBottom;
}

function isCahiers() 
{
	var docViewTop = $(window).scrollTop(),
		docViewBottom = docViewTop + $(window).height(),
		elemTop = $(cahiers).offset().top,
		elemBottom = elemTop + $(cahiers).height();
	var pageMiddle = (docViewBottom - docViewTop) / 2 + docViewTop;
	return elemTop <= pageMiddle && pageMiddle <= elemBottom;
}

function isApropos() 
{
	var docViewTop = $(window).scrollTop(),
		docViewBottom = docViewTop + $(window).height(),
		elemTop = $(apropos).offset().top,
		elemBottom = elemTop + $(apropos).height();
	var pageMiddle = (docViewBottom - docViewTop) / 2 + docViewTop;
	return elemTop <= pageMiddle && pageMiddle <= elemBottom;
}

function isContact() 
{
    var docViewTop = $(window).scrollTop(),
        docViewBottom = docViewTop + $(window).height(),
        elemTop = $(contact).offset().top,
		elemBottom = elemTop + $(contact).height();
	var pageMiddle = (docViewBottom - docViewTop) / 2 + docViewTop;
	return elemTop <= pageMiddle && pageMiddle <= elemBottom;
}

  
function updateScrollInfo()
{
  tick = 0;
  if(isBanner())
  {
    $('nav a').removeClass("this");
    $('#to-banner').addClass("this");
  } 
  else if (isApproche())
  {
    $('nav a').removeClass("this");
    $('#to-approche').addClass("this");
  }  
  else if (isServices())
  {
    $('nav a').removeClass("this");
    $('#to-services').addClass("this");
  }  
  else if (isCahiers())
  {
    $('nav a').removeClass("this");
    $('#to-cahiers').addClass("this");
  } 
  else if (isApropos())
  {
    $('nav a').removeClass("this");
    $('#to-apropos').addClass("this");
  } 
  else if (isContact())
  {
    $('nav a').removeClass("this");
    $('#to-contact').addClass("this");
  }
}

$(document).ready(function() {
	$('#rendezvous a, nav a').click(function() { var hash = this.hash; $.scrollTo( hash, 1500, {easing:'elasout', onAfter:function() {location.hash=hash;}} ); return false; });
	$('a[href*="note"]').hover(function() { $($(this).attr('href')).addClass('active'); }, function() { $($(this).attr('href')).removeClass('active'); })
		.click(function() { return false; });
	
	banner = $("#banner");
    services = $("#services");
    approche = $("#approche");
    cahiers = $("#cahiers")
    apropos = $("#apropos")
    contact = $("#contact")
    scrollStop = setTimeout(updateScrollInfo, 500);
  
    $(window).scroll(function(){ 
      tick++;
      clearTimeout(scrollStop);
      scrollStop = setTimeout(updateScrollInfo, 500);
      if (tick > 10)
      {
        updateScrollInfo();
      }
    });
    
    $('#photos a').fancyZoom();
    
    $('a.alt').on('click', function(e) {
    	e.preventDefault();
    	$($(this).prop('hash')).removeClass('hidden');
    	$(this).parent().addClass('hidden');
    })
});

window.onunload = function() {
	scrollStop = null;
	banner = null;
	approche = null;
	services = null;
	cahiers = null;
	apropos = null;
	contact = null;
}
