/**
 * Hilfs-Funktion damit die elendigen JS-Fehler nicht mehr kommen...
 */
function OA_show() {}

jQuery(document).ready(function() {
  updateCommentsCounter();
  updateRatingCounter();
});

/**
 * Galerie
 */
var OdcGallery =
{
  counter : 0,

  limit : 3,

  actImage : null,

  init : function () {
    var that = this;

    var matches = window.location.hash.match(/^#image-(\d+)$/);
    if(null !== matches && that.actImage != matches[1]) {
      that.loadImage(matches[1]);

      return;
    }

   this.bindLinks();
  },

  bindLinks : function() {
    var that = this;
    
    jQuery('.odc-gallery').live('click', function() {
      var matches = this.href.match(/.*?\.(\d+)\.(?:.+\.)?(?:\d+\.)?htm/);
      
      if (null == matches) {
        matches = this.href.match(/(?:\?|&|&amp;)id=(\d+)/);
      }

      if((0 != that.limit && that.limit <= that.counter) || !matches[1]) {
        window.location.href = this.href;
      }
      else {
        that.counter++;
        that.loadImage(matches[1]);
        return false;
      }
    });
    
    jQuery('.odc-gallery-overview').live('click', function(event) {
      event.preventDefault();
      if(OdcVars.themenIds != ''){
		OdcGallery.loadOverviewByThemen(OdcVars.themenIds, OdcVars.rootId);
	  }
	  else{
		OdcGallery.loadOverview(OdcVars.rootId);
	  }
    });
  },

  loadImage : function(id) {
    var that = this;

    jQuery.ajax({
      url: '/php/gallery/broker.php',
      data: {
        'id': id,
      },
      dataType: 'json',
      success: function(retval) {

        if ('error' != retval) {
          that.actImage = id;
          window.location.hash = '#image-' + id;

          jQuery('#image-headline').text(retval.headline);
		
          if (retval.img_show.credit) {
            if (retval.img_show.credit_link){
              jQuery('#image-bu').html(retval.vorspann + ' <br>Foto: <a href="' + retval.img_show.credit_link + '" target="_blank">' + retval.img_show.credit + '</a>');
            }
            else {
              jQuery('#image-bu').html(retval.vorspann + ' <br>Foto: ' + retval.img_show.credit);
            }
			jQuery('#image-enlarge-button').show().attr('title', 'Foto: ' + retval.img_show.credit);
          }
          else{
            jQuery('#image-bu').html(retval.vorspann);
          }

          jQuery('#image-pos').html('Bild ' + retval.neighbours.pos + ' von ' + retval.neighbours.total);
          
          if (retval.neighbours.prev) {
            jQuery('#image-prev-button').show().attr('href', retval.neighbours.prev);
          }
          else {
            jQuery('#image-prev-button').hide();
          }
          
          if (retval.neighbours.next) {
            jQuery('#image-content-link, #image-next-button').attr('class', 'odc-gallery').attr('href', retval.neighbours.next);
          }
          else {
            jQuery('#image-content-link, #image-next-button').attr('class', 'odc-gallery-overview').attr('href', '#');
          }
          
          if ('undefined' != typeof retval.img_show.brightcove_id && '' != retval.img_show.brightcove_id) {
            jQuery('#image-enlarge-button').hide();
            jQuery('#image-content').html('<div id="bcplayer' + retval.img_show.brightcove_id + '"><p>Zur Darstellung des Videos benoetigen Sie aktiviertes JavaScript sowie den <a href="http://get.adobe.com/flashplayer/" target="_blank">Adobe Flash-Player</a>.</p></div>');
            var playerId = ('on' != retval.img_show.brightcove_id.flag_noembed) ? 704781425001 : 704781426001;
            var noAds = ('on' == retval.img_show.brightcove_id.flag_noads_mm) ? true : false;
            
            writeBrightcovePlayer(
              '#bcplayer' + retval.img_show.brightcove_id,
              retval.img_show.brightcove_id,
              playerId,
              '580',
              retval.img_show.video_height,
              OdcVars.bcAdTags,
              noAds
            );
          }
          else {
            jQuery('#image-enlarge-button').show().attr('href', OdcVars.prjProxy + retval.img_show.upload.systemurl);
            jQuery('#image-content a').html('<img src="' + OdcVars.prjProxy + retval.img_show.thumb_580.systemurl + '" width="' + retval.img_show.thumb_580.width + '" height="' + retval.img_show.thumb_580.height + '" title="' + retval.img_show.alt_text + '" alt="' + retval.img_show.alt_text + '" />');
          }
          
          jQuery('.linklist .from-paragraph').remove();
          if ('' != retval.link_weitere) {
            jQuery.each(retval.link_weitere, function(index, value) {
              jQuery('.linklist').append('<a href="' + value.url + '" class="from-paragraph">' + value.linktext + '</a>');
            });
          }
        }
      }
    });
  },
  
  loadOverview : function(rootId) {
    if (!rootId) rootId = '';

    jQuery.ajax({
      url: '/sixcms/list.php?template=d_odc_fotostrecke_aktuell_uebersicht&opt=' + rootId,
      success: function(html) {
        jQuery('.img').html(html);
        jQuery('.bu').hide();
      }
    });
  },
  
  loadOverviewByThemen : function(themenIds, rootId) {
    if (!themenIds) themenIds = '';
	if (!rootId) rootId = '';

    jQuery.ajax({
      url: '/sixcms/list.php?template=d_odc_fotostrecke_aktuell_uebersicht_themen&xxss&opt=' + rootId + '&themen_ids=' + themenIds,
      success: function(html) {
        jQuery('.img').html(html);
        jQuery('.bu').hide();
      }
    });
  }
};

jQuery(document).ready(function() {
  OdcGallery.init();
});

/**
 * Testfinder
 */
function initTestFinder(parentCategoryId, selectedCategoryId, ajaxResults) {
  var categoryId = getTestFinderCategories(parentCategoryId, selectedCategoryId);
  var materialGroupId = getTestFinderMaterialGroups(categoryId);
  var makerId = getTestFinderMakers(materialGroupId);
  getTestFinderAttributes(materialGroupId);

  if (true == ajaxResults) {
    updateTestFinderResult();
  }
  
  jQuery('#testfinder-filter1').change(function() {
    materialGroupId = getTestFinderMaterialGroups(jQuery('#testfinder-filter1 option:selected').val(), false);
    getTestFinderMakers(materialGroupId, false);
    getTestFinderAttributes(materialGroupId, false);
  });
  jQuery('#testfinder-filter2').change(function() {
    getTestFinderMakers(jQuery('#testfinder-filter2 option:selected').val(), false);
    getTestFinderAttributes(jQuery('#testfinder-filter2 option:selected').val(), false);
  });
  
  if (true == ajaxResults) {
    jQuery('#testfinder-filter1,#testfinder-filter2,#testfinder-filter3,#testfinder-filter4,#testfinder-filter5,#testfinder-filter6').change(function() {
      updateTestFinderResult();
    });
  }
}

function updateTestFinderResult() {
  jQuery('#testfinder-loading').fadeIn(400);
  jQuery('#testfinder-content').fadeTo(400, 0.3),
  jQuery.ajax({
    url: '/sixcms/detail.php',
    data: {
      'template'     : 'd_odc_testfinder_ajax',
      'backend_call' : 'false',
      'id' : jQuery('#testfinder-filter1 option:selected').val(),
      'category'     : jQuery('#testfinder-filter1 option:selected').val(),
      'materialgroup': jQuery('#testfinder-filter2 option:selected').val(),
      'maker'        : jQuery('#testfinder-filter3 option:selected').val(),
      'attributes'   : [
        jQuery('#testfinder-filter4 option:selected').val(),
        jQuery('#testfinder-filter5 option:selected').val(),
        jQuery('#testfinder-filter6 option:selected').val()
      ],
    },
    success: function(retval) {
      jQuery('#testfinder-content').html(retval);
      jQuery('#testfinder-loading').fadeOut(400);
      jQuery('#testfinder-content').fadeTo(400, 1);
      
      var queryString = $.query
        .set('category', jQuery('#testfinder-filter1 option:selected').val())
        .set('materialgroup', jQuery('#testfinder-filter2 option:selected').val())
        .set('maker', jQuery('#testfinder-filter3 option:selected').val())
        .set('attributes', [
          jQuery('#testfinder-filter4 option:selected').val(),
          jQuery('#testfinder-filter5 option:selected').val(),
          jQuery('#testfinder-filter6 option:selected').val()
        ])
        .toString();

      var link = $('#testfinder-link').attr('href');
      if (-1 != link.indexOf('?')) {
        link = link.substring(0, link.indexOf('?'));
      }

      $('#testfinder-link').attr('href', link + queryString);
    }
  });
}

function getTestFinderCategories(parentCategoryId, selectedCategoryId, checkQueryString) {
  jQuery.ajax({
    url: '/php/testfinder/broker.php',
    data: {
      'method': 'getCategories',
      'param': parentCategoryId,
    },
    dataType: 'json',
    async: false,
    success: function(retval) {
      if ('error' == retval) {
        jQuery('#testfinder-filter1').hide();
      }
      else {
        if (0 == retval.length) {
          jQuery('#testfinder-filter1').hide();
        }
        else {
          jQuery('#testfinder-filter1').empty().show().removeAttr('disabled');
          jQuery.each(retval, function(key, value) {
            jQuery('#testfinder-filter1').append('<option value="' + value.id + '">' + value.headline + '</option>');
          });
          
          if (false != checkQueryString && '' != $.query.get('category')) {
            jQuery('#testfinder-filter1 option[value=' + $.query.get('category') + ']').attr('selected', 'selected');
          }
          else if ('' != selectedCategoryId) {
            jQuery('#testfinder-filter1 option[value=' + selectedCategoryId + ']').attr('selected', 'selected');
          }
        }
      }
    }
  });

  return jQuery('#testfinder-filter1 option:selected').val();
}

function getTestFinderMaterialGroups(categoryId, checkQueryString) {
  jQuery.ajax({
    url: '/php/testfinder/broker.php',
    data: {
      'method': 'getMaterialGroups',
      'param': categoryId,
    },
    dataType: 'json',
    async: false,
    success: function(retval) {
      if ('error' == retval) {
        jQuery('#testfinder-filter2').hide();
      }
      else {
        if (0 == retval.length) {
          jQuery('#testfinder-filter2').hide();
        }
        else {
          jQuery('#testfinder-filter2').empty().show().removeAttr('disabled');
          jQuery.each(retval, function(key, value) {
            jQuery('#testfinder-filter2').append('<option value="' + value.id + '">' + value.headline + '</option>');
          });

          if (false != checkQueryString && '' != $.query.get('materialgroup')) {
            jQuery('#testfinder-filter2 option[value=' + $.query.get('materialgroup') + ']').attr('selected', 'selected');
          }
        }
      }
    }
  });
  
  return jQuery('#testfinder-filter2 option:selected').val();
}

function getTestFinderMakers(materialGroupId, checkQueryString) {
  jQuery.ajax({
    url: '/php/testfinder/broker.php',
    data: {
      'method': 'getMakers',
      'param': materialGroupId,
    },
    dataType: 'json',
    async: false,
    success: function(retval) {
      if ('error' == retval) {
        jQuery('#testfinder-filter3').hide();
      }
      else {
        if (0 == retval.length) {
          jQuery('#testfinder-filter3').hide();
        }
        else {
          jQuery('#testfinder-filter3').empty().append('<option value="">Alle Hersteller</option>').show().removeAttr('disabled');
          jQuery.each(retval, function(key, value) {
            jQuery('#testfinder-filter3').append('<option value="' + value.id + '">' + value.title + '</option>');
          });

          if (false != checkQueryString && '' != $.query.get('maker')) {
            jQuery('#testfinder-filter3 option[value=' + $.query.get('maker') + ']').attr('selected', 'selected');
          }
        }
      }
    }
  });

  return jQuery('#testfinder-filter2 option:selected').val();
}

function getTestFinderAttributes(materialGroupId, checkQueryString) {
  jQuery.ajax({
    url: '/php/testfinder/broker.php',
    data: {
      'method': 'getAttributes',
      'param': materialGroupId,
    },
    dataType: 'json',
    async: false,
    success: function(retval) {
      if ('error' == retval) {
        jQuery('#testfinder-filter4').hide();
        jQuery('#testfinder-filter5').hide();
        jQuery('#testfinder-filter6').hide();
      }
      else {
        if (0 == retval.attr1.length) {
          jQuery('#testfinder-filter4').hide();
        }
        else {
          jQuery('#testfinder-filter4').empty().append('<option value="">Alle</option>').show().removeAttr('disabled');
          jQuery.each(retval.attr1, function(key, value) {
            jQuery('#testfinder-filter4').append('<option value="' + value.id + '">' + value.title + '</option>');
          });

          if (false != checkQueryString && '' != $.query.get('attributes[0]') && 'number' == typeof $.query.get('attributes[0]')) {
            jQuery('#testfinder-filter4 option[value=' + $.query.get('attributes[0]') + ']').attr('selected', 'selected');
          }
        }

        if (0 == retval.attr2.length) {
          jQuery('#testfinder-filter5').hide();
        }
        else {
          jQuery('#testfinder-filter5').empty().append('<option value="">Alle</option>').show().removeAttr('disabled');
          jQuery.each(retval.attr2, function(key, value) {
            jQuery('#testfinder-filter5').append('<option value="' + value.id + '">' + value.title + '</option>');
          });

          if (false != checkQueryString && '' != $.query.get('attributes[1]') && 'number' == typeof $.query.get('attributes[1]')) {
            jQuery('#testfinder-filter5 option[value=' + $.query.get('attributes[1]') + ']').attr('selected', 'selected');
          }
        }

        if (0 == retval.attr3.length) {
          jQuery('#testfinder-filter6').hide();
        }
        else {
          jQuery('#testfinder-filter6').empty().append('<option value="">Alle</option>').show().removeAttr('disabled');
          jQuery.each(retval.attr3, function(key, value) {
            jQuery('#testfinder-filter6').append('<option value="' + value.id + '">' + value.title + '</option>');
          });

          if (false != checkQueryString && '' != $.query.get('attributes[2]') && 'number' == typeof $.query.get('attributes[2]')) {
            jQuery('#testfinder-filter6 option[value=' + $.query.get('attributes[2]') + ']').attr('selected', 'selected');
          }
        }
      }
    }
  });
}



/**
 * Tourfinder
 */
function initTourFinder(ajaxResults) {
  var countryId = getTourFinderCountries();
  //var regionId = getTourFinderRegions(countryId);

  if (true == ajaxResults) {
    updateTourFinderResult();
  }
  
  /*jQuery('#tourfinder-filter1').change(function() {
    regionId = getTourFinderRegions(jQuery('#tourfinder-filter1 option:selected').val(), false);
  });*/
  
  if (true == ajaxResults) {
    //jQuery('#tourfinder-filter1,#tourfinder-filter2').change(function() {
    jQuery('#tourfinder-filter1').change(function() {
      updateTourFinderResult();
    });
  }
}

function updateTourFinderResult() {
  jQuery('#tourfinder-loading').fadeIn(0);
  jQuery('#tourfinder-content').fadeTo(0, 0.3);
  jQuery.ajax({
    url: '/sixcms/detail.php',
    data: {
      'template'     : 'd_odc_tourfinder_ajax',
      'backend_call' : 'true',
      'country'      : jQuery('#tourfinder-filter1 option:selected').val(),
    },
    success: function(retval) {
      jQuery('#tourfinder-content').html(retval);
      jQuery('#tourfinder-loading').fadeOut(0);
      jQuery('#tourfinder-content').fadeTo(0, 1);
      
      var queryString = $.query
        .set('country', jQuery('#tourfinder-filter1 option:selected').val())
        //.set('region', jQuery('#tourfinder-filter2 option:selected').val())
        .toString();

      var link = $('#tourfinder-link').attr('href');
      if (-1 != link.indexOf('?')) {
        link = link.substring(0, link.indexOf('?'));
      }

      $('#tourfinder-link').attr('href', link + queryString);
    }
  });
}

function getTourFinderCountries(checkQueryString) {
  jQuery.ajax({
    url: '/php/tourfinder/broker.php',
    data: {
      'method': 'getCountries',
    },
    dataType: 'json',
    async: false,
    success: function(retval) {
      if ('error' == retval) {
        jQuery('#tourfinder-filter1').hide();
      }
      else {
        if (0 == retval.length) {
          jQuery('#tourfinder-filter1').hide();
        }
        else {
          jQuery('#tourfinder-filter1').empty().show().removeAttr('disabled');
          jQuery.each(retval, function(key, value) {
            jQuery('#tourfinder-filter1').append('<option value="' + value.id + '">' + value.title + '</option>');
          });

          if (false != checkQueryString && '' != $.query.get('country')) {
            jQuery('#tourfinder-filter1 option[value=' + $.query.get('country') + ']').attr('selected', 'selected');
          }
        }
      }
    }
  });

  return jQuery('#tourfinder-filter1 option:selected').val();
}

/*
function getTourFinderRegions(countryId, checkQueryString) {
  jQuery.ajax({
    url: '/php/tourfinder/broker.php',
    data: {
      'method': 'getRegions',
      'param': countryId,
    },
    dataType: 'json',
    async: false,
    success: function(retval) {
      if ('error' == retval) {
        jQuery('#tourfinder-filter2').hide();
      }
      else {
        if (0 == retval.length) {
          jQuery('#tourfinder-filter2').hide();
        }
        else {
          jQuery('#tourfinder-filter2').empty().show().removeAttr('disabled');
          jQuery.each(retval, function(key, value) {
            jQuery('#tourfinder-filter2').append('<option value="' + value.id + '">' + value.title + '</option>');
          });
          
          if (false != checkQueryString && '' != $.query.get('category')) {
            jQuery('#tourfinder-filter2 option[value=' + $.query.get('category') + ']').attr('selected', 'selected');
          }
        }
      }
    }
  });

  return jQuery('#tourfinder-filter1 option:selected').val();
}
*/

/**
 * Speichert eine Antwort auf die Frage der Woche
 */
function submitQuestionOfTheWeek() {
  
  var errorMsg = '';
  
  var answers = new Array();
  jQuery('#question-of-the-week input[name^=answer]:checked').each(function() {
    answers.push(jQuery(this).val());
  });
  var idQuestionOfTheWeek = jQuery('input[name="id"]').val();
  var idQuestionOfTheWeekOverview = jQuery('input[name="id_overview"]').val();
  var urlQuestionOfTheWeek = jQuery('input[name="fdw_url"]').val();
  
  if (0 == answers.length) {
    errorMsg = 'Bitte wählen Sie eine Antwort aus.';
    
  } else if ('' == idQuestionOfTheWeek || '' == idQuestionOfTheWeekOverview) {
    errorMsg = 'Entschuldigung. Es ist ein unbekannter Fehler aufgetreten.';
  }

  if(errorMsg != ''){
    jQuery('#errmsg').text(errorMsg).show();
    return false;
  }
  
  jQuery('#errmsg a').hover(function(){
		 console.log('huhu');
			jQuery(this).css('text-decoration', 'underline');
  });
  
  jQuery.ajax({
    url: '/php/question_of_the_week/save.php',
    data: {
      'id': idQuestionOfTheWeek,
      'overview_id': idQuestionOfTheWeekOverview,
      'answers': answers.join(',')
    },
    dataType: 'json',
    success: function(retval) {
      if ('error' == retval.status) {
        jQuery('#errmsg').text('Entschuldigung. Es ist ein unbekannter Fehler aufgetreten.').show();
      }
      else if ('already-voted' == retval.status) {
		
        jQuery('#errmsg').html('<div style="color:#FF0000;font-weight: 700;font-size:12px;">Sie haben schon abgestimmt.</div><a style="font-weight: 700;font-size:12px;color:#000000;" href="' + urlQuestionOfTheWeek + '">Ergebnisse dieser Umfrage anzeigen</a>').show();
		 
	  }
      else {
        jQuery('#question-of-the-week form').slideUp(500);
        jQuery('#question-of-the-week').append(retval.content);
        jQuery('#question-of-the-week .result').hide().delay(500).slideDown(500);
      }
    }
  });
}


/**
 * Kommentar-Funktionen
 */

/**
 * Fuegt einen Event-Handler hinzu, der die Kommentare nachlaed sobald sie sichtbar sind
 */
function loadComments(articleId, dseURL) {
  
  if (dseURL == null){
   dseURL = "";
  }

  var handler = function() {
    if (jQuery(window).height() + jQuery(window).scrollTop() > jQuery('#comments-container').offset().top - 50) {
      jQuery(window).unbind('scroll', handler);
      loadCommentsAjax(articleId, dseURL);
    }
  };
  jQuery(window).bind('scroll', handler);
}

/**
 * Laed die Kommentare fuer einen Artikel
 */
function loadCommentsAjax(articleId, dseURL) {
  jQuery.ajax({
    url: '/php/comments/box.php',
    data: {
      'article_id': articleId,
      'dse_url': dseURL
    },
    success: function(retval) {
      jQuery('#comments-container').html(retval);
    }
  });
}

/**
 * Speichert ueber AJAX einen Kommentar im Forum
 */
function saveComment(articleId, form) {
  var formData = new Object();
  formData['articleid'] = articleId;
  formData['token'] = form.token.value;
  formData['content'] = form.content.value;
  if ('undefined' != typeof form.userid) {
    formData['userid'] = form.userid.value;
  }
  if ('undefined' != typeof form.username) {
    formData['privacy'] = form.privacy.checked;
  }
  if ('undefined' != typeof form.username) {
    if ('Name' == form.username.value)
      formData['username'] = '';
    else
      formData['username'] = form.username.value;
  }
  formData['checksum'] = jQuery.md5(formData['token'] + ':' + formData['articleid'] + ':' + formData['content']);

  var formError = new Array();
  if ('undefined' != typeof form.username) {
    if ('' == formData['username']) {
      formError.push('Bitte geben Sie Ihren Namen ein.');
      form.username.style.borderColor = '#d51c03';
    }
  }
  if (10 > formData['content'].length) {
    formError.push('Bitte geben Sie einen Kommentar mit mindestens 10 Zeichen ein.');
    form.content.style.borderColor = '#d51c03';
  }
  if ('undefined' == typeof form.userid) {
    if ('1' != formData['privacy']) {
      formError.push('Bitte bestätigen Sie die Datenschutzbestimmungen.');
      document.getElementById('comments-form-privacy').style.color = '#d51c03';
    }
  }

  if (0 < formError.length) {
    printCommentError(formError.join('<br />'));
    return false;
  }

  jQuery.ajax({
    url: '/php/comments/save.php',
    type: 'POST',
    data: formData,
    success: function(retval) {
      if ('false' != retval) {
        loadCommentsAjax(articleId);
        return true;
      }
      else {
        printCommentError('Ihr Kommentar konnte leider nicht gespeichert werden. Bitte versuchen Sie es später noch einmal.');
        return false;
      }
    }
  });
}

/**
 * Gibt eine Fehlermeldung bei der Kommentar-Box aus
 */
function printCommentError(message) {
  jQuery('#comment-error').remove();
  jQuery('#comment-form').prepend('<div id="comment-error" style="margin-bottom: 7px; color: #d51c03">'+message+'</div>');
}

/**
 * Aktualisiert die Kommentar-Zaehler auf der Seite
 */
function updateCommentsCounter() {
  var articleIds = new Array();
  jQuery('.comment').each(function(index) {
    var matches = jQuery(this).attr('class').match(/comment-count(?:-small)?-(\d+)/);
    
    if ( null !== matches ) {
      if (-1 == jQuery.inArray(matches[1], articleIds)) {
        articleIds.push(matches[1]);
      }
    }

  });

  if (0 < articleIds.length) {
    jQuery.ajax({
      url: '/php/comments/count.php',
      type: 'GET',
      data: { 'article_ids': articleIds.join(',') },
      dataType: 'json',
      success: function(retval) {
        if (false !== retval) {
          jQuery.each(retval, function(index, value) {
            jQuery('.comment-count-small-'+index+' a').text(value);
            jQuery('.comment-count-'+index+' .kommentieren_right').text('(' + value + ')');
          });
        }
      }
    });
  }
}

/**
 * Markiert einen Artikel als "Lesenswert"
 */
function rate(id, type, elem) {
  jQuery.ajax({
    url: '/php/toplist/rate.php',
    type: 'GET',
    data: { 'id': id, 'type': type },
    dataType: 'json',
    success: function(retval) {
      if (false == retval) {
        jQuery(elem).tipTip({
          content: 'Es tut uns leid. Ihre Bewertung konnte nicht gespeichert werden.',
          activation:'none'
        });
        return false;
      }
      else if ('already-voted' == retval) {
        jQuery(elem).tipTip({
          content: '<a href="' + OdcVars.linkBestenliste + '">Sie können einen Artikel nur einmal bewerten.<br>zur Bestenliste</a>',
          activation:'none'
        });
        return true;
      }
      else {
        jQuery(elem).tipTip({
          content: 'Vielen Dank für Ihre Bewertung<br><a href="' + OdcVars.linkBestenliste + '">zur Bestenliste</a>',
          activation:'none'
        });
        jQuery('.lesenswert-' + id + ' .lesenswert_right').text('(' + retval + ')');
        return true;
      }
    }
  });
}

/**
 * Holt die Bestenliste
 */
var actSort = 'visits';
var actDaterange = 'week';
function loadToplist(sort, daterange) {
  jQuery('#toplist-content').html('<p>Lade...</p>');
  jQuery.ajax({
    url: '/php/toplist/list.php',
    type: 'GET',
    data: { 'sort': sort, 'daterange': daterange },
    success: function(retval) {
      jQuery('#toplist-content').html(retval);
      jQuery('#toplist-filter a').removeClass('bold');
      jQuery('#toplist-filter-sort-' + sort).addClass('bold');
      jQuery('#toplist-filter-daterange-' + daterange).addClass('bold');
      actSort = sort;
      actDaterange = daterange;
    }
  });
}

/**
 * Aktualisiert die Lesenswert-Zaehler auf der Seite
 */
function updateRatingCounter() {
  var articleIds = new Array();
  jQuery('.lesenswert').each(function(index) {
    var matches = jQuery(this).attr('class').match(/lesenswert-(\d+)/);
    if (-1 == jQuery.inArray(matches[1], articleIds)) {
      articleIds.push(matches[1]);
    }
  });

  if (0 < articleIds.length) {
    jQuery.ajax({
      url: '/php/toplist/count.php',
      type: 'GET',
      data: { 'article_ids': articleIds.join(',') },
      dataType: 'json',
      success: function(retval) {
        if (false !== retval) {
          jQuery.each(retval, function(index, value) {
            jQuery('.lesenswert-'+index+' .lesenswert_right').text('(' + value + ')');
          });
        }
      }
    });
  }
}
