
/*
 * vz
 *
 */


var mouseDownFlag = false;
var navigationTimer = null;
var activePage = window.location.pathname;


$(document).ready(function($){
	
	$('body').addClass('js');

	$('.vz-page-layout').addClass('vz-page-layout-js');
	
	$('.shadow-large').wrapInner('<div class="tr"><div class="bl"><div class="tl"><div class="br"></div></div></div></div>');
	$('.shadow-small').wrapInner('<div class="tr"><div class="bl"><div class="tl"><div class="br"></div></div></div></div>');
	
	
	$('.vz-small-teaser-bar').find('a[href$="'+activePage+'"]').parent().addClass('vz-small-teaser-active');
	if($('.vz-small-teaser-bar>.vz-small-teaser').length > 5) {
		
		$('.vz-small-teaser-bar').before('<div class="navigate-left"></div>').after('<div class="navigate-right"></div>').wrapInner('<div id="navigate-position"></div>');
		
		if(($('#navigate-position').position().left) < 0) {
			$('.navigate-left').removeClass('navigate-left-inactive');
		} else {
			$('.navigate-left').addClass('navigate-left-inactive');
		};
		
		
		var activeIndex = $('.vz-small-teaser-bar').find('.vz-small-teaser-active').index();
		var teaserCount = $('#navigate-position>.vz-small-teaser').length;
		if(activeIndex < 3) {
			// do nothing
		} else if(activeIndex > (teaserCount-4)) {
			$('#navigate-position').css({'left': 3-(teaserCount-5)*158});
		} else {
			$('#navigate-position').css({'left': 3-(activeIndex-2)*158});
		};
		$(document).ready(function() {
			updateNavigation();
		});
		
	} else {
		$('.vz-small-teaser-bar').css({left:47});
	};
	
	/*
	 * Init Pageview if sidebuttons
	 */
	
	if($('.vz-side-buttons').length > 0) {
		$('.vz-page').wrapInner('<div id="contentWrapper" class="vz-page-content-wrapper"><div id="currentPage" class="vz-page-content-block"></div></div>');
		$('#contentWrapper').height($('#currentPage').height())
	};
	
	
	$('.navigate-left').mousedown(function(){
		 mouseDownFlag = true;
		 navigate(1);
	});
	
	$('.navigate-right').mousedown(function(){
		 mouseDownFlag = true;
		 navigate(-1);
	});
	
	$(document).mouseup(function(event) {
		 mouseDownFlag = false;
	});
	
	$('img[title]').each(function(){ 
								 $(this).before('<div class="titleMessage">'+$(this).attr('title')+'</div>')
										.mouseenter(function(){$(this).prev().fadeIn();})})
										.removeAttr('title');
										
	$('.titleMessage').each(function(){ $(this).mouseleave(function() {$('.titleMessage').fadeOut();})});

	$('.vz-small-teaser-bar').find('.vz-small-teaser').each(
		function() {
			var x = $(this).find('span:first');
			if(x.length <= 0) {
				x = '<span>'+$(this).find('img:first').attr('alt')+'</span>';
			} else {
				x = x.html();
			};
			$(this).prepend('<div class="navTeaserOverlay">'+x+'</div>')
				   .mouseenter(function(){$(this).find('.navTeaserOverlay').fadeIn()})
				   .mouseleave(function(){$(this).find('.navTeaserOverlay').fadeOut()})
				   .click(function(){
						if($('.vz-side-buttons').length > 0) {
							dynamicLoad($(this).find('a:first'),-1);
						} else {
							window.location.href = $(this).find('a:first').attr('href');
						}
					});
		}
	);
	
	if($('#socialshareprivacy').length > 0){
		$('#socialshareprivacy').socialSharePrivacy({'css_path':''}); 
	};
  
	$('.vz-button-right>a').click(function(){
		dynamicLoad($(this),-1);
		return false;
	});
	
	$('.vz-button-left>a').click(function(){	
		dynamicLoad($(this),1);
		return false;
	});
  
	refScroll();
  
});


/*
 * direction: -1 == left, 1 == right
 */
 
var navigate = function (direction) {
	var newPosition = Math.round($('#navigate-position').position().left) + (158 * direction);
	var teaserCount = $('#navigate-position>.vz-small-teaser').length;
	if($('#navigate-position').is(':animated') == false) {
		if(mouseDownFlag){
			if(newPosition <= 3 && newPosition >= -((teaserCount-5) * 158))
			$('#navigate-position').animate({'left': newPosition}, 500,
				function(){
					updateNavigation();
				});
		} else {
			window.clearTimeout(navigationTimer);
		};
	};
};

var updateNavigation = function() {
	if(($('#navigate-position').position().left) <= 0) {
		$('.navigate-left').removeClass('navigate-left-inactive');
	} else {
		$('.navigate-left').addClass('navigate-left-inactive');
	};
	
	if(($('#navigate-position').position().left - 158) > (($('#navigate-position').width() - (4*158)) * -1)) {
		$('.navigate-right').removeClass('navigate-right-inactive');
	} else {
		$('.navigate-right').addClass('navigate-right-inactive');
	};
};

var refScroll = function() {
	$('.vz-page-content').find('a[href^="#ref"]').click(function(){
		var t = $(this).attr('href');
		t = t.split('#')[1];
		var d = $('a[name="'+t+'"]').offset().top;
		$('html,body').animate({scrollTop:d},350);
		return false;
	});
};

var dynamicLoad = function(button, direction) {
	var nextPage = button.attr('href');
	
	$.get(nextPage,function(data){
		var newPage = $(data).find('.vz-page').html();
		var buttonRight = $(data).find('.vz-button-right>a');
		var buttonLeft = $(data).find('.vz-button-left>a');
		var newPageHTML = '<div id="nextPage" class="vz-page-content-block" style="left: '+(direction * -835)+'px">'+newPage+'</div>';
		$('#contentWrapper').append(newPageHTML);
		
		$('#nextPage .shadow-large').wrapInner('<div class="tr"><div class="bl"><div class="tl"><div class="br"></div></div></div></div>');
		$('#nextPage .shadow-small').wrapInner('<div class="tr"><div class="bl"><div class="tl"><div class="br"></div></div></div></div>');
		
		if($('#nextPage').height() > $('#contentWrapper').height()) {
			$('#contentWrapper').height($('#nextPage').height());
		};
		// update Buttons
		$('.vz-button-right>a').attr('href',(buttonRight.attr('href'))).attr('title',(buttonRight.attr('title'))).html(buttonRight.html());
		$('.vz-button-left>a').attr('href',(buttonLeft.attr('href'))).attr('title',(buttonLeft.attr('title'))).html(buttonLeft.html());
		
		animateNewPageContent(direction,nextPage);
	},'html');
};

var animateNewPageContent = function(direction,nextPage) {
	$('.vz-small-teaser-active').removeClass('vz-small-teaser-active');
	$('.vz-small-teaser-bar').find("a[href$='"+nextPage+"']").parent().addClass('vz-small-teaser-active');

	var activeIndex = $('.vz-small-teaser-active').index();
	var teaserCount = $('#navigate-position>.vz-small-teaser').length;
	
	var newPosition = 3;
	var targetIndex = 0;
	
	if(teaserCount > 5) {
		if(activeIndex < 3) {
			targetIndex = activeIndex;
			newPosition = 3;
		} else if (activeIndex > (teaserCount - 3)) {
			targetIndex = teaserCount - 5;
			newPosition = 3 - (targetIndex * 158);
		} else {
			targetIndex = activeIndex - 2;
			newPosition = 3 - (targetIndex * 158);
		};
				
		$('#navigate-position').animate({'left': newPosition}, 300,
			function(){
				updateNavigation();
		});
	};
	
	$('body,html').animate({scrollTop:0},300);
	$('#currentPage').animate({left:(direction * 835)},300,function(){
		$('#contentWrapper').height($('#nextPage').height());
		$('#currentPage').remove();
		$('#nextPage').animate({left: 0},300,function(){
			$('#nextPage').attr('id','currentPage');
 			refScroll();
		});
	});
};
;

