var bAnimation = false;

$(document).ready(function(){
  $('.slideshow-right, .slideshow-left').cycle({ 
      fx:    'fade', 
      speed:  6000 
   });
   
   $('a.nav-btn').click(function(){
     return InitAnimation($(this));
   });
   
   $('a.farmland-btn').click(function(){
     $('a.nav-btn.farmland').addClass('active');
     DoAnimationLeft ($(this), $('#content-left .text'), '330px');
     return AnimateCirclesLeft ($('#content-left'), $('#content-left .text'));
   });
   
   $('a.real-btn').click(function(){
     if(bAnimation) {
       return false;
     }
     $('a.nav-btn.real').addClass('active');
     CheckRightText ($('#content-right .text-small'), 'left');
     DoAnimationRight ($(this), $('#content-right .text'), '330px');
     return AnimateCirclesRight ($('#content-right'), $('#content-right .text'));
   });
   
   $('a.home-back').click(function(){
     if(bAnimation) {
       return false;
     }
     setTimeout(function(){ShowHomepage();},500)
   });
});

function InitAnimation(ClickedLink){
  if(bAnimation) {
    return false;
  }
  
  bAnimation = true; // TRUE
  
  if(ClickedLink.hasClass('active')){
    bAnimation = false;
    return false;
  }
  
  var ClassName = ClickedLink.attr('class');

  switch(ClassName) {
  case 'nav-btn farmland':
    setTimeout(function(){
      if(parseInt($('#map').css('right')) >= 0){
        DoAnimationContact(ClickedLink, false);
        $('a.real-btn', $('#content-right')).animate({ 'right' : '30px'}, 1500, function(){ bAnimation = false; });
        $('.circle', $('#content-right')).animate({ 'right' : '40px'}, 1500, function(){ bAnimation = false; });
        ClickedLink.addClass('active');
        $('#content-left .text').animate({'left':'-330px'},function(){
          DoAnimationLeft (ClickedLink, $('#content-left .text'), '330px');
        });
      } else {
        ClickedLink.addClass('active');
        AnimateCirclesLeft ($('#content-left'), $('#content-left .text'));
        DoAnimationLeft (ClickedLink, $('#content-left .text'), '330px');
      }
    },400);
    break;
  case 'nav-btn background':
  case 'nav-btn about':
    setTimeout(function(){ 
      if(parseInt($('#map').css('right')) >= 0){
        AnimateCirclesLeft ($('#content-left'), $('#content-left .text'));
        DoAnimationContact(ClickedLink, false);
      }
      ClickedLink.addClass('active');
      AnimateCirclesSeperate ($('#content-right'), $('#content-right .text'));
      CheckRightText ($('#content-right .text'), 'right');
      if(parseInt($('#content-right .text-small').css('left')) >= 0){
        $('#content-right .text-small').animate({'left':'-490px'}, 1500, function(){ 
          if(ClassName == 'nav-btn background'){
            $('a.nav-btn.about').removeClass('active');
          } else {
            $('a.nav-btn.background').removeClass('active');
          }
          DoAnimationLeft (ClickedLink, $('#content-right .text-small'), '490px'); 
        });   
      } else {
        DoAnimationLeft (ClickedLink, $('#content-right .text-small'), '490px');
      }
    },400);
    break;
  case 'nav-btn real':
    setTimeout(function(){
      if(parseInt($('#map').css('right')) >= -200){
        DoAnimationContact(ClickedLink, true);
        AnimateCirclesLeft ($('#content-left'), $('#content-left .text'));
      }
      CheckRightText ($('#content-right .text-small'), 'left');
      ClickedLink.addClass('active');
      AnimateCirclesRight ($('#content-right'), $('#content-right .text'));
      DoAnimationRight (ClickedLink, $('#content-right .text'), '330px');
    },400);
    break;
  case 'nav-btn contact':
    setTimeout(function(){
      CheckRightText ($('#content-right .text-small'), 'left');
      CheckRightText ($('#content-right .text'), 'right');
      ClickedLink.addClass('active');
      if(parseInt($('#content-right .circle').css('right')) > 0){
         AnimateCirclesRight ($('#content-right'), $('#content-right .text'));  
      }
      if(parseInt($('#content-left .circle').css('left')) > 0){
        AnimateCirclesLeft ($('#content-left'), $('#content-left .text'));  
      }
      DoAnimationContact (ClickedLink, true);
    },400);
    break;
    default:
    
  }
  return false;
}

function DoAnimationLeft(ClickedLink, DivToAnimate, AmountToAnimte) {
  bAnimation = true; // FALSE  
  if(parseInt(DivToAnimate.css('left')) < 0) {
    if(ClickedLink.attr('class') == 'nav-btn background active' || ClickedLink.attr('class') == 'nav-btn about active') {
    DivToAnimate.load(ClickedLink.attr('href') + ' #content-right .text-small' , function(){
      var LoadedText = $('#content-right .text-small .text-small').html();
      $('#content-right .text-small .text-small').remove();
      DivToAnimate.html(LoadedText);
      SetOnclickLinks (); /* Initialize the onclicks for the back btn etc. */
      $('.scroll-container', DivToAnimate).jScrollPane(); /* Initialize the scrollbar. */
      DivToAnimate.animate({ 'left' : '0px'}, 1500, function(){ bAnimation = false; return false; }); 
    });
    } else {
      DivToAnimate.load(ClickedLink.attr('href') + ' #content-left .text' , function(){
        var LoadedText = $('#content-left .text .text').html();
        $('#content-left .text .text').remove();
        DivToAnimate.html(LoadedText);
        SetOnclickLinks (); /* Initialize the onclicks for the back btn etc. */
        $('.scroll-container', DivToAnimate).jScrollPane(); /* Initialize the scrollbar. */
        DivToAnimate.animate({ 'left' : '0px'}, 1500, function(){ bAnimation = false; return false; }); 
      });
    }
  } else {
      DivToAnimate.animate({ 'left' : '-' + AmountToAnimte}, 1500, function(){ bAnimation = false; return false; });
  }
}

function DoAnimationRight(ClickedLink, DivToAnimate, AmountToAnimte) {
  bAnimation = true; // FALSE
  if(parseInt(DivToAnimate.css('right')) < 0) {
    DivToAnimate.load(ClickedLink.attr('href') + ' #content-right .text', function(){
      var LoadedText = $('#content-right .text .text').html();
      $('#content-right .text .text').remove();
      DivToAnimate.html(LoadedText);
      SetOnclickLinks (); /* Initialize the onclicks for the back btn etc. */
      $('.scroll-container', DivToAnimate).jScrollPane(); /* Initialize the scrollbar. */
      DivToAnimate.animate({ 'right' : '0px'}, 1500, function(){ bAnimation = false; return false;}); 
    });
  } else {
      DivToAnimate.animate({ 'right' : '-' + AmountToAnimte}, 1500, function(){ bAnimation = false; return false; });
  }
}

function DoAnimationContact (ClickedLink, ReturnFalse) {
  bAnimation = true; // FALSE
  DivToAnimate = $('#map');
  DivWithText  = $('#content-left .text');
  if($('a.nav-btn.farmland').hasClass('active')) {
    $('a.nav-btn.farmland').removeClass('active')
  }
  if(parseInt(DivToAnimate.css('right')) < 0) {
    if(parseInt(DivWithText.css('left')) >= 0){
      DivToAnimate.animate({ 'right' : '0px'}, 1500);
      DivWithText.animate({ 'left' : '-390px'}, 1500, function(){ 
        DivWithText.load(ClickedLink.attr('href')+ ' #content-left .text', function(){
          var LoadedText = $('#content-left .text .text').html();
          $('#content-left .text .text').remove();
          DivWithText.html(LoadedText);
          SetOnclickLinks (); /* Initialize the onclicks for the back btn etc. */
          DivWithText.animate({ 'left' : '0px'}, 1500, function(){ if(ReturnFalse) {return false;}});
          DivToAnimate.animate({ 'right' : '0px'}, 1500, function(){ bAnimation = false; if(ReturnFalse) {return false;}}); 
        });
      }); 
    } else {
      DivWithText.load(ClickedLink.attr('href') + ' #content-left .text', function(){
        var LoadedText = $('#content-left .text .text').html();
        $('#content-left .text .text').remove();
        DivWithText.html(LoadedText);
        SetOnclickLinks (); /* Initialize the onclicks for the back btn etc. */
        DivWithText.animate({ 'left' : '0px'}, 1500, function(){ if(ReturnFalse) {return false;}});
        DivToAnimate.animate({ 'right' : '0px'}, 1500, function(){ bAnimation = false; if(ReturnFalse) {return false;}}); 
      });
    }
  } else {
      if($('a.nav-btn.contact').hasClass('active')) {
        $('a.nav-btn.contact').removeClass('active')
      }
      DivWithText.animate({ 'left' : '-390px'}, 1500, function(){ bAnimation = false; if(ReturnFalse) {return false;}});
      DivToAnimate.animate({ 'right' : '-490px'}, 1500, function(){ bAnimation = false; if(ReturnFalse) {return false;}});
  }
}

function AnimateCirclesLeft(ParentDiv, RelativeElement) {
  bAnimation = true; // FALSE
  if(parseInt(RelativeElement.css('left')) < 0){
    $('.circle', ParentDiv).animate({ 'left' : '-250px'}, 1500, function(){ bAnimation = false; });
    $('a.farmland-btn', ParentDiv).animate({ 'left' : '-250px'}, 1500, function(){ bAnimation = false; });
  } else {
    $('a.farmland-btn', ParentDiv).animate({ 'left' : '40px'}, 1500, function(){ bAnimation = false; });
    $('.circle', ParentDiv).animate({ 'left' : '50px'}, 1500, function(){ bAnimation = false; });
  }
  return false;
}

function AnimateCirclesRight(ParentDiv, RelativeElement) {
  bAnimation = true; // FALSE
  if(parseInt(RelativeElement.css('right')) < 0){
    $('.circle', ParentDiv).animate({ 'right' : '-250px'}, 1500, function(){ bAnimation = false; });
    $('a.real-btn', ParentDiv).animate({ 'right' : '-250px'}, 1500, function(){ bAnimation = false; });
  } else {
    $('a.real-btn', ParentDiv).animate({ 'right' : '30px'}, 1500, function(){ bAnimation = false; });
    $('.circle', ParentDiv).animate({ 'right' : '40px'}, 1500, function(){ bAnimation = false; });
  }
  return false;
}

function AnimateCirclesSeperate(ParentDiv, RelativeElement, DirectionToSlide) {
  bAnimation = true; // FALSE
  if(DirectionToSlide == "in"){
    $('a.real-btn', ParentDiv).animate({ 'right' : '30px'}, 1500, function(){ bAnimation = false; });
    $('.circle', ParentDiv).animate({ 'right' : '40px'}, 1500, function(){ bAnimation = false; });
  } else {
    $('a.real-btn', ParentDiv).animate({ 'right' : '30px'}, 1500, function(){ bAnimation = false; });
    $('.circle', ParentDiv).animate({ 'right' : '-250px'}, 1500, function(){ bAnimation = false; });
  }
  return false;
}

function SetOnclickLinks () {
  $('a.left-back').click(function(){  
    if($('a.nav-btn.farmland').hasClass('active')){
      $('a.nav-btn.farmland').removeClass('active');
      DoAnimationLeft ($(this), $('#content-left .text'), '330px');
      return AnimateCirclesLeft ($('#content-left'), $('#content-left .text'));
    }
  });
  $('a.right-back-detail').click(function(){  
    if($('a.nav-btn.background').hasClass('active') || $('a.nav-btn.about').hasClass('active')){
      $('a.nav-btn.about').removeClass('active');
      $('a.nav-btn.background').removeClass('active');
      DoAnimationLeft ($(this), $('#content-right .text-small'), '490px');
      return AnimateCirclesSeperate ($('#content-right'), $('#content-right .text'), 'in');
    }
  });
  $('a.right-back').click(function(){  
    if($('a.nav-btn.real').hasClass('active')){
      $('a.nav-btn.real').removeClass('active');
      DoAnimationRight ($(this), $('#content-right .text'), '330px');
      return AnimateCirclesRight ($('#content-right'), $('#content-right .text'));
    }
  });
  $('a.contact-back').click(function(){  
    if($('a.nav-btn.contact').hasClass('active')){
      $('a.nav-btn.contact').removeClass('active');
      DoAnimationContact("", true);
      $('a.real-btn', $('#content-right')).animate({ 'right' : '30px'}, 1500, function(){ bAnimation = false; });
      $('.circle', $('#content-right')).animate({ 'right' : '40px'}, 1500, function(){ bAnimation = false; });
      return AnimateCirclesLeft ($('#content-left'), $('#content-left .text'));
    }
  });
}

function CheckRightText (DivToCheck, DirectionToCheck) {
  if(DirectionToCheck == 'right') {
    if(parseInt(DivToCheck.css('right')) >= 0){
      if($('a.nav-btn.real').hasClass('active')){
        $('a.nav-btn.real').removeClass('active')
      }  
      DivToCheck.animate({'right' : '-330px'}, 1500);
    }
  } else {
    if(parseInt(DivToCheck.css('left')) >= 0){
      if($('a.nav-btn.background').hasClass('active')){
        $('a.nav-btn.background').removeClass('active');
      }
      if($('a.nav-btn.about').hasClass('active')) {
        $('a.nav-btn.about').removeClass('active')
      }
      DivToCheck.animate({'left' : '-490px'}, 1500);
    }
  }
}

function ShowHomepage(){
  if(bAnimation) {
     return false;
   }
  
  $('a.right-back-detail').click();
  $('a.right-back').click();
  $('a.contact-back').click();
  $('a.left-back').click(); 
}
