$(document).ready(function() {

    $('a.lightbox').fancybox(
    {
        zoomSpeedIn:   300,
        zoomSpeedOut:  300,
        overlayShow:   true,
        titlePosition: 'inside' // alternativen: 'over' (transparent), 'outside' (achtung: nur einzeiliger text moeglich)
    });
    
    if($.browser.msie)
    {
        jQuery('.csc-textpic-single-image').each(
        function()
        {
            var realWidth = $(this).children('a').outerWidth();
            $(this).width(realWidth);
        });
    };
    
    //fuer den geliebten ie6 den dropdown dingsen
    if($.browser.msie  && (jQuery.browser.version.substr(0,3)=="6.0")){
        $('#navitop li').hover(
            function()
            {
                $(this).children('#navitop ul.dropdown, .tx-pilmailform-pi1').not('#navitop ul.dropdown:contains("...")').show();
            },
            function()
            {
                $(this).children('#navitop ul.dropdown').hide();
            }
        );
     };
    
    //letzte spalte (einrichtungen) zweispaltig
    $('.last-item-sub ul li').unwrap();
    elems = $('.last-item-sub li').size();
    elems2 = Math.floor(elems/2);
    $('.last-item-sub li:lt(' + elems2 + ')').wrapAll('<ul />');
    $('.last-item-sub li:gt(' + (elems2 - 1) + ')').wrapAll('<ul />');
    
    
    //verteilung der menuepunkte ueber die verfuegbare breite
    naviStretch();
    
    $('li.last-item .dropdown > li').css({'height':$('li.last-item .dropdown').height()});

    // hide attacalendar in sidebar when empty (not provided by extension)
    $('#sidebar .tx-attacalendar-pi1:contains("Kein Termin")').hide();    

    // Slideshow<s
    $('#theme').cycle({ slideExpr: 'span.slideshowimage' });
    
    // accessibility    
    $('#accessibility').ability({
      textsizer: true,
      textsizeclasses: ['m', 'l', 'xl'],
      savecookie: true
    });

    // Suchfeld leeren
    $('#search-input').focus(function () {$(this).attr('value','');});
    $('#search-form #search-button').click(function(event){
        if ( ($('#search-input').val() == 'Suchen...') || ($('#search-input').val() == '') ) {
            event.preventDefault();
            alert('Bitte geben Sie einen Suchbegriff ein.');
        }
    });

    // Navigation: strip empty uls 
    $('#navitop ul.dropdown:contains("...")').hide();
    
    // Standortkarte
    $("area").bind("mouseenter", function(e) {
        
        var offsetTop = 0;
        var offsetLeft = 65;
        var coords = $(this).attr('coords').split(',');
        var cssClass = $(this).attr('class');
        
        var newLeft = Number(coords[2]) + offsetLeft;
        var newTop = Number(coords[3]) + offsetTop;
        
        $('#' + cssClass).css({ 'display':'block','position':'absolute', 'top':newTop + 'px', 'left':newLeft + 'px' });
        $('#' + cssClass).addClass("show");
    }).bind("mouseout", function(e) {
        var cssClass = $(this).attr('class');
        $('#' + cssClass).css({ 'display':'none' });
        $('#' + cssClass).removeClass("show");
    });
    
    // billitoncart
    $('#content-text .tx-billitoncart-pi1:nth-child(even) .file').addClass('zebra'); // don't use :odd, use :nth-child(odd)
    $('.tx-pilmailform-pi1 #bestellform > input.text').text('leer').addClass('empty-basket').after('<p><strong>Bitte wählen Sie ein Element durch Klick auf den Einkaufswagen.</strong></p>');
    // Veranstaltungskalender
    $('#content-text .events-item:nth-child(even)').addClass('zebra'); // don't use :odd, use :nth-child(odd)
    
    var maxHeight = 0;
    $('#content-text .events-item div').each(
        function() {
            var height = $(this).height();
            if(height > maxHeight ) {
                maxHeight = height;
            }
        }
    );
    $('#content-text .events-item div').css("height",maxHeight);
    
    // Veranstaltungkalender: message when empty
    $('#content-text .tx-attacalendar-pi1:contains("Kein Termin")').replaceWith('<div class="csc-header"><h2>Derzeit ist kein Inhalt vorhanden.</h2></div>');

    // News: message when archive empty
    if($('#content-text .news-amenu-container ul li').html() ==  '')
    {
        $('#content-text .news-amenu-container h2').html('Derzeit ist kein Inhalt vorhanden.');
    }

    //platzanfrage: hide hint field
    jQuery('.tx_powermail_pi1_form script').next().hide();

    // Bildergalerien
    $('.thumb img').each(
        function()
        {
            thumbH = $(this).height();
            thumbW = $(this).width();
            //querformat
            if(thumbH < thumbW)
            {
                topShift = Math.round( ($(this).parent().height() - thumbH) /2);
                
                $(this).css({
                    'position': 'relative',
                    'top': topShift + 'px'
                });
            }
            //hochformat
            if(thumbH > thumbW)
            {
                leftShift = Math.round( ($(this).parent().width() - thumbW) /2);
                
                $(this).css({
                    'position': 'relative',
                    'left': leftShift + 'px'
                });
            }              
            
        }
    );
});


function naviStretch() {
    var a = getNaviChildren();
    var navitopWidth = getNaviWidth(a);
    var addPadding  = ( Math.ceil( (526 - navitopWidth) / a.length ) );

    //set calculated & rounded padding
    for (var i = 0; i < a.length; i++) {
        $(a[i]['element']).children('a, .csc-header').css('padding-right',addPadding+18+'px');
    }    
    
    //correct rounding tolerance in last element
    a = getNaviChildren();
    var navitopWidthNew = getNaviWidth(a);
    var difference = (527 - (navitopWidthNew))+1;
    $(a[a.length-1]['element']).children('a, .csc-header').css('padding-right',addPadding+difference+18+'px');
    
    //set width for child ul
    /*
    a = getNaviChildren();
    for (var i = 0; i < a.length; i++) {
        $(a[i]['element']).children('ul').css('width',a[i]['width']-1+'px');
    } 
    */
    
    // no other fix available
    if($.browser.msie  && (jQuery.browser.version.substr(0,3)=="6.0")){
        $('#navitop > li').not('.last-item, .callback').each (
            function()            
            {
                $(this).children('ul').css({
                    'margin-left' : '-' + ($(this).outerWidth() + 1) + 'px'
                })
            }
        );
    }
    
    $('.dropdown')
    .each
    (
        function()
        {
            if ( $(this).parent().hasClass('last-item') )
            {
                parentWidth = $(this).parent().outerWidth();
                $(this).css('width', (parentWidth * ( $(this).children().size() + 1 ) -1) +'px' );
                $(this).children().not('.last-item-sub').css('width', (parentWidth-1) +'px' );
                $('.last-item-sub').css('width', ((parentWidth*2)-1) +'px' ).children('ul').css('width', (parentWidth-1) +'px' );
                //$(this).css('width', '700px' );
            }
            else
            {
                $(this).css('width', $(this).parent().outerWidth()-1+'px');
            }
        }
    );
}




function getNaviChildren() {
    var a = [];
    
    $('#navitop').children().not($('.last-item')).each (
        function() {
            a.push({
                'element' : this,
                'class'   : $(this).attr('class'),
                'width'   : $(this).outerWidth()
            });
        }
    );
    return a;
}

function getNaviWidth(a) {
    var navitopWidth = 0;
    for (var i = 0; i < a.length; i++) {
        navitopWidth += a[i]['width'];
    }
    return navitopWidth;
}

