if((browser_msie && parseInt($.browser.version, 10) == 7) || $.browser.opera) {
    window.location = "http://www.mainz05.de/mainz05/browserwarning/";
} 

var browser_msie = "";
function isIE() { 
	return ((navigator.appName == 'Microsoft Internet Explorer') || ((navigator.appName == 'Netscape') && (new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})").exec(navigator.userAgent) != null))); 
}
browser_msie = isIE();


var pathName = location.href;
if(pathName.indexOf("#!") !== -1){
  var newPathArray = pathName.split('#!');
  var newPathName = newPathArray[newPathArray.length-1];
  
  pathName = location.pathname.split('/');
  document.location.href = "http://"+location.host+'/mainz05/'+newPathName;

  if(isNaN(newPathName)){
	  pathName = location.pathname.split('/');
	  document.location.href = "http://"+location.host+'/'+pathName[1]+'/'+newPathName;
  }else{
	  //hier fehlt noch das z.B. ein Profispieler bem Seitenladen geöffnet ist
  }
  

}

function inArray(needle, haystack) {
    var length = haystack.length;
    for(var i = 0; i < length; i++) {
        if(haystack[i] == needle) return true;
    }
    return false;
}

function goToByScroll(id){
   $('html,body').animate({scrollTop: $("#"+id).offset().top},'slow');
}


//steuert das Verhalten der Breadcrumbnavigation
var breadcrumb = {
  observe : function(){
    var config = {    
         over: breadcrumb.showSub, // function = onMouseOver callback (REQUIRED)    
         timeout: 500, // number = milliseconds delay before onMouseOut    
         out: breadcrumb.hideSub // function = onMouseOut callback (REQUIRED)    
    };
    $(".topLevel li").each(function(){
      list = $(this).find('ul');
      if(!list.length){
        $(this).addClass('noPoints');
        $(this).find('a.sub').removeClass('sub').addClass('end');
      }else{
        $(this).hoverIntent( config );
      }
    });
    try{
    	$('.filterung li').hoverIntent( config );
    } catch(err){
    	//console.log(err);
    }
  },
  showSub : function(){
    $(this).find('a.sub').addClass('on');
    if($(this).find('.filterwrapper').length){
    	list = $(this).find('.filterwrapper');
    }else{
        list = $(this).find('ul');
    }
    list.css({
      'display':'block',
      'visibility':'hidden'
    });
    breadcrumb.setElementWidth(list.find('li'));
    list.css({
      'display':'none',
      'visibility':'visible'
    });
    list.fadeIn("fast");
  },
  hideSub : function(){
    $(this).find('a.sub').removeClass('on');
    if($(this).find('.filterwrapper').length){
    	$(this).find('.filterwrapper').fadeOut("fast");
    }else{
    	$(this).find('ul').fadeOut("fast");
    }
    
  },
  setElementWidth : function(li){
    var topWidth = 0;
    li.each(function(){
      var spanWidth = $(this).find('span').width('auto').width();
      if(spanWidth > topWidth){
        topWidth = spanWidth;
      }
    });

    if(topWidth < li.parents('li').width() - 43){
      topWidth = li.parents('li').width() - 43;
    }
    li.find('span').width(topWidth);
  }
};

//steuert das Verhalten der Hauptnavigation
var nav = {
  observe : function(){
    this.setLevel2Behavior();
    this.setNavSlideDown();
  },
  //
  setLevel2Behavior : function(){
	$('.level2 li a').not('.level3 li a').bind('mouseout', function(){
		clearTimeout(nav.menuTimeout3);
	});
    $('.level2 li a').not('.level3 li a').bind('mouseover', function(){
      clearTimeout(nav.menuTimeout3);
      var obj = $(this);
      if(!Modernizr.touch){
    	  nav.menuTimeout3 = setTimeout(function(){nav.level3Slide(obj)},300);
      }
    });
  },
  //wenn Level3 mehr Elemente hat als Level2 wird Level2 aufgedrückt
  level3Slide : function(level3Item){
	  if(!level3Item.hasClass('selected')){
	    $('.level3.on').parent().parent().animate({
	      paddingBottom : 0
	    },200);
	    $('.level3.on').removeClass('on').hide('slide',{direction:'left'},300);
	    $('.level2 li a').not('.level3 li a').removeClass('selected');
	    var width = $('.nav .other_levels_content').css('float','left').width();
	    $('.nav .other_levels_content').css('float','none');
	    nav.level3width = width + 188;
	    l3list = level3Item.next('ul.level3');
	    l2list = level3Item.parent().parent();
	    l2listItemsCount = l2list.find('li').not('.level3 li').length;
	    l3listItemsCount = l3list.find('li').length;
	    if(l2listItemsCount < l3listItemsCount){
	      diff = l3listItemsCount - l2listItemsCount;
	      addPadding = diff * 24;
	      l2list.animate({
	        paddingBottom : addPadding
	      }, 200, function(){
	    	  level3Item.addClass('selected');
			   l3list.css('left',nav.level3width).addClass('on').show('slide',{direction:'left'},400);
	      });
	    }else{
		    level3Item.addClass('selected');
		    l3list.css('left',nav.level3width).addClass('on').show('slide',{direction:'left'},400);
	    }

	  }
  },
  //Level2 Navigation runterfahren
  level2Slide: function(level2,actLevel2,actLevel3){
    actLevel2.after(level2);
    actLevel3.removeClass('.on').hide();
    actLevel2.removeClass('on').slideUp(400, function(){
      $(this).css('paddingBottom',0);
    });
    level2.addClass('on').slideDown(400);
  },
  //Events die das Navigation-Runterfahren auslösen
  setNavSlideDown : function(){
	  if(Modernizr.touch){
		    $('.main_header').bind('click', nav.clearNavSlideOutTimeout);
		    $('.content').bind('click', nav.clearNavSlideOutTimeout);
		    $('.other_levels_wrapper').bind('click', nav.clearNavSlideOutTimeout);
		    
		    $(".level1 li a").bind('click', function (event) {
		      event.preventDefault();
		      if(!$(this).hasClass('touchOpen')){
		    	  $(".level1 li a.act").removeClass('act').removeClass('touchOpen');
//		    	  alert('auf:  '+$(this).attr('class'));
		    	  $(this).addClass('touchOpen');
			      var touchCat = $(this).attr("attr");
			      var touchLink = $(this).attr("href");
			      var touchText = $(this).text();
			      if(!$('.'+touchCat+' .touch').length){
			    	  $('.'+touchCat).prepend('<li class="touch"><a href="'+touchLink+'">'+touchText+'</a></li>');
			      }
			      nav.clearNavSlideOutTimeout();
			      clearTimeout(nav.menuTimeout2);
			      nav.Ele = $(this);
			      nav.menuTimeout1 = setTimeout(nav.slideOut,600); 
		      }else{
//		    	  alert('zu:  '+$(this).attr('class'));
				  $(this).removeClass("touchOpen");
			      clearTimeout(nav.menuTimeout1);
			      clearTimeout(nav.menuTimeout2);
			      nav.menuTimeout2 = setTimeout(nav.slideIn,300);
		      }
		     });
	  }else{
		    $('.main_header').bind('mouseover', nav.clearNavSlideOutTimeout);
		    $('.content').bind('mouseover', nav.clearNavSlideOutTimeout);
		    $('.other_levels_wrapper').bind('mouseover', nav.clearNavSlideOutTimeout);
		    
		    $(".level1 li a").bind('mouseover', function () {
		      $(".level1 li a.act").removeClass('act');
		      nav.clearNavSlideOutTimeout();
		      clearTimeout(nav.menuTimeout2);
		      nav.Ele = $(this);
		      nav.menuTimeout1 = setTimeout(nav.slideOut,600);  
		     });
	  }
  },
  clearNavSlideOutTimeout : function(){
    clearTimeout(nav.menuTimeout1);
  },
  //tauscht "Kategoriebilder" aus
  changeImages : function(catImageUrl, cat){
    $('.navname').attr('src',catImageUrl);
    $('.other_levels_content div.bgs').css('zIndex','1');
    $('.other_levels_content div.on').css('zIndex','3').removeClass('on').fadeOut(500);
    $('div.'+cat).addClass('on').fadeIn(500);
  },
  //Events die das Navigation-Hochfahren ausl?sen
  setNavSlideUp : function(){
    $('.nav').bind('mouseleave', function(){
      clearTimeout(nav.menuTimeout1);
      clearTimeout(nav.menuTimeout2);
      nav.menuTimeout2 = setTimeout(nav.slideIn,300);
    });
    $('.content').bind('mouseover', function(){
      clearTimeout(nav.menuTimeout1);
      clearTimeout(nav.menuTimeout2);
      nav.menuTimeout2 = setTimeout(nav.slideIn,300);
    });  
  },
  //Navigation runterfahren
  slideOut : function(){
    $('.breadcrumb').css('zIndex','9');
    nav.Ele.addClass('act');
    nav.setNavSlideUp();
    $('.level2').css('paddingBottom',0);
    $(".level2 li a.selected").removeClass('selected');
    var cat = nav.Ele.attr('attr');
    var level2 = $('.'+cat);
    var catImageUrl = 'http://images.mainz05.de/header/navnames/seitentext_navi_aufgeklappt_'+cat+'.png';
    $('img.navname').show();
    
    var class_array = nav.Ele.attr('class').split(" ");
    //Navigationszustand bei Hover über Home
    if(inArray('Home',class_array)){
      $('.level3.on').removeClass('on').hide('slide',{direction:'left'},200);
      if($('.level2.on').length){
        $('.level2.on').removeClass('on').slideUp(400, function(){
          $(this).css('paddingBottom',0);
        });
      }
      $('.other_levels_wrapper').animate({
        top: -253
      }, 700, function(){
        clearTimeout(nav.menuTimeout2);
      });
    }else {
      //wenn die Navigation bereits runtergefahren ist
      if($('.level2.on').length){
        actLevel2 = $('.level2.on');
        actLevel3 = $('.level3.on');
        var classes = actLevel2.attr('class');
        var class_array = classes.split(" ");
        
        //wenn direkt von einer Kategorie zur nächsten gesprungen wird
        if(!inArray(cat,class_array)){
          
          //Bildaustausch
          nav.changeImages(catImageUrl, cat);
          
          //Level2 aufklappen
          nav.level2Slide(level2,actLevel2,actLevel3);

        }else{
          actLevel3.removeClass('on').hide('slide',{direction:'left'},200);
          actLevel2.animate({
            paddingBottom : 0
          },100);
        }
      }
      //wenn die Navigation noch nicht runtergefahren ist
      else{
        $('.other_levels_content div.bgs').hide();
        $('.navname').attr('src',catImageUrl);
        $('div.'+cat).addClass('on').show();
        var level2 = $('.'+cat);
        level2.addClass('on').slideDown(400);
        $('.other_levels_wrapper').animate({
          top: -132
        }, 300, function(){
          
        });
      }
    }
  },
  //Navigation hochfahren
  slideIn : function(){
    $(".level1 li a.act").removeClass('act').removeClass('touchOpen');
    $(".level2 li a.selected").removeClass('selected');
    $('.level3.on').removeClass('on').hide();
    $('.level2.on').removeClass('on').slideUp(200, function(){
      $(this).hide();
    });
    $('.other_levels_wrapper').animate({
      top: -253
    }, 700, function(){
      $('.breadcrumb').css('zIndex','11');
      clearTimeout(nav.menuTimeout2);
    });
  }
};

var ajax = {
  getHTML : function(url,boxMid){
    if($('.box.ajaxPH').length){
      $('.box.ajaxPH .loadedContent').empty();
    }else{
      $('.content').append('<div class="ajaxPH box"></div>');
    }
    if(boxMid.find('.loadedContent').length){
      $('.box.ajaxPH').empty().html('<div class="loadedContent">'+boxMid.find('.loadedContent').html()+'</div>');
      iso.processResult(boxMid);
    }else{
      $('.box.ajaxPH').load(url, function(){
        iso.processResult(boxMid);
      });
    }

  },
  
 
  pageFilter : function(){
	  innerFilter.observe();
//	  console.log('pageFilter');
	  
	  $('.innerFilter .listwrapper ul a').bind("click",function(event){
		  
		  event.preventDefault(); //verhindert, dass Seiten-Reload stattfindet
		  
		  	  
		  var url = $(this).attr('href');

		  
		  
		  $.get(url, function(ergebnisse) { 
			  //alert(ergebnisse);
               $('.spielergebnisse').replaceWith(ergebnisse);
               innerFilter.observe();
               ajax.pageFilter();
          });
	  			    
	  });
	  
	  return false;
  },
  
  filter : function(){
	  if($('.content .filter').length){
		ajax.pageObserve();
		scroller.init();
		$('.filterung.breadcrumb .filter a.sub').bind('click', function(){
			return false;
		});
        //wenn auf eine Filterauswahl geklickt wird...
          $('.content .filter ul a').not('.content .searchfilter .filter ul a').bind('click', function(){
        	//Ladezustand herstellen
        	var box = $(this).parents('.box');
        	if(!box.find('.galContent').length){
            	box.find('.load').css({
            		'opacity' : 1.0,
            		'filter' : 'alpha(opacity=100)'
            	}).fadeIn("slow");
                var url = $(this).attr('href');
                if($('.ajaxPH').length){
                  $('.ajaxPH').empty();
                }else{
                  $('.content').append('<div class="ajaxPH"></div>');
                }
                ajax.loadNewsOverviewContent(url, box);
                return false;
        	}
          });
      }
  },
  
	pageObserve : function() {
		if($('.tx-ttnewsmainz05-pi3 .filter.paging').length) {
			var prev = '';
			var next = '';
			var first = '';
			var last = '';
			var filter = $('.tx-ttnewsmainz05-pi3 .filter.paging');
			var currentPage = filter.find('a.sub span').text().split('/');
			var langSeite = currentPage[0].split(' ');
			langSeite = langSeite[0];
			currentPage = parseInt(currentPage[0].match(/\d+/g));

			var lastPage = filter.find('.listwrapper ul li:last-child').text();
			lastPage = parseInt(lastPage.match(/\d+/g));

			if(currentPage == 1){
				if(lastPage > 1){
					next = 2;
					if(next < lastPage){
						last = 'show';
					}
				}
			}else if(currentPage > 1){
				prev = currentPage - 1 ;
				first = 'show';
				if(currentPage < lastPage){
					next = currentPage + 1;
					last = 'show';
				}
			}
			$('.innerBoxBottom').append('<div class="boWrap"></div>');
			if(langSeite == "Seite"){
				var vor = 'vor';
				var zuruck = 'zur&uuml;ck';
				var paging = 'Bl&auml;ttern';
			}else{
				var vor = 'previous';
				var zuruck = 'next';
				var paging = 'paging';
			}
			
			if(first == 'show'){
				$('.innerBoxBottom .boWrap').append('<a class="button first" href="#"></a>');
				$('.innerBoxBottom .button.first').bind("click", function(event){
					event.preventDefault();
					filter.find('.listwrapper ul li:first-child').find('a').click();
				});
			}
			
			if(!isNaN(prev) && prev != ''){
				$('.innerBoxBottom .boWrap').append('<a class="button prev" href="#"></a>');
			}
			if(lastPage != 1){
				$('.innerBoxBottom .boWrap').append('<span>'+paging+'</span>');
			}
			if(last == 'show'){
				$('.innerBoxBottom .boWrap').append('<a class="button last" href="#"></a>');
				$('.innerBoxBottom .button.last').bind("click", function(event){
					event.preventDefault();
					filter.find('.listwrapper ul li:last-child').find('a').click();
				});
			}
			if(!isNaN(next) && next != ''){
				$('.innerBoxBottom .boWrap').append('<a class="button next" href="#"></a>');
			}
			
			$('.innerBoxBottom .button.prev').bind("click", function(event){
				event.preventDefault();
				filter.find('.listwrapper ul li:nth-child('+prev+')').find('a').click();
			});
			$('.innerBoxBottom .button.next').bind("click", function(event){
				event.preventDefault();
				filter.find('.listwrapper ul li:nth-child('+next+')').find('a').click();
			});
			
		}
	},
  
  loadNewsOverviewContent : function(url, box){
	  
      //Ajax Request: Inhalt wird erst in ein verstecktes DIV geladen um die genaue Höhe zu ermitteln
      $('.ajaxPH').load(url, function(){
          var loadedBoxHeight = $('.ajaxPH').find('.loadedContent').height();
          $('.ajaxPH').find('.mid').height(loadedBoxHeight).find('.load').height(loadedBoxHeight).show();
          var contentHeight = $('.content').height();
          //wenn der neu geladene Content höher als der bisherige ist wird der Abastand zum footer erhöht
          if(loadedBoxHeight + 15 > contentHeight){
          	$('.content').animate({
                  'height' : loadedBoxHeight + 15
              },1000, function(){
                 box.find('.mid').animate({
                      'height' : loadedBoxHeight
                    },1000, function(){
                    });
                  box.find('.load').animate({
                      'height' : loadedBoxHeight
                    },1000, function(){
                    	var boxParent = box.parent();
                  	  	boxParent.html($('.ajaxPH').html()).find('.load').fadeOut("slow", function(){
                  		  breadcrumb.observe();
                          ajax.filter();
                          ajax.pageFilter();
                          tabelle.observeSorting();
                          $('.ajaxPH').empty();
                  	  });
                    });
              });
          }else{
              box.find('.mid').animate({
                  'height' : loadedBoxHeight
                },1000, function(){
                });
              box.find('.load').animate({
                  'height' : loadedBoxHeight
                },1000, function(){
              	  box.parent().html($('.ajaxPH').html()).find('.load').fadeOut("slow", function(){
                        breadcrumb.observe();
                        ajax.filter();
                        ajax.pageFilter();
                        tabelle.observeSorting();
                        $('.ajaxPH').empty();
	                      	$('.content').animate({
	                            'height' : loadedBoxHeight + 15
	                        },500, function(){
	                	  });
              	  });
                });
          }
      });
  }
};

var iso = {
  observe : function(){
    //wenn es Boxen gibt wird isotope initialisiert
    if($('.box').length){
      iso.init();
      //wird in der Box ein Button gedrückt wird diese...
      $('.box .mid .button').click(function(ev){

          if($(this).hasClass('showticketLayer')) return;

    	var boxMid = $(this).parent().parent();
    	//bei U23 Spielern...

    	if($(this).parent().find('.card.u23').length){
    		iso.openSlideCard(boxMid);
    	}else{
            //entweder dynamisch per Ajax mit Inhalt gefüllt, oder eine neue Seite geladen
            if($(this).attr('url') == undefined || $(this).attr('url') == ""){
              var link = $(this);
              if($(this).attr('target') == "_blank"){
            	  window.open(link.attr('href'));
              }else{
                  var base = $('base');
                  if (base.length > 0 ) {
                      var baseHref = $('base').attr('href');

                      if(link.attr('href').indexOf(baseHref) == -1){
                          window.location.href = baseHref + link.attr('href');
                      } else {
                          window.location.href = link.attr('href');
                      }

                  } else {
                      window.location.href = link.attr('href');
                  }

            	  //window.location.href = link.attr('href');
            	  //window.location.assign(link.attr('href'));
              }
            }else{
            	//solange animiert wird, kann man keine Karte drücken
              if(boxMid.find('.card.pros').length){
            	filter.unbindPlayer();  
              };
              var box = boxMid.parent();
              iso.setBoxWidthAndHeightBeforeLoading(boxMid);
              $('.filled').removeClass('filled').addClass('filledold');
              box.css('zIndex',10).addClass('filled');  
              iso.showLoadingImg(boxMid);
              ajax.getHTML($(this).attr('url'),boxMid);
              return false;
            }
    	}
        return false;
      });
      //box schliessen
      $('.box .closeBox').live("click", function(){
    	if(!$(this).find('a').length){
            var boxMid = $(this).parents('.mid');
            iso.closeBox(boxMid);
    	}
      });
      $('.box .slideClose').bind("click", function(){
          var box = $(this).parent().parent();
          iso.closeSlideCard(box);
       });
    }else{
      $('.content').css('visibility','visible');
    }
  },
  
  //Karte mit Slideeffekt öffnen
  openSlideCard : function(boxMid){
	  filter.unbindPlayer();
	  var box = boxMid.parent();
      $('.filled').removeClass('filled').addClass('filledold');
      box.css('zIndex',10).addClass('filled');

      if($('.content .box').length < 2 || ($('.content .box').length - $('.content .box.isotope-hidden').length) < 2){
    	iso.processSlide(boxMid);
      }else{
        //alle Boxen bis auf die zu öffnende ausblenden
        $container.isotope({ filter : '.filled', resizesContainer:false}, function(){
        	iso.processSlide(boxMid);
      });
    }

	  return false;
  },
  
  processSlide : function(boxMid){
	    $container = $('.content');
	    //alle Boxen bis auf die zu öffnende ausblenden
	        //noch oben scrollen
	        $('html,body').animate({scrollTop: 0}, 700);
	        //wenn es eine bereits offene Box gibt wird diese im ausgeblendetem Zustand wieder geschlossen
	          if($('.filledold').length){
	            iso.closeSlideCard($('.filledold').removeClass('filledold'), true);
	          }
			  boxMid.parent().animate({
				  width: '960px'
			  },500);
			  boxMid.next('.slideContent').show('slide',{direction:'left'},500, function(){
	            //die Originalposition jeder Box wird um 1 erhöht
	            $('.box').each(function(){
	              newNumber = parseInt($(this).data('defaultNumber'))+1;
	              $(this).find('.number').text(newNumber);
	            });
	            //die geöffnete Box bekommte die Sortierposition 1
	            $(this).parent().find('.number').text(1);
	            //isotope sort data update
	            $container.isotope('updateSortData', $container.find('.box'));
				$container.isotope({ sortBy : 'number', resizesContainer:true});
	              //einblenden aller Boxen bzw der ausgewählten Profispieler
	              if($('.profifilter .filter.position').length){
	            	  filter.setProFilter(boxMid);
	              }else{
	                  //URL manipulieren
	            	  filter.setProFilter(boxMid, true);
	            	  $container.isotope({ filter : '*' });
	              }
			  });
  },
  
  closeSlideCard : function(box,animate){
    //box beim schliessen wieder in den Hintergrund setzen
    box.css('zIndex',1); 
    $('.box').each(function(){
      newNumber = parseInt($(this).data('defaultNumber'));
      $(this).find('.number').text(newNumber);
    });
	box.css('width','308px');
    $('.content').isotope('updateSortData', $('.content').find('.box'));
    if(!animate){
        box.find('.slideContent').hide('slide', {direction:'left'},500, function(){
            $container.isotope({ sortBy : 'number',resizesContainer:true });
        }); 
    }else{
    	box.find('.slideContent').hide();
    	$container.isotope({ sortBy : 'number',resizesContainer:true });
    }
    box.removeClass('filled');
    $('.filter.spieler .sub span').text($('.allPlayer .posAll span').text());
  },
  
  //offene Box schliessen
  closeBox : function(boxMid,animate){
	var card = false; 
	//wenn es sich um eine "normale" Box bzw um eine "Karte" handelt
	if(boxMid.find('.boxBg').length){
		var boxImg = boxMid.find('.boxBg');
	}else if(boxMid.find('.card').length){
		var boxImg = boxMid.find('.card');
		card = true;
	}
    var loadDiv = boxMid.find('.load');
    var imgHeight = boxImg.height();
    var imgWidth = boxImg.width();
    //box beim schliessen wieder in den Hintergrund setzen
    boxMid.parents('.box').css('zIndex',1);
    //ladezustand einblenden
    boxMid.find('.load').fadeIn("slow", function(){
      //Boxeninhalt entfernen
      boxMid.find('.loadedContent').hide();
	  $('.box').each(function(){
	    newNumber = parseInt($(this).data('defaultNumber'));
	    $(this).find('.number').text(newNumber);
	  });
	  $('.content').isotope('updateSortData', $('.content').find('.box'));
	  boxMid.parent().removeClass('filled');
	  if(card){
	  	$('.filter.spieler .sub span').text($('.allPlayer .posAll span').text());
	  }
	  //wenn das Boxschliessen animiert ablaufen soll...
      if(!animate){
        loadDiv.animate({
          width : imgWidth,
          height : imgHeight
        }, 500);
        boxMid.animate({
          width : imgWidth,
          height : imgHeight
        },500, function(){
          loadDiv.fadeOut("slow");
          $container.isotope({ sortBy : 'number',resizesContainer:true });
        });
      }else{
        loadDiv.css({
          width : imgWidth,
          height : imgHeight
        });
        boxMid.css({
          width : imgWidth,
          height : imgHeight
        });  
        loadDiv.hide();
//        $container.isotope({ sortBy : 'number',resizesContainer:true });
      }
    });
  },
  processResult : function(boxMid){
    videoplayer.observe();
    //Höhe des geladenen Inhalts ermitteln
    var loadedContentHeight = $('.box.ajaxPH').height();
    $('.box.ajaxPH').appendTo('body');
    $container = $('.content');

    //wenn es nur eine Box gibt...
    if($('.content .box').length < 2 || ($('.content .box').length - $('.content .box.isotope-hidden').length) < 2){
    	iso.openBox(boxMid,loadedContentHeight);
    }else{
        //alle Boxen bis auf die zu öffnende ausblenden
        $container.isotope({ filter : '.filled', resizesContainer:false}, function(){
        	iso.openBox(boxMid,loadedContentHeight);
        });
    }

  },
  
  //Box öffnen
  openBox : function(boxMid,loadedContentHeight){
      //noch oben scrollen
      $('html,body').animate({scrollTop: 0}, 500);
      //wenn es eine bereits offene Box gibt wird diese im ausgeblendetem Zustand wieder geschlossen
      if($('.filledold').length){
        iso.closeBox($('.filledold').removeClass('filledold').find('.mid'), true);
      }
      
      if(boxMid.height() < loadedContentHeight){
        var newContentHeight = loadedContentHeight + 15;
      }else{
        var newContentHeight = boxMid.height() + 15;
      }
       // Content Höhe anpassen
      $container.css({'overflow':'hidden'}).animate({
        height: newContentHeight
      },500, function(){
        var loadDiv = boxMid.find('.load');
        loadDiv.animate({
          opacity: 1
        }, 500, function(){
          //Box aufdrücken Animation
          loadDiv.animate({
            width: 960,
            height: loadedContentHeight
          },500);
          var newUrl = boxMid.find('.boxcall').attr('href');
          boxMid.animate({
            width: 960,
            height: loadedContentHeight
          }, 500, function(){
            //die Originalposition jeder Box wird um 1 erhöht
            $('.content .box').each(function(){
              newNumber = parseInt($(this).data('defaultNumber'))+1;
              $(this).find('.number').text(newNumber);
            });
            //die geöffnete Box bekommte die Sortierposition 1
            $(this).parent().find('.number').text(1);
            //isotope sort data update
            $container.isotope('updateSortData', $container.find('.box'));
            //sortiert die Elemente
            $container.isotope({ sortBy : 'number',resizesContainer:true }, function(){
              //wenn der Inhalt der Box schonmal geladen wurde
              if(loadDiv.hasClass('ac')){
            	if(loadDiv.next().hasClass('loadedContent')){
            		loadDiv.next().show();
            	}else{
            		loadDiv.next().find('div.loadedContent').show();
            	}
                loadDiv.fadeOut("slow");
              }else{
                loadDiv.after('<div class="loadedContent">'+$('.box.ajaxPH .loadedContent').html()+'</div>').fadeOut("slow").addClass('ac');
                //bindings für die Ankernavigation und Klapplistesetzen
                ankernavi.observe();
                klappliste.observe();
                teaser.observe();
                downloads.observe();
                innerFilter.observe();
                auswaerts.observe();
                ajax.pageFilter();
                formular.observe();
                //$(".fancybox").fancybox();
            	$("a.fancybox").fancybox({
            		"margin":10,"padding":0,"opacity":0,"modal":0,"cyclic":1,"scrolling":"auto","hideOnOverlayClick":1,"hideOnContentClick":0,"overlayShow":1,"overlayOpacity":0.8,"overlayColor":"#000","transitionIn":"elastic","transitionOut":"elastic","titlePosition":"over","autoScale":1,"titleShow":1,"speedIn":300,"speedOut":300,"changeFade":"fast","easingIn":"swing","easingOut":"swing","showCloseButton":1,"showNavArrows":1,"enableEscapeButton":1,
            		'titleFormat': function(title, currentArray, currentIndex, currentOpts) {
            		return '<span id="fancybox-title-over">'+ (title.length ? '' + title : '') + 'Bild ' + (currentIndex + 1) + ' von ' + currentArray.length + '</span>';
            		},
            		'onComplete': function() {
            		}
            	});
              }
              
              //einblenden aller Boxen bzw der ausgewählten Profispieler
              if($('.profifilter .filter.position').length){
            	  filter.setProFilter(boxMid);
            	  var playerlink = boxMid.find('a.button').not('.innerFilterButton').attr('href');
            	  playerlink = playerlink.replace('http://'+location.host+'/mainz05/','');
            	  window.location.hash = '!'+playerlink;
              }else{
                  //URL manipulieren
                  var urlAdd = loadDiv.parent().find('.boxcall').attr('href');
                  urlAdd = urlAdd.replace('http://'+location.host+'/mainz05/','');
                  //Downloadlinks setzen
                  iso.setDownloadURL(urlAdd);
                  window.location.hash = '!'+urlAdd;
            	  $container.isotope({ filter : '*' });
            	  var pkBaseURL = (('https:' == document.location.protocol) ? 'https://www.mainz05.de/piwik/' : 'http://www.mainz05.de/piwik/');
            	  
            	  jQuery.getScript(pkBaseURL + 'piwik.js', function(){    
            	    var piwikTracker = Piwik.getTracker();
            	    piwikTracker.setSiteId(1);  
            	    piwikTracker.setTrackerUrl( "http://www.mainz05.de/piwik/piwik.php" );
            	    piwikTracker.setCustomUrl("http://www.mainz05.de/mainz05/"+urlAdd);
            	    piwikTracker.trackPageView();
            	    piwikTracker.enableLinkTracking();
            	  });
              }
//              if(iso.counter == undefined){
//            	  iso.counter = 0;
//            	  iso.pointer = 0;
//            	  iso.boxMidElement = new Array();
//              }
//              
//              iso.boxMidElement[iso.counter] = boxMid;
//              iso.counter++;
              $('.box.ajaxPH').remove();
            });
          });
        });
      });
	  
  },
  
  //setzt die Downloadlinks richtig wenn Inhalt per Ajax geladen wurde
  setDownloadURL : function(urlAdd){
	  var href = location.href;
	  if($('.download').length){
		  var downloadLink;
		  $('.download li a').not('.set').each(function(){
			 downloadLink = $(this).attr('href');
			 if(href.indexOf("#!") != -1){
				 split = href.split('#!');
				 href = split[0];
			 }
			 hrefArray = href.split('/');
			 href = hrefArray[hrefArray.length-1];
			 urlAddArray = urlAdd.split('/');
			 urlAdd = urlAddArray[urlAddArray.length-2]+'/'+urlAddArray[urlAddArray.length-1];
			 if(hrefArray[hrefArray.length-2] == urlAddArray[urlAddArray.length-2]){
				 href = hrefArray[hrefArray.length-2]+'/'+hrefArray[hrefArray.length-1];
			 }
			 newDownloadLink = downloadLink.replace(href,urlAdd);
			 $(this).attr('href',newDownloadLink).addClass('set');
		  });
	  }
  },
  
  checkDownloadURL : function(){
	  $('.download li a').each(function(){
		 $(this).addClass('set'); 
	  });
  },
  
  //Höhe und Breite der Box fest setzen
  setBoxWidthAndHeightBeforeLoading : function(ele){
    ele.height(ele.height());
    ele.find('.load').height(ele.height()).width(ele.width());
  },
  //setzt die neue Höhe der Box und positioniert die Boxen neu
  setNewBoxHeight : function(ele){
    var newHeight = ele.parents('.loadedContent').height();
    ele.parents('.mid').height(newHeight).find('.load').height(newHeight);
    $('.content').isotope({ sortBy : 'number',resizesContainer:true });
  },
  //ladezustand einblenden
  showLoadingImg : function(ele){
    ele.find('.load').fadeIn("slow");
  },
  init : function(){
    var add = 0;
    //wenn eine Box beim Laden der Seite bereits geöffnet ist
    if($('.box .loadedContent').not('.topbox .loadedContent').length){
      iso.openBoxOnInit($('.content .box .loadedContent'));
      add = 1;
      //Suche bearbeiten
      if($('.searchfilter').length){
    	  $('.searchbox-sword').bind('focus', function(){
    		  $('#tx_indexedsearch_pointer').attr('value',0);
    	  });
    	  if($('#tx_indexedsearch_pointer').attr('value') == ""){
    		  var pagenumber = 1;
    	  }else{
    		  var pagenumber = parseInt($('#tx_indexedsearch_pointer').attr('value')) + 1;
    	  }
    	  var pages = $('.searchfilter .listwrapper ul li').length;
    	  var filtertext = $('.searchfilter a.sub').text();
    	  $('.searchfilter a.sub').html('<span>'+filtertext.toString().replace('??pagenumber??',pagenumber+' / '+pages)+'</span>');
    	  filtertext = filtertext.replace('??pagenumber??',pages);
    	  $('.searchfilter .listwrapper ul li a').wrapInner('<span />');
    	  $('.searchfilter').appendTo('.innerBoxTop').find('ul').show();
      }
    }
    //Reihenfolge der Boxen festlegen
    var counter = 1;
    $('.content .box').each(function(){
        $(this).data('defaultNumber',counter);
        counter++;
      });
    counter = 1;
    $('.content .box').not('.filled').each(function(){
      $(this).find('.number').text(parseInt(counter+add));
      counter++;
    });
    //erste Isotope Initialisierung
    $container = $('.content').css({position:'relative',left:0});
    var isiPad = navigator.userAgent.match(/iPad/i) != null;
    if(isiPad){
        $container.isotope({
            masonry: {
                columnWidth: $container.width() / 33.2
              },
              animationOptions: {
                 duration: 500,
                 easing: 'linear',
                 queue: false
               },
            animationEngine : 'jquery',
            itemSelector : '.box',
            layoutMode : 'masonry',
            getSortData : {
                number : function ( $elem ) {
                    return parseInt( $elem.find('.number').text(), 10 );
                }
             },
             sortBy : 'number'
          });
    }else{
    		if ($('#noTransformer5647').length) {
    			var transVideo = false;
    		} else {
    			var transVideo = true;
    		}
    
        $container.isotope({
        	transformsEnabled: transVideo,
            masonry: {
                columnWidth: $container.width() / 33.2
              },
              animationOptions: {
                 duration: 500,
                 easing: 'linear',
                 queue: false
               },
//            animationEngine : 'jquery',
            itemSelector : '.box',
            layoutMode : 'masonry',
            getSortData : {
                number : function ( $elem ) {
                    return parseInt( $elem.find('.number').text(), 10 );
                }
             },
             sortBy : 'number'
          });
    }

    setTimeout("iso.showAll()",100);
    
  },
  showAll : function(){
	if(browser_msie && $.browser.version<9){
		$('.content').css('position','relative');
	}else{
		$('.box').not('.topbox').hide();
	}
    
    $('.content').css('visibility','visible');
    $('.box').not('.topbox').fadeIn("fast");
    $('.footer').fadeIn("fast");
	if(browser_msie && $.browser.version<9){
	    //IE8 fix to set shadow of first box correctly
	    $.scrollTo('1px',1);
	}
  },
  openBoxOnInit : function(ele){
   var box = ele.parents('.box').addClass('filled');
    //offene Box an erste Stelle setzen
    box.find('.number').text(1);
    //höhe des Contents ermitteln
    $('.content').append('<div class="ajaxPH box"><div class="loadedContent">'+box.find('.loadedContent').html()+'</div></div>');
    var conHeight = $('.ajaxPH').height();
    $('.ajaxPH').remove();
    box.find('.load').css({'height':conHeight, 'width':'960px', 'opacity':1}).addClass('ac');
    box.find('.mid').css({'height':conHeight, 'width':'960px'});
    //Profifilter vorselektieren
    if($('.filterung.profifilter').length){
    	$('.filter.spieler .sub span').text(box.find('.pronumber').text()+' - '+box.find('.proname').text());
    }
    
  }
};

//sorgt daf�r, dass Ankernavi mitscrollt
var ankernavi = {
  goToAnchor : function(ele){
    idToGo = ele.attr('href').split('#');
    idIndex = idToGo.length - 1;
    goToByScroll(idToGo[idIndex]);
  },
  
  observe : function(){
    if($(".content_anchor_navi").length){
      if($(".content_anchor_navi").not('.binded').find('h2.anker').next('ul').find('li').length){
          $(".content_anchor_navi").not('.binded').addClass('binded').jScroll({top : 0});
          $(".content_anchor_navi a").bind("click", function(){
            //goToByScroll($(this).attr('name'));
            ankernavi.goToAnchor($(this));
            return false;
          });
      }else{
    	  $(".content_anchor_navi").not('.binded').empty();
      }
      $(".totop a").bind("click", function(){
        goToByScroll('top');
        return false;
      });
    }
  }
    
};

//sorgt dafür, dass Ankernavi mitscrollt
var klappliste = {
  observe : function(){
    if($('.klappliste').length){
    	$('.klappliste').each(function(){
    		var plusminus = $(this).find('.plusminus');
    		var bez = $(this).find('.bez');
    		
    		if(!plusminus.hasClass('binded')){
	    		plusminus.bind("click", function(){
	    	    	  var conHeight = $(this).parent().next('.klappcontent').innerHeight();
	    	    	  //wenn die Liste geschlossen werden soll
	    	    	  if($(this).hasClass('opened')){
	    	    		  var newHeight = $(this).parents('.mid').height() - conHeight;
	    	    	  }else{
	    	    		  var newHeight = $(this).parents('.mid').height() + conHeight;
	    	    	  }
	    			  $(this).parents('.mid').animate({
	    				  'height' : newHeight
	    			  },500,function(){
	    				  $(this).find('.load').height(newHeight);
	    			  });
	    	        $(this).parent().parent().find('.klappcontent').slideToggle(500, function(){
	    	          iso.setNewBoxHeight($(this));
	    	        });
	    	        $(this).toggleClass('opened');
	    	    });
	    		
	    		
	    		bez.bind("click", function(){

	    			  var plusminus = $(this).parent().find('plusminus');
	    			
	    			  var conHeight = $(this).parent().next('.klappcontent').innerHeight();
	    	    	  //wenn die Liste geschlossen werden soll
	    	    	  if(plusminus.hasClass('opened')){
	    	    		  var newHeight = $(this).parents('.mid').height() - conHeight;
	    	    	  }else{
	    	    		  var newHeight = $(this).parents('.mid').height() + conHeight;
	    	    	  }
	    			  $(this).parents('.mid').animate({
	    				  'height' : newHeight
	    			  },500,function(){
	    				  $(this).find('.load').height(newHeight);
	    			  });
	    	        $(this).parent().parent().find('.klappcontent').slideToggle(500, function(){
	    	          iso.setNewBoxHeight($(this));
	    	         
	    	        });
	    	        
	    	       $(this).parent().find('.plusminus').toggleClass('opened');
	    	        
	    	    });
	    		
    		plusminus.addClass('binded');
    		}
    	});
    }
  }
  
  
};

//sorgt dafür, dass Ankernavi mitscrollt
var news = {
  observe : function(){
    this.observeStartNews(); 
    if($('.images').length){
    	try{
    		this.observeHeaderNews();
    		
    		config = {
	            sensitivity: 1, // number = sensitivity threshold (must be 1 or higher)
	            interval: 0, // number = milliseconds for onMouseOver polling interval
	            timeout: 0, // number = milliseconds delay before onMouseOut
	            over: function() {
	            	$(this).find('a').toggleClass('hovered'); 
    	        }, // function = onMouseOver callback (REQUIRED)
    	        out: function() { 
    	        	$(this).find('a').toggleClass('hovered');
    	        } // function = onMouseOut callback (REQUIRED)
    		}

    	      
    		$('.headernews .navi li').hoverIntent(config);
    		
    		
    	} catch(err){
//    		console.log("kein cycle");
    	}
      
    }
  },
  
  observeStartNews : function(){
    $('.content .news.start .scroll.bottom').bind("click", function(){
      $('.content .news.start .scrollarea').scrollTo('+=110px',400);
    });
    
    $('.content .news.start .scroll.top').bind("click", function(){
      $('.content .news.start .scrollarea').scrollTo('-=110px',400);
    });
  },
  
  observeHeaderNews : function(){
    $('.images').cycle({ 
        fx:     'fade', 
        speed:  'slow', 
        timeout: 5000, 
        pause:   0,  //bei 1 pausiert Animation bei Hover
        pager: '#headernav',
        pagerAnchorBuilder: function(idx, slide) {
              // return sel string for existing anchor
              return '#headernav li:eq(' + (idx) + ') a';
          }
    });
    
    $('.infos').cycle({ 
        fx:     'fade', 
        speed:  'slow', 
        timeout: 5000, 
        pause:   0, //bei 1 pausiert Animation bei Hover
        pager: '#headernav',
        manualTrump: false,
        pagerAnchorBuilder: function(idx, slide) {
              // return sel string for existing anchor
              return '#headernav li:eq(' + (idx) + ') a';
          }
    });
    
  }
    
  
};

var fanshopSlider = {
  observe : function(){
    if($('.fanshopslider').length){
    	 $('.fanshopslider').cycle({ 
    	        fx:     'scrollHorz', 
    	        speed:  'slow', 
    	        timeout: 8000, 
    	        pause:   1,  //bei 1 pausiert Animation bei Hover
    	        pager: '#slidernav',
    	        next:   '.boxcontent.fanshop .balken .next',
    	        prev:   '.boxcontent.fanshop .balken .prev',
    	        cleartype:     !$.support.opacity,  // true if clearType corrections should be applied (for IE) 
    	        cleartypeNoBg: true // set to true to disable extra cleartype fixing (leave false to force background color setting on slides) 
    	        //pager: null	        
    	 });
      
    }
  }
  
 

    
  
};

var innerFilter = {
	observe : function(){
		
      if($('.innerFilterButton').length){
    	  //Filter initialisieren
    	  $('.innerFilterButton').each(function(){
    		  var button = $(this);
    		  if(!button.hasClass('binded')){
    			  button.bind("mouseover", function(){
    				  var buttonWidth = $(this).innerWidth();
    				  var innerFilter = $(this).next('.innerFilter');
    				  $(this).parents('.klappliste').css('zIndex','15');
    				  if(!innerFilter.hasClass('set')){
    					  innerFilter.addClass('set');
                		  innerFilter.find('a.but span').width('auto');
                		  innerFilter.find('ul').width('auto');
                		  var innerFilterWidth = innerFilter.css({
                		      'display':'block',
                		      'visibility':'hidden'
                		  }).width();
    				  }else{
    					  var innerFilterWidth = innerFilter.css({
                		      'display':'block',
                		      'visibility':'hidden'
                		  }).width() - 4;
    				  }
            		  var topwidth = innerFilterWidth - 73;
            		  innerFilter.find('a.but span').width(topwidth);
            		  innerFilter.find('ul').width(innerFilterWidth - 29);
            		  innerFilter.css({
            		      'visibility':'visible'
            		  }).bind("mouseleave", function(){
            			  $(this).hide();
            		  });
    			  }).addClass('binded');
    		  }
    	  });  
    	  
    	   
    	  $('.innerFilter ul li a').bind("click", function(){
    		  var attr = $(this).attr('selectionid');
    		  if (typeof attr !== 'undefined' && attr !== false) {
    			  $('.proplayer table.saisonstats').hide();
    			  $('.'+attr).show();
    		  }
    		  var selection = $(this).find('span').text();
    		  var selectionArray = selection.split(" ");
    		  selectionArray = selectionArray[1];
    		  var innerFilter = $(this).parents('.innerFilter');
    		  innerFilter.find('a.but span').text(selection);
    		  innerFilter.prev().find('span').text(selection);
    		  innerFilter.parent().find('.seasonyear').text(selectionArray);
    		  innerFilter.removeClass('set').hide();
    		  return false;
    	  });
      }
	}
};
var filter = {
    observe : function(){
      if($('.profifilter .filter').length){
      	$('.profifilter .filter.position a').bind("click", function(){
      		if($(this).hasClass('sub')){
      			return false;
      		}
      		$(this).parents('.filter.position').find('a.sub').find('span').text($(this).find('span').text()).parent().attr('pos',$(this).attr('pos')).removeClass('on').next().hide();
      		var posi = $(this).attr('pos');
      		if(posi == 'proAll'){
      			$container.isotope({ filter : '*' });
      		}else{
      			$container.isotope({ filter : '.'+posi });
          		//wenn ein Spielerprofil geöffnet ist muss dieses wieder geschlossen werden
          		if($('.box.filled').length){
          			if(!$('.box.filled').hasClass(posi)){
              			var boxMid = $('.box.filled').find('.mid');
              			if($('.card.u23').length){
              				iso.closeSlideCard(boxMid.parent(), true);
              			}else{
              				iso.closeBox(boxMid, true);
              			}
          			}
          		}
      		}
      		filter.getPlayerListByPos(posi);
      		return false;
      	});
      }
      if($('.allPlayer').length){
    	  filter.getPlayerListByPos('proAll');
      }
      filter.bindPlayer();
    },
    
    unbindPlayer : function(){
    	$('.profifilter .filter.spieler a').die("click");
    },
    
    bindPlayer : function(){
      	//bei Spielerauswahl über den Filter...
      	$('.profifilter .filter.spieler a').live("click", function(){
      		if($(this).hasClass('sub')){
      			return false;
      		}
      		var number = $(this).find('span').attr('player');
      		if(!filter.checkPlayerOpen(number)){
      			return false;
      		}
      		$('.filter.spieler .filterwrapper').hide();
      		$('.filter.spieler .sub.on').removeClass('on');
      		filter.unbindPlayer();

      		//wenn keine Spielernummer gefunden wurde...
      		if(number==undefined){
      			if($('.filter.position').length){
      				var pos = 'proAll';	
      			}else{
      				var pos = $('.filter.position a.sub').attr("pos");
      			}

      			if($('.box.filled').length){
      				if($('.box.filled').find('.card.u23').length){
          				var box = $('.box.filled');
          				iso.closeSlideCard(box);
      				}else{
          				var boxMid = $('.box.filled').find('.mid');
          				iso.closeBox(boxMid);
      				}
      			}
      			filter.bindPlayer();
      		}else{
	      		$('.card.pros .pronumber').each(function(){
	      			var proNum = $(this).text();
	      			//Karte finden und Klick simulieren
	      			if(proNum == number){
	      				$(this).parent().parent().find('a.button').not('.innerFilterButton').click();
	      			}
	      		});
      		}

      		return false;
      	});
    },
    
    checkPlayerOpen : function(number){
    	if($('.box.filled').length){
    		var openNumber= $('.box.filled').find('.pronumber').text();
    		if(openNumber == number){
    			return false;
    		}else{
    			return true;
    		}
    	}else{
    		return true;
    	}
    },
    
    setProFilter : function(boxMid, noFilter){
  	  filter.bindPlayer();
	  var playerNumber = boxMid.find('.card.pros .pronumber').text();
	  $('.filter.spieler li').each(function(){
		 if(playerNumber == $(this).find('span').attr("player")){
			 $('.filter.spieler .sub span').text($(this).find('span').text());
		 } 
	  });
	  if(noFilter){
		  $container.isotope({ filter : '*' }); 
	  }else{
		  var posi = $('.profifilter .filter.position a.sub').attr('pos');
		  if(posi == 'proAll'){
			  $container.isotope({ filter : '*' });
		  }else{
			  $container.isotope({ filter : '.' + posi });
		  }
	  }
    },
    
    getPlayerListByPos : function(pos){
  	  var player = '';
  	  
  	  if(pos == "proAll" || pos == undefined){
  		player = $('.allPlayer .posAll').html();
  		$('.allPlayer ul').each(function(){
  			player += $(this).html();
  		});
  		
  	  }else{
  		var position = pos.replace('pro','pos');
  		player = $('.allPlayer .posAll').html() + $('.allPlayer .' + position).html();
  	  }
  	  
  	  playerList = $('.filter.spieler ul');
  	  playerList.html(player);
  	  scroller.init();
    }
 
};

var social = {
    observe : function(){
      
      config = {
            sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)
            interval: 100, // number = milliseconds for onMouseOver polling interval
            timeout: 100, // number = milliseconds delay before onMouseOut
            over: function() {
              $(this).animate({
            marginLeft: '-55px'
          });
            }, // function = onMouseOver callback (REQUIRED)
            out: function() { 
          $(this).animate({
            marginLeft: '-383px'
          }); 
        } // function = onMouseOut callback (REQUIRED)
        }

      
      $('.socialnavi .mitglied_werden').hoverIntent(config);
    }
}

//sorgt dafür, dass Liveticker mitscrollt
var ticker = {
  observe : function(){
    this.observeScroller(); 
    this.openAndCloseTimer();
    this.observeRefresh();
  },
  
  observeScroller : function(){
    $('.content .liveticker .scroll.bottom').bind("click", function(){
      $('.content .liveticker .scrollarea').scrollTo('+=102px',300);
    });
    
    $('.content .liveticker .scroll.top').bind("click", function(){
      $('.content .liveticker .scrollarea').scrollTo('-=102px',300);
    });
  },
  
  
  openAndCloseTimer : function(){
    $('.content .liveticker .specialContent .innerBoxBottom').click(function(){
      $('.content .liveticker .specialContent .innerBoxMid').slideToggle(function(){
    	  $container.isotope({ sortBy : 'number', resizesContainer:true});
      });
       $(this).find('.close').toggleClass('hide');
       $(this).find('.open').toggleClass('hide');
    });
  },
  
  observeRefresh : function(){
	  $('.content .liveticker .refresh').bind("click",function(event){
		  
		  event.preventDefault(); //verhindert, dass Seiten-Reload stattfindet
		  
		  var anzErgeignisse = $('.content .liveticker .scrollarea tr').length;
		  
		  var url = $(this).find('a').attr('href');
		  
		  url = url+ '&arguments%5BanzEreignisse%5D='+anzErgeignisse;
		  
		   
		  $.get(url, function(ereignisse) { 
			  results = ereignisse.split('|');
//			  console.log(results);
			  $('.content .liveticker .first .normal').text(results[0]);
			  $('.content .liveticker .first .endstand').text(results[1]);
              $('.content .liveticker .scrollarea tr:first-child').before(results[2]);
          });
	  			    
	  });
	  
	  return false;
  }
};  

var tabelle = {
  observe : function(){
    this.observeScroller(); 
    this.observeSorting();
  },
  
  observeScroller : function(){
    $('.content .tabelle .scroll.bottom').bind("click", function(){
      $('.content .tabelle .scrollarea').scrollTo('+=28px',300);
    });
    
    $('.content .tabelle .scroll.top').bind("click", function(){
      $('.content .tabelle .scrollarea').scrollTo('-=28px',300);
    });
    if($('.content .tabelle .scrollarea .id_30').length){
    	var pos = 0;
    	$('.content .tabelle .scrollarea table.tabelle tr').each(function(){
    		if($(this).hasClass('id_30')){
    			return false;
    		}
    		pos++;
    	});
    	if(pos < 5) {
    		pos = 1;
    	} else {
    		pos = pos - 3;
    	}
    	$('.content .tabelle .scrollarea').scrollTo('tr:nth-child('+pos+')',100);
    	
    }
    if($('.content .tabelle .scrollarea .id_4387').length){
    	var pos = 0;
    	$('.content .tabelle .scrollarea table.tabelle tr').each(function(){
    		if($(this).hasClass('id_4387')){
    			return false;
    		}
    		pos++;
    	});
    	if(pos < 5) {
    		pos = 1;
    	} else {
    		pos = pos - 3;
    	}
    	$('.content .tabelle .scrollarea').scrollTo('tr:nth-child('+pos+')',100);
    	
    }
  },
  
  observeSorting : function(){
	  try{
		  $("#saisontable").tablesorter({
			  sortList: [[3,0]] 
		  }); 
	  }catch(err){}
  }
};

var teaser = {
  observe : function(){
    if($('.content_anchor_navi .teaser .item').length){
      $('.content_anchor_navi .teaser .item .mitte').not('.binded').hover(
        function(obj){
          $(this).next('.bottom').addClass('on');
        },
        function(obj){
          $(this).next('.bottom').removeClass('on');
        }
      );
      $('.content_anchor_navi .teaser .item .mitte').not('.binded').addClass('binded');
    }

  }
  
  
};

var videoplayer = {
    observe : function(){
    	var playerCounter = 0;
    	var pwidth = 620;
    	var pheight = 450;
    	//durchläuft alle Videoplayer in initialisiert jeden einzelnen
    	 $('.videoplayer').each(function(){
    		if($(this).hasClass('small')){
    			pwidth = 300;
    			pheight = 220;
    		}
    		if($(this).hasClass('middle')){
    			pwidth = 634;
    			pheight = 350;
    		}
    		$(this).attr('id','videoplayer'+playerCounter);
    		if(!$(this).hasClass('set')){
                var videoplayerfile = $(this).parent().parent().find('.path').text();
                var videoplayerimage = $(this).parent().parent().find('.preimage img').attr("src");
                  jwplayer("videoplayer"+playerCounter).setup({
                      autostart: false,
                      controlbar: "bottom",
                      file: videoplayerfile,
                      image: videoplayerimage,
                      flashplayer: "fileadmin/templates/mainz05/jwplayer/player.swf",
                      skin: "fileadmin/templates/mainz05/jwplayer/modieus.zip",
                      volume: 70,
                      width: pwidth,
                      height: pheight
                    
                    });
                 $(this).addClass('set');
                 playerCounter++;
    		}
    	});
    	 
    	if($('#videoLayer').length){
    		$('#advertiseLayer .flag').remove();
            jwplayer("videoLayer").setup({
                autostart: true,
                controlbar: "none",
                file: "http://www.youtube.com/watch?v=X8m1glEXYpY&feature=youtu.be",
                image: "",
                flashplayer: "fileadmin/templates/mainz05/jwplayer/player.swf",
                skin: "fileadmin/templates/mainz05/jwplayer/modieus.zip",
                volume: 70,
                width: 720,
                height: 405
            });
            jwplayer("videoLayer").onComplete(function(event){
//				$('#advertiseLayer').hide("fast");
//				$('#ajax_bg').hide();
//				$('#videoLayer').remove();
            	jwplayer("videoLayer").stop();
            	$('#videoLayer_wrapper').hide();
            	$('#videoLayerTwo').show();
            	
            	videoplayer.fbshare();
            	$('#again').click(function(event){
            		event.preventDefault();
            		$('#videoLayerTwo').hide();
            		$('#videoLayer_wrapper').show();
            		jwplayer("videoLayer").play();
            		return false;
            	});
            	
            });
            $('#advertiseLayer .closeButton').live("click", function(){
            	jwplayer("videoLayer").stop();
            });
    	}
    }, 
    
    fbshare : function(){
    	$('#fbshare').click(function(){
    		FB.ui(
			 {
			  method: 'stream.publish',
			  name: ' Samstag? Haben wir was vor!',
			  caption: '',
			  description: ' Bonus-Trailer Dauerkartenkampagne Mainz 05.',
			  link: 'http://www.youtube.com/watch?v=X8m1glEXYpY&feature=youtu.be'
//			  picture: ' LINK ZUM BILD'
			 }
			);
    		return false;
    	});
    }
};
var box = {
		observe : function(){
			this.observeFacebook();
			this.observeTwitter();
		},
		
		observeFacebook : function(){
			$('.content .facebook .specialContent .innerBoxBottom').click(function(){
				if(!$(this).hasClass('set')){
					var path = "facebook.html"
					if ($(this).hasClass('stream')) {
						path = "facebookstream.html"
					}
					$('.content .facebook .specialContent .innerBoxMid .fbContent').load("http://www.mainz05.de/mainz05/fileadmin/templates/mainz05/js/" + path);
					$(this).addClass('set');
				}
				$('.content .facebook .specialContent .innerBoxMid').slideToggle("slow", function(){
					$container.isotope({ sortBy : 'number', resizesContainer:true});
				});
				
				$(this).find('.close').toggleClass('hide');
				$(this).find('.open').toggleClass('hide');
				$('.content .facebook .specialContent .innerBoxMid .button.ext').toggle();
			});
			//Facebook Widget auf der Startseite initalisieren
		},
		
		observeTwitter : function(){
			$('.content .twitter .specialContent .innerBoxBottom').click(function(){
				$('.content .twitter .specialContent .innerBoxMid').slideToggle("slow", function(){
					if(!$(this).hasClass('set')){
						var mask = $(this).find('.maske');
						
						if ($(this).hasClass('stream')) {
							mask.load("http://www.mainz05.de/mainz05/fileadmin/templates/mainz05/js/twitterstream.html");
						}
						
						$(this).addClass('set');	
					}
					$container.isotope({ sortBy : 'number', resizesContainer:true});
				});
				
				$(this).find('.close').toggleClass('hide');
				$(this).find('.open').toggleClass('hide');
				$('.content .twitter .specialContent .innerBoxMid .button.ext').toggle();
			});
			$('.content .gplus .specialContent .innerBoxBottom').click(function(){
				$('.content .gplus .specialContent .innerBoxMid').slideToggle("slow", function(){
					if(!$(this).hasClass('set')){
						var mask = $(this).find('.maske');
						$(this).addClass('set');	
					}
					$container.isotope({ sortBy : 'number', resizesContainer:true});
				});
				$(this).find('.close').toggleClass('hide');
				$(this).find('.open').toggleClass('hide');
				$('.content .gplus .specialContent .innerBoxMid .button.ext').toggle();
			});
		}
};

var termine = {
	observe : function(){
		this.observeScroller(); 
	},
	
	observeScroller : function(){
		$('.content .termine .scroll.bottom').bind("click", function(){
			$('.content .termine .scrollarea').scrollTo('+=83px',300);
		});
		
		$('.content .termine .scroll.top').bind("click", function(){
			$('.content .termine .scrollarea').scrollTo('-=83px',300);
		});
	}
};

var cards = {
	observe : function(){
		

		
		$(".card.uspieler").live("click", function(){
			var obj = $(this);
			
			if(obj.find('.front').length){
				var back = obj.parent().find('.hinten').html();
				obj.flip({
					direction:'rl',
					color: '#ffffff',
					speed: 200,
					content: back,
					onBefore:function(){
						obj.parent().find('.vorne').html(obj.html());
					}
				});
			} else {
				var front = obj.parent().find('.vorne').html();
				obj.flip({
					direction:'lr',
					color: '#ffffff',
					speed: 200,
					content: front,
					dontChangeColor: true
				});
			}

		});

	}
	
};

var downloads = {
		observe : function(){
			if($('.download').length){
				$('.download').each(function(){
					if(!$(this).hasClass('binded')){
						$(this).find('li').bind('click', function(){
							window.open($(this).find('a').attr('href'),'_blank');
						});
						$(this).addClass('binded');
					}
				});
			}
		}
};
var auswaerts = {
	observe : function(){
		
		
		 var config = {    
	         over: auswaerts.hoverClub, // function = onMouseOver callback (REQUIRED)    
	         timeout: 0, // number = milliseconds delay before onMouseOut    
	         out: auswaerts.unhoverClub // function = onMouseOut callback (REQUIRED)    
	    };
		
		 try{
			 //$('.innerBoxMid .karteauswaerts div').hoverIntent( config );
		 } catch(err){}
		
		 $('.innerBoxMid .karteauswaerts div').click(this.selectVerein);
		 $('.tabelle.auswaerts .club').click(this.selectVerein);
		
	},
	
	hoverClub : function(ev){
		
		$(this).removeClass('grau');

	},
	
	unhoverClub : function(){
		if(!$(this).hasClass('selected')){
			$(this).addClass('grau');
		}
		
	},
	
	selectVerein : function(obj){
		$('.clubinfos .club').removeClass('selected');
		$('.karteauswaerts div').not('.grau').addClass('grau');
		
		//Verein unten wechseln
		var verein = $(this).parent().find('.icon div').text();
		if(!verein){
			verein = $(this).text();
		}
		$('.karteauswaerts .'+verein).removeClass('grau');
		$('#'+verein).addClass('selected');
		iso.setNewBoxHeight($('.clubinfos'));
	}
};

var jLayer = {
		observe : function(){
			$('#ajax_layer .close').on('click',this.close);
			$('.showticketLayer').on('click',this.open);
			
		},
		
		open:function(ev){
            ev.preventDefault();

			layer = $('#ajax_layer');
				
			layer.css('display','block');
			layer.css('visibility','visible');
						
			layerheight = $('#ajax_layer .middle').height()+80;
			leftmitte = $(window).width()/2;
			topmitte = $(window).height()/2;

			layer.css('top',topmitte+"px");
			layer.css('left',leftmitte+"px");
			
			margintop = $(window).scrollTop()-layerheight/2;
		
			
			layer.css({"position": "absolute",
				"display": "block"
			});


			margintop = $(window).scrollTop() - ($('.layercontent').height()+80)/2;
			if((margintop*-1)>topmitte) margintop = -topmitte;

			breite = $('#ajax_layer .middle').width();
			if(browser_msie&&$.browser.version*1<9){
				$('#ajax_bg').css("opacity","0.3");
			} 
			$('#ajax_bg').fadeIn("fast");
			
			//damit Layer aus Mitte heraus �ffnet
			$('#ajax_layer').width(0);
			$('#ajax_layer').height(0);
			
			layer.animate({
				"left": leftmitte+"px",
				"top": topmitte+"px",
				"width": breite,
				"height": layerheight,
				"margin-left": "-"+breite/2,
				"margin-top": margintop,
				"opacity": "1.0"}
					,400, function(){
				});
			return false;
		},
		
		close:function(){
			$('#ajax_bg').fadeOut("fast");
			
			leftmitte = $(window).width()/2;
			topmitte = $(window).height()/2;
			
			$('#ajax_layer').animate({
				"left": leftmitte,
				"top": topmitte,
				"width": "0px",
				"height": "0px",
				"margin-top": "0px",
				"margin-left": "0px",
				"opacity": "0.0"
				}
					,500, function(){
						$('#ajax_layer').css('display','none');
						$('#ajax_layer').css('visibility','hidden');
						
					});	
		}
};

var jHeadline = {
		observe : function(){
			
			var intRegex = /^\d+$/;

			
			 $(".box.small .loadedContent h2").each(function(){
				 
//				 console.log($(this).width()/10);
//				 console.log(intRegex.test($(this).width()/10));
				 
				 if(!intRegex.test($(this).width()/10)){
					 var breiteNeu = jHeadline.nextInt($(this).width());
//					 console.log(breiteNeu);
					 $(this).width(jHeadline.nextInt(breiteNeu));
				 }
				
			 });
			      
			
		},
		
		nextInt : function(val){
			
			var intRegex = /^\d+$/;
			
			for(i=1;i<=9;i++){
				if(intRegex.test((val+i)/10)){
					break;
				}
			}

			return val+i; 
		}
		
};

var scroller = {
		init : function(){
			$('.filterung .filter').each(function(){
				$(this).find('.filterwrapper').css('visibility','hidden').show();
				if($(this).find('.slimScrollDiv').length){
					$(this).find('ul').unwrap().next().remove().next().remove();
				}
				var list = $(this).find('ul').css('height','auto');
				if(list.height() > 120){
					list.slimScroll({
						color: '#000',
						opacity: '0.7',
						size: '10px',
						height: '120px',
						alwaysVisible: true,
						distance: '13px'
					});
				}
				$(this).find('.filterwrapper').css('visibility','visible').hide();
			});	
		}
};

var formular = {
		observe : function(){
			if($('a.button.fsubmit').length){
				if($('#SubscribeUnsubscribeForm').length) {
					if(!$('a.button.fsubmit').hasClass('binded')){
						$('a.button.fsubmit').addClass('binded').bind("click", function(){
							localStorage.setItem("u_EMail", $('input[name=u_EMail]').val());
							localStorage.setItem("u_Salutation", $('select[name=u_Salutation]').val());
							localStorage.setItem("u_FirstName", $('input[name=u_FirstName]').val());
							localStorage.setItem("u_LastName", $('input[name=u_LastName]').val());
							var ac = $('input[name=Action]');
							var checkedValue = ac.filter(':checked').val();
							localStorage.setItem("u_Action", checkedValue);
							formular.submit();
						});
					}
				} else {
					if(!$('a.button.fsubmit').hasClass('binded')){
						$('a.button.fsubmit').addClass('binded').bind("click", function(){
							formular.submit();
						});
					}
				}
			}
		},
		
		submit : function(){
			document.SubscribeUnsubscribeForm.submit();
		}
};

var printi = {
		observe : function() {
			$('.printNews').bind("click", function(){
				window.print();
			});
		}
};

var stadionmagazin = {
		observe : function() {
			if($('.stadionheft').length) {
				var counter = 0;
				$('.stadionheft').each(function(){
					if(counter % 3 == 0) {
						$(this).addClass('nomarg');
					}
					counter++;
				});
			}
		}
};

$.urlParam = function(name){
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if(results != null) {
        return results[1] || 0;
    }
}

var newsletter = {
		observe : function() {
			if($('#SubscribeUnsubscribeForm').length) {
				$('input[name=u_EMail]').val(localStorage.getItem("u_EMail"));
				$('select[name=u_Salutation]').val(localStorage.getItem("u_Salutation"));
				$('input[name=u_FirstName]').val(localStorage.getItem("u_FirstName"));
				$('input[name=u_LastName]').val(localStorage.getItem("u_LastName"));
				if(localStorage.getItem("u_Action") == 'subscribe') {
					$(':input:radio:eq(0)').attr('checked', 'checked');
				}
				if(localStorage.getItem("u_Action") == 'unsubscribe') {
					$(':input:radio:eq(1)').attr('checked', 'checked');
				}
				var error = decodeURIComponent($.urlParam('ERRORPAGEMESSAGE'));

				if(error != 'undefined') {
					$('input[name=u_EMail]').css('border-top','2px solid #B70000');
					error = error.replace(/\+/g, ' ');
					$('.newslettererror').empty().prepend('<div style="color:#B70000;">'+error+'</div>');
					$('.newslettererror br').remove();
//					var errorheight = $('.newslettererror div').height();
//					$('.newslettererror').height(errorheight);
				}
			} else {
				localStorage.clear();
			}
		}
};

function getCook(cookiename) 
{
	// Get name followed by anything except a semicolon
	var cookiestring=RegExp(""+cookiename+"[^;]+").exec(document.cookie);
	// Return everything after the equal sign
	return unescape(!!cookiestring ? cookiestring.toString().replace(/^[^=]+/,"").replace("=","") : "");
}
var startlayer = {
		observe : function() {
			if($('#advertiseLayer').length) {
				var cookieval = getCook("adm05cc");
				if(cookieval != 'set') {
					var windowWidth = $(window).width();
					var scrollPos = $(window).scrollTop() + 50;
					var posi = (windowWidth - 720) / 2;
					
					$('#ajax_layer').before($('#advertiseLayer'));
					$('#advertiseLayer').css('left',posi).css('top',scrollPos).css('visibility','visible').show();
					if(browser_msie&&$.browser.version*1<9){
						$('#ajax_bg').css("opacity","0.3");
					} 
					$('#ajax_bg').show();
					if(browser_msie) {
						document.cookie = "adm05cc=set; path=/";
					} else {
						document.cookie = "adm05cc=set; expires=0; path=/";
					}
					
					$(window).resize(function() {
						var windowWidth = $(window).width();
						var posi = (windowWidth - 720) / 2;
						$('#advertiseLayer').css('left',posi);
					});
					$(window).scroll(function(){
						var scrollPos = $(window).scrollTop() + 75;
						$('#advertiseLayer').css('top',scrollPos);
					});
					
					$('#advertiseLayer .closeButton').bind("click", function(){
						$('#advertiseLayer').hide("fast");
						$('#ajax_bg').hide();
						if($('#videoLayer').length) {
							$('#videoLayer').remove();
						}
					});
				} else {
					if($('#videoLayer').length) {
						$('#videoLayer').remove();
					}
				}
			}
		}
};

//$(document).ready(function()
$(window).load(function()
{
  nav.observe();
  breadcrumb.observe();
  iso.observe();
  ankernavi.observe();
  klappliste.observe();
  news.observe();
  social.observe();
  ticker.observe();
  tabelle.observe();
  teaser.observe();
  videoplayer.observe();
  ajax.filter();
  ajax.pageFilter();
  cards.observe();
  downloads.observe();
  auswaerts.observe();
  jHeadline.observe();
  fanshopSlider.observe();
  
  box.observe();
  termine.observe();
  filter.observe();
  innerFilter.observe();
  iso.checkDownloadURL();
  jLayer.observe();
  formular.observe();
  printi.observe();
//  flippingBook.observe();
  newsletter.observe();
  startlayer.observe();
//  stadionmagazin.observe();
  
	if($('.tx-yag-gallery-thumb-outerframe').length){
		$('.tx-yag-breadcrumbcomtainer').hide();
		$('.tx-yag-pi1.theme-tt_news').css('margin-bottom','60px');
	}
	
	//Tischtennis Anpassungen
	if($('#search').html() == ''){
		$('#search').remove();
	}
	if($('.footerlist').html() == ''){
		$('.footer').css('background-image','url("http://images.mainz05.de/footer/footer_bg_tt.png")');
	}
	//////////////////////////////
	
	$('#tx_indexedsearch').bind('submit', function(){
		if($('.searchbox-sword').attr('value') == ''){
			return false;
		}
	});
	
	if($('.rightBanner').length){
		$('.rightBanner').jScroll({top : 0});
	}
	
});

