//ie6?
isIE6 = false;

if (navigator.appVersion.indexOf("MSIE 6.0") != -1) {
    isIE6 = true;
    //ie6 background flicker bugfix
    document.execCommand("BackgroundImageCache", false, true);
}

//ie? box model?
var isIE = false;
var quirks = false;

if (navigator.appVersion.indexOf("MSIE") != -1) {
    isIE = true;

    if (document.compatMode == "BackCompat") {
        quirks = true;
    }
}

function writelog(message) {
    document.getElementById('log').innerHTML = document.getElementById('log').innerHTML + message + "\n";
}


//safari 3?
isSafari3 = false;
if (window.devicePixelRatio) isSafari3 = true;
var noflyout = false;
function showMegaDropdown(which) {
    currentTab = which;
    //document.getElementById(currentDropdown).style.display = 'block';
    if (document.getElementById(currentTab).className.indexOf('noDropdown') != -1) noflyout = true;

    if (document.getElementById(currentTab).className.indexOf('selected') != -1) {
        document.getElementById(currentTab).className = 'selected tab_hover';
    }
    else {
        document.getElementById(currentTab).className = 'tab_hover';
    }
}

function hideMegaDropdown(which) {
    currentDropdown = which;

    //document.getElementById(currentDropdown).style.display = 'none';
    if (document.getElementById(currentTab).className.indexOf('selected') != -1) {
        if (noflyout == true) {
            document.getElementById(currentTab).className = 'tab noDropdown selected';
            noflyout = false;
        }
        else {
            document.getElementById(currentTab).className = 'tab selected';
        }
    }
    else {
        document.getElementById(currentTab).className = 'tab';
    }
}

function setActiveStatus(which) {
    if (document.getElementById(which.id).className != 'tab_active')
        document.getElementById(which.id).className = 'tab_active';
    else
        document.getElementById(which.id).className = 'tab_hover';
}

//jquery ready
jQuery(document).ready(function() {

    var $dropDownList = jQuery('select');
    function megaHoverOver() {
        $dropDownList.blur();
        showMegaDropdown(jQuery(this).find(".tab").attr('id'));
        megaID = jQuery(this).find(".megadropdown").attr('id');
        //jQuery(this).find(".megadropdown").slideDown('slow');
        jQuery(this).find(".megadropdown").stop().fadeTo('slow', 1, function() {
            if (jQuery.browser.msie) document.getElementById(megaID).style.removeAttribute('filter');
        }).show();
    }

    function megaHoverOut() {
        hideMegaDropdown(jQuery(this).find(".tab").attr('id'));
        jQuery(this).find(".megadropdown").stop().fadeTo('fast', 0, function() {
            jQuery(this).hide();
        });
    }


    var config = {
        sensitivity: 1, // number = sensitivity threshold (must be 1 or higher)
        interval: 1, // number = milliseconds for onMouseOver polling interval
        over: megaHoverOver, // function = onMouseOver callback (REQUIRED)
        timeout: 0, // number = milliseconds delay before onMouseOut
        out: megaHoverOut // function = onMouseOut callback (REQUIRED)
    };

    jQuery("ul#topnav li .megadropdown").css('opacity', 0);
    jQuery("ul#topnav li").hoverIntent(config);


// init Country and Language Layer 
    jQuery(".wrapper_language_layer").countryLanguageMenu( 
        // select JSON Object with country/language parameters 
    { clObject: countryLanguageMenu.inputValues}, 
        // callback function with parameters country and language 
            function(parameter_country, parameter_language) {
                              	var re = new RegExp('(.*)\.[a-z]{2,3}/([a-z]{2,}/[a-z]{2}/|[a-z]{2}/)(.*)', 'g');
																var currentURL = jQuery(location).attr('href');
																var currentProtocol = window.location.protocol;																															
																var m = re.exec(currentURL);
																if (m == null) {
																	jQuery(location).attr('href', currentURL);
																} else {
																	if (parameter_country == 'true'){
																		jQuery(location).attr('href',currentProtocol+'//'+parameter_language+'index.jsp');																		
																	}else{
																		jQuery(location).attr('href',currentProtocol+'//'+parameter_language+currentURL.replace(re,'$3'));
																	}		
																}												
            } 
            ); 

    
    if (jQuery("#worldwideSelect").length > 0){

            jQuery("#worldwideSelect").worldwideMenu(

            {
                // select JSON Object with continent/country parameters
                wwObject: worldwideMenu.world,
                // set id of lightbox
                lightbox: "lightboxID_1111",
                // set the opacity of the background map
                mapOpacity: 0.4
            }
        );

    }

    jQuery('.printLightbox').click(function() {

        var pageY = jQuery(window).scrollTop();
        jQuery('body').height(jQuery('body').height());
        var $content = jQuery('.content').hide();
        var $lightbox = jQuery(this).parents('.lightbox').addClass('printElement').addClass($content.attr('class')).show();
        var $header = jQuery('div.header').after($lightbox);

        window.print();

        /* reset all print changes */
        $content.show();
        jQuery('body').height('');
        jQuery(window).scrollTop(pageY);

        return false;
    })
  
    jQuery('.print').click(function() {
        if (jQuery(this).hasClass('printLightbox')) return;
        var $textarea = jQuery('textarea');
        resizeTextarea($textarea, false);
        window.print();
        resizeTextarea($textarea, true);
        return false;
    })
});

function resizeTextarea($textarea, reset) {
    // Only textarea's auto-resize:
    if (reset) {
        $textarea.each(function() {
            jQuery(this).height("")
            jQuery(this).width("");
        });
    }
    else {
        $textarea.each(function() {
            jQuery(this).width("400px");
            var sheight = this.scrollHeight;
            // detect height second time to make it work on IE
            sheight = this.scrollHeight;
            jQuery(this).height(sheight)
        });
    }
}

jQuery(document).ready(function() {
    jQuery('.tabWrapper .tabs a').click(function() {
        // remove active class from all tabs
        jQuery(this).siblings().removeClass('active');
        // set clicked tab active
        jQuery(this).addClass('active');
        // set all tabContent elements to display:none
        jQuery(this).parent().next().children().each(function() {
            jQuery(this).css('display', 'none');
        });
        // set the corresponding (by index) tabContent element to display:block
        jQuery(this).parent().next().children().eq(jQuery(this).index()).css('display', 'block');
    });

    /*
     jQuery('.glossaryterm a.arrow.down').click(function() {
     if (jQuery(this).parents('div.glossaryterm').hasClass('viewfull')) {
     jQuery(this).parents('div.glossaryterm').removeClass('viewfull');
     jQuery(this).removeClass('up');
     jQuery(this).addClass('down');
     jQuery(this).get(0).innerHTML = 'Show details';
     }
     else {
     jQuery(this).parents('div.glossaryterm').addClass('viewfull');
     jQuery(this).removeClass('down');
     jQuery(this).addClass('up');
     jQuery(this).get(0).innerHTML = 'Hide details';
     }
     });
     */

    jQuery('a.arrow.down').click(function() {
        this.blur();
        if (jQuery(this).parent().parent().hasClass('viewfull')) {
            jQuery(this).parent().parent().removeClass('viewfull');
            jQuery(this).removeClass('up');
            jQuery(this).addClass('down');
        }
        else {
            jQuery(this).parent().parent().addClass('viewfull');
            jQuery(this).removeClass('down');
            jQuery(this).addClass('up');
        }
    });

    if ((jQuery('.mycarousel').jcarousel) && (document.location.href.indexOf('print=true') == -1)) {
        jQuery('.mycarousel').jcarousel({
            scroll:1
        });
    }

    jQuery("table.sortable").tablesorter();

    try {
        setFontSize(jQuery.cookie('fontsize'));
    } catch(e) {
    }

    if (document.addEventListener) {
        document.addEventListener("DOMFocusIn", checkBlur, true);
        document.addEventListener("mousedown", checkBlur, true);
    } else if (document.attachEvent) {
        document.attachEvent("onmousedown", checkBlur);
    }

    if (window.Node && Node.prototype && !Node.prototype.contains) {
        Node.prototype.contains = function (arg) {
            return !!(this.compareDocumentPosition(arg) & 16);
        };
    }


    jQuery('.megadropdown').removeAttr('onmouseout');
    jQuery('.megadropdown').mouseleave(function(event) {
        hideMegaDropdown(jQuery(this).get(0));
    });

    try {
        jQuery("table.sortable").tablesorter();
        setFontSize(jQuery.cookie('fontsize'));
    } catch(e) {
    }

    var linkArray = ["fo_1", "fo_2", "fo_3", "fo_4"]; 
        jQuery.each(linkArray, function() { 
                jQuery("#" + this).removeAttr("href"); 
           });


    jQuery('#stage').jsStage({
        time: 5,
        hold: 20,
        autochange: true
    });

    abbinderHeight();


});


// Set the height of all abbinder boxes to the same height
function abbinderHeight() {
    var $abbinder = jQuery('.abbinder');
    jQuery.each($abbinder, function(index) {
        var $abbinderBoxes = jQuery(this).find('.layoutBox');
        var maxHeight = 0;
        // find Box with maximum height
        jQuery.each($abbinderBoxes, function(index) {
            if (jQuery(this).height() > maxHeight) {
                maxHeight = jQuery(this).height();
            }
        })
        // set height of all other boxes
        jQuery.each($abbinderBoxes, function(index) {
            // check if imageBox or not
            if (jQuery(this).hasClass("imageBox")) {
                jQuery(this).find('.layoutBoxMiddle').height(maxHeight - 34)
            } else {
                jQuery(this).find('.layoutBoxMiddle').height(maxHeight - 34)
            }
        })
    })


}

         



var checkBlur = function (e) {
    e = e || window.event;
    var target = e.target || e.srcElement || false;
    if (!target) {
        return;
    }
    if (jQuery('div.kalender_layer:visible').length > 0) {
        var container = jQuery('div.kalender_layer:visible').get(0);
        if (target != container && !container.contains(target)) {
            jQuery('div.kalender_layer:visible').hide();
        }
    }
};


function accordionToggle(elem) {
    elem.blur();
    if (elem.parent().next().css('display') == 'block') {
        elem.removeClass('active');
        elem.parent().next().css('display', 'none');
    }
    else {
        elem.closest('div.accordionWrapper').find('div.accordionContent').css('display', 'none');
        elem.closest('div.accordionWrapper').find('a.accordionToggle.active').removeClass('active');
        elem.addClass('active');
        elem.parent().next().css('display', 'block');
    }
}

function togglePressArchiveAccordion(obj) {
    obj.blur();
    entryElem = jQuery(obj).closest('div.accordionElement');
    if (entryElem.hasClass('active')) {
        entryElem.removeClass('active');
    }
    else {
        entryElem.closest('div.accordionWrapper').find('div.accordionElement.active').removeClass('active');
        entryElem.addClass('active');
    }
}

function toggleSuccessStoriesAccordion(obj) {
    obj.blur();
    entryElem = jQuery(obj).closest('div.accordionElement');
    if (entryElem.hasClass('active')) {
        entryElem.removeClass('active');
    }
    else {
        entryElem.closest('div.accordionWrapper').find('div.accordionElement.active').removeClass('active');
        entryElem.addClass('active');
    }
}

function closeLightbox(obj) {
    jQuery(obj).parents('div.lightbox').css('display', 'none');
    hideLightboxBg();
    return false;
}

function closeVideoLightbox(obj) {
    divID = jQuery(obj).closest('div.lightboxMiddle').find('div.flashContainer').children().first().get(0).id;
    jQuery(obj).closest('div.lightboxMiddle').find('div.flashContainer').children().remove();
    jQuery(obj).closest('div.lightboxMiddle').find('div.flashContainer').get(0).innerHTML = '<div id="' + divID + '"></div>';
    closeLightbox(obj);
}

function hideLightboxBg() {
    document.getElementById('darken_site').style.display = 'none';
    document.getElementById('scrollbugfix').style.display = 'none';
}

function showLightboxBg() {
    document.getElementById('darken_site').style.display = 'block';
    document.getElementById('scrollbugfix').style.display = 'block';
}

var POPUP_OFFSET_TOP = 75;
function openLightbox(id, bgal, curimg) {
    var tmpTopOffset = POPUP_OFFSET_TOP;
    if (checkBrowser('MSIE')) tmpTopOffset += document.documentElement.scrollTop;
    else tmpTopOffset += window.pageYOffset;

    document.getElementById(id).style.top = tmpTopOffset + 'px';
    showLightboxBg();
    if (openLightbox.arguments.length > 1) bilderGalerieShow(bgal, curimg);
    document.getElementById(id).style.display = 'block';

    return false;
}

function openGMapsLightbox(id, gmapsid) {
    openLightbox(id);
    eval(gmapsid + '_initialize();');
    return false;
}

function checkBrowser(browser) {
    return (navigator.userAgent.indexOf(browser) != -1);
}

function toggleTabBox(id, obj) {
    obj.blur();
    jQuery(obj).parent().children('.active').removeClass('active');
    jQuery(obj).parent().parent().children('div.tabPanelContent').css('display', 'none');
    jQuery(obj).addClass('active');
    jQuery('#' + id).css('display', 'block');
}

function setGraphicDropDown(obj, id) {
    document.getElementById(id).value = obj.options[obj.selectedIndex].text;
}

function toggleSHPChapter(obj) {
    obj.blur();
    chapterElem = jQuery(obj).closest('div.shp_chapter');
    if (chapterElem.hasClass('active')) {
        chapterElem.removeClass('active');
    }
    else {
        chapterElem.addClass('active');
    }
}

function setFontSize(desiredSize) {
    jQuery('body').removeClass('fontsize-medium');
    jQuery('body').removeClass('fontsize-large');
    jQuery('.toolbar .size a').removeClass('active');
    switch (desiredSize) {
        case 'medium':
            jQuery('body').addClass('fontsize-medium');
            jQuery('.toolbar .size .sizeNormal').addClass('active');
            jQuery.cookie('fontsize', 'medium', { path: '/' });
            break;
        case 'large':
            jQuery('body').addClass('fontsize-large');
            jQuery('.toolbar .size .sizeBig').addClass('active');
            jQuery.cookie('fontsize', 'large', { path: '/' });
            break;
        default:
            jQuery('.toolbar .size .sizeSmall').addClass('active');
            jQuery.cookie('fontsize', 'normal', { path: '/' });
    }
}

function bilderGaleriePrev(obj, bgal) {
    obj.blur();
    jQuery('#' + bgal.galerie[bgal.curImg][0]).removeClass('active');
    jQuery('#' + bgal.galerie[bgal.curImg][1]).removeClass('active');

    if (bgal.curImg > 0)
        bgal.curImg = bgal.curImg - 1;
    else
        bgal.curImg = bgal.galerie.length - 1;

    jQuery('#' + bgal.galerie[bgal.curImg][0]).addClass('active');
    jQuery('#' + bgal.galerie[bgal.curImg][1]).addClass('active');
    jQuery(obj).closest('div.lightboxContentWrapper').find('div.lightboxContent img').get(0).src = bgal.galerie[bgal.curImg][2];
}

function bilderGalerieNext(obj, bgal) {
    obj.blur();
    jQuery('#' + bgal.galerie[bgal.curImg][0]).removeClass('active');
    jQuery('#' + bgal.galerie[bgal.curImg][1]).removeClass('active');

    if (bgal.curImg < bgal.galerie.length - 1)
        bgal.curImg = bgal.curImg + 1;
    else
        bgal.curImg = 0;

    jQuery('#' + bgal.galerie[bgal.curImg][0]).addClass('active');
    jQuery('#' + bgal.galerie[bgal.curImg][1]).addClass('active');
    jQuery(obj).closest('div.lightboxContentWrapper').find('div.lightboxContent img').get(0).src = bgal.galerie[bgal.curImg][2];
}

function bilderGalerieShow(bgal, curimg) {
    jQuery('#' + bgal.galerie[bgal.curImg][0]).removeClass('active');
    jQuery('#' + bgal.galerie[bgal.curImg][1]).removeClass('active');

    bgal.curImg = curimg;

    jQuery('#' + bgal.galerie[bgal.curImg][0]).addClass('active');
    jQuery('#' + bgal.galerie[bgal.curImg][1]).addClass('active');

    document.getElementById('lightbox_image').src = bgal.galerie[bgal.curImg][2];
}

function Bildergalerie(galerie, curImg) {
    this.galerie = galerie;
    this.curImg = curImg;
}

function openKalenderLayer(id) {
    //	showLightboxBg();

    /*	document.getElementById('clickdetect').style.display = 'block';
     jQuery('#clickdetect').click(function() {
     closeKalenderLayer(document.getElementById(id));
     document.getElementById('clickdetect').style.display = 'none';
     });
     */

    document.getElementById(id).style.display = 'block';
}

function closeKalenderLayer(obj) {
    jQuery(obj).closest('div.kalender_layer').css('display', 'none');
    hideLightboxBg();
}

function setKalenderDate(obj, formInputId, dateValue) {
    document.getElementById(formInputId).value = dateValue;
    closeKalenderLayer(obj);
}

function openInfoLayer(elem) {
    closeAllInfoLayers();
    elem.next().show();
    elem.parent().parent().addClass('hasLayer');
}

function closeAllInfoLayers() {
    jQuery('div.form_error_layer').hide();
    jQuery('div.form_error_layer').closest('.form_row').removeClass('hasLayer');
}

function closeInfoLayer(elem) {
    elem.blur();
    elem.parent().parent().hide();
    elem.parent().parent().parent().parent().removeClass('hasLayer');
}

function listMoreToggle(linkElem) {
    /*
     * Code convention (minimal):
     * <ul> list items </ul>
     * <a class="arrow"></a>
     * <a class="arrow up" style="display:none;"></a>
     */

    if (linkElem.hasClass('up')) {
        // hide additional list items
        linkElem.hide();
        linkElem.prev().show();
        linkElem.prev().prev().removeClass('viewfull');
    }
    else {
        // show additional list items
        linkElem.hide();
        linkElem.next().show();
        linkElem.prev().addClass('viewfull');
    }
    return false;
}

var calObj = new Array();

function CalData(year, month, day, todayYear, todayMonth, todayDay, calId, inputId) {
    this.year = year;
    this.month = month;
    this.day = day;
    this.todayYear = todayYear;
    this.todayMonth = todayMonth;
    this.todayDay = todayDay;
    this.calId = calId;
    this.inputId = inputId;

    this.updateRendering = function() {
        jQuery('#' + calId + ' div.jahr_text').get(0).innerHTML = this.year;
        jQuery('#' + calId + ' div.monat_text').get(0).innerHTML = getMonthText(this.month);
        jQuery('#' + calId + ' span.table').get(0).innerHTML = renderCalenderHTML(this);
    }
}

function renderCalenderHTML(calData) {
    leftMostDay = 1 - (((new Date(calData.year, calData.month - 1, 1)).getDay() + 6) % 7);
    lastDay = 32 - new Date(calData.year, calData.month - 1, 32).getDate();
    calenderDays = '';

    for (i = 0; i < 6; i++) {
        calenderDays += '<tr>';
        for (j = 0; j < 7; j++) {
            day = i * 7 + j + leftMostDay;

            if (day <= 0 || day > lastDay)
                calenderDays += composeEmptyDayHTML();
            else
                calenderDays += composeDayHTML('' + day, '' + (day < 10 ? '0' : '') + day + '.' + (calData.month < 10 ? '0' : '') + calData.month + '.' + calData.year, calData);
        }
        calenderDays += '</tr>';
    }

    return calStartConst + calenderDays + calEndConst;
}

function getMonthText(nr) {
    if (typeof(monthLanguageText) != 'undefined')
        return monthLanguageText[nr - 1];
    else
        return 'language const not found';
}

function calenderYearPrev(obj, calData) {
    obj.blur();
    calData.year--;
    calData.updateRendering();
}

function calenderYearNext(obj, calData) {
    obj.blur();
    calData.year++;
    calData.updateRendering();
}

function calenderMonthPrev(obj, calData) {
    obj.blur();
    if (calData.month > 1) {
        calData.month--;
    }
    else {
        calData.month = 12;
        calData.year--;
    }
    calData.updateRendering();
}
function calenderMonthNext(obj, calData) {
    obj.blur();
    if (calData.month < 12) {
        calData.month++;
    }
    else {
        calData.month = 1;
        calData.year++;
    }
    calData.updateRendering();

}

function composeEmptyDayHTML() {
    return '<td>&nbsp;</td>';
}

function composeDayHTML(day, dateString, calData) {
    ergStr = '';
    if ((calData.todayYear == calData.year) && (calData.todayMonth == calData.month) && (calData.todayDay == day))
        ergStr += '<td class="active">';
    else
        ergStr += '<td>';

    ergStr += '<a href="javascript://" onclick="setKalenderDate(this, \'' + calData.inputId + '\', \'' + dateString + '\');">' + day + '</a></td>';

    return ergStr;
}


var calStartConst = '';
calStartConst += '<table cellpadding="0" cellspacing="0" border="0" summary="" width="203">';
calStartConst += '<thead>';
calStartConst += '<tr>';
calStartConst += '<th>Mo</th>';
calStartConst += '<th>Tu</th>';
calStartConst += '<th>We</th>';
calStartConst += '<th>Th</th>';
calStartConst += '<th>Fr</th>';
calStartConst += '<th>Sa</th>';
calStartConst += '<th>Su</th>';
calStartConst += '</tr>';
calStartConst += '</thead>';
calStartConst += '<tbody>';

var calEndConst = '';
calEndConst += '</tbody>';
calEndConst += '</table>';

function resetForm(form) {
    form.reset();
}

// from inline Scripts
// Head
// noscript style sheet
document.documentElement.className += " js";

//recommendation lightbox
jQuery(document).ready(function() {
		
	jQuery("#recommend").validate({
		errorLabelContainer: "#recommend_error2",
		highlight: function(element, errorClass){
			jQuery(element).parent().addClass("error");
		},
		unhighlight: function(element, errorClass){
			jQuery(element).parent().removeClass("error");
		},
		invalidHandler: function(e, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = 'Sie haben nicht alle Pflichtfelder ausgefüllt.';
				jQuery("#recommend_error").html(message);
				jQuery("#recommend_error").show();
			} else {
				jQuery("#recommend_error").hide();
			}
		},
		submitHandler:function(form){
			submit_form();
		}	
	});	
});
		  
function reset_recommend_box(){
	 jQuery(".canReset").val("");
} 
	     
function submit_form(){
	  jQuery("#recommend").validate();
	  var dataString = jQuery("#recommend").serialize();
	  jQuery.ajax({
	    type:"POST",
	url: "recommend.form-DE",
	data: dataString,
	dataType: "html",
	    success: function(data){}
	  });
	  closeLightbox(jQuery("#recommend_lb"));
}

