
if(typeof content_callback == 'undefined')
  var content_callback = new Array();

function share_callback(selector) {

  var english = (window.location.hostname.substring(0, 2) == 'en');

  var share_html = '\n' +
'<div class="sharearea" id="share_$id">\n' +
'<table>\n' +
'<tr><td><a href="http://www.facebook.com/sharer.php?u=$llink&t=$longtitle" class="share_facebook">'+(english?'f':'F')+'acebook</a></td>\n' +
'    <td><a href="http://twitter.com/share?url=$shortlink&text=$longtitle%20-" class="share_twitter">'+(english?'t':'T')+'witter</a></td></tr>\n' +
'<tr><td><a href="https://www.xing.com/app/user?op=share&url=$link;title=$longtitle" class="share_xing">'+(english?'xing':'XING')+'</a></td>\n' +
'    <td><a href="http://www.delicious.com/save?v=5&noui&jump=close&url=$link&title=$longtitle" class="share_delicious">'+(english?'d':'D')+'elicious</a></td></tr>\n' +
//'    <td><a href="http://platform-redirect.vz-modules.net/r/Link/Share/?url=$link&title=$longtitle" class="share_vz">'+(english?'vz network':'VZ-Netzwerk')+'</a></td></tr>\n' +
'<tr><td><a href="http://reddit.com/submit?url=$link&title=$title" class="share_reddit">'+(english?'r':'R')+'eddit</a></td>\n' +
'    <td><a href="mailto:?subject=$longtitle&amp;body=$link" class="share_email">'+(english?'e-m':'E-M')+'ail</a></td></tr>\n' +
'<tr><td colspan="2"><hr /></td></tr>\n' +
'<tr><td><a href="$rawlink" class="share_permalink">'+(english?'p':'P')+'ermalink</a></td>\n' +
'    <td><a href="$shortlink" class="share_shortlink">'+(english?'s':'S')+'hortlink</a></td></tr>\n' +
'</table>\n' +
'</div>';

  $(selector + ' a.permalink').each(function() {
    $(this).removeClass('permalink');
    $(this).html(english ? 'share' : 'Empfehlen');
    var shortlink = $(this).attr('class');
    $(this).removeClass(shortlink);
    $(this).addClass('share');

    var replaced_html = share_html.replace(/\$id/g, this.id)
      .replace(/\$title/g, encodeURIComponent($(this).attr('title')))
      .replace(/\$longtitle/g, encodeURIComponent($(this).attr('title')+' (Julian Fietkau)'))
      .replace(/\$link/g, encodeURIComponent($(this).attr('href')))
      .replace(/\$llink/g, encodeURIComponent($(this).attr('href').replace(/\/www./g, (english?'/en.':'/de.'))))
      .replace(/\$rawlink/g, $(this).attr('href'));
    if(shortlink != '') {
      replaced_html = replaced_html.replace(/\$shortlink/g, 'http://jhop.at/'+shortlink);
    } else {
      replaced_html = replaced_html.replace('<a href="$shortlink" class="share_shortlink">', '');
      replaced_html = replaced_html.replace('Shortlink</a>', '');
      replaced_html = replaced_html.replace('shortlink</a>', '');
    }
    $('body').append(replaced_html);

    $(".sharearea").click(function(){ return false; });

    $(this).attr('title', '');
    var sharearea = $('#share_' + this.id);
    $(sharearea).children('table').css('width', $(sharearea).children('table').width+'px');   // set to fixed width and height to prevent
    $(sharearea).children('table').css('height', $(sharearea).children('table').height+'px'); // webkit wrapping lines during animation
    $(this).data('width', sharearea.css('width'));
    $(this).data('height', sharearea.css('height'));
    $(this).data('reduced_width', $(this).outerWidth());
    var fade_duration = 200;
    $(this).click(function() {
      if($(this).hasClass('active')) {
          $('#share_'+this.id).animate({
            width: $(this).data('reduced_width'),
            height: 0
          }, fade_duration, function() {
            $(this).css('display', 'none');
            $('#'+this.id.replace(/^share_/, '')).removeClass('active');
          });
        return false;
      } else {
        $('div.sharearea').filter(function(i) {
          return $(this).css('display') == 'block';
        }).animate({
          width: $(this).data('reduced_width'),
          height: 0
        }, fade_duration, function() {
          $(this).css('display', 'none');
          $('#'+this.id.replace(/^share_/, '')).removeClass('active');
        });
        $(this).addClass('active');
        var sharearea = $('#share_' + this.id);
        sharearea.css('left', $(this).offset().left+'px');
        sharearea.css('top', $(this).offset().top+$(this).outerHeight()+'px');
        var reduced_width = $(this).data('reduced_width');
        sharearea.css('width', $(this).outerWidth());
        sharearea.css('height', '0');
        sharearea.css('display', 'block');
        sharearea.animate({
            width: $(this).data('width'),
            height: $(this).data('height')
          }, fade_duration, function() {});
        $(document).bind('click', function(event) {
          var active_area = $('div.sharearea').filter(function(i) {
            return $(this).css('display') == 'block';
          });
          if(active_area.length > 0 && $(event.target).parents().filter(active_area).length == 0) {
            $(active_area).animate({
              width: reduced_width,
              height: 0
            }, fade_duration, function() {
              $(this).css('display', 'none');
              $('#'+this.id.replace(/^share_/, '')).removeClass('active');
            });
            $(this).unbind(event);
          }
        });
        return false;
      }
    });
  });
}

$(document).ready(function() {
  share_callback('#content');
  content_callback.push('share_callback');
});


