function init_header_promotion() {
    if (!($.browser.msie && $.browser.version <= 6)) {
        var container = $('#header_promotion');
        container.addClass('loaded');
        
        $('#header_promotion > div').wrapAll('<div class="items" />');
        
        var navigation = $('<div class="navigation" />').prependTo(container);
        var navigation_items = $('<div class="nav_items" />').appendTo(navigation);
        var navigation_items_list = $('<ul />').appendTo(navigation_items);
        
        $('> .items > div', container).each(function(index) {
            var metadata = $.parseJSON(decodeURIComponent($(this).metadata().data));
            metadata.index = index;
            $(this).data('metadata', metadata);
            var list_item = $('<li />');
            var link = $('<a href="#' + $(this).attr('id') + '" title="' + metadata.title + '" />').appendTo(list_item);
            if (metadata.title) {
                $('<span class="title">' + cropText(metadata.title, 25) + '</span>').appendTo(link);
            }
            list_item.appendTo(navigation_items_list);
            
            link.click(function(event) {
                event.preventDefault();
                $('> .items', container).cycle(index);
            })
        });
        
        var last_nav_item = $('.navigation .nav_items li', container).last();
        if ((last_nav_item.position().top + last_nav_item.height()) > $('.navigation .nav_items', container).height()) {
            var nav_max_top_margin = -(last_nav_item.position().top + last_nav_item.height() - $('.navigation .nav_items', container).height());
        } else {
            var nav_max_top_margin = 0;
        }
        
        $('> .items', container).cycle({
            fx: 'scrollHorz',
            timeout: 0,
            before: function() {
                var data = $(this).data('metadata');
                $('.navigation .nav_items li', container).removeClass('active');
                var nav_item = $($('.navigation .nav_items li', container)[data.index]);
                nav_item.addClass('active');
                new_top_margin = -(nav_item.position().top - ($('.navigation .nav_items', container).height() - nav_item.height())/2);
                if (new_top_margin <= nav_max_top_margin) {
                    new_top_margin = nav_max_top_margin;
                } else if (new_top_margin >= 0) {
                    new_top_margin = 0;
                }
                $('.navigation .nav_items ul', container).animate({marginTop: new_top_margin});
            }
        });
    }
}
