$(document).ready(function() { 
  
  var header_config = {
    timing         : 550,
    timing_fast    : 250,
    dropdown_speed : 200
  }

  function closeAll(callback, top) {
    if (!top) {
      $('#header_container .current').removeClass('current');

      $('.header_lang').removeClass('current').find('span').removeClass('up');
      $('.header_lang').find('ul').slideUp(header_config.dropdown_speed);

      if (callback) {
        if ($('#header_container .open').length > 0) {
          $('#header_container .open').slideToggle(header_config.timing, function(){
            $('#header_container .close_up').slideDown(header_config.timing_fast, function(){
              if ($('#header_container .open:animated').length === 0) {
                callback();
              }
            });
          }).removeClass('open');
        } else { 
          $('#header_container .close_up').slideToggle(header_config.timing_fast, function(){
            callback();
          });
        }
      } else {
        if ($('#header_container .open').length > 0) {
          $('#header_container .open').slideToggle(header_config.timing, function(){
            $('#header_container .close_up').slideUp(header_config.timing_fast);
          }).removeClass('open');
        }
      }
    } else {
      $('#header_container .current').removeClass('current');

      $('.header_lang').removeClass('current').find('span').removeClass('up');
      $('.header_lang').find('ul').slideUp(header_config.dropdown_speed);

      if (callback) {
        if ($('#header_container .open').length > 0) {
          $('#header_container .open').slideToggle(header_config.timing, function(){
            $('#header_container .close_up').slideUp(header_config.timing_fast, function(){
              if ($('#header_container .open:animated').length === 0) {
                callback();
              }
            });
          }).removeClass('open');
        } else { 
          callback();
        }
      } else {
        if ($('#header_container .open').length > 0) {
          $('#header_container .open').slideToggle(header_config.timing, function(){
            $('#header_container .close_up').slideUp(header_config.timing_fast);
          }).removeClass('open');
        }
      }
    }
  }

  $('.close_up, .close_down').click(function(e){ closeAll(); });
  
  $('#aboutButton').click(function(e){
    e.preventDefault();
    if ($(this).hasClass('current')) {
      closeAll();
    } else {
      closeAll(function(){
        $('#aboutContainer').slideDown(header_config.timing).addClass('open');
        $('#aboutButton').addClass('current'); 
      });
    }
  });
  
  $('#businessesButton').click(function(e){
    e.preventDefault();
    if ($(this).hasClass('current')) {
      closeAll();
    } else {
      closeAll(function(){
        $('#businessesContainer').slideDown(header_config.timing).addClass('open');
        $('#businessesButton').addClass('current');
      });
    }
  });
  
  $('#solutionsButton').click(function(e){
    e.preventDefault();
    if ($(this).hasClass('current')) {
      closeAll();
    } else {
      closeAll(function(){
        $('#solutionsContainer').slideDown(header_config.timing).addClass('open');
        $('#solutionsButton').addClass('current');
      });
    }
  });
  
  $('#myHomeButton').click(function(e){
    e.preventDefault();
    if ($(this).hasClass('current')) {
      closeAll(false, true);
    } else {
      closeAll(function(){
        $('#myHome.tab').css({'display': 'block'});
        $('#myHomeContainer').slideDown(header_config.timing).addClass('open');
        $('#myHomeButton').addClass('current');
      }, true);
    }
  });
  
  $('#worldWideButton').click(function(e){
    e.preventDefault();
    if ($(this).hasClass('current')) {
      closeAll(false, true);
    } else {
      closeAll(function(){
        $('#worldWide.tab').css({'display': 'block'});
        $('#worldWideContainer').slideDown(header_config.timing).addClass('open'); 
        $('#worldWideButton').addClass('current');
      }, true);
    }
  });

  $('.header_lang').click(function() {
    if (!$(this).find('span').hasClass('up')) {
      $(this).addClass('current').find('span').addClass('up');
      $(this).find('ul').slideDown(header_config.dropdown_speed);
    } else {
      $(this).removeClass('current').find('span').removeClass('up');
      $(this).find('ul').slideUp(header_config.dropdown_speed);
    }
  }); 

	$('#header_search input').focus(function() {
		$('.search-wrap').addClass('focused');
		$('.search-left').addClass('focused');
		$('.submit').addClass('focused');
	});
	
	$('#header_search input').blur(function() {
		$('.search-wrap').removeClass('focused');
		$('.search-left').removeClass('focused');
		$('.submit').removeClass('focused');
	});
	
});

