/* Übernommen aus späterer Kit-Version!*/
(function ($)
{
    /* Banner ausrichten und einblenden */

    $.fn.bannerAlign = function (id, tagChildren, command, adjustmentX, adjustmentY)
    {
        /* Variablen definieren */

        var banner = $('#' + id),
            bannerCheck = banner.find(tagChildren).length,
            bannerHeight,
            magnet,
            magnetCheck,
            magnetHeight,
            magnetPosition;

        /* auf Alle Kindelmente prüfen */

        if (tagChildren == '' || tagChildren == 'all')
        {
            bannerCheck = banner.children().children().length;
        }

        if (bannerCheck)
        {
            magnet = $('div.js' + id + 'Magnet');
            magnetCheck = magnet.length;

            if (magnetCheck)
            {
                banner.show();
                magnetPosition = magnet.position();

                if (magnetPosition.top)
                {
                    banner.css('top', magnetPosition.top + 'px');
                }
                if (magnetPosition.left)
                {
                    banner.css('left', magnetPosition.left + 'px');
                }

                /* Platzhalter einfügen */

                if (command === 'displace')
                {
                    bannerHeight = banner.outerHeight();
                    magnetHeight = magnet.outerHeight();

                    /* IE6 und IE7 möchten CSS-Anweisungen getrennt haben */

                    magnet.css(
                    {
                        'height': bannerHeight + 'px',
                        'width': '1px'
                    });
                }
                
                /* Verschiebung */
                
                if (command === 'adjust')
                {
                    if (adjustmentX)
                    {
                            banner.css('left', magnetPosition.left + adjustmentX + 'px');
                    }

                    if (adjustmentY)
                    {
                            banner.css('top', magnetPosition.top + adjustmentY + 'px');
                    }
                }
            }
        }
    }

    /* Banner scrollt mit, merkt sich jedoch die Ausgangsposition */

    $.fn.bannerScrollTop = function (id, topMinimum)
    {
        var banner = $('#' + id),
            bannerCheck = banner.length,
            bannerTop,
            bannerTopNew,
            bannerTopOriginal,
            bannerHeight,
            documentHeight,
            documentHeightOriginal,
            windowScrollTop;

        if (bannerCheck)
        {
            bannerTop = banner.
                position().
                top;
            bannerTopOriginal = banner.data('bannerTopOriginal');
            bannerHeight = banner.outerHeight();
            windowScrollTop = $(window).scrollTop();
            documentHeight = $(document).height();
            documentHeightOriginal = $(document).data('documentHeightOriginal');

            /* Originalwerte speichern */

            if (typeof(bannerTopOriginal) == 'undefined')
            {
                banner.data('bannerTopOriginal', bannerTop);
            }
            if (typeof(documentHeightOriginal) == 'undefined')
            {
                $(document).data('documentHeightOriginal', documentHeight);
            }

            /* Banner Top setzen */

            if (bannerTop < bannerTopOriginal)
            {
                /* Originale Banner Position erreicht bzw. übersprungen */

                bannerTopNew = bannerTopOriginal;
                banner.css('position', 'absolute');
            }
            else if ((windowScrollTop + topMinimum + bannerHeight) < documentHeightOriginal && (windowScrollTop + topMinimum) > bannerTopOriginal)
            {

                /* Anweisung für IE6 da er kein position:fixed kann */

                if (kit.browser.msie6)
                {
                    bannerTopNew = windowScrollTop + topMinimum;
                    banner.css('position', 'absolute');
                }
                else
                {
                    bannerTopNew = topMinimum;
                    banner.css('position', 'fixed');
                }
            }

            /* Banner ausrichten */

            banner.css('top', bannerTopNew);
        }
    }

    /* Banner zentrieren */

    $.fn.bannerCenter = function (id, target)
    {
        var banner = $('#' + id),
            target = $('#' + target),
            bannerCheck = banner.length,
            targetCheck = target.length,
            bannerLeft,
            bannerWidth,
            targetLeft,
            targetWidth;

        if (bannerCheck && targetCheck)
        {
            bannerWidth = banner.width();
            targetWidth = target.width();
            targetLeft = target.
                offset().
                left;
            bannerLeft = (targetWidth - bannerWidth) / 2 + targetLeft;

            if (bannerLeft)
            {
                banner.css(
                {
                    'position' : 'absolute',
                    'left' : bannerLeft
                });
            }
        }
    }

    /* wrapper inklusive Banner zentrieren */

    $.fn.wrapperCenter = function (id, banner)
    {
        var wrapper = $('#' + id),
            banner = $('#' + banner),
            bannerCheck = banner.length,
            wrapperCheck = wrapper.length,
            bannerWidth,
            windowWidth,
            wrapperMargin,
            wrapperWidth;

        if (bannerCheck && wrapperCheck)
        {
            windowWidth = $(window).width();
            wrapperWidth = wrapper.width();
            bannerWidth = banner.width();
            wrapperMargin = (windowWidth - wrapperWidth) / 2 - bannerWidth / 2;
            wrapper.css({
                'margin-left' : wrapperMargin + 'px',
                'margin-right' : wrapperMargin + 'px'
            });
        }
    }
})(jQuery);
