

    /**
     * etup document
     */
    Event.observe(document, 'dom:loaded', function() {

        if (typeof window.parent.blockIds != 'undefined') {
            
            // repair local anchor scroll behaviour
            var aElements = $$('a');
            aElements.each(function(aElement) {
                    var uAParser = new Flog.UriParser($(aElement).href);
                    var uDParser = new Flog.UriParser(document.location.href);
    
                    if (uDParser.host == uAParser.host && uAParser.fragment && $$('body')[0].select('a[name="'+uAParser.fragment+'"]')[0]) {
                        $(aElement).setAttribute('href', 'javascript:void(0);');
                        Event.observe($(aElement), 'click', inlineAnchorRepair.bindAsEventListener(inlineAnchorRepair, $$('body')[0].select('a[name="'+uAParser.fragment+'"]')[0]));
                    }
                }
            );

            // attach blok scrolling links
            var blockIds = window.parent.blockIds;
    
            for (var index = 0; index < blockIds.length; index++) {
                var aElements = $$('a.Anchor-'+blockIds[index]);
                aElements.each(function(aElement) {
                    Event.observe($(aElement), 'click', scrollToDiv.bindAsEventListener(scrollToDiv, blockIds[index]));
                });
            }
        }
    });

    /**
     * alias method to parent
     */
    function scrollToDiv(event, id) {
        window.parent.scrollToDiv(event, id);
    }

    /**
     * scroll to named anchor
     *
     */
    function inlineAnchorRepair(event, aElement) {
        aElement.scrollTo();
    }

