/**
 * @author Bastian Jansen
 *
 * (C) Bastian Jansen, scaleweb.de
 */
var lEffectInProgress = false;
var link = '';
var preLink = -1;
var preLinkHeight = 0;
var preLinkFrag = '';

var l_loadHeight= 0;
var l_oldHeight= 0;

function linkObserver(notificationType, notifier, data){
    if (notificationType == "onPostUpdate") {
        if (data.content) {
            var effect_in = new FadeSlidePanel('panel_1', {
                sto: loadHeight,
                sfrom: 0,
                to: fadeTO,
                from: fadeFROM,
                duration: fadeIN_DURATION,
                sduration: slideIN_DURATION,
                horizontal: false,
                finish: function(){
                    lEffectInProgress = false;
                    //initScroll();
                    oldHeight = loadHeight;
                    visiblePanels[1] = 1;
                    if (preLink == 0) {
                        var fr = preLinkFrag;
                        var h = preLinkHeight;
                        preLink = -1;
                        loadLink(fr, h);
                    }
                }
            });
            effect_in.start();
        }
        else {
            alert("Dokument konnte nicht gefunden werden!");
            lEffectInProgress = false;
            link = '';
        }
    }
    if (notificationType == "onLoadError") {
        alert("Dokument konnte nicht gefunden werden!");
        lEffectInProgress = false;
        link = '';
    }
};

function linkLinkObserver(notificationType, notifier, data){
    if (notificationType == "onPostUpdate") {
        if (data.content) {
            if (loadHeight != oldHeight) {
                var effect = new FadeGrowPanel('panel_1', {
                    to: fadeTO,
                    from: confadeTO,
                    gto: loadHeight,
                    gfrom: oldHeight,
                    duration: fadeOUT_DURATION,
                    finish: function(){
                        lEffectInProgress = false;
                        initScroll();
                        oldHeight = loadHeight;
                        visiblePanels[1] = 1;
                        if (preLink == 0) {
                            var fr = preLinkFrag;
                            var h = preLinkHeight;
                            preLink = -1;
                            loadLink(fr, h);
                        }
                    }
                });
                effect.start();
            }
            else {
                var effect = new Spry.Effect.Fade('panel_1', {
                    to: fadeTO,
                    from: confadeTO,
                    duration: fadeOUT_DURATION,
                    finish: function(){
                        lEffectInProgress = false;
                        //initScroll();
                        visiblePanels[1] = 1;
                        if (preLink == 0) {
                            var fr = preLinkFrag;
                            var h = preLinkHeight;
                            preLink = -1;
                            loadLink(fr, h);
                        }
                    }
                });
                effect.start();
            }
        }
        else {
            alert("Dokument konnte nicht gefunden werden!");
            lEffectInProgress = false;
            link = '';
        }
    }
    if (notificationType == "onLoadError") {
        alert("Dokument konnte nicht gefunden werden!");
        lEffectInProgress = false;
        link = '';
    }
};

function loadLink(frag, inheight){
    var height = 0;
    if (inheight == null || typeof inheight == 'undefined' || inheight == '') {
        height = globalHeight_Panle1;
    }
    else {
        height = inheight;
    }
    
    if (lEffectInProgress) {
        preLinkHeight = height;
        preLinkFrag = frag;
        preLink = 0;
        return;
    }
    if (link == frag) {
        var highlight = new Spry.Effect.Highlight('panel_1', {
            duration: 300,
            from: '#FFFFFF',
            to: '#87A7D6',
            restoreColor: '#FFFFFF',
            toggle: true
        });
        highlight.start();
        return;
    }
	oldHeight= currentHeight_Panle1;
    currentHeight_Panle1 = height;
    loadHeight = height;
    if (visiblePanels[1] == 1) {
        var effect = new Spry.Effect.Fade('panel_1', {
            to: confadeTO,
            from: fadeTO,
            duration: fadeIN_DURATION,
            setup: function(){
                lEffectInProgress = true;
            },
            finish: function(){
                var tmp = new Spry.Widget.HTMLPanel('panel_1', {
                    evalScripts: true
                });
                tmp.addObserver(linkLinkObserver);
                tmp.loadContent('data/xml/panels/' + frag);
            }
        });
        link = frag;
        effect.start();
        return;
    }
    
    
    var tmp = new Spry.Widget.HTMLPanel('panel_1', {
        evalScripts: true
    });
    tmp.addObserver(linkObserver);
    link = frag;
    tmp.loadContent('data/xml/panels/' + frag);
};


