Ext.Epaper = function(config){
    Ext.apply(this, config);
    this.addEvents('beforeload','load','pagechange','mediaclick','download','shadowbox_open','shadowbox_close','action');
    Ext.Epaper.superclass.constructor.call(this);
};
Ext.extend(Ext.Epaper, Ext.util.Observable, {
    idLayer: null,
    closeHander: null,
    colorBackground: '#eeeeee',
    load: function(o) {
        this.idLayer = o.idLayer;
        this.closeHandler = o.closeHandler;
        if (!o.swfPath) o.swfPath = 'swf/';
        if (!o.xmlPath) o.xmlPath = 'epaper/';
        if (!o.policyFile) o.policyFile = '';
        if (!o.startpage) o.startpage = 1;
        if (o.colorBackground) this.colorBackground = o.colorBackground;
        var swfFile = 'ePaper.swf';
        var xmlFile = 'epaper.txt?rnd='+Math.random();
        if (document.location.href.indexOf('http') == -1)
        {
            swfFile = 'ePaperSA.swf';
            xmlFile = 'epaper_offline.txt';
        }
        swfobject.embedSWF(
            o.swfPath+swfFile, this.idLayer, "100%", "100%", "9.0.115", o.swfPath+"swf/expressInstall.swf",
            {
                policyFile: o.policyFile,
                xmlFile: xmlFile,
                basePath: o.xmlPath,
                startpage: o.startpage
            }, {
                allowScriptAccess: "always",
                bgcolor: this.colorBackground,
                allowFullscreen: "true"
            },
            {
                id: "epaperSWF"
            }
        );
        this.fireEvent('beforeload');
    },
    close: function() {
        eval(this.closeHandler)();
    },
    getFlashViewer: function() {
        return document.getElementById(this.idLayer);
    },
    hookAction: function(a) {
        if (!a || !a.action) return;
        switch (a.action) {
            case 'epaperReady':
                this.fireEvent('load');
                break;
            case 'pageChanged':
                this.fireEvent('pagechange',a.page);
                break;
            case 'mediaClicked':
                this.fireEvent('mediaclick',a.page,a.mediaNr);
                break;
            case 'downloadClicked':
                this.fireEvent('download');
                break;
            case 'shadowbox_open':
                this.fireEvent('shadowbox_open');
                break;
            case 'shadowbox_close':
                this.fireEvent('shadowbox_close');
                break;
            default:
                this.fireEvent('action',a);
                break;
        }
    }
});
var tgdEPaper = new Ext.Epaper();
function closeEPaperStandard()
{
    window.close();
}
function closeEPaper() {
    tgdEPaper.close();
}
function startShadowbox(imgs)
{
    var options = {
        displayNav: true,
        handleUnsupported: 'remove',
        autoplayMovies: false,
        continuous:     true,
        initialHeight: 600,
        initialWidth: 400
    };
    if ('content' in imgs)
    {
        if (imgs.player == 'flv')
        {
            if (imgs.content.indexOf("flv") == -1) imgs.player = 'iframe';
        } else {
            imgs.player = 'swf';
        }
    }
    Shadowbox.init(options);
    Shadowbox.open(imgs);
};
Ext.onReady(function() {
    if (!page || page <= 0) {
        page = 1;
    }
    var regexS = "[\\?&]"+'closeAction'+"=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    var closeEPaperAction = 'closeEPaperStandard';
    if(results != null) closeEPaperAction = results[1];
    document.getElementById('javascriptHint').style.display = 'none';
    var version = swfobject.getFlashPlayerVersion().major;
    if (version < 9)
    {
        document.getElementById('flashHint').style.display = 'block';
    } else {
        document.getElementById('previewImage').style.display = 'none';
        tgdEPaper.load({
            idLayer: 'epaperSWF',
            closeHandler: closeEPaperAction,
            swfPath: 'epaper/',
            xmlPath: 'epaper/',
            colorBackground: colorBackground?colorBackground:null,
            startpage: page
        });
    }
});
