function dom_init() {

  /* Fullscreenr */
  var FullscreenrOptions = { width: 1024, height: 768, bgID: '.leinwand' };
  jQuery.fn.fullscreenr(FullscreenrOptions);

  /* Fancybox */
  $("a.fancy").fancybox({
    'speedIn' : 600,
    'speedOut' : 300,
    'titlePosition' : 'inside',
    'overlayColor' : '#4D2E03',
    'overlayOpacity' : 0.9,
    'transitionIn' : 'elastic',
    'transitionOut' : 'elastic',
    'cyclic' : true
  });
  
  $(".iframe").fancybox({
    'speedIn' : 600,
    'speedOut' : 300,
    'margin' : 0,
    'overlayColor' : '#4D2E03',
    'overlayOpacity' : 0.9,
    'transitionIn' : 'elastic',
    'transitionOut' : 'elastic',
    'padding' : 0,
    'width' : '90%',
    'height' : '90%'
  });

  /* Kordel, Hand und Seitenzug einblenden */
  $('div.funzt').show();

  /* Kordel Sprite */ 
  $('#kordel').sprite({fps: 4, no_of_frames: 8, play_frames: 21});  $('#kordel').hover(
    function(){
      $('#kordel').spState(2);
      }, 
    function(){
      $('#kordel').spState(1)
      .sprite({fps: 8, no_of_frames: 8, play_frames: 20});
  });
  
  /* Seitenzug Sprite Hover */   
  $('#seitenzug').hover(
    function(){ $('#seitenzug').spState(2); }, 
    function(){ $('#seitenzug').spState(1); }
  );
  
  /* Inhalt hochklappen und Bild entpixeln */  
  function hochklappen() {
    $('#seitenzug').spStop(true);
    $('img#leinwand32').fadeOut(500, function() {
      $('img#leinwand64').fadeOut(500, function() {
        $('img#leinwand256').fadeOut(500, function() {
           $('#kordel').addClass("oben");
           $('#kordel, #seitenzug').bind('click', RolloToggle);
        });
      });
    });
  }

 /* Inhalt runterklappen und Bild verpixeln */  
  function runterklappen() {
    $('#seitenzug').spStop(true);
    $('img#leinwand256').fadeIn(500, function() {
      $('img#leinwand64').fadeIn(500, function() {
        $('img#leinwand32').fadeIn(500, function() {
          $('#kordel').removeClass("oben");
          $('#kordel, #seitenzug').bind('click', RolloToggle);
        });
      });
    });
  }
  
  /* Seitenzug und Kordel animieren */ 
  function RolloToggle() {
    $('#kordel, #seitenzug').unbind('click');
    if ($('#kordel').is('.oben')) {
        $('#seitenzug').sprite({fps: 10, no_of_frames: 3, play_frames: 0, rewind: false}).spStart();
      } else {
        $('#seitenzug').sprite({fps: 10, no_of_frames: 3, play_frames: 0, rewind: true}).spStart();
      }
    $('div.rollo').slideToggle(1000, function() {
      if ($('#kordel').is('.oben')) {
        runterklappen();
      } else {
        hochklappen();
      }
    });
  }

  $('#kordel, #seitenzug').bind('click', RolloToggle);
  
  /* Navi Style, bzw. Animation (via CSS) */
  $('#ueber-uns').hover(
    function () {$('.subnaviindex').addClass('nav_ueber-uns-f');},
    function () {$('.subnaviindex').removeClass('nav_ueber-uns-f');}
  );
  $('#aktuell').hover(
    function () {$('.subnaviindex').addClass('nav_aktuell-f');},
    function () {$('.subnaviindex').removeClass('nav_aktuell-f');}
  );
  $('#angebote').hover(
    function () {$('.subnaviindex').addClass('nav_angebote-f');},
    function () {$('.subnaviindex').removeClass('nav_angebote-f');}
  );
  $('#shop').hover(
    function () {$('.subnaviindex').addClass('nav_shop-f');},
    function () {$('.subnaviindex').removeClass('nav_shop-f');}
  );
  $('#wohnen').hover(
    function () {$('.subnaviindex').addClass('nav_wohnen-f');},
    function () {$('.subnaviindex').removeClass('nav_wohnen-f');}
  );
  $('#kontakt').hover(
    function () {$('.subnaviindex').addClass('nav_kontakt-f');},
    function () {$('.subnaviindex').removeClass('nav_kontakt-f');}
  );
  
  /* Newstexte abkürzen */
  $('.newstext').truncate({
    max_length: 220,
    more: 'weiterlesen',
    less: 'minimieren'
  });
  
  
  /* externe Sites immer in neuem Fenster öffnen */
  $.expr[':'].external = function(obj){
    return !obj.href.match(/^mailto\:/)
            && (obj.hostname != location.hostname);
  };
  $('a:external').attr('target','_blank');
  
  
  /* Dozenten/Kurse mini- und maximieren */
  $('div.dozentmehr').hide();
  $('p.minmax a').append('mehr');
  $('p.minmax a, h2.titel').click(function() {
    var target = this.id;
    target = target.replace(/[^0-9]/g, ''); 
    $('p.minmax a#' + target).toggleClass('offen');  
    $('div.dozentmehr#mehr-' + target).slideToggle(100, function() {
      $('div.sortierbereich').isotope('reLayout');
      $('div.dozentmehr#mehr-' + target).parent().toggleClass('offen');
      if($('p.minmax a#' + target).html() == 'mehr') {
        $('p.minmax a#' + target).empty().append('weniger');
      } else {
        $('p.minmax a#' + target).empty().append('mehr');
      }  
    });
  });
  
  /* Sortieren und Filtern für Kurse/Shop */
  $('div.margbox.sortfilter').slideDown(1000);
  
  $('div.sortierbereich').isotope({
    getSortData : {
      kurstyp : function ( $elem ) {
        return $elem.find('.kurstyp').text();
      },
      kurstag : function ( $elem ) {
        return $elem.find('.kurstag').text();
      },
      kursdatum : function( $elem ) {
        return $elem.find('.kursdatum').text();
      }
    }
  });
  
  $('div.shopsortierbereich').isotope({
    getSortData : {
      einstelldatum : function( $elem ) {
        return parseInt( $elem.find('.einstelldatum').text(), 10 );
      },
      preis : function( $elem ) {
        return parseFloat( $elem.find('.sortierpreis').text() );
      },
      erscheinungsjahr : function( $elem ) {
        return parseFloat( $elem.find('.erscheinungsjahr').text() );
      },
      titel : function( $elem ) {
        return $elem.find('h2.titel').text();
      },
      name : function( $elem ) {
        return $elem.find('.sortiername').text();
      }
    }
  });
  
  /* Sortieren */
  var $WochenTage = $('<article class="kurs Wochentag1 index"><h2 class="titel">Montag</h2><div class="daten"><p class="kurstag">0</p></div></article><article class="kurs Wochentag2 index"><h2 class="titel">Dienstag</h2><div class="daten"><p class="kurstag">1</p></div></article><article class="kurs Wochentag3 index"><h2 class="titel">Mittwoch</h2><div class="daten"><p class="kurstag">2</p></div></article><article class="kurs Wochentag4 index"><h2 class="titel">Donnerstag</h2><div class="daten"><p class="kurstag">3</p></div></article><article class="kurs Wochentag5 index"><h2 class="titel">Freitag</h2><div class="daten"><p class="kurstag">4</p></div></article><article class="kurs Wochentag6 index"><h2 class="titel">Samstag</h2><div class="daten"><p class="kurstag">5</p></div></article><article class="kurs Wochentag7 index"><h2 class="titel">Sonntag</h2><div class="daten"><p class="kurstag">6</p></div></article>');
  
  $('#sort a').click(function(){
    // get href attribute, minus the '#'
    var sortName = $(this).attr('href').slice(1);
    $('#sort a.selected').removeClass('selected');
    $(this).addClass('selected');
    if (sortName == 'kurstag') {
      $('div.sortierbereich').isotope( 'insert', $WochenTage );
    } else {
      $('div.sortierbereich').isotope( 'remove', $WochenTage );
    }
    $('div.sortierbereich').isotope({ sortBy : sortName });
    $('div.shopsortierbereich').isotope({ sortBy : sortName });
  }); 
  
  /* Filterbuttons */ 
  $('#filters a').click(function(){
    var selector = $(this).attr('data-filter');    
    /* Wochenkursauswahl erstmal nach Tagen Sortieren */
    if (selector == '.Wochenkurs') {
      selector = '.Wochenkurs, .index';
      $('#wochentagfilter').trigger('click');
      $('div.sortierbereich').isotope({ filter: selector });
    } else {
      $('div.sortierbereich').isotope({ filter: selector });
    }    
    $('div.sortierbereich, div.shopsortierbereich').isotope({ filter: selector });
    $('#filters a.selected').removeClass('selected');
    $('select').removeClass('selected');
    $('option#alledoz').attr('selected', 'selected');
    $(this).addClass('selected');    
    
  });
  
  /* Filterpulldown */
  $('#filters select').change(function(){
    var selector = $('#filters select option:selected').val();
    $('div.sortierbereich').isotope({ filter: selector });
    $('select').addClass('selected');
    $('#filters a.selected').removeClass('selected');
  });
  
  /* Filterpulldown für Shop */
  $('#filters select#kuefi').change(function(){
    var selectorkuefi = $('#filters select#kuefi option:selected').val();
    $('div.shopsortierbereich').isotope({ filter: selectorkuefi });
    $('select#kuefi, li.alles a').addClass('selected');
  });

  /* Standardsortierung */
  $(window).load(function(){
    $('div.sortierbereich').isotope({ sortBy : 'kursdatum' });
    $('div.shopsortierbereich').isotope({ sortBy : 'einstelldatum' });
  });

}
