﻿var jet = new Image;
var ti = null;

var defAbschrankung =
{
    container:"divBild1",
    bildNeu:true,
    picName:"pic/03_abschrankung.png",
    id:"abschrankung",
    start:0,
    interval:50,
    vonX:-20,
    bisX:-20,
    stepX:0,
    vonY:-200,
    bisY:202,
    stepY:83,
    zIndex:8,
    chkY:true,
    zitter:false
}

var defUmbauTafel =
{
    container:"divBild1",
    bildNeu:true,
    picName:"pic/umbauTafel.gif",
    id:"umbautafel",
    start:0,
    interval:50,
    vonX:150,
    bisX:150,
    stepX:0,
    vonY:-400,
    bisY:202,
    stepY:83,
    zIndex:9,
    chkY:true,
    zitter:false
}


var defBagger1 =
{
    container:"divBild1",
    bildNeu:true,
    picName:"pic/04_bagger01.gif",
    id:"bagger01",
    start:0,
    interval:50,
    vonX:0,   
    bisX:420,
    stepX:40,   
    vonY:-200,
    bisY:240,
    stepY:40,
    zIndex:2,
    chkY:true,
    zitter:false
}


var defBagger2 =
{
    container:"divBild1",
    bildNeu:true,
    picName:"pic/04_bagger02.gif",
    id:"bagger01",
    start:0,
    interval:50,
    vonX:420,
    bisX:420,
    stepX:0,
    vonY:240,
    bisY:240,
    stepY:0,
    zIndex:2,
    chkY:true,
    zitter:false,
    info:true
}

var defJet =
{
    container:"divBild1",
    bildNeu:true,
    picName:"pic/05_jet.gif",
    id:"jet",
    start:0, 
    interval:40,
    vonX:580,
    bisX:-150,
    stepX:-30,
    vonY:-20,
    bisY:-140,  
    stepY:10,
    zIndex:3,
    chkY:false,
    zitter:false
}

var defDeckel1 =
{
    container:"divBild1",
    bildNeu:false,
    picName:"pic/deckel.png",
    id:"deckel",
    start:0,
    interval:80,
    vonX:0,           
    bisX:30,           
    stepX:1,
    vonY:0,          
    bisY:30,          
    stepY:1,
    zIndex:6,
    chkY:false,
    zitter:false
}


var defDeckel2 =
{
    /*--------------------------------------------------------------------------------------------------------
        Beim zuklappen, darauf achten, dass es zeitlich auf eine verdickte Stelle in der Rauchsäule trift
    ----------------------------------------------------------------------------------------------------------*/
    container:"divBild1",
    bildNeu:false,
    picName:"pic/deckel.png",
    id:"deckel",
    start:0,
    interval:80,
    vonX:28,
    bisX:0,
    stepX:-1,
    vonY:28,
    bisY:0,
    stepY:-1,
    zIndex:6,
    chkY:false,
    zitter:false
}

var defTinTin =
{
    container:"divTinTin",
    bildNeu:true,
    picName:"pic/tintin.png",
    id:"tintin",
    start:0,
    interval:80,    //40,
    vonX:0,
    bisX:0,
    stepX:0,
    vonY:330,
    bisY:-1600,
    stepY:-1,    //-4,
    zIndex:4,
    chkY:true,
    zitter:true
}

defHausRauch=
{
    id:"hgHausRuss",
    start:0,
    interval:50,
    vonOP:0,
    bisOP:1,
    stepOP:0.01
}

defQualm1=
{
    id:"rauchWolke",
    start:0,
    interval:50,
    vonOP:0,
    bisOP:0.75,
    stepOP:0.005
}

defQualm2=
{
    id:"rauchWolke",
    start:0,
    interval:50,
    vonOP:0.75,
    bisOP:0.4,      //Ein bischen Qualm stehen lassen
    stepOP:-0.005
}

defDeckelVorStart=
{
    id:"deckel",
    start:0,
    interval:50,
    vonOP:1.0,
    bisOP:0,
    stepOP:-0.01
}

defDeckelNachStart=
{
    id:"deckelRauch",
    start:0,
    interval:50,
    vonOP:0,
    bisOP:1.0,
    stepOP:0.01
}

window.onload = function(){
    /*--------------------------------------------------------------
        Startzeiten festlegen
    */
    defJet.start=15000;
    defDeckel1.start=5000;           // 5000;
    defTinTin.start=10000;           //11000;
    defDeckel2.start=25500;          //22000;

    defHausRauch.start=30000;        //50000;
    defQualm1.start=15000;           //35000;    
    defQualm2.start=45000;           //65000;    

    defDeckelVorStart.start=30000;   //50000;
    defDeckelNachStart.start=30000;   //50000;

    defAbschrankung.start=30000;     //80000;
    defUmbauTafel.start=32000;
    defBagger1.start=35000;          //150000;
    defBagger2.start=40000;          //200000;
  

//return;
    
    /*----------------------------------------------------------------
        Objekte instanzieren und feuern
    */
    
    
    var jet = new bild(defJet);
    jet.set();

    var deckel1 = new bild(defDeckel1);
    deckel1.set();

    var tintin = new bild(defTinTin);
    tintin.set();

    deckel1 = new bild(defDeckel2);
    deckel1.set();

    var hausRauch = new bildAlpha(defHausRauch);
    hausRauch.set();
    
    var qualm = new bildAlpha(defQualm1);
    qualm.set();
    qualm = new bildAlpha(defQualm2);
    qualm.set();
    
    qualm = new bildAlpha(defDeckelVorStart);
    qualm.set();
    qualm = new bildAlpha(defDeckelNachStart);
    qualm.set();    
        
    var abschrankung = new bild(defAbschrankung);
    abschrankung.set();

    var bagger = new bild(defBagger1);
    bagger.set();

    var umbauTafel = new bild(defUmbauTafel);
    umbauTafel.set();

    bagger = new bild(defBagger2);
    bagger.set();   


}


/*-----------------------------------------------------------------------------
    Bild langsam erscheinen lassen
*/

function bildAlpha(def){
    var _basis = this;
    this.pic = document.getElementById(def.id);
    this.vonOP = def.vonOP,
    this.bisOP = def.bisOP,
    this.stepOP = def.stepOP,
    
    this.start = def.start;
    this.interval = def.interval;
    this.timer = null;
    
    this.set=function(){
        window.setTimeout(_basis.run, _basis.start);
    }
    
    this.run=function(){
        _basis.pic.style.opacity = _basis.vonOP
        _basis.vonOP += _basis.stepOP
        _basis.pic.style.opacity = _basis.vonOP
        _basis.pic.style.filter = "alpha(opacity=" + _basis.vonOP*100;
                    
        if (
            ( _basis.stepOP > 0 && _basis.vonOP >= _basis.bisOP )
            ||
            ( _basis.stepOP < 0 && _basis.vonOP <= _basis.bisOP )
        ){
            _basis.pic.style.opacity = _basis.bisOP
            _basis.pic.style.filter = "alpha(opacity=" + _basis.bisOP*100;
            return
        }
        window.setTimeout(_basis.run, _basis.interval);
    }
}

/*--------------------------------------------------------------------------------------
    Objekte bewegen
*/
function bild(def){
    var _basis = this;
    this.def = def;

    if ( def.bildNeu ){
        this.pic = new Image();
        this.pic.src = def.picName ;    
    }else{
        this.pic = document.getElementById(def.id); // new Image(_pic);
    }

    this.pic.id = def.id;
    this.pic.style.zIndex = def.zIndex;
    this.div = document.getElementById(def.container)

    this.start = def.start;    
    this.interval = def.interval;
    this.timer = null;
    
    this.vonX = def.vonX;
    this.vonY = def.vonY;
    this.bisX = def.bisX;
    this.bisY = def.bisY;
    this.stepX = def.stepX;
    this.stepY = def.stepY;
    
    this.chkY = def.chkY;
    
    if ( def.zitter ){
        var vibration = new zitter(this);
        vibration.start()
    }
        
    this.set=function(){
        _basis.div.appendChild(_basis.pic);
        window.setTimeout(_basis.run, _basis.start);
    }
    
    this.run = function(){
        _basis.pic.style.top = _basis.vonY + "px";
        _basis.pic.style.left = _basis.vonX + "px";
        _basis.pic.style.position = "absolute";
        _basis.vonX += _basis.stepX;
        _basis.vonY += _basis.stepY;
        _basis.pic.style.visibility = 'visible';

        if ( _basis.def.info == true ){
            var info = document.getElementById("divInfo")
            info.style.visibility = "visible";
            info.style.zIndex = 9;
        } 
                
        if ( _basis.stepX == 0 && _basis.stepY == 0 ) return;
       
        if ( _basis.chkY != 0 ){
            if (
                ( _basis.stepY > 0 && _basis.vonY > _basis.bisY )
                ||
                ( _basis.stepY < 0 && _basis.vonY < _basis.bisY )
            ){

                window.clearTimeout(_basis.timer);
                _basis.pic.style.top = _basis.bisY + "px";
                _basis.pic.style.left = _basis.bisX + "px";
                
                if ( _basis.def.zitter == true ){
                    vibration.ende;
                }
                
                return;
            }
        }else{
            if ( 
                ( _basis.stepX > 0 && _basis.vonX > _basis.bisY )
                ||
                ( _basis.stepX < 0 && _basis.vonX < _basis.bisY )
            ){

                window.clearTimeout(_basis.timer);
                _basis.pic.style.top = _basis.bisY + "px";
                _basis.pic.style.left = _basis.bisX + "px";
                
                return;        
            }
        }
        
        _basis.timer = window.setTimeout(_basis.run, _basis.interval)
    }
}

function zitter(o){
    var _basis = this;
    this.objekt = o;

    this.amplitude = 1;
    this.intervall = 40;
    this.run = true;
    this.tic = 0;
    
    this.haus = document.getElementById("hg");
    
    this.objekt.pic.style.left = o.bisX + "px";
    
    this.start = function(){
        window.setTimeout(_basis.aktion, _basis.intervall);
    }
    
    this.aktion = function(ampli){
        if ( _basis.amplitude > 0 ){
            _basis.amplitude = 0
        }else{
            _basis.amplitude = 1
        }
        
        _basis.tic += 1;
        
        if ( _basis.tic > 300 ) _basis.haus.style.top = _basis.amplitude + "px";       /*-- Haus vibriert --*/
        
        switch ( true ){         /*--_basis.tic ){ --*/
        
            case _basis.tic < 359:
                _basis.objekt.pic.style.left = o.bisX + _basis.amplitude + "px";        /*-- Die Rackete vibriert --*/             
                break;
                
            case _basis.tic < 360:
                _basis.objekt.pic.style.left = o.bisX + _basis.amplitude + "px";        /*-- Die Rackete vibriert --*/  
                _basis.objekt.stepY = -2;
                _basis.objekt.interval = 40;
                break;
                
            case _basis.tic == 360: 
                _basis.objekt.stepY = -3;
                _basis.objekt.interval = 30;                
                /*-- Durchläuft den nächsten Break auch! -*/
                
            case _basis.tic < 390:
                _basis.objekt.pic.style.left = o.bisX + _basis.amplitude + "px";        /*-- Die Rackete vibriert --*/ 
                break;
                
            case _basis.tic == 390: 
                _basis.objekt.stepY = -4;
                _basis.objekt.interval = 20;
                break;

            case _basis.tic == 400: 
                _basis.objekt.stepY = -5;
                _basis.objekt.interval = 20;
                _basis.haus.style.top = _basis.amplitude + "px"        /*-- Haus vibriert --*/
                break;

            case _basis.tic == 475: 
                _basis.objekt.stepY = -3;
                _basis.objekt.interval = 80;
                break;
                
            case _basis.tic > 607: return;                
            
        }
        
        if ( _basis.run == true ) window.setTimeout(_basis.aktion, _basis.intervall);
    }
    
    this.ende = function(){
        _basis.run=false;
    }
}

function cmdPotaufeu(){
    window.open("http://www.andrederron.ch")
}
