$(document).ready(function () {
  $("a.blanktarget").attr('target', '_blank');
  $('div.linkblock').each(function() {
    if ($(this).find('a').size() == 1 && $(this).find('a.mehr').length) {
      if ($(this).find('a.mehr').attr('onclick')) {
        $(this).data('a', 'jsf');
      } else {
        var hr = $(this).find('a.mehr').attr('href');
        $(this).data('a', 'href');
        $(this).data('href', hr);
      }
      $(this).addClass('blocklink');
      $(this).click(function() {
        switch($(this).data('a')) {
          case 'jsf':
            if ($(this).data('subc')) return;
            $(this).data('subc', true);
            $(this).find('a.mehr').click();
            $(this).data('subc', false);
            break;
          default:
            window.location.href = $(this).data('href');
        }
      });
    }
  });
  var row = {elems: [], maxh: 0};
  var newrow = false;
  var cols = 3;
  var acol = 0;
  $('div.modul_preview h3').each(function() {
    row.elems.push($(this));
    row.maxh = Math.max(row.maxh, $(this).height());
    if (++acol == cols) {
      acol = 1;
      imcommon.adjustheight(row.elems, row.maxh);
      row = {elems: [], maxh: 0};
    }
  });
  if (row.elems.length > 1) imcommon.adjustheight(row.elems, row.maxh);  
  imJpager.check();
});
var imcommon = {  
  adjustheight: function(elems, h) {
    for(var j in elems) $(elems[j]).css('height', h);
  }
}
var imJpager = {
  active: null,
  limit: null,
  apage: null,
  totalpages: null,
  init: function(lm) {
    this.active = true;
    this.limit = lm;
    $('#content-search div.search_line.imj-page').css('display', 'none');
  },
  check: function() {
    if (this.active) this.build();
  },
  build: function() {
    var imj = this;
    var c = 0;
    var p = 1;
    $('#content-search div.search_line').addClass('imj-page');
    $('#content-search div.search_line').each(function() {      
      if (++c > imj.limit) {
        p++;
        c = 1;
      }            
      $(this).addClass('imj-page'+p);
    });        
    if (p == 1) return; // (not more than one page, exit)
    this.apage = 1;
    this.totalpages = p;
    var h = '<div class="pagenavigator">';
    h += '<p>';    
    h += '<span class="back">';    
    h += '<span class="text link">&laquo;&nbsp;Zur&uuml;ck </span>';   
    h += '</span>';    
    h += '<span class="next">';    
    h += '<span class="text link">Weiter&nbsp;&raquo; </span>';   
    h += '</span>';
    h += '<span class="pages">';
    for(var i=1; i<=this.totalpages; i++) {
      h += '<span class="imj-page'+i+'">'+i+' </span>';
    }
    h += '</span>';
    h += '</p>';
    h += '<div class="break"></div>';
    h += '</div>';
    $('#content-search').append(h);    
    for(var i=1; i<=this.totalpages; i++) {
      $('#content-search div.pagenavigator span.pages span.imj-page'+i).data('page', i);
    }
    $('#content-search div.pagenavigator span.back .text').click(function() {
      imj.pageBack();
    });
    $('#content-search div.pagenavigator span.next .text').click(function() {
      imj.pageForward();
    });    
    this.pageinit();
  },
  pageinit: function() {
    var imj = this;    
    $('#content-search div.search_line.imj-page').css('display', 'none');
    $('#content-search div.search_line.imj-page'+this.apage).css('display', 'block');
    
    $('#content-search div.pagenavigator span.back').css('display', this.apage > 1 ? 'inline' : 'none');
    $('#content-search div.pagenavigator span.next').css('display', this.apage < this.totalpages ? 'inline' : 'none');
    $('#content-search div.pagenavigator span.pages span'+i)
    for(var i=1; i<=this.totalpages; i++) {
      //console.log("pager page="+i, $('#content-search div.pagenavigator span.pages span'+i));
      if (i == this.apage) {
        $('#content-search div.pagenavigator span.pages span.imj-page'+i).removeClass('link');
        $('#content-search div.pagenavigator span.pages span.imj-page'+i).unbind('click');
      } else {        
        $('#content-search div.pagenavigator span.pages span.imj-page'+i).addClass('link');
        $('#content-search div.pagenavigator span.pages span.imj-page'+i).click(function() {
          imj.page($(this).data('page'));
        });        
      }
    }
  },
  page: function(p) {
    if (p > 0 && p <= this.totalpages) {
      this.apage = p;
      this.pageinit();
    }
  },
  pageForward: function() {
    this.apage++;
    if (this.apage > this.totalpages) this.apage = 1;
    this.pageinit();
  },
  pageBack: function() {
    this.apage--;
    if (this.apage < 1) this.apage = this.totalpages;
    this.pageinit();    
  }
}
