function Page() {

    this.initialize = function() {

        if (orion.event.listenToAfterAjax) {
            orion.event.listenToAfterAjax(orion.page.changed);
        }

        if (orion.event.listenToLocalFilterEnd) {
            orion.event.listenToLocalFilterEnd(orion.page.changed);
        }

        if (orion.event.listenToBodyPadding) {
            orion.event.listenToBodyPadding(orion.page.changed);
        }

        if (orion.event.listenToBoxToggled) {
            orion.event.listenToBoxToggled(orion.page.changed);
        }

        if (orion.event.listenToNotifClosed) {
            orion.event.listenToNotifClosed(orion.page.changed);
        }

        if (orion.event.listenToInputFileChanged) {
            orion.event.listenToInputFileChanged(orion.page.changed);
        }

        $(window).resize(function() {
            orion.event.fireEvent(orion.event.PAGE_RESIZED);
        });
    };

    this.changed = function() {
        orion.logger.log("orion.page.changed Page changed");
        orion.event.fireEvent(orion.event.PAGE_CHANGED);
    };

    this.listenToPageChanged = function(handler) {
        orion.event.listenTo(orion.event.PAGE_CHANGED, handler);
    };

};

orion.page = new Page();

// Evènements du composant
orion.event.PAGE_CHANGED = "orion.page.changed";
orion.event.PAGE_UNLOAD = "orion.page.unload";
orion.event.PAGE_RESIZED = "orion.page.resized";

orion.event.listenToPageUnload = function(handler) {
    $(document).on(orion.event.PAGE_UNLOAD, handler);
};

orion.event.listenToPageChanged = function(handler) {
    $(document).on(orion.event.PAGE_CHANGED, handler);
};

orion.event.listenToPageResized = function(handler) {
    $(document).on(orion.event.PAGE_RESIZED, handler);
};

$(document).ready(function() {
    orion.page.initialize();
});

