$(document).ready(function(){

    /* Stage Effekte: first delete static HTML projects, then build dynamic cycles */
    $("#stage .projects:first").css("display", "block");
    $("#stage-navi .projekt-navigation").empty();

    $.fn.cycle.updateActivePagerLink = function(pager, currSlideIndex) { 
    $(pager).find('li').empty().append('<a href="#"><img src="fileadmin/templates/img/icon-punkt-inaktiv.png"/></a>');
    $(pager).find('li').filter('li:eq('+currSlideIndex+')').children("a").replaceWith("<img src='fileadmin/templates/img/icon-punkt-aktiv.png' alt='Page " +currSlideIndex+ "'/>"); 
    }; 
    
    $("#stage").cycle({
        timeout: 10000,
        speed: 500,
        fx: 'fade',
        pager: $("#stage-navi .projekt-navigation"),
        pagerAnchorBuilder: function(idx, slide) { 
        return '<li><a href="#"><img src="fileadmin/templates/img/icon-punkt-inaktiv.png" alt="Page 2"/></a></li>'; 
    }     });

    /* News auf Homepage sichtbar machen und sliden, individueller Header wird unsichtbar, overall Header sichtbar */
    $("#news-homepage > .news-header").css("display", "block");
	$("#news-slide-homepage .news:first-child .news-navigation .next").css("display", "inline");
	$("#news-slide-homepage .news:gt(0) .news-navigation *").css("display", "inline");
	$("#news-slide-homepage .news:last-child .news-navigation *").css("display", "none");
	$("#news-slide-homepage .news:last-child .news-navigation .previous").css("display", "inline");
	$("#news-slide-homepage").cycle({
        timeout: 0,
        speed: 500,
        next: $("#news-homepage .next"),
        prev: $("#news-homepage .previous"),
        fx: 'scrollHorz',
        before: function(currSlideElement, nextSlideElement)  {
			var date = $(nextSlideElement).find("span.date").text();
			$("#news-homepage > .news-header .date").text(date);}
      });

    /* Projekte auf Homepage sichtbar machen und sliden */
    $("#projekte-homepage > .news-header").css("display", "block");
	$("#projekte-slide-homepage .news:first-child .news-navigation .next").css("display", "inline");
	$("#projekte-slide-homepage .news:gt(0) .news-navigation *").css("display", "inline");
	$("#projekte-slide-homepage .news:last-child .news-navigation *").css("display", "none");
	$("#projekte-slide-homepage .news:last-child .news-navigation .previous").css("display", "inline");
	$("#projekte-slide-homepage").cycle({
        timeout: 0,
        speed: 500,
        next: $("#projekte-homepage .next"),
        prev: $("#projekte-homepage .previous"),
        fx: 'scrollHorz',
        before: function(currSlideElement, nextSlideElement)  {
			var date = $(nextSlideElement).find("span.date").text();
			$("#projekte-homepage > .news-header .date").text(date);}
      });
    
    /* Hover-Effekte für Linkliste links und Bildstrecke in der Mitte */
    $(".fce_linklist .referenzen li:has(a), #middle div.bildstrecke img").hover(
    function(){
      $(this).addClass("aktiv");
    },
    function(){
      $(this).removeClass("aktiv");
    });

	/*tt_news Trenner in previous/next Navigation ausblenden, wenn am Anfang oder Ende */
    if ($(".single-navigation").children("span").length < 3){
		$(".single-navigation span.divider").remove();
		}

	/* Bildstrecke justieren */
	$("#middle div.bildstrecke li:last").attr("style","margin-right:0px");

    /* Effekte Projektuebersicht Pagination */
    $(".projekt-navigation li").hover(
    function(){
      $(this).children("a").children("img").attr("src", "fileadmin/templates/img/icon-punkt-aktiv.png");
    },
    function(){
      $(this).children("a").children("img").attr("src", "fileadmin/templates/img/icon-punkt-inaktiv.png");
    });
    

    /* Hover Projektpräsentation Übersicht und Business cases rechte Spalte */
    $(".projekt-preview, .businesscase").hover(
    function(){
      $(this).addClass("projekt-aktiv");
    },
    function(){
      $(this).removeClass("projekt-aktiv");
    });
    
    var projektpreviews = $("div.projekt-overview").children();
    for (var i = 1; i <= projektpreviews.length; i= i+3) {
        $(projektpreviews[i]).addClass("preview-middle");
    }
    for (var i = 2; i <= projektpreviews.length; i= i+3) {
        $(projektpreviews[i]).addClass("preview-right");
    }

    /* Effekte Projektpräsentation Sidebar - scale down images and make them hover and change images - if only one image, empty sidebar*/
    if ($(".projekt-screen-sidebar").children().length < 2){
		$(".projekt-screen-sidebar").empty();
		}

	/*  if >4 images , hide superfluous images */
    while ($(".projekt-screen-sidebar").children().length > 4){
		$(".projekt-screen-sidebar img:last").remove();
		}

    $(".projekt-screen-sidebar img").width(84);
    $(".projekt-screen-sidebar img").height(59);
    $(".projekt-screen-sidebar img").hover(
    function(){
      $(this).addClass("sidebar-hover");
    },
    function(){
      $(this).removeClass("sidebar-hover");
    });
    
	$(".projekt-screen-sidebar img").click(
	function (){
		$(".projekt-screen-gross").empty();
		var image = $(this).clone();
		image.width(404);
		image.height(286);
		$(".projekt-screen-gross").append(image);
	});

    /* Effekte Projektpräsentation Bottom - if no related projects, hide bottom*/
    if ($(".projekt-screen-bottom").children().length == 0){
		$(".projekt-screen-bottom").hide();
		}
    
    $(".projekt-screen-bottom img").hover(
    function(){
      $(this).addClass("projekt-aktiv");
    },
    function(){
      $(this).removeClass("projekt-aktiv");
    });
    
	/* Logo Scrollarea */
	if ($("#logos")) {
		$("<div class='scroll-pane ui-widget ui-widget-header ui-corner-all'>").insertBefore("#logos");
		$("#logos").prependTo($(".scroll-pane"));
	}
	$(function() {
		//scrollpane parts
		var scrollPane = $('.scroll-pane');
		var scrollContent = $('.scroll-content');
		
		//define variables
		$("div#logos dl:first").css("margin-left","100px");
		var logos = $("div#logos").children("dl");

		//define zoom dimensions for all logos only once and not with each slide
		var zoomdimensions = new Array();
		var containerheight = $("#logos").height();
		for (var i = 0; i < logos.length; i++) {
			zoomdimensions[i] = new Object();
			zoomdimensions[i]["width_1"] = $(logos[i]).find("img").width();
			zoomdimensions[i]["width_2"] = $(logos[i]).find("img").width() * 0.75;
			zoomdimensions[i]["width_3"] = $(logos[i]).find("img").width() * 0.5;
			zoomdimensions[i]["width_4"] = $(logos[i]).find("img").width() * 0.25;
			zoomdimensions[i]["height_1"] = $(logos[i]).find("img").height();
			zoomdimensions[i]["height_2"] = $(logos[i]).find("img").height() * 0.75;
			zoomdimensions[i]["height_3"] = $(logos[i]).find("img").height() * 0.5;
			zoomdimensions[i]["height_4"] = $(logos[i]).find("img").height() * 0.25;
			zoomdimensions[i]["margin-top_1"] = (containerheight / 2) - (zoomdimensions[i]["height_1"] / 2);
			zoomdimensions[i]["margin-top_2"] = (containerheight / 2) - (zoomdimensions[i]["height_2"] / 2);
			zoomdimensions[i]["margin-top_3"] = (containerheight / 2) - (zoomdimensions[i]["height_3"] / 2);
			zoomdimensions[i]["margin-top_4"] = (containerheight / 2) - (zoomdimensions[i]["height_4"] / 2);
			$(logos[i]).width(zoomdimensions[i]["width_1"]);
			/*for (var test in zoomdimensions[i]){
				alert(test + ":" + zoomdimensions[i][test]);
			}*/
		}

		// widths and offsets for zoom initiators
		if ($(".scroll-pane").length > 0) {
			var outerzoomstart = $(scrollPane).offset().left + (scrollPane.width() / 8) * 7;
			var outerzoomstop = $(scrollPane).offset().left + (scrollPane.width() / 8);
			var middlezoomstart = $(scrollPane).offset().left + (scrollPane.width() / 8) * 6;
			var middlezoomstop = $(scrollPane).offset().left + (scrollPane.width() / 8) * 2;
			var innerzoomstart = $(scrollPane).offset().left + (scrollPane.width() / 8) * 5;
			var innerzoomstop = $(scrollPane).offset().left + (scrollPane.width() / 8) * 3;
			}

		//zoom logos
		function zoomslide () {
			for (var i = 0; i < logos.length; i++) {
				var logocenter = $(logos[i]).find("img").width() / 2;
				var logoright =  $(logos[i]).find("img").width();
				// if in middle, full zoom
				if (($(logos[i]).offset().left + logocenter < innerzoomstart) && ($(logos[i]).offset().left + logocenter > innerzoomstop)) {
					$(logos[i]).find("img").css({"opacity": "1", "width": zoomdimensions[i]["width_1"] + "px", "margin-top": zoomdimensions[i]["margin-top_1"] + "px"});
					}
				// second zoom area
				else if (($(logos[i]).offset().left + logocenter < middlezoomstart) && ($(logos[i]).offset().left + logocenter > middlezoomstop)) {
					$(logos[i]).find("img").css({"opacity": "0.75", "width": zoomdimensions[i]["width_2"] + "px", "margin-top": zoomdimensions[i]["margin-top_2"] + "px"});
					}
				// third zoom area
				else if (($(logos[i]).offset().left + logocenter < outerzoomstart) && ($(logos[i]).offset().left + logocenter > outerzoomstop)) {
					$(logos[i]).find("img").css({"opacity": "0.5", "width": zoomdimensions[i]["width_3"] + "px", "margin-top": zoomdimensions[i]["margin-top_3"] + "px"});
					}
				// fourth zoom area
				else {
					$(logos[i]).find("img").css({"opacity": "0.25", "width": zoomdimensions[i]["width_4"] + "px", "margin-top": zoomdimensions[i]["margin-top_4"] + "px"});
					}
				$(logos[i]).children("dd").width($(logos[i]).find("img").width());
				}
			}

		// calculate length of scroll area -> call zoomslide to adjust images before calculating the area
		zoomslide();
		//call zoomslide again tp readjust faulty dimensions of first run
		zoomslide();
		var logowidth = 0;
		for (var i = 0; i < logos.length; i++) {
			logowidth += $(logos[i]).outerWidth(true);
		}
		scrollContent.width(logowidth);
				
		//build slider
		var scrollbar = $(".scroll-bar").slider({
			slide:function(e, ui){
				if( scrollContent.width() > scrollPane.width() ){ scrollContent.css('margin-left', Math.round( ui.value / 100 * ( scrollPane.width() - scrollContent.width() )) + 'px'); }
				else { scrollContent.css('margin-left', 0); }
				zoomslide();
			},
			change:function(e, ui){
				if( scrollContent.width() > scrollPane.width() ){ scrollContent.css('margin-left', Math.round( ui.value / 100 * ( scrollPane.width() - scrollContent.width() )) + 'px'); }
				else { scrollContent.css('margin-left', 0); }
				zoomslide();
			}
		});
		
		//build slider arrows
		$(".slide-button").click(function() {
			var slidevalue = $('.scroll-bar').slider("option", "value");
			if ($(this).hasClass("right")) {
				$('.scroll-bar').slider("value", (slidevalue + 1));
			}
			else {
				$('.scroll-bar').slider("value", (slidevalue - 1));
			}
		});
		

		
		//append icon to handle
		var handleHelper = scrollbar.find('.ui-slider-handle')
		.mousedown(function(){
			scrollbar.width( handleHelper.width() );
		})
		.mouseup(function(){
			scrollbar.width( '516px' );
		})
		.append('<span class="ui-icon ui-icon-grip-dotted-vertical"></span>')
		.wrap('<div class="ui-handle-helper-parent"></div>').parent();
		
		//change overflow to hidden now that slider handles the scrolling
		scrollPane.css('overflow','hidden');
		
		//size scrollbar and handle proportionally to scroll distance
		function sizeScrollbar(){
			var remainder = scrollContent.width() - scrollPane.width();
			var proportion = remainder / scrollContent.width();
			var handleSize = scrollPane.width() - (proportion * scrollPane.width());
			scrollbar.find('.ui-slider-handle').css({
				width: handleSize,
				'margin-left': -handleSize/2
			});
			handleHelper.width('').width( scrollbar.width() - handleSize);
		}
		
		//reset slider value based on scroll content position
		function resetValue(){
			var remainder = scrollPane.width() - scrollContent.width();
			var leftVal = scrollContent.css('margin-left') == 'auto' ? 0 : parseInt(scrollContent.css('margin-left'));
			var percentage = Math.round(leftVal / remainder * 100);
			scrollbar.slider("value", percentage);
		}
		//if the slider is 100% and window gets larger, reveal content
		function reflowContent(){
				var showing = scrollContent.width() + parseInt( scrollContent.css('margin-left') );
				var gap = scrollPane.width() - showing;
				if(gap > 0){
					scrollContent.css('margin-left', parseInt( scrollContent.css('margin-left') ) + gap);
				}
		}
		
		//change handle position on window resize
		$(window)
		.resize(function(){
				resetValue();
				sizeScrollbar();
				reflowContent();
		});
		//init scrollbar size
		setTimeout(sizeScrollbar,10);//safari wants a timeout
	});

 
    // Config Tweet this
    /*$(".tweet-this a").tweetIt({
                animate: "fade",
                header: "Seite bei Twitter empfehlen",
                typeATweet: "Schreiben Sie hier Ihren Tweet..",
                intro: "Empfehlen Sie diese Seite bei Twitter. Schreiben Sie Ihren Tweet einfach im Feld unten. Der Link wird automatisch eingefügt."
                });*/


    // ersten Tweet highlighten
    $(".tx-netfedtwitter-pi11").find("li").first().css("background-color", "#e6e6e6");
    
    // toggle Bookmarks in social bookmarks plugin
    $(".togglebookmarks").toggle(
    	function() { $(".bookmarklinks").fadeIn("slow"); },
    	function() { $(".bookmarklinks").fadeOut("slow"); }
    );
    
    
    // grauen Balken in den Referenz Details ausblenden, wenn keine weiteren Bilder vorhanden sind
    if($(".projekt-screen-sidebar").children('img').length == 0) {
    	$(".projekt-screen-sidebar").hide();
    	$(".projekt").css("margin-left", "68px");
    }
    
    
    // "Zum Provinzial - Feedbackumfrage" auf der Startseite bei den Projekten manuell ändern
    $("#projekte-slide-homepage p.more a").each(function() {
    	if ($(this).attr("href") == 'referenzen/referenzuebersicht/projektansicht-single/article/provinzial-feedbackumfrage.html') {
    		$(this).html("Zur Provinzial - Feedbackumfrage <img src=\"fileadmin/templates/img/linkarrow.gif\">");
    	}	
    });
    
    // "&amp;" in der Sitemap korrigieren
    $(".csc-sitemap a").each(function() {
    	if ($(this).attr("title") == "Fokus &amp; Ausrichtung") {
    		$(this).attr("title", "Fokus & Ausrichtung");
    		$(this).html("Fokus & Ausrichtung");
    	}
    });
});
