$(function (){
  //setTimeout("releaseYoyo()", 2000);

  /*
  $(".slider ul").carouFredSel({
    auto: true,
    prev: ".slider .nav span:first-child",
    next: ".slider .nav span:last-child",
    scroll: {
      duration: 1000,
      items: 1
    }
  });
  */
  
  $("html").addClass("done");
  
  nextSlide($('#slide1'));
  
  $('.presentation .controls span').click(function (){
    var index = $(this).index('.presentation .controls span') + 1;
    $('.presentation').addClass('stopped');
    nextSlide($('.presentation .wrapper > div:nth-child(' + index + ')'));
  });
  
  $(".gallery a").click(function (){
    $(".gallery").addClass("stopped");
    animateGallery($(this).parent());
  });
  
  galleryNext(".gallery li:first-child");
  
  $("html.about-us").click(function (){
    $(".team li").removeClass("active");
  });

  $(".team li").click(function (event){
    event.stopPropagation();
    $(".team li").not(this).removeClass("active");
    if($(this).children("img").attr("src") != "/images/team/default/thumb01.jpg"){
      $(this).toggleClass("active"); 
    }
  });
  
  /*
  $(".btn-orange").click(function (){
    $.scrollTo(".dark",1000);
  });
  */
  
  $("#country").change(function (){
    if($(this).find("option:selected").val() == "United States"){
      $("#state").parents(".field").show();
      $("#state").rules("add", "required");
    }else{
      $("#state").parents(".field").hide();
      $("#state").rules("remove", "required");
    }
  });
  
  $("footer form").validate({
    rules: {
      "first_name": "required",
      "last_name": "required",
      "email": { required: true, email: true },
      "description": "required"
    }
  });
  
  $(".contact .wrapper .contactform").validate({
    rules: {
      "first_name": "required",
      "last_name": "required",
      "company": "required",
      "email": { required: true, email: true },
      "phone": "required",
      "country": "required",
      "description": "required"
    }
  });
  
});

$(document).mousemove(function(e){
  var x = e.pageX;
  var y = e.pageY;
  moveEyeballs(x, y);
});

function pullYoyo(){
  $(".yoyo").removeClass("released");
  setTimeout("releaseYoyo()", 3000 + Math.random() * 1000);
}

function releaseYoyo(){
  $(".yoyo").addClass("released");
  setTimeout("pullYoyo()",400 + Math.random() * 200);
}

function moveEyeballs(x, y){
  $(".eyeballs li, .cyclops span").each(function (){
    var angle = getAngle(this, x, y);
    $(this).css("-moz-transform","rotate(" + angle + "deg)");
    $(this).css("-webkit-transform","rotate(" + angle + "deg)");
    $(this).css("transform","rotate(" + angle + "deg)");
  });
}

function getAngle(eyeball,mouseX,mouseY){
  var x = $(eyeball).offset().left;
  var y = $(eyeball).offset().top;
  var angle = Math.atan2(mouseY - y, mouseX - x);
  angle = angle *180 / Math.PI;
  return angle;
}

function galleryNext(item){
  if(!$(".gallery").hasClass("stopped")){
    animateGallery(item);
  
    if(!$(".gallery li:last-child").hasClass("active")){
      var next = $(item).next();
    }else{
      var next = $(".gallery li:first-child");
    }

    setTimeout(function (){
      galleryNext(next);
    }, 4000);
  }
}

function animateGallery(item){
  $(item).siblings().removeClass("active");
  $(item).addClass("active");
  $(".project-preview img").fadeOut();
  setTimeout(function (){
    $(".project-preview").html('<a href="' + $(item).attr("data-url") + '"><img alt="' + $(item).attr("data-project") + '" src="' + $(item).attr("data-image") + '" style="display:none;" /></a>');
  }, 200);
  setTimeout(function (){
    $(".project-preview img").fadeIn();
  }, 200);
}

function nextSlide(slide){
  $(slide).siblings().removeClass('active');
  $(slide).addClass('active');
  
  if(!$(".presentation .wrapper > div:last-of-type").hasClass("active")){
    var next = $(slide).next();
  }else{
    var next = $(".presentation .wrapper > div:first-child");
  }
  
  if(!$(".presentation").hasClass("stopped")){
    setTimeout(function (){
      nextSlide(next);
    }, 6000);
  }
  
  $('.presentation .controls li').removeClass('active');
  var index = $(slide).index('.presentation .wrapper > div') + 1;
  $('.presentation .controls li:nth-child(' + index + ')').addClass('active');
}
