/**
 * @author Bastian Jansen
 *
 * (C) Bastian Jansen, scaleweb.de
 */
var bool_dis = false;
var bool_impres = false;

function impressumLoad(bg_pic){
    if (menu_one.getCurrentRowID() == '3') {
        bool_impres = true;
        menu_two.setCurrentRow('2');
        var row = menu_two.getCurrentRow();
        //'{frag}', '{panel}', '{bg}','{name}' , '{height}' , '{subXML}'
        loadContent(row["frag"], row["panel"], row["bg"], row["name"], row["height"], row["subXML"]);
        //    
        return;
    }
    bool_impres = true;
    fadeOutContentThenSetRow('3', bg_pic);
};

function disclaimerLoad(bg_pic){
    if (menu_one.getCurrentRowID() == '3') {
        bool_dis = true;
        menu_two.setCurrentRow('3');
        var row = menu_two.getCurrentRow();
        //'{frag}', '{panel}', '{bg}','{name}' , '{height}' , '{subXML}'
        loadContent(row["frag"], row["panel"], row["bg"], row["name"], row["height"], row["subXML"]);
        //    
        return;
    }
    bool_dis = true;
    fadeOutContentThenSetRow('3', bg_pic);
};

FadeSlide = function(element, options){
    Spry.Effect.Cluster.call(this, options);
    var duration = 1000;
    var from = 0;
    var to = 0;
    var sfrom = 0;
    var sto = 0;
    var horizontal = true;
    if (options) {
        if (options.duration != null) 
            duration = options.duration;
        if (options.from != null) 
            from = options.from;
        if (options.to != null) 
            to = options.to;
        if (options.sfrom != null) 
            sfrom = options.sfrom;
        if (options.sto != null) 
            sto = options.sto;
        if (options.horizontal != null) 
            horizontal = options.horizontal;
    }
    var fadeEffect = new Spry.Effect.Fade(element, {
        duration: duration,
        from: from,
        to: to
    });
    var slideEffect = new Spry.Effect.Slide(element, {
        duration: duration,
        from: sfrom,
        to: sto,
        horizontal: horizontal
    });
    this.addParallelEffect(fadeEffect);
    this.addParallelEffect(slideEffect);
};
FadeSlide.prototype = new Spry.Effect.Cluster();
FadeSlide.prototype.constructor = FadeSlide;

FadeOutMenu = function(element, options){
    Spry.Effect.Cluster.call(this, options);
    var duration = 1000;
    var sduration = 1000;
    var from = 0;
    var to = 0;
    var sfrom = 0;
    var sto = 0;
    var horizontal = true;
    if (options) {
        if (options.duration != null) 
            duration = options.duration;
        if (options.from != null) 
            from = options.from;
        if (options.to != null) 
            to = options.to;
        if (options.sfrom != null) 
            sfrom = options.sfrom;
        if (options.sto != null) 
            sto = options.sto;
        if (options.horizontal != null) 
            horizontal = options.horizontal;
        if (options.sduration != null) {
            sduration = options.sduration;
        }
    }
    
    var panelEffects = new Array();
    
    for (var i = 0; i < visiblePanels.length - 1; ++i) {
        if (visiblePanels[i] == 1) {
            var sfromLength = 0;
            if (i == 0) 
                sfromLength = currentHeight_Panle0;
            if (i == 1) 
                sfromLength = currentHeight_Panle1;
            var fadeEffect = new Spry.Effect.Fade('panel_' + i, {
                duration: duration,
                to: to,
                from: from
            });
            var slideEffect = new Spry.Effect.Slide('panel_' + i, {
                duration: sduration,
                to: sto,
                from: sfromLength,
                horizontal: false
            });
            panelEffects.push(fadeEffect);
            panelEffects.push(slideEffect);
            visiblePanels[i] = 0;
        }
    }
    
    for (var i = 0; i < panelEffects.length; i++) {
        this.addParallelEffect(panelEffects[i]);
    }
    
    var endEffect = new FadeSlide(element, {
        sto: sto,
        sfrom: sfrom,
        to: to,
        from: from,
        duration: duration,
        horizontal: true
    });
    
    this.addNextEffect(endEffect);
};
FadeOutMenu.prototype = new Spry.Effect.Cluster();
FadeOutMenu.prototype.constructor = FadeOutMenu;

FadeOutContent = function(options){
    Spry.Effect.Cluster.call(this, options);
    var duration = 1000;
    var sduration = 1000;
    var from = 0;
    var to = 0;
    var sfrom = 0;
    var sto = 0;
    var horizontal = false;
    var bg_name = '';
    if (options) {
        if (options.duration != null) 
            duration = options.duration;
        if (options.duration != null) 
            sduration = options.sduration;
        if (options.from != null) 
            from = options.from;
        if (options.to != null) 
            to = options.to;
        /*
         if (options.sfrom != null)
         sfrom = options.sfrom;
         if (options.sto != null)
         sto = options.sto;
         */
        if (options.horizontal != null) 
            horizontal = options.horizontal;
        if (options.bg_name != null) 
            bg_name = options.bg_name;
    }
    var panelEffects = new Array();
    
    var dummy = new Spry.Effect.Fade('leer', {
        duration: 0,
        to: 100,
        from: 100,
        toggle: true
    });
    
    panelEffects.push(dummy);
    
    if (!BG_OFF) {
        if (selected_bg_pic != bg_name && bg_name != '') {
            var main_out = new Spry.Effect.Fade('main_page', {
                duration: 200,
                from: 100,
                to: 20,
                toggle: false,
                setup: function(){
                    selected_bg_pic = bg_name;
                }
            });
            var main_in = new Spry.Effect.Fade('main_page', {
                duration: 200,
                from: 20,
                to: 100,
                toggle: false,
                finish: function(){
                
                }
            });
            var ob_re = new Object();
            ob_re.onPostEffect = function(){
                document.getElementById("main_page").style.backgroundImage = 'url(data/pic/' + bg_name + '.jpg)';
                document.getElementById("main_page").style.backgroundRepeat = 'no-repeat';
                main_in.start();
            };
            main_out.addObserver(ob_re);
            panelEffects.push(main_out);
        }
    }
    
    for (var i = 0; i < visiblePanels.length - 1; ++i) {
        if (visiblePanels[i] == 1) {
            var fadeEffect = new Spry.Effect.Fade('panel_' + i, {
                duration: duration,
                to: to,
                from: from
            });
            
            if (i == 0) 
                sfrom = currentHeight_Panle0;
            if (i == 1) 
                sfrom = currentHeight_Panle1;
            
            var slideEffect = new Spry.Effect.Slide('panel_' + i, {
                duration: sduration,
                to: sto,
                from: sfrom,
                horizontal: horizontal
            });
            panelEffects.push(fadeEffect);
            panelEffects.push(slideEffect);
            visiblePanels[i] = 0;
        }
    }
    for (var i = 0; i < panelEffects.length; i++) {
        this.addParallelEffect(panelEffects[i]);
    }
};
FadeOutContent.prototype = new Spry.Effect.Cluster();
FadeOutContent.prototype.constructor = FadeOutContent;

FadeSlidePanel = function(element, options){
    Spry.Effect.Cluster.call(this, options);
    var duration = 1000;
    var sduration = 1000;
    var from = 0;
    var to = 0;
    var sfrom = 0;
    var sto = 0;
    var horizontal = true;
    var bg_name = '';
    if (options) {
        if (options.duration != null) 
            duration = options.duration;
        if (options.from != null) 
            from = options.from;
        if (options.to != null) 
            to = options.to;
        if (options.sfrom != null) 
            sfrom = options.sfrom;
        if (options.sto != null) 
            sto = options.sto;
        if (options.horizontal != null) 
            horizontal = options.horizontal;
        if (options.sduration != null) 
            sduration = options.sduration;
        if (options.bg_name != null) 
            bg_name = options.bg_name;
    }
    
    if (selected_bg_pic != bg_name && bg_name != '') {
        var main_out = new Spry.Effect.Fade('main_page', {
            duration: 200,
            from: 100,
            to: 20,
            toggle: false,
            setup: function(){
                selected_bg_pic = bg_name;
            }
        });
        var main_in = new Spry.Effect.Fade('main_page', {
            duration: 200,
            from: 20,
            to: 100,
            toggle: false,
            finish: function(){
            
            }
        });
        var ob_re = new Object();
        ob_re.onPostEffect = function(){
            document.getElementById("main_page").style.backgroundImage = 'url(data/pic/' + bg_name + '.jpg)';
            document.getElementById("main_page").style.backgroundRepeat = 'no-repeat';
            main_in.start();
        };
        main_out.addObserver(ob_re);
        this.addParallelEffect(main_out);
    }
    var fadeEffect = new Spry.Effect.Fade(element, {
        duration: duration,
        from: from,
        to: to
    });
    var slideEffect = new Spry.Effect.Slide(element, {
        duration: sduration,
        from: sfrom,
        to: sto,
        horizontal: horizontal
    });
    this.addParallelEffect(fadeEffect);
    this.addParallelEffect(slideEffect);
};
FadeSlidePanel.prototype = new Spry.Effect.Cluster();
FadeSlidePanel.prototype.constructor = FadeSlidePanel;

FadeGrowPanel = function(element, options){
    Spry.Effect.Cluster.call(this, options);
    var duration = 1000;
    var from = 0;
    var to = 0;
    var gfrom = 0;
    var gto = 0;
    var bg_name = '';
    if (options) {
        if (options.duration != null) 
            duration = options.duration;
        if (options.from != null) 
            from = options.from;
        if (options.to != null) 
            to = options.to;
        if (options.gfrom != null) 
            gfrom = options.gfrom;
        if (options.gto != null) 
            gto = options.gto;
        if (options.bg_name != null) 
            bg_name = options.bg_name;
    }
    
    if (selected_bg_pic != bg_name && bg_name != '') {
        var main_out = new Spry.Effect.Fade('main_page', {
            duration: 200,
            from: 100,
            to: 20,
            toggle: false,
            setup: function(){
                selected_bg_pic = bg_name;
            }
        });
        var main_in = new Spry.Effect.Fade('main_page', {
            duration: 200,
            from: 20,
            to: 100,
            toggle: false,
            finish: function(){
            
            }
        });
        var ob_re = new Object();
        ob_re.onPostEffect = function(){
            document.getElementById("main_page").style.backgroundImage = 'url(data/pic/' + bg_name + '.jpg)';
            document.getElementById("main_page").style.backgroundRepeat = 'no-repeat';
            main_in.start();
        };
        main_out.addObserver(ob_re);
        this.addParallelEffect(main_out);
    }
    var fadeEffect = new Spry.Effect.Fade(element, {
        duration: duration,
        from: from,
        to: to
    });
    var growEffect = new Spry.Effect.Blind(element, {
        duration: duration,
        from: gfrom + 'px',
        to: gto + 'px'
    });
    this.addParallelEffect(fadeEffect);
    this.addParallelEffect(growEffect);
};
FadeGrowPanel.prototype = new Spry.Effect.Cluster();
FadeGrowPanel.prototype.constructor = FadeGrowPanel;


FadeOutLink = function(options){
    Spry.Effect.Cluster.call(this, options);
    var duration = 1000;
    var sduration = 1000;
    var from = 0;
    var to = 0;
    var sfrom = 0;
    var horizontal = true;
    if (options) {
        if (options.duration != null) 
            duration = options.duration;
        if (options.from != null) 
            from = options.from;
        if (options.to != null) 
            to = options.to;
        if (options.sfrom != null) 
            sfrom = options.sfrom;
        if (options.horizontal != null) 
            horizontal = options.horizontal;
        if (options.sduration != null) {
            sduration = options.sduration;
        }
    }
    var panelEffects = new Array();
    
    var dummy = new Spry.Effect.Fade('leer', {
        duration: 0,
        to: 100,
        from: 100,
        toggle: true
    });
    
    panelEffects.push(dummy);
    for (var i = 1; i < visiblePanels.length - 1; ++i) {
        if (visiblePanels[i] == 1) {
            var fadeEffect = new Spry.Effect.Fade('panel_' + i, {
                duration: duration,
                to: to,
                from: from
            });
            if (i == 1) 
                sfrom = currentHeight_Panle1;
            
            var slideEffect = new Spry.Effect.Slide('panel_' + i, {
                duration: sduration,
                to: 0,
                from: sfrom,
                horizontal: horizontal
            });
            visiblePanels[i] = 0;
            panelEffects.push(fadeEffect);
            panelEffects.push(slideEffect);
        }
    }
    
    for (var i = 0; i < panelEffects.length; i++) {
        this.addParallelEffect(panelEffects[i]);
    }
    
};
FadeOutLink.prototype = new Spry.Effect.Cluster();
FadeOutLink.prototype.constructor = FadeOutLink;

CHANGEBG = function(){
    var bg_names = new Array("bg_arzt", "bg_az", "bg_buers", "bg_kind", "bg_kon", "bg_lei_pro", "bg_lei_soz", "bg_lei_zah", "bg_lim", "bg_zahn");
    var bg_count = -1;
    var aktiv = null;
    var timeOut = null;
    
    this.startBGChange = function(){
        timeOut = window.setTimeout(start, 60000);
    };
    
    this.stopBGChange = function(){
        window.clearTimeout(timeOut);
        if (aktiv != null) {
            window.clearInterval(aktiv);
        }
    };
    
    var start = function(){
        bg_count = -1;
        aktiv = window.setInterval(changeBGPicture, 6000);
    };
    
    var changeBGPicture = function(){
        bg_count++;
        if (bg_count > 9) {
            bg_count = 0;
        }
        if (selected_bg_pic != bg_names[bg_count]) {
            var main_out = new Spry.Effect.Fade('main_page', {
                duration: 400,
                from: 100,
                to: 20,
                toggle: false
            });
            var main_in = new Spry.Effect.Fade('main_page', {
                duration: 400,
                from: 20,
                to: 100,
                toggle: false
            });
            
            var ob_re = new Object();
            ob_re.onPostEffect = function(){
                document.getElementById("main_page").style.backgroundImage = 'url(data/pic/' + bg_names[bg_count] + '.jpg)';
                document.getElementById("main_page").style.backgroundRepeat = 'no-repeat';
                main_in.start();
            };
            main_out.addObserver(ob_re);
            main_out.start();
            selected_bg_pic = bg_names[bg_count];
        }
    };
};

MAINCHANGEBG = function(){
    var bg_names = new Array("bg_arzt", "bg_az", "bg_buers", "bg_kind", "bg_kon", "bg_lei_pro", "bg_lei_soz", "bg_lei_zah", "bg_lim", "bg_zahn");
    var bg_count = -1;
    var aktiv = null;
    
    this.startBGChange = function(){
        timeOut = window.setTimeout(start, 30000);
    };
    
    this.stopBGChange = function(){
        window.clearTimeout(timeOut);
        if (aktiv != null) {
            window.clearInterval(aktiv);
        }
    };
    
    var start = function(){
        bg_count = -1;
        aktiv = window.setInterval(changeBGPicture, 6000);
    };
    
    var changeBGPicture = function(){
        bg_count++;
        if (bg_count > 9) {
            bg_count = 0;
        }
        if (selected_bg_pic != bg_names[bg_count]) {
            var main_out = new Spry.Effect.Fade('main_page', {
                duration: 400,
                from: 100,
                to: 20,
                toggle: false
            });
            var main_in = new Spry.Effect.Fade('main_page', {
                duration: 400,
                from: 20,
                to: 100,
                toggle: false
            });
            
            var ob_re = new Object();
            ob_re.onPostEffect = function(){
                document.getElementById("main_page").style.backgroundImage = 'url(pic/' + bg_names[bg_count] + '.jpg)';
                document.getElementById("main_page").style.backgroundRepeat = 'no-repeat';
                main_in.start();
            };
            main_out.addObserver(ob_re);
            main_out.start();
            selected_bg_pic = bg_names[bg_count];
        }
    };
};

