﻿// JScript File

Ext.namespace('FinnKodeWeb');

FinnKodeWeb.PanelHelpView = function(config) {
    // call superclass constructor
    FinnKodeWeb.PanelHelpView.superclass.constructor.call(this, config);

    this.source = '';
    this.nextAnchor = '';
    this.currentAnchor = '';

    this.scrollToAnchor = function(anchorName) {
        var q = 'a[name="' + anchorName + '"]';
        var doc = this.getFrameDocument();
        if (doc && doc.body) {
            var el = Ext.DomQuery.selectNode(q, doc);
            if (el) {
                try {
                    el.scrollIntoView(true);
                }
                catch (exception) {
                }
                this.currentAnchor = anchorName;
            }
        }
    };

    this.addListener('activate',
        function(panel) {
            if (this.nextAnchor != this.currentAnchor) {
                this.scrollToAnchor(this.nextAnchor);
            }
        },
        this);
    this.addListener('documentloaded',
        function(iframe) {
            this.scrollToAnchor(this.nextAnchor);
        },
        this);


    this.navigate = function(hashManager) {
        if (!hashManager ||
            !hashManager.bookSectionId ||
            !hashManager.source) return;

        this.nextAnchor = hashManager.anchor;
        if (hashManager.source != this.source) {
            this.source = hashManager.source;
            this.setSrc(this.source,
                false,
                function() {
                    this.scrollToAnchor(this.nextAnchor)
                },
                this);
        }
        else {
            this.scrollToAnchor(this.nextAnchor);
        }
    };

    var _defaultNavigated = false;
    this.navigateDefault = function() {
        if (!_defaultNavigated) {
            _defaultNavigated = true;
        }
    }

    this.updateHash = function(hashManager) {
        hashManager.bookSectionViewId = 'help';
        hashManager.source = this.source;
        hashManager.anchor = this.currentAnchor;
    }
}

Ext.extend(FinnKodeWeb.PanelHelpView, Ext.ux.ManagedIFrame.Panel, {
    autoScroll: true,
    layout: 'fit'
});
