function addBgDiv(container, bgType) {
  var html = '<div id="bg-' + bgType + '" class="bg-image-div"><img src="images/bg-' + bgType + '.jpg"></div>';
  container.prepend(html);
}

function r13(c) {
    return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26)
}

function activateMailto(a) {
  var email = a.attr('href').replace(/^mailto:/, '').replace(/[a-zA-Z]/g, r13).replace(/ /g, '@');
  a.attr('href', 'mailto:' + email);
}

/* scroll buttons */

function addHorizontalScrollButtons(divSelector) {
  var div = $(divSelector);  
  
  var left = createScrollButton('left');
  var right = createScrollButton('right');
  
  left.click(function() {
    scrollLeft(div, left, right);
  });
  
  right.click(function() {
    scrollRight(div, left, right);
  });
  
  div.before(right);
  div.before(left);
  
  updateHorizontalScrollButtons(div, left, right);
}

function scrollLeft(div, left, right) {
  var scrollLeft = div.scrollLeft();
  var pos = 0;
  
  $('.item', div).each(function(i) {
    var item = $(this);
    var margin = (item.outerWidth(true) - item.width()) / 2;
    var left = item.position().left;
    
    if (left < 0) {
      pos = div.width() - item.width() - margin - left;
    }
    
    else {
      return false;
    }
  });
  
  scrollLeft -= pos;
  
  div.animate({scrollLeft: scrollLeft}, {duration: 'fast', complete: function() { updateHorizontalScrollButtons(div, left, right) }});
}

function scrollRight(div, left, right) {
  var scrollLeft = div.scrollLeft();
  var divWidth = div.width();
  
  $('.item', div).each(function(i) {
    var item = $(this);
    var left = item.position().left;
    if (left + item.width() > divWidth) {
      scrollLeft += left;
      return false;
    }
  });
  
  div.animate({scrollLeft: scrollLeft}, {duration: 'fast', complete: function() { updateHorizontalScrollButtons(div, left, right) }});
}

function scrollHorizontal(div, offset, left, right) {
  div.animate({scrollLeft: div.scrollLeft() + offset}, {duration: 'fast', complete: function() { updateHorizontalScrollButtons(div, left, right) }});
}

function updateHorizontalScrollButtons(div, left, right) {
  (div.scrollLeft() == 0) ? left.hide() : left.show();
  
  var maxScroll = div.attr('scrollWidth') - div.width();
  (div.scrollLeft() >= maxScroll) ? right.hide() : right.show();
  
  left.blur();
  right.blur();
}

function addVerticalScrollButtons(divSelector) {
  var div = $(divSelector);  
  
  var scrollPx = Math.floor(div.height() * 0.75);
  
  var up = createScrollButton('up');
  var down = createScrollButton('down');
    
  up.click(function() {
    scrollVertical(div, -scrollPx, up, down);
  });
    
  down.click(function() {
    scrollVertical(div, scrollPx, up, down);
  });

  div.before(down);
  div.before(up);
  
  updateVerticalScrollButtons(div, up, down);
}

function scrollVertical(div, offset, up, down) {
  div.animate({scrollTop: div.scrollTop() + offset}, {duration: 'fast', complete: function() { updateVerticalScrollButtons(div, up, down) }});
}

function createScrollButton(direction) {
  return $('<a href="#" class="scroll ' + direction +'" title="scroll ' + direction +'" href="javascript: return false;"></a>');
}

function updateVerticalScrollButtons(div, up, down) {
  (div.scrollTop() == 0) ? up.hide() : up.show();
  
  var maxScroll = div.attr('scrollHeight') - div.height();
  (div.scrollTop() >= maxScroll) ? down.hide() : down.show();
  
  up.blur();
  down.blur();
}

/* end scroll buttons */

function addLightbox() {
  var lightboxOptions = {
    overlayOpacity: 0.5,
    imageLoading: 'js/jquery-lightbox-0.5/images/lightbox-ico-loading.gif',
    imageBtnClose: 'js/jquery-lightbox-0.5/images/lightbox-btn-close.gif',
    imageBtnPrev: 'js/jquery-lightbox-0.5/images/lightbox-btn-prev.gif',
    imageBtnNext: 'js/jquery-lightbox-0.5/images/lightbox-btn-next.gif',
    imageBlank: 'js/jquery-lightbox-0.5/images/lightbox-blank.gif'
  };

  $('.gallery .item .image a').lightBox(lightboxOptions);
}

$(document).ready(function() {    
  $('a[href*=://]').attr('target', '_blank');
  $('a[href^=mailto:]').each(function(i) {
    activateMailto($(this));
  });
});