//define leaf start/end positions
var leaf_positions = {
  1: {
    start: {
      top: 600,
      left: -180
    },
    end: {
      top: 332,
      left: 365
    },
    offset_from_logo: {
      top: 81,
      left: 14
    }
  },
  2: {
    start: {
      top: 400,
      left: -180
    },
    end: {
      top: 297,
      left: 345
    },
    offset_from_logo: {
      top: 47,
      left: -7
    }
  },
  3: {
    start: {
      top: 200,
      left: -180
    },
    end: {
      top: 244,
      left: 354
    },
    offset_from_logo: {
      top: -7,
      left: 3
    }
  },
  4: {
    start: {
      top: 600,
      left: -180
    },
    end: {
      top: 202,
      left: 387
    },
    offset_from_logo: {
      top: -49,
      left: 37
    }
  },
  5: {
    start: {
      top: 400,
      left: -180
    },
    end: {
      top: 182,
      left: 427
    },
    offset_from_logo: {
      top: -70,
      left: 77
    }
  },
  6: {
    start: {
      top: 200,
      left: -180
    },
    end: {
      top: 191,
      left: 466
    },
    offset_from_logo: {
      top: -60,
      left: 116
    }
  },
  7: {
    start: {
      top: 600,
      left: -180
    },
    end: {
      top: 225,
      left: 492
    },
    offset_from_logo: {
      top: -25,
      left: 144
    }
  },
  8: {
    start: {
      top: 400,
      left: -180
    },
    end: {
      top: 265,
      left: 494
    },
    offset_from_logo: {
      top: 15,
      left: 144
    }
  },
  9: {
    start: {
      top: 200,
      left: -180
    },
    end: {
      top: 303,
      left: 495
    },
    offset_from_logo: {
      top: 53,
      left: 145
    }
  },
  10: {
    start: {
      top: 600,
      left: -180
    },
    end: {
      top: 331,
      left: 494
    },
    offset_from_logo: {
      top: 81,
      left: 144
    }
  },
  11: {
    start: {
      top: 400,
      left: -180
    },
    end: {
      top: 331,
      left: 460
    },
    offset_from_logo: {
      top: 81,
      left: 110
    }
  },
  12: {
    start: {
      top: 200,
      left: -180
    },
    end: {
      top: 331,
      left: 405
    },
    offset_from_logo: {
      top: 81,
      left: 55
    }
  }
};

var leaf_set = [1, 10, 7, 4];
var curr_leaf_set_index = -1;


// animate
function do_leaf_animation() {
  var leaf_one = leaf_set[curr_leaf_set_index];
  var leaf_two = leaf_one + 1;
  var leaf_three = leaf_two + 1;
  $('#leaf-' + leaf_one).addClass('active').animate(leaf_positions[leaf_one].end, 800);
  $('#leaf-' + leaf_two).addClass('active').animate(leaf_positions[leaf_two].end, 800);
  $('#leaf-' + leaf_three).addClass('active').animate(leaf_positions[leaf_three].end, 800);
  return false;
}

// move to start position
function move_to_start_position() {
  for (var i = 1; i <= 12; i++) {
    $('#leaf-' + i).css('top', leaf_positions[i].start.top).css('display', 'block');
    $('#leaf-' + i).css('left', leaf_positions[i].start.left).css('display', 'block');
    $('#leaf-' + i).removeClass('active');
  }
}

function udpate_end_positions() {
  var logo_offset = $('#logo img').offset();
  for (var i = 1; i <= 12; i++) {
    leaf_positions[i].end.top = logo_offset.top + leaf_positions[i].offset_from_logo.top;
    leaf_positions[i].end.left = logo_offset.left + leaf_positions[i].offset_from_logo.left;
  }
}

function update_active_leaves_positions() {
  udpate_end_positions();

  $('.leaf').each(function (index) {
    if ($(this).hasClass('active')) {
      var leaf_id = $(this).attr('id');
      var leaf_index = leaf_id.split('-')[1];
      $('#leaf-' + leaf_index).css('top', leaf_positions[leaf_index].end.top);
      $('#leaf-' + leaf_index).css('left', leaf_positions[leaf_index].end.left);
    }
  });
}

function animate_prev(currentSlideNumber) {
  //fade away visible leaves, and when done
  //set all leaves to original
  $('.leaf').css('display', 'none');
  move_to_start_position();

  //bring in previous leaves
  curr_leaf_set_index = currentSlideNumber - 1;
  do_leaf_animation();
}

function animate_next(currentSlideNumber) {
  //fade away visible leaves, and when done
  //set all leaves to original
  $('.leaf').css('display', 'none');
  move_to_start_position();

  //bring in next leaves
  curr_leaf_set_index = (currentSlideNumber - 1) % 4;
  do_leaf_animation();
}

// controls the slide transitions
var acelin_homepage = {
  me: this,
  transition_speed: 5000,  // transition speed 
  slide_timer: null,

  //begin transition to the next slide after the set interval. 
  //the transitions will happen till the clear interval is called.    
  begin_slide_transition: function () {
    this.slide_timer = window.setInterval("acelin_homepage.next_slide()", this.transition_speed);
  },

  //trasnition to the next slide.
  next_slide: function () {      
    //find the next selector  
    var next_selector = $('#home-content-next');
    //check to see if there is a next slide to transition to. 
    //the next selector id hidden when the last slide is reached.
    if ($(next_selector).is(":visible")) { 
      // transition to next slide using the click bound to the image. 
      next_selector.find('img').click();
    } else {      
      // clear the interval if the last slide was reached
      window.clearInterval(this.slide_timer);
    }
  }
};


// at start 
$(document).ready(function () {
  udpate_end_positions();
  move_to_start_position();

  //a light scrolling lib bxSlider
  $("#content .content-list ul").bxSlider({
    speed: 800,
    infiniteLoop: false,
    prevSelector: '#home-content-prev',
    nextSelector: '#home-content-next',
    prevImage: 'wp-content/themes/v1/img/arrow-left.png',
    nextImage: 'wp-content/themes/v1/img/arrow-right.png',
    onPrevSlide: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
      //show next selector if it is hidden. 
      $('#home-content-next').show();
      if (currentSlideNumber === 0) {
        move_to_start_position();
        return false;
      }
      //show prev selector on every other slide            
      animate_prev(currentSlideNumber);
    },
    onNextSlide: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
      //show prev selector if it is hidden. 
      $('#home-content-prev').show();
      if (currentSlideNumber === 5) {
        //fade away visible leaves, and when done
        //set all leaves to original
        $('.leaf').css('display', 'none');
        move_to_start_position();
        //animate all leaves
        for (var i = 1; i <= 12; i++) {
          $('#leaf-' + i).addClass('active').animate(leaf_positions[i].end, 800);
        }
      } else {
        //show next selector on ever other slide                
        animate_next(currentSlideNumber);
      }
    },
    onFirstSlide: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
      //hide prev selector on first slide                
      $('#home-content-prev').hide();
    },
    onLastSlide: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
      //hide next selector on last slide
      $('#home-content-next').hide();
    }
  });

  //bind events
  $(window).resize(function () {
    update_active_leaves_positions();
  });

  //hide prev selector on doc ready as the first slide is being shown. 
  $('#home-content-prev').hide();

  //start slide transition.
  acelin_homepage.begin_slide_transition();

});
