var increments = Array(2.0, 2.9, 3.6, 4.8, 6.0, 7.2, 8.4, 9.6, 10.8, 12.0, 13.2, 14.0, 15.8, 17.0, 17.0, 17.0, 17.0, 17.0, 15.8, 14.0, 13.2, 12.0, 10.8, 9.6, 8.4, 7.2, 6.0, 4.8, 3.4, 2.1, 1.0);

function getNextValue(value, max)
{
  value += increments[Math.round(value / max * (increments.length - 1))];
  return value < max ? value : max;
}

function getPrevValue(value, max)
{
  value -= increments[Math.round((increments.length - 1) - (value / max * (increments.length - 1)))];
  return value > 0 ? value : 0;
}

/* Teaser functions */

function toggleteaser()
{
  if(teaserHeight == teaserHeightMax)
    closeteaser();
  else if(teaserHeight == 0)
    openteaser();
}

function openteaser()
{
  if(teaserHeight < teaserHeightMax)
  {
    teaserHeight = getNextValue(teaserHeight, teaserHeightMax);
    document.getElementById('teaser').style.height = Math.round(teaserHeight) + 'px';
  }

  if(teaserHeight < teaserHeightMax)
    window.setTimeout("openteaser()", 40); // 25 frames per second
  else
  {
    document.getElementById('zipperhandle').className = 'close';
    document.cookie = "showteaser=1; path=/"
  }
}

function closeteaser()
{
  if(teaserHeight > 0)
  {
    teaserHeight = getPrevValue(teaserHeight, teaserHeightMax);
    document.getElementById('teaser').style.height = teaserHeight + 'px';
  }

  if(teaserHeight > 0)
    window.setTimeout("closeteaser()", 40); // 25 frames per second
  else
  {
    document.getElementById('zipperhandle').className = 'open';
    document.cookie = "showteaser=0; path=/"
  }
}

/* Newsletter functions */

function togglenewsletter()
{
  if(newsletterWidth == newsletterWidthMax)
    closenewsletter();
  else if(newsletterWidth == 0)
    opennewsletter();
}

function opennewsletter()
{
  if(newsletterWidth < newsletterWidthMax)
  {
    newsletterWidth = getNextValue(newsletterWidth, newsletterWidthMax);
    document.getElementById('newsletter').style.width = (25 + Math.round(newsletterWidth)) + 'px';
  }

  if(newsletterWidth < newsletterWidthMax)
    window.setTimeout("opennewsletter()", 40); // 25 frames per second
  else
    document.cookie = "shownewsletter=1; path=/"
}

function closenewsletter()
{
  if(newsletterWidth > 0)
  {
    newsletterWidth = getPrevValue(newsletterWidth, newsletterWidthMax);
    document.getElementById('newsletter').style.width = (25 + Math.round(newsletterWidth)) + 'px';
  }

  if(newsletterWidth > 0)
    window.setTimeout("closenewsletter()", 40); // 25 frames per second
  else
    document.cookie = "shownewsletter=0; path=/"
}