
var current = null;
var next_current = null;
var timeMaxOffset = 1.5;
var timeOffset = 1.5;
var repos_divs_offset = -1;
var next_timeout = 100;

function create_load() {
  var div = document.createElement('div');
  div.className = "repos";
  div.innerHTML = "Fetching feeds from github...";
  div.setAttribute('style', 'width: 200px');
  
  current = div;
}

function hook() {
  document.body.appendChild(current);
  slide_in();
}

function slide_in() {
  var height = current.offsetHeight + 20;
  timeOffset = Math.floor((timeOffset-0.01)*100) / 100;
  var newHeight = -height * Math.pow(timeOffset/timeMaxOffset, 3);
  newHeight = Math.floor(newHeight*100) / 100;
  current.style.top = newHeight+"px";
  
  if (timeOffset > 0) {
    setTimeout(slide_in, 10);
  }
  else {
    timeOffset = timeMaxOffset;
    setTimeout(hook_content, next_timeout);
    next_timeout = 10000;
  }
}

function slide_out() {
  var height = current.offsetHeight + 20;
  timeOffset = Math.floor((timeOffset-0.01)*100) / 100;
  var newHeight = -height * Math.pow(1 - timeOffset/timeMaxOffset, 3);
  newHeight = Math.floor(newHeight*100) / 100;
  current.style.top = newHeight+"px";
  
  if (timeOffset > 0) {
    setTimeout(slide_out, 10);
  }
  else {
    timeOffset = timeMaxOffset;
    document.body.removeChild(current);
    current = next_current;
    next_current = null;
    setTimeout(hook, 100);
  }
}

function hook_content() {
  if (repos_divs.length == 0) {
    setTimeout(hook_content, 100);
  }
  else {
    repos_divs_offset++;
    next_current = repos_divs[repos_divs_offset % repos_divs.length];
    slide_out();
  }
}



