$(document).ready(function() {
    //$("body").addClass("isJavascript");
  
   
    //Formularfeld-Regeln (Kontaktformular)   
    $("#institution").change(function(){
    	setInstFachField();
    });
    
    function setInstFachField() { 
        //Wenn der Wert des option-Feldes dem ersten Eintrag entspricht       
        if($("#institution").val() == $("#institution option").eq(1).attr("value")) {
            $("#institution").parents().find(".boxmail").removeClass("disabled");
            $("input.instFach").removeAttr("disabled");
            $("input.instFach").prev("label").removeClass("disabled");    		
        } else {
            disableField();    		
        }    	
    }
    
    $("#sector").change(function() { 
    	manageFieldsOfActivity();		
    });
    
    function manageFieldsOfActivity(){
        if($("#sector").val() != $("#sector option").eq(0).attr("value")) {    	
            var selector = "." + $("#sector").val();
            $(selector).css("display","block");
            $(selector).siblings("label").css("display","none");
            $(selector).prev("label").css("display","block");
            $(selector).siblings(".hint").css("display","none");
            $(selector).next(".hint").css("display","block");
            $(selector).siblings("select").css("display","none");
            $(selector).prevAll("p.error").css("display","none");    	
        }else{
        	// Wenn "Arbeitsbereich" = "Bitte Auswählen..." sollen die Arbeitsgebiete ausgeblendet werden 
        	var selector = "." + $("#sector option").eq(1).attr("value");
        	$(selector).css("display","none");
        	$(selector).siblings("label").css("display","none");
        	$(selector).siblings(".hint").css("display","none");
        	$(selector).siblings("select").css("display","none");
        	$(selector).prevAll("p.error").css("display","none");
        }
    }
    
    $(window).load(function () {
    //    $("#sector option").eq(0).attr("selected",true);
    //    $("#institution option").eq(0).attr("selected",true);
    //    disableField();    	
    	
    	// Werte sollen nicht jedesmal neu gesetzt wereden sondern bei fehlgeschlagener 
    	// Validierung erhalten bleiben.
    	// Wenn der Wert des option-Feldes dem ersten Eintrag entspricht       
    	setInstFachField();
        
    	// Werte sollen nicht jedesmal neu gesetzt wereden sondern bei fehlgeschlagener 
    	// Validierung erhalten bleiben.
    	manageFieldsOfActivity();
        
    });
	
    function disableField() {
        $("#institution").parents().find(".boxmail").addClass("disabled");    
        $("input.instFach").attr("disabled","true");
        $("input.instFach").attr("value","");
        $("input.instFach").prev("label").addClass("disabled");		
    }
   
    //navigation
    $('.dropdownarrow').each(function() {
        $(this).mouseover(function(){
            $(this).addClass("currentDropdownarrow");
        })
    });
  
    $('.dropdownarrow').each(function() {
        $(this).mouseout(function(){
            $(this).removeClass("currentDropdownarrow");
        })
    });
  
    /** Navigation with dropdownmenus **/	
    /** z-index-bugfix **/
    $("ul.sf-menu").superfish().find('ul').bgIframe({
        opacity:0
    });
	
    $("#naviDropDown ul.menu").superfish().find('ul').bgIframe({
        opacity:0
    });
	
    //initialise all other JS
    if($(".googlemap").length==0){

    try {
  		initHighlighting();
  		}
    catch(error){
       	initAllOtherJS();
    	}	
    }
    else {
        initAllOtherJS();
    }
});

function initAllOtherJS() {

    /* FILTER AKTEURE -> ARBEITSGEBIETE */
    /* DECLARE VARS */
    var options = $("#valuegroupArbeitsgebiet option"),
    val =  $('#valuegroupArbeitsbereich option:selected').text(),
    bioAb = $('#valuegroupArbeitsbereich option').eq(1).addClass("bioAb"),
    ingAb = $('#valuegroupArbeitsbereich option').eq(2).addClass("ingAb"),
    sonAb = $('#valuegroupArbeitsbereich option').eq(3).addClass("sonAb"),
    allArr = createArray(0, 24, options, 'all'),
    bioArr = createArray(0, 7, options, 'bio'),
    ingArr = createArray(7, 15, options, 'ing'),
    sonArr = createArray(15, 24, options, 'son');
        
    // INIT
    var init = $('#valuegroupArbeitsbereich :selected').text();
//    console.log(init);
    selectAffiliated(init);
    qSelected();
    //    selectFirstOption('#valuegroupArbeitsbereich option:first');

    /* Get Arbeitsgebiet and select Arbeitsbereich */
    $('#valuegroupArbeitsgebiet').change(function(){
        var optionSelected = $('#valuegroupArbeitsgebiet :selected');
        if(optionSelected.hasClass('bio')) {
            $(bioAb).attr("selected","selected");
        } else if(optionSelected.hasClass('ing')) {
            $(ingAb).attr("selected","selected");
        } else if (optionSelected.hasClass('son')) {
            $(sonAb).attr("selected","selected");
        }
    });

    /* Get Arbeitsbereich */
    $('#valuegroupArbeitsbereich').change(function(){
        var val =  $('#valuegroupArbeitsbereich :selected').text();
        selectAffiliated(val);
    //        selectFirstOption('#valuegroupArbeitsgebiet option:first');
    });


    /* HELPER FUNCTIONS */
    function selectFirstOption(select) {
        $(select).attr("selected","selected");
    }

    function appendArray(appendTo, array) {
        options.remove();
        $(appendTo).append(array);
    }

    function createArray(start, len, getOptions, cl) {
        var sorted = $.makeArray(getOptions);
        var output = [];
        var i;

        for (i=start; i<len; i++) {
            var options = sorted[i];

            $(options).removeClass().addClass(cl);
            output.push(options);
        }

        return output;
    }
    
    function qSelected() {
        var qSelected = $('#valuegroupArbeitsgebiet option#selected');
        if($(qSelected).length > 0) {
            //found
//            console.log(qSelected);
            return $(qSelected).attr("selected","selected");
        } else {
            //not found
//            console.log(qSelected);
            return $('.toRemove').attr("selected","selected");
        }
    }

    function selectAffiliated(val) {
        
        if(val === 'Biowissenschaften') {
            appendArray("#valuegroupArbeitsgebiet", bioArr);
        } else if(val === 'Ingenieursdisziplinen') {
            appendArray("#valuegroupArbeitsgebiet", ingArr);
        } else if(val === 'Sonstige') { 
            appendArray("#valuegroupArbeitsgebiet", sonArr);
        } else {
            appendArray("#valuegroupArbeitsgebiet", allArr);
        }

        $('.toRemove').remove();
        $('#valuegroupArbeitsgebiet').prepend('<option value="" class="toRemove">Bitte w&auml;hlen...</option>');
        
        qSelected();

    }
   
    /* EOF FILTER AKTEURE -> ARBEITSGEBIETE */
    
    
    // unternehmen toggle

    $(".toogleClick2").click(function(){
        var $this = $(this),
        $asf = $(".akteureSearchformLToggleFull");
        
        $asf.toggle('fast', function(){
           
            $('input#searchActionSearchS').toggle();
            $('input#searchActionSearch').toggle();
           
            if($asf.is(':visible')) {
                $this.addClass('open');
                
                $('input#searchActionSearch').show();
            } else {
                $this.removeClass('open');
                $('input#searchActionSearch').hide();
                $('input#searchActionSearchS').show();
            }
           
        });
    });

    // focusSlider
    $(".no-js-version").hide();
    $(".js-version").show();
    
    if(typeof teaserUrl!= "undefined") {
    	var carouselId = $(".focusTeaserCarousel");
    	initFocusSliderTeaserBox(teaserUrl, carouselId);
    }
    
    if(typeof videoMarginalUrl!= "undefined") {
    	var carouselId = $(".focusVideoCarousel");
    	initFocusSliderVideoBox(videoMarginalUrl, carouselId);
    }
    
    // flagContainer
    $(".flagImage a").click(
    		function () {
    			$(".flagContainer .imageContainer").addClass("showFocus");
    			$(".imageContainer li.active").removeClass("active");
    			$(this).parents("li").addClass("active");    			
    			
    			var flagContent = $(this).parents("li").find(".flagContent").html();
    			$(".flagContainer .contentContainer").fadeOut("fast", function() {
    				$(".flagContainer .contentContainerWrapper").remove();
    				$(".flagContainer .contentContainer").append('<div class="contentContainerWrapper">' + flagContent + '</div>');
    				$(".flagContainer .contentContainer").fadeIn("fast");
    			});
    			return false;
    		}
    );
    
    // photoslide
    $('.mycarousel').children().remove();
			
    $("div.nojs").removeClass("nojs");
    if(typeof xmlUrl!= "undefined") {
        $.ajax({
            type: "GET",
            url: xmlUrl,
            dataType: "xml",
            success: function(xml) {
	
                $(xml).find('entry').each(function(){
	
                    var id_text = $(this).attr('id');
                    var urltag = $(this).find('image').text();
                    var titletag = $(this).find('title').text();
                    var linktag = $(this).find('url').text();
                    fillArray({
                        url: urltag, 
                        title: titletag, 
                        id: linktag
                    });
	
                }); //close each( 
            },
            complete: function() {
            	initSlider();
            }
        }); //close $.ajax(
    }

    // hitlist
    $("ul.hitlist > li.common").mouseover(function ()
    {
        if ($("li.common.pretty-hover").length > 0 ) 
        { 
            $("li.common.pretty-hover").removeClass("pretty-hover");
        }
        $(this).toggleClass("pretty-hover");
    });

    $("ul.hitlist > li.common").mouseout(function ()
    {
        $(this).toggleClass("pretty-hover");
        if ($("li.common.pretty-hover").length == 0 ) 
        { 
            $(this).addClass("pretty-hover");
        }
    });
  
  
    $('#subnavi li').each(function() {
        $(this).mouseover(function(){
            $(this).toggleClass("current" + $(this).attr("id"));
        })
    });
  
    $('#subnavi li').each(function() {
        $(this).mouseout(function(){
            $(this).toggleClass("current" + $(this).attr("id"));
        })
    });


    //hide the all of the element with class msg_body
    $(".unternehmenToggleBody").hide();
    $(".toggleSB").css("display", "block");
    
    //toggle the componenet with class msg_body
    
    $(".toogleClick").click(function(){
        var $this = $(this);
        setParamAdvancedSearch('erweitertGoogle');
        
        $(".unternehmenToggle").addClass("bb");
        $this.css("display", "none");
        $(".toggleSB").css("display", "none");
        $(".unternehmenToggleBody").toggle('fast', function(){
            $(".adsearchform").fadeIn();
            $(".adsearchform").css("display", "block");
            
        //  $(".adsearchform").fadeIn("slow");
        });
    });
    
    $(".toogleClickOpen").click(function(){
        setParamAdvancedSearch('einfachGoogle');
        $(".adsearchform").fadeOut("fast");
        $(".unternehmenToggleBody").toggle();
        $(".toogleClick").css("display", "block");
        $(".toggleSB").css("display", "block");
        $(".unternehmenToggle").removeClass("bb");
    });
    
	
    if($('#searchMode').attr("value") == "erweitertGoogle"){

        $(".unternehmenToggleBody").css("display", "block");
        $(".toogleClick").css("display", "none");
        $(".toggleSB").css("display", "none");
        $(".unternehmenToggle").addClass("bb");
		
    };

    // dbsearch toggle

    $(".dbSearchHead1").click(function(){

        $(".dbSearchBody1").slideToggle(600);
        $(".dbSearchBody2").hide();
        $(".dbSearchBody3").hide();
        $(".nav > .current").removeClass("current");
        $(this).addClass("current");

    });

    $(".dbSearchBody2").hide();

    $(".dbSearchHead2").click(function(){
        $(".dbSearchBody2").slideToggle(600);
        $(".dbSearchBody1").hide();
        $(".dbSearchBody3").hide();
        $(".nav > .current").removeClass("current");
        $(this).addClass("current");
    });

    $(".dbSearchBody3").hide();

    $(".dbSearchHead3").click(function(){
        $(".dbSearchBody3").slideToggle(600);
        $(".dbSearchBody1").hide();
        $(".dbSearchBody2").hide();
        $(".nav > .current").removeClass("current");
        $(this).addClass("current");
    });
	
	
    /*advanced search toggle */
    $(".searchBodyToggle").hide();
    $(".toogleClickSearchOpen").css("display", "none");
    $(".toggleButton").css("display", "none");
    //toggle the componenet with class msg_body
    $(".toogleClickSearch").click(function(){
        $(".searchBodyToggle").slideToggle(600);
        $(this).css("display", "none");
        $(".toogleClickSearchOpen").css("display", "block");
        $(".toggleButton").css("display", "block");
    });
    $(".toogleClickSearchOpen").click(function(){
        $(".searchBodyToggle").slideToggle(600);
        $(".toogleClickSearch").css("display", "block");
        $(this).css("display", "none");
        $(".toggleButton").css("display", "none");
		
    });
	
    if($('#searchMode').attr("value") == "erweitert"){

        $(".searchBodyToggle").css("display", "block");
        $(".toogleClickSearch").css("display", "none");
        $(".toogleClickSearchOpen").css("display", "block");
        $(".toggleButton").css("display", "block");
		
    };
	
	
    $(".contentLinkNavi li a").click( function() {
        $(this).siblings().slideToggle("slow");
    });
    $(".contentLinkNavi span").click( function() {
        $(this).siblings().slideToggle("slow");
    });
	

    /* Lightbox aufrufen */	
    if(typeof lightboxPath!= "undefined") {
        var bild = "BILD";
        var von = "VON";
        if($("html").attr("lang")=="en") {
            von = "OF";
            bild = "IMAGE";
        }
        $(".lightboxLink a").lightBox({
            fixedNavigation: true,
            imageBtnNext : lightboxPath+ $("html").attr("lang") +'/lightbox-btn-next.gif',
            imageBtnPrev : lightboxPath+ $("html").attr("lang") +'/lightbox-btn-prev.gif',
            imageBtnClose : lightboxPath+ $("html").attr("lang") +'/lightbox-btn-close.gif',
			
            imageBlank : lightboxPath+'/lightbox-blank.gif',
            txtImage: bild,
            txtOf: von
        }
        );	
    };	
	
    $(".lightboxLink a").click( function() {
        var index = $(this).attr("id").indexOf("_");
        if(index>0){
            var qid = $(this).attr("id").substr(index+1,$(this).attr("id").length);
        }
		
        var qu = $("#qu_"+qid).text();
        if(qu!=null)
            $("#lightbox-image-details-caption").after("<br/><span id='lightbox-image-details-qu'>"+qu+"</span>");
		
        $("#lightbox-container-image #lightbox-nav-btnPrev").after("<div id='lightbox-image-details-currentNumber'></div>"); 
        $("#lightbox-image-details #lightbox-image-details-currentNumber").remove();
    });	
	
    //thickbox
    setThickbox();
	
    //calendar
    
    if(typeof calUrl!= "undefined") {
        $(".eventCalendar").css("display", "block");
        $(".event .nojs").css("display", "none");
        $(".displayWeek .empty").css("display", "none");
        var url = calUrl;// set in renderveranstaltungen.jsp
        initCalendar(url);
    };
	
    setDatePicker();
    setAccordion();
    
    //movInfo toggle
    $(".video .movInfo").hide();
    $(".video h3").click(function() {
    	$(".video .movInfo").toggle("slow", function() {
    		$(".video h3").addClass("active");
    		if($(this).is(":visible")) {
    			$(".video h3").addClass("active"); 
            } else {
            	$(".video h3").removeClass("active");
            }
    	  });
    });
	
    //making the teasers configurable
    $(".teaserHead.teaserHeadClosed").removeClass("teaserHeadOpen");
    $(".accordeonContent.teaserHeadClosed").css("display","none");
    $(".accordeonContent.teaserHeadClosed").removeClass(".teaserHeadClosed");
    
    // HoverTooltip
    $("a.hoverTooltip").cluetip({
    	width: "150px", 
    	activation:"hover",
    	clickThrough: true,
    	dropShadow: false,
    	showTitle: false,
    	tracking: true,
    	splitTitle: '-',
    	topOffset: -20,
    	leftOffset: 15,
    	positionBy: 'mouse'
    });
    
}

function setDatePicker(){
    if($("html").attr("lang")=="en"){
        Date.dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
        Date.abbrDayNames = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
        Date.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
        Date.abbrMonthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
        Date.format = 'dd/mm/yyyy';
        Date.firstDayOfWeek = 1;		
    }else {
        Date.firstDayOfWeek = 1;
        Date.format = 'dd.mm.yyyy';
    };
    
    $(function()
    {
        $('.date-pick').datePicker({
            startDate:'01/01/1996'
        });
    });
}

//Initialize accordeon:
function setAccordion() {
	
    initAccordion({
        headerclass: "accordeonHead", //Shared CSS class name of headers group
        contentclass: "accordeonContent", //Shared CSS class name of contents group
        revealtype: "click", //Reveal content when user clicks or onmouseover the header? Valid value: "click" or "mouseover"
        collapseprev: false, //Collapse previous content (so only one open at any time)? true/false
        defaultexpanded: [0,1,2,3,4,5], //index of content(s) open by default [index1, index2, etc]. [] denotes no content.
        onemustopen: false, //Specify whether at least one header should be open always (so never all headers closed)
        animatedefault: false, //Should contents open by default be animated into view?
        persiststate: false, //persist state of opened contents within browser session?
        toggleclass: ["", "teaserHeadOpen"], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
        togglehtml: ["none", "", ""], //Additional HTML added to the header when it's collapsed and expanded, respectively  ["position", "html1", "html2"] (see docs)
        animatespeed: "fast" //speed of animation: "fast", "normal", or "slow"
    /*oninit:function(expandedindices){ //custom code to run when headers have initalized
			//do nothing
		},
		onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed
			//do nothing
		}*/
    })
}


// photogallery
var i = 0;

/* ajax */

var mycarousel_itemList = new Array();

function fillArray (values) {
    mycarousel_itemList.push (values);
}

function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt)
{ 
    // The index() method calculates the index from a
    // given index who is out of the actual item range.
    var idx = carousel.index(i, mycarousel_itemList.length);
   
    carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[idx - 1]));
    if($(".wochenrueckblick").length==0){
        $(item).mouseover (
            function(){
                $(".zoomBox").remove();
                var urlval= $(this).children().attr("src");
                var video = urlval.indexOf("Videos");
                if(video>0){
                    urlval = urlval.replace(".jpg", ",height=142,width=197.jpg");
                }else {
                    urlval = urlval.replace(".jpg", ",height=141,width=140.jpg");
                }
                var idval= $(this).children().attr("id");
			
                var titleval= $(this).children().attr("alt");
                var index = titleval.indexOf(":");
                if(index<0){
                    var name = titleval;
                    var desc = "";
                }else {// split name and description (for example in forscherprofile)
                    var name = titleval.substr(0, index+2);
                    var desc = titleval.substr(index+2, titleval.length);
                }
                $(this).parent().parent().after("<div class='zoomBox' style='display: none'><img src='"+urlval+"'/><div class='title'><a href='"+idval+"'>"+name+"</a></div><div class='subtitle'>"+desc+"</div></div>");
			
                var scroll_to = $(this).position();
                $(".zoomBox").css("left",scroll_to.left);
                $(".zoomBox").css("display","block");
	
	
                $(".zoomBox").mouseleave(
                		function(){
                			$(this).remove();
	                    }
	                );
                
               /*  $(".jcarousel-prev").click (
                    function(){
                        $(".zoomBox").remove();
                    });
                $(".jcarousel-next").click (
                    function(){
                        $(".zoomBox").remove();
                    });
               */
            });
    }
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
    carousel.remove(i);
};

function mycarousel_getItemHTML(item)
{
    if($(".wochenrueckblick").length>0){
        var content = '<a href="' + item.id + '"><img class="wr" src="' + item.url + '" alt="' + item.title + '" id="' + item.id + '" /><span class="wr">'+ item.title +'</span></a>';
    }else {
        var video = item.url.indexOf("Videos");
        if(video>0){
            item.url = item.url.replace(".jpg", ",height=94,width=131.jpg");
        }
        var content = '<img src="' + item.url + '" alt="' + item.title + '" id="' + item.id + '" />';
    }
    return content;
};


function initSlider () {
	
    $('.mycarousel').jcarousel({
    	itemFallbackDimension: 68,
    	wrap: 'circular',
        itemVisibleInCallback: {
            onBeforeAnimation: mycarousel_itemVisibleInCallback
        },
        itemVisibleOutCallback: {
            onAfterAnimation: mycarousel_itemVisibleOutCallback
        }
    });
}


function setParamAdvancedSearch(param) {
    $('#searchMode').attr('value', param);
}

function getParam (param) {
    var qs = location.search.substring(1);
    var nv = qs.split('&');
    var url = new Array();
	 
    for(i = 0; i < nv.length; i++){
        eq = nv[i].indexOf('=');
        url[nv[i].substring(0,eq).toLowerCase()] = unescape(nv[i].substring(eq + 1));
    }
	 
    if(typeof url[param] != "undefined" ){
        return url[param];
    }
}
