﻿/* ZENSURSULA-Animation

   Erweiterung von Pete (29.05.09)
   zusätzliche Sprechblasen und erweiterte API 
   Umleitung bei Click

   VDL.hardcore = true;    // Hundebabys!!!
   VDL.pos.pic.x = 200;    // Abstand in Pixel vom linken Fensterrand
   VDL.pos.pic.y = 10;     // Abstand in Pixel vom oberen Fensterrand

   var deineHP = '';       // Domain oder Name Deiner Homepage
   var tickInterval = 100; // Anim-Tempo, kleinere Werte = höheres Tempo
   var timeInterval = 1000; // Pause zwischen Animationen
   var clickZiel = '';      // Internes Linkziel

*/

// Werteinitialisierung
var deineHP = window.location.hostname;
//var bildURL = 'http://'+deineHP+'/vdl/'; // relative Pfade funktionieren nicht für alle Ebenen
var bildURL = 'http://www.rettet-das-internet.de/vdl/';
var tickInterval = 100;
var timeInterval = 1000;
var clickZiel = '';



var VDL = {

    // Was tut sie gerade?
    modes: ['idle', 'active'],
    mode: 0,        // aktueller Modus
    nextMode: 0,    // danach dieser Modus

    hardcore: false, // sollen auch die ganz üblen sachen kommen wie hundebabys?

    /**
     * Animations-Engine
     */

    trash: (navigator.userAgent.indexOf("MSIE 6")!=-1),
    // zählen, global und innerhalb einer Animation
    clock : 0,
    counter: 0,
    tickVal: 0, // für die Zehntelsekunden
    tick: function() {
        VDL.clock++;
        VDL.tickVal++;
        if(VDL.tickVal==10) {
            VDL.counter++;
            VDL.tickVal = 0;
        }
        VDL.eyes();
        VDL.animate();        // Modusabhängige Animation
    },
    animate: function(){},  // wird je nach aktion belegt
    currentAnimation: {     // zeigt auf Animations-JSON siehe unten
        destroy: function() {}
    },

    // Timeout-Funktionen:
    // verwaltung von timeouts und automatische löschung etc ...

    timeouts: {},

    // set time out
    sto: function(id, callback, time) {
        VDL.cto(id);
        VDL.timeouts[id] = setTimeout(function() {
            VDL.timeouts[id] = false;
            callback();
        }, time);
    },

    // clear time out
    cto: function(id) {
        if(VDL.timeouts[id]) {
            clearTimeout(VDL.timeouts[id]);
            VDL.timeouts[id] = false;
        }
    },

    face: 0,                // dieses Gesicht wird gerade angezeigt
    clicks: 0,
    carecounter: 10000,     // startwert für gerettete kinder

    pos: {
        eyes: {
            center: [
                {x:71, y:56},
                {x:97, y:56}
            ],
            width: 12,
            height: 4
        },
        pic: {
            x:5, y:5,
            width: 140,
            height: 144
        },
        bubble: {
            width: 300
        }
    },
    nodes: {eyes: []},
    data: {},

    // Animation wechselt
    change: function() {
        VDL.stopAnimation();
        VDL.hideBubble();

        // neue Animation aus zukünftigem Modus zufällig auswählen
        VDL.currentAnimation =
            VDL.actions[VDL.modes[VDL.nextMode]][Math.floor(Math.random()*VDL.actions[VDL.modes[VDL.nextMode]].length)];

        // ist das zu krass?
        if(!VDL.hardcore) {
            if(VDL.currentAnimation.hardcore) {
                VDL.change();
                return;
            }
        }

        VDL.mode = VDL.nextMode;

        if(VDL.mode==1) VDL.nextMode=0;
        if(VDL.mode==0) VDL.nextMode=1;

        VDL.startAnimation();
    },

    pic: function(n) {
        VDL.face = n;
        VDL.nodes.face.style.top = (-VDL.pos.pic.height*n) +"px";
    },

    stopAnimation: function() {
        VDL.counter = 0;
        VDL.cto('animationMode');
        // laufende Animation abschalten
        if(VDL.currentAnimation.destroy) VDL.currentAnimation.destroy()
        else VDL.pic(0);
        VDL.animate = function(){};
    },

    startAnimation: function() {
        if(VDL.currentAnimation.start) VDL.currentAnimation.start(); // init-Routs aufrufen
        if(VDL.currentAnimation.animate)
            VDL.animate = VDL.currentAnimation.animate               // In die Uhr hängen
        else
            VDL.animate = function(){};

        // Nach entsprechender Zeit neue Animation aussuchen
        VDL.sto('animationMode', VDL.change, VDL.currentAnimation.time*timeInterval);
    },

    eyes: function() {
        for(var i=0;i<2;i++) {
            if(!VDL.data.mx) return; // nur wenn schon Mauskoordinaten vorliegen

            var dx = VDL.data.mx - (VDL.pos.eyes.center[i].x+VDL.pos.pic.x);
            var dy = VDL.data.my - (VDL.pos.eyes.center[i].y+VDL.pos.pic.y);

            var r=(dx*dx/VDL.pos.eyes.width+dy*dy/(VDL.pos.eyes.height/2)<1) ? 1 : Math.sqrt((VDL.pos.eyes.width/2)*(VDL.pos.eyes.height/2)/(dx*dx+dy*dy));

            with(VDL.nodes.eyes[i].style) {

                left= (r*dx+VDL.pos.eyes.center[i].x-10)+"px";
                top = ((r*dy/2)+VDL.pos.eyes.center[i].y-7)+"px";
            }
        }
    },

    ieScroll: function() {
        VDL.nodes.container.style.left = VDL.left();
        VDL.nodes.container.style.top  = VDL.top();
    },

    // Initialisierung der Start-Events
    init: function() {

        // Standard-konformer Browser?
        if ( document.addEventListener ) {

            document.addEventListener( "DOMContentLoaded", function(){
                document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
                VDL.prepare();
            }, false );

        // Oder ist es der gute Internet-Explorer?
        } else if ( document.attachEvent ) {

            // Das funktioniert in IFRAMEs:
            document.attachEvent("onreadystatechange", function(){
                if ( document.readyState === "complete" ) {
                    document.detachEvent( "onreadystatechange", arguments.callee );
                    VDL.prepare();
                }
            });

            // Wenn wir nicht im IFRAME laufen muss kontinuierlich
            // geprüft werden, ob das DOM schon bereit ist
            if ( document.documentElement.doScroll && window == window.top ) (function(){
                if ( VDL.ready ) return;

                try {
                    document.documentElement.doScroll("left");
                } catch( error ) {
                    setTimeout( arguments.callee, 0 );
                    return;
                }

                // geschafft!
                VDL.prepare();
            })();
        } else {
            // Fallback, falls ein Exotenbrowser daherkommt:
            VDL.saveOnload = document.onload;   // Alte "onload"-Funktion sichern
            document.onload = VDL.onload;       // Eigene Funktion dem Event zuweisen
        }
    },

    // fallback
    onload: function() {
        VDL.prepare();
        // Falls eine Funktion gesichert wurde, diese ausführen.
        if(toString.call(OdemSTOPP.saveOnload) === "[object Function]")
            OdemSTOPP.saveOnload();
    },

    prepare: function() {
        if ( VDL.ready ) return;
        VDL.ready = true;
        VDL.create();
        VDL.interval = setInterval(VDL.tick, tickInterval); // Sekunden-Takt
    },

    /* Reihenfolge in allen Breite/Höhe-Positions-Funktionen:
       - Standard-konforme Browser
       - IE 6 bzw im Quirks mode
       - restliche IEs
    */

    height: function() {
        if (window.innerHeight!=window.undefined) return window.innerHeight;
        if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
        if (document.body) return document.body.clientHeight;
        return undefined;
    },

    width: function() {
        if (window.innerWidth!=window.undefined) return window.innerWidth;
        if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth;
        if (document.body) return document.body.clientWidth;
        return undefined;
    },

    top: function() {
        if (self.pageYOffset) return self.pageYOffset;
        if (document.documentElement && document.documentElement.scrollTop) return document.documentElement.scrollTop;
        if (document.body) return document.body.scrollTop;
        return undefined;
    },

    left: function() {
        if (self.pageXOffset) return self.pageXOffset;
        if (document.documentElement && document.documentElement.scrollLeft) return document.documentElement.scrollLeft;
        if (document.body) return document.body.scrollLeft;
        return undefined;
    },

    addEvent: function(element, event, callback) {
        // Standard-konformer Browser?
        if ( element.addEventListener ) {
            element.addEventListener( event, callback, false );
        // Oder ist es der gute Internet-Explorer?
        } else if ( element.attachEvent ) {

            element.attachEvent("on"+event, callback);
        }
    },

    removeEvent: function(element, event, callback) {
        if ( element.removeEventListener ) {
            element.removeEventListener( event, callback, false )
        } else if ( element.detachEvent ) {
            element.detachEvent("on"+event, callback);
        }
    },

    // Elemente erzeugen
    create: function() {

        var head      = document.getElementsByTagName('head')[0];
        var body      = document.getElementsByTagName('body')[0];

        // Kein Head vorhanden?
        if(!head) {
            head = document.createElement('head');
            body.parentNode.insertBefore(head, body);
        }

        var cssURL = bildURL+'vdl.css';
        if(document.createStyleSheet) {
            document.createStyleSheet(cssURL);
        } else {
            var style = document.createElement('link');
            style.type = "text/css";
            style.href = cssURL;
            style.rel = "stylesheet";
            style.media ="screen";
            head.appendChild(style);
        }


        var container = document.createElement('div');
            container.id = "ZENSURSULA";
        var character = document.createElement('div');
            character.id = "Z_CHARACTER";


            var face = document.createElement('img');
                face.src = bildURL+'vdl.gif';
            var eyeL = document.createElement('img');
                eyeL.src = bildURL+'auge.gif';
            var eyeR = document.createElement('img');
                eyeR.src = bildURL+'auge.gif';

        var bubble    = document.createElement('div');
            bubble.id = "Z_BUBBLE";
        var innerBubble = document.createElement('div');
            innerBubble.id = "Z_INNERBUBBLE";
        var hookL = document.createElement('img');
            hookL.id = "Z_BUBBLEHOOK";
            hookL.src = bildURL+'hook.gif';
        var hookR = document.createElement('img');
            hookR.id = "Z_BUBBLEHOOK_R";
            hookR.src = bildURL+'hookr.gif';

        var stopSign = document.createElement('div');
            stopSign.id = "Z_STOPSIGN";
            VDL.addEvent(stopSign, 'click', function() {
                VDL.nodes.stopSign.style.display = "none";
            });

        VDL.nodes = {
            container:  container,
            character:  character,
            bubble:     bubble,
            innerBubble:innerBubble,
            stopSign:   stopSign,
            face:       face,
            hookL:      hookL,
            hookR:      hookR,
            eyes:       [eyeL, eyeR]
        };

        if(VDL.trash) {
            // IE 6 kann keine fixed-Position
            // daher muss der leider manuell mitscrollen
            container.style.position = "absolute";
            stopSign.style.position = "absolute";
            setInterval(VDL.ieScroll, 200);
        } else {
            container.style.position = "fixed";
            stopSign.style.position = "fixed";
        }

        for(var i=0;i<2;i++) {
            with(VDL.nodes.eyes[i].style) {
                left = (VDL.pos.eyes.center[i].x -9)+"px";
                top = (VDL.pos.eyes.center[i].y -7 )+"px";
            }
        }


        VDL.setPos();

        VDL.addEvent(character, "mousedown", VDL.startDrag); // verschiebbar!!

        character.appendChild(eyeL);
        character.appendChild(eyeR);
        character.appendChild(face);

        bubble.appendChild(innerBubble);
        bubble.appendChild(hookL);
        bubble.appendChild(hookR);

        container.appendChild(stopSign);
        container.appendChild(character);
        container.appendChild(bubble);
        body.appendChild(container);

        stopSign.innerHTML =
            '<div style="position:absolute;left:50%;top:50%;margin:0;padding:0;">\
                <div id="Z_ACTUALSTOPSIGN"></div>\
             </div>';



        VDL.addEvent(document, "mousemove", VDL.mousemove);

        VDL.addEvent(window, "resize", VDL.resize);
        VDL.resize();

        VDL.change();
    },

    setPos: function() {

        // VDL wird an die richtige Stelle geschoben
        with(VDL.nodes.character.style) {
            left = VDL.pos.pic.x+'px';
            top = VDL.pos.pic.y+'px';
        }

        if(VDL.pos.pic.x < (VDL.width()-VDL.pos.pic.width-VDL.pos.bubble.width-50)) {
            VDL.nodes.hookL.style.display = "block";
            VDL.nodes.hookR.style.display = "none";
            with(VDL.nodes.bubble.style) {
                left = (VDL.pos.pic.x+VDL.pos.pic.width+30)+'px';
                top = (VDL.pos.pic.y+30)+'px';
            }

        } else {
            VDL.nodes.hookL.style.display = "none";
            VDL.nodes.hookR.style.display = "block";
            with(VDL.nodes.bubble.style) {
                left = (VDL.pos.pic.x-VDL.pos.bubble.width-30)+'px';
                top = (VDL.pos.pic.y+30)+'px';
            }
        }
    },

    cancelEvent: function(e) {
        if(e.preventDefault) { // DOM
            e.preventDefault();
        } else { // IE
            e.returnValue = false;
        }
    },

    startDrag: function(e) {
        if(!e) e = window.event;

        VDL.dragstartX = VDL.pos.pic.x; // zum checken, ob sie gedragt oder geklickt wurde
        VDL.dragstartY = VDL.pos.pic.y;

        VDL.dragOffsetX = e.clientX - VDL.pos.pic.x;
        VDL.dragOffsetY = e.clientY - VDL.pos.pic.y;

        VDL.addEvent(document, "mousemove", VDL.drag);
        VDL.addEvent(document, "mouseup", VDL.stopDrag);

        VDL.cancelEvent(e);


    },
    stopDrag: function(e) {
        VDL.removeEvent(document, "mousemove", VDL.drag);
        VDL.removeEvent(document, "mouseup", VDL.stopDrag);

        VDL.cancelEvent(e);

        if( // wurde vdl nicht verschoben?
            VDL.dragstartX == VDL.pos.pic.x
        &&  VDL.dragstartY == VDL.pos.pic.y
        ) {
            VDL.click();
        }
    },

    drag: function(e) {
        if(!e) e = window.event;
        VDL.pos.pic.x = e.clientX-VDL.dragOffsetX;
        VDL.pos.pic.y = e.clientY-VDL.dragOffsetY;
        VDL.setPos();

        VDL.cancelEvent(e);
    },

    mousemove: function(e) {
        if(!e) e = window.event;
        VDL.data.mx = e.clientX;
        VDL.data.my = e.clientY;
    },

    resize: function() {
        with(VDL.nodes.stopSign.style) {
            width = VDL.width()+"px";
            height = VDL.height()+"px";
        }
    },

    showBubble: function(text) {
        VDL.cto('bubble');
        VDL.hideBubble();
        // bei bestimmten Gesichtern darf Ursula nich zu reden anfangen
        if(VDL.face==0) {
            VDL.faceSave = VDL.face;
            VDL.pic(1);
            VDL.sto('talk', function(){VDL.pic(VDL.faceSave)}, 2000);
        }
        VDL.nodes.innerBubble.innerHTML = text;
        VDL.sto('bubble', function(){VDL.nodes.bubble.style.display = "block";},200);

    },

    hideBubble: function() {
        VDL.cto('talk');
        //VDL.pic((VDL.faceSave) ? VDL.faceSave : 0);
        VDL.cto('bubble');
        VDL.nodes.bubble.style.display = "none";
    },

    click: function() {
window.location.href = clickZiel;
    },

    circumvent: function() {
        if(VDL.clicks==1) { // zweiter versuch, was mit ihr vdl zu machen
            VDL.removeEvent(VDL.nodes.character, "click", VDL.click);
            VDL.cto('talk');
            VDL.showBubble('Wie sie w&uuml;nschen, ich werde mich zur&uuml;ckziehen. &quot;Aus den Augen, aus dem Sinn&quot; ist schlie&szlig;lich auch mein Motto!');
            VDL.sto('coolness', function(){VDL.cto('talk'); VDL.hideBubble();VDL.pic(6);}, 5500);
            VDL.sto('goodbye', function(){VDL.nodes.container.style.display = "none"}, 7000);
        } else {
            VDL.cto('talk');
            VDL.pic(5);
            VDL.sto('maintainance', VDL.click, 10000);
            VDL.nodes.stopSign.style.display = "block";
            VDL.showBubble('<center><b><blink>&Uuml;berwachung abschalten??!</blink></b></center><br/><b><a href="http://www.golem.de/0904/66730.html" target="_blank">Sie geh&ouml;ren wohl zu den 20% der Internet-Benutzer, die schwer p&auml;dokriminell sind!</a> !!</b>!1');
            VDL.clicks++;
            VDL.sto('return', function(){VDL.pic(0);}, 3000);
        }
    },



    /**
     * Modus-abhängige Liste von Animationen.
     * - start: bevor es losgeht irgendwas initialisieren
     * - animate: wird in den Interval eingehängt
     * - time; Zeit in Millisekunden für Animation
     * - destroy: wird beim Ende der Animation aufgerufen
     * - hardcore: flag, ob die animation sehr stark in die angezeigte seite eingreift
     */
    actions: {
        'active': [
            { // Interessante Seite zum Ausdrucken
                start:      function(){
                    VDL.pic(4);
                    VDL.showBubble('Moment mal, was machen sie denn da?');

                },
                animate:    function(){
                    if(VDL.tickVal==0)
                        switch(VDL.counter) {
                            case 10:
                                VDL.pic(0);
                                VDL.showBubble('Diese Seite hier ist sehr &quot;interessant&quot;. Die sollte ich mir dringend mal <a href="http://blog.odem.org/2008/12/antwort-von-info.html" target="_blank">ausdrucken</a>!');
                                break;
                        }

                },
                time:       20
            },
            { // Sooooo viele Links!
                start:      function(){
                    var links = document.getElementsByTagName("a").length;
                    if(links>1) {
                        VDL.pic(5);
                        VDL.showBubble('Meine G&uuml;te, '+links+' Links auf dieser Seite!! Und jeder k&ouml;nnte zu <b>Kinderpornografie</b> f&uuml;hren!');
                    }

                },
                animate:    function(){
                    if(VDL.tickVal==0)
                        switch(VDL.counter) {
                            case 10:
                                VDL.pic(0);
                                VDL.showBubble('Wenn sie sich nicht verd&auml;chtig machen wollen, sollten sie lieber nichts <b>&quot;anklicken&quot;</b>.');
                                break;
                            case 20:
                                VDL.pic(0);
                                VDL.showBubble('Mein Tipp: nur anst&auml;ndige Seiten angucken (z.B. <a href="http://netzpolitik.org/2009/fast-10000-unterstuetzer-der-anti-zensursula-petition/" target="_blank">www.CDU.de</a>) und die zur Sicherheit lieber gleich ausdrucken. Da &quot;clickt&quot; man nicht noch aus Versehen auf irgend etwas.');
                                break;
                            case 30:
                                VDL.pic(6);
                                VDL.showBubble('Das BKA k&uuml;mmert sich gewiss bald darum und <a href="http://netzpolitik.org/2009/warum-es-um-zensur-geht/" target="_blank">blendet alles was gef&auml;hrlich ist aus.</a>');
                        }
                },
                time:       40  // Gesamtzeit der Ani, aufgeteilt mit case
            },
            { // BKA hat gesperrt.
                hardcore:   true,
                start:      function(){
                    VDL.nodes.stopSign.style.display = "block";
                    VDL.pic(5);
                },
                animate:    function() {
                    if(VDL.tickVal==0)
                    switch(VDL.counter) {
                        case 5:
                            VDL.showBubble('Heiliger Bimbam!! Es sieht so aus als h&auml;tten meine Kollegen vom BKA diese Seite geblockt!!');
                            break;
                        case 10:
                            VDL.pic(0);
                            VDL.showBubble('<a href="http://www.internet-law.de/2009/04/in-absurdistan-der-gesetzesentwurf-der.html" target="_blank">Ihre IP-Adresse hat jetzt ihr Provider gespeichert.</a> Das ist gut f&uuml;r die Statistik und um P&auml;dophile dingfest zu machen! Aber wenn sie nichts zu verbergen haben, m&uuml;ssen sie auch nichts bef&uuml;rchten.');
                            break;
                        case 14:
                            VDL.pic(3);
                    }
                },
                destroy: function() {
                    VDL.nodes.stopSign.style.display = "none";
                },
                time: 15
            },
            { // Zähler mit geretteten Kindern
                start: function() {
                    VDL.pic(0);
                    VDL.showBubble('Schauen Sie nur, die Zahl der von mir <a href="http://www.zeit.de/online/2009/20/kinderpornografie-fakten" target="_blank">geretteten Kinder</a> w&auml;chst und w&auml;chst: <center id="Z_CARECOUNTER" style="font-family:monospace;font-size:20px;line-height:24px;">'+VDL.carecounter+'</center>');
                    VDL.sto('carecounter', function() {
                        VDL.carecounterInterval = setInterval(function(){
                            VDL.carecounter++;
                            document.getElementById('Z_CARECOUNTER').innerHTML = VDL.carecounter;
                        },10);
                    },300);
                },
                animate: function() {
                    if(VDL.tickVal==0)
                    switch(VDL.counter) {
                        case 14:
                            VDL.pic(0);
                            clearInterval(VDL.carecounterInterval);
                            break;
                    }
                },
                destroy: function() {
                    clearInterval(VDL.carecounterInterval);
                },
                time: 15
            },
            { // nur ein kind!
                start: function() {
                    VDL.showBubble('Solange die Internet-Zensur auch nur ein Kind vor dem <a href="http://mogis.wordpress.com/2009/05/02/und-wenn-auch-nur-ein-kind-gerettet-wird/" target="_blank">Missbrauch sch&uuml;tzt</a>, ist die Ma&szlig;nahme doch angemessen! <a href="http://www.internet-law.de/2009/05/die-sperrliste-und-der-grundsatz-der.html" target="_blank">Grundrechte und Verfassung</a> hin oder her.');
                },
                time: 10
            },
            { // ausblenden
                start: function() {
                    VDL.pic(6);
                    VDL.showBubble('Es gibt viele schreckliche Dinge im Internet zu sehen. Au&szlig;er nat&uuml;rlich man macht\'s wie ich und <a href="http://rz.koepke.net/?p=2635" target="_blank">blendet</a> einfach alles aus.');
                },
                time: 10
            },
            { // denkt keiner an die kinder? -> petition
                start: function() {
                    VDL.showBubble('Alle Welt surft nur tatenlos herum und unterst&uuml;tzt damit die P&auml;dokriminalit&auml;t! <a href="https://epetitionen.bundestag.de/index.php?action=petition;sa=details;petition=3860" target="_blank">Denkt denn keiner an die Kinder?</a>');
                },
                time: 10
            },
            { // liste der provider
                start: function() {
                    VDL.showBubble('Darf ich mal fragen: Ist ihr <a href="http://zensurprovider.de/liste.php" target="_blank">Internet-Zugangsanbieter</a> schon dabei beim Kampf gegen Kinderpornografie?');
                },
                time: 10

            },
            { // hundebabys! hardc0re
                hardcore: true, // das ist ne üble nummer!
                start: function() {
                    var pix = document.images;
                    if(pix.length>5) {
                        for(var i=0; i<pix.length; i++) {
                            var n = Math.round(Math.random()*13);
                            pix[i].src=bildURL+'cute/'+n+'.jpg';
                        }
                        VDL.nodes.hookL.src = bildURL+'hook.gif';
                        VDL.nodes.hookR.src = bildURL+'hookr.gif';
                        VDL.nodes.face.src = bildURL+'vdl.gif';
                        VDL.nodes.eyes[0].src = bildURL+'auge.gif';
                        VDL.nodes.eyes[1].src = bildURL+'auge.gif';
                        VDL.showBubble('Na, das ist doch gleich viel besser! So sollte das ganze Internet aussehen.');
                    }
                },
                time: 10

            },
            { // pdf
                start: function() {
                    VDL.showBubble('<a href="http://cwoehrl.de/files/netzzensur.pdf" target="_blank">Zensur</a>??? Ich glaube ich h&ouml;re nicht richtig.');
                },
                time: 10
            },
            { // wählen:  Viel Show und wenig Konkretes
                start: function() {
                    VDL.showBubble('Es gibt gen&uuml;gend Leute, die glauben, dass <a href="http://www3.ndr.de/sendungen/zapp/media/zapp3290.html" target="_blank">Zensur eine L&ouml;sung</a> ist &mdash; und die mich w&auml;hlen.');
                },
                time: 10
            },


/* Zusätzliche Bubbles von Pete */

            { // Deine Homepage
                start: function() {
                    VDL.showBubble('Hier treiben Sie sich also rum?<br><b>'+deineHP+'</b>? Furchtbare Seite. Ich werde sofort die Sperrung veranlassen!');
                },
                time: 10
            },
            { // mehr Homepage
                start: function() {
                    VDL.showBubble('Sie sind ja immer noch auf diesem <b>'+deineHP+'</b>? Sind Sie sich nicht im Klaren, dass Sie sich damit verdächtig machen?');
                },
                time: 10
            },
           { // Zu viele Links!
                start:      function(){
                    var links = document.getElementsByTagName("a").length;
                    if(links>1) {
                        VDL.pic(5);
                        VDL.showBubble('Das ist erschreckend. Auch hier zähle ich wieder '+links+' Links. Und kein Mensch kann kontrollieren, wo die alle hinführen. Unverantwortlich!');
                    }

                },
                time: 15
            },
            { // Charaktersache
                start: function() {
                    VDL.showBubble('Sie sind jetzt schon minutenlang auf dieser Domain. Interessiert Sie das etwa? Ich habe langsam meine Zweifel, ob Sie die charakterlichen Voraussetzungen für einen unkontrollierten Internet-Zugang erfüllen.');
                },
                time: 20
            },
            { // Versuchung
                start: function() {
                    VDL.showBubble('Surfen im Internet ist eine ständige Versuchung. Kein Mensch ist dem auf Dauer gewachsen. Warum lesen Sie nicht mal wieder ein gutes Buch. Wann haben Sie zB. zuletzt in der Bibel geblättert?');
                },
                time: 15
            },
            { // Undschuldsvermutung
                start: function() {
                    VDL.showBubble('Soso, Sie sind also unschuldig?! Es gibt keine unschuldigen Surfer! Das Internet ist ein einziger Sündenpfuhl, und jeder, der freiwillig dort verkehrt, ist ein potentieller Pädophiler.');
                },
                time: 15
            },
            { // Surf-Verhalten
                start: function() {
                    VDL.showBubble('Gestatten, ich bin Ursula von den Laien. Nach Studium Ihrer Verbindungsdaten mache ich mir wirklich ernsthafte Gedanken wegen Ihres Surf-Verhaltens!');
                },
                time: 15
            },
            { // Erwachsenenschutz
                start: function() {
                    VDL.showBubble('Haben Sie eigentlich den Eindruck, dass sich die Betreiber dieser Seite ausreichend Gedanken über den Kinder-, Jugend-, und vor allem Erwachsenenschutz gemacht haben?');
                },
                time: 15
            }


        ],
        'idle': [
            {
                animate: function() {
                    if(Math.random()>0.9) VDL.pic(7)
                    else VDL.pic(0);
                },
                time: 5
            },
            {
                start: function() { VDL.pic(2); },
                time: 5
            },
            {
                start: function() { VDL.pic(4); },
                time: 5
            },
            {
                start: function() { VDL.pic(3); },
                time: 5
            }
        ]
    }


};


VDL.init();
