﻿// 
// header.js
// performs all action requered in the blog header
//
// (c) J.N. Breetvelt 2010
//

var X = 40;
var Y = 10;
var Z = 40;
var maxX = 920;     // 1000 - 2 * sizeX
var sizeX = 40;
var sizeY = 20;
var minY = 0;
var maxY = 0;
var minZ = 0;
var maxZ = 0;
var deltaY = 0;
var deltaZ = 0;
var targetY = 10;
var targetZ = 40;    
var dir = 0;
var tempX = 40;
var timeout = 50;
var t;
var heliActive = 0;
var didDy = 0;
var helil = new Image();
var helir = new Image(); 
var passes = 0;
var maxPasses = 0;

function runHeli() {
    var r;
    // select vehicle
    r = Math.floor(Math.random() * 3);
    if (heliActive == 0) { 
        switch (r) {
            case 0:     // UFO
                helil.src = 'wp-content/themes/opajaap/images/ufo.png'; 
                helir.src = 'wp-content/themes/opajaap/images/ufo.png'; 
                minY = 0;       // max height
                maxY = 40;      // min height
                minZ = 20;      // longest distance
                maxZ = 45;      // closest by
                deltaY = 0.3;   // abs increment in height
                deltaZ = 0.5;   // abs increment in virtual distance
                timeout = 250;  // 1 / speed
                maxPasses = 10;
                break;
            case 1:     // HELICOPTER
                helil.src = 'wp-content/themes/opajaap/images/helil.png';
                helir.src = 'wp-content/themes/opajaap/images/helir.png';
                minY = 0;
                maxY = 25;
                minZ = 30;
                maxZ = 40;
                deltaY = 0.1;
                deltaZ = 0.1;
                timeout = 150;
                maxPasses = 15;
                break;
            case 2:     // BALLOON
                helil.src = 'wp-content/themes/opajaap/images/balloon.png';
                helir.src = 'wp-content/themes/opajaap/images/balloon.png';
                minY = 0;
                maxY = 40;
                minZ = 35;
                maxZ = 45;
                deltaY = 0.1;
                deltaZ = 0.05;
                timeout = 250;
                maxPasses = 10;
                break;
        }
        document.images['heliImg'].src = helir.src; 
    }
    // compute new targets if needed
    if (Math.abs(Y - targetY) <= deltaY) {
        targetY = minY + Math.floor(Math.random() * (maxY - minY));
    }
    if (Math.abs(Z - targetZ) <= deltaZ) {
        targetZ = minZ + Math.floor(Math.random() * (maxZ - minZ));
    }
    // set position
    if (targetY > Y) Y += deltaY;
    if (targetY < Y) Y -= deltaY;
    if (targetZ > Z) Z += deltaZ;
    if (targetZ < Z) Z -= deltaZ;
    if (dir == 0) {
        if (X < maxX) {
            X ++;
            document.getElementById('heli').style.left = X + 'px';
            document.getElementById('heli').style.top = Math.floor(Y) + 'px';
        }
        else {
            document.images['heliImg'].src = helil.src; 
            dir = 1;
        }
    }
    else {
        if (X > 40) {
            X --;
            document.getElementById('heli').style.left = X + 'px';
            document.getElementById('heli').style.top = Math.floor(Y) + 'px';
        }
        else {
            document.images['heliImg'].src = helir.src; 
            dir = 0;  
            passes++;
            if (passes >= maxPasses) {
                stopHeli();
                return 0;
            }
        }
    }
    // set size
    if (X <= (40 + sizeX)) {     // left edge
        tempX = X - 40;
        if (Z < tempX) tempX = Z;
        }
    else if (X >= (maxX - sizeX)) { // right edge
        tempX = maxX - X; 
        if (Z < tempX) tempX = Z;
        }
    else tempX = Z;
    document.getElementById('heliImg').width = Math.floor(tempX);
    document.getElementById('heliImg').height = Math.floor(tempX/2);
   
    heliActive = 1;
    t = setTimeout('runHeli()', timeout);   
}

function stopHeli() {
    if (heliActive) clearTimeout(t);
    heliActive = 0;
}

function pauseHeli() {
//    clearTimeout(t);
}

function continueHeli() {
//    if (heliActive == 1) t = setTimeout('runHeli()', timeout);
}

function startheader() {
    if (WIEnu == '1') document.getElementById('wie').innerHTML = 'U bent op dit moment de enige fan online.';
    else document.getElementById('wie').innerHTML = 'Er zijn nu ' + WIEnu + ' fans online.';
    runHeli();
}

function stopheader() {
    stopHeli();
}
