aktiv = 'none';

function reset() {
  hidecontent();
  grey();
}

function start(countdown) {
  movement = 1;
  
  if (countdown == 1) {
    start_countdown();
    window.setTimeout("move()",10000);
  }
  else move();

  Effect.Appear('stop', { duration: 1.0 });
  Effect.Fade('drag', { duration: 1.0 });
  
  if (typeof(drag1) == 'object') drag1.destroy();
  if (typeof(drag2) == 'object') drag2.destroy();
  if (typeof(drag3) == 'object') drag3.destroy();
  if (typeof(drag4) == 'object') drag4.destroy();
  if (typeof(drag5) == 'object') drag5.destroy();
  if (typeof(drag6) == 'object') drag6.destroy();
  if (typeof(drag7) == 'object') drag7.destroy();
  if (typeof(drag8) == 'object') drag8.destroy();
}

function start_countdown() {
  Effect.Appear('countdown', { duration: 0.5 });

  Effect.Appear('countdown_10', { duration: 0.5, queue: 'end' });
  Effect.Fade('countdown_10', { duration: 0.5, queue: 'end' });

  Effect.Appear('countdown_9', { duration: 0.5, queue: 'end' });
  Effect.Fade('countdown_9', { duration: 0.5, queue: 'end' });

  Effect.Appear('countdown_8', { duration: 0.5, queue: 'end' });
  Effect.Fade('countdown_8', { duration: 0.5, queue: 'end' });

  Effect.Appear('countdown_7', { duration: 0.5, queue: 'end' });
  Effect.Fade('countdown_7', { duration: 0.5, queue: 'end' });

  Effect.Appear('countdown_6', { duration: 0.5, queue: 'end' });
  Effect.Fade('countdown_6', { duration: 0.5, queue: 'end' });

  Effect.Appear('countdown_5', { duration: 0.5, queue: 'end' });
  Effect.Fade('countdown_5', { duration: 0.5, queue: 'end' });

  Effect.Appear('countdown_4', { duration: 0.5, queue: 'end' });
  Effect.Fade('countdown_4', { duration: 0.5, queue: 'end' });
  
  Effect.Appear('countdown_3', { duration: 0.5, queue: 'end' });
  Effect.Fade('countdown_3', { duration: 0.5, queue: 'end' });
  
  Effect.Appear('countdown_2', { duration: 0.5, queue: 'end' });
  Effect.Fade('countdown_2', { duration: 0.5, queue: 'end' });
  
  Effect.Appear('countdown_1', { duration: 0.5, queue: 'end' });
  Effect.Fade('countdown_1', { duration: 0.5, queue: 'end' });

  Effect.Fade('countdown', { duration: 0.5, queue: 'end' });
}

function move_container(id,left1,top1,duration1) {
  if (duration1 > 1) {
    new Effect.Morph(id, { style: 'top: '+top1+'px; left: '+left1+'px; margin-left: 0px;', duration: duration1 });
  }
}

function stop() {
  movement = 0;
  
  drag1 = new Draggable('webdesign');
  drag2 = new Draggable('programmierung');
  drag3 = new Draggable('grafikdesign');
  drag4 = new Draggable('impressum');
  drag5 = new Draggable('referenz_1');
  drag6 = new Draggable('referenz_2');
  drag7 = new Draggable('referenz_3');
  drag8 = new Draggable('referenz_4');

  Effect.Fade('stop', { duration: 1.0 });
  Effect.Appear('drag', { duration: 1.0 });

  Effect.Fade('countdown', { duration: 0.5 });

  // drag1.destroy();
}

function move() {
  if (movement == 0) return;

  var width = window.innerWidth - 310;
  var height = window.innerHeight - 310;

  var left = new Array();
  var top = new Array();
  var duration = new Array();

  var zaehler = 1;
  while (zaehler <= 7) {
    left[zaehler] = 40 + Math.floor(Math.random()*width);
    top[zaehler] = 40 + Math.floor(Math.random()*height);
    duration[zaehler] = 1 + Math.floor(Math.random()*4);
    zaehler++;
  }

  window.setTimeout("move_container('webdesign','"+left[1]+"','"+top[1]+"','"+duration[1]+"')",(duration[2]-2)*1000);
  window.setTimeout("move_container('programmierung','"+left[2]+"','"+top[2]+"','"+duration[2]+"')",(duration[3]-2)*1000);
  window.setTimeout("move_container('grafikdesign','"+left[3]+"','"+top[3]+"','"+duration[3]+"')",(duration[4]-2)*1000);
  window.setTimeout("move_container('impressum','"+left[4]+"','"+top[4]+"','"+duration[4]+"')",(duration[5]-2)*1000);
  window.setTimeout("move_container('referenz_1','"+left[5]+"','"+top[5]+"','"+duration[5]+"')",(duration[6]-2)*1000);
  window.setTimeout("move_container('referenz_2','"+left[6]+"','"+top[6]+"','"+duration[6]+"')",(duration[7]-2)*1000);
  window.setTimeout("move_container('referenz_3','"+left[6]+"','"+top[7]+"','"+duration[7]+"')",(duration[1]-2)*1000);
  max = Math.max(duration[1]+duration[2]-2,
                 duration[2]+duration[3]-2,
                 duration[3]+duration[4]-2,
                 duration[4]+duration[5]-2,
                 duration[5]+duration[6]-2,
                 duration[6]+duration[7]-2,
                 duration[7]+duration[1]-2);
  interval_move = window.setTimeout("move()",(max)*1000);
}

function white() {
  var listItems = $('cubes').select('h1');
  Effect.multiple(listItems,Effect.Fade);
  var listItems = $('cubes').select('p');
  Effect.multiple(listItems,Effect.Fade);
  var listItems = $('referenzen').select('div[class=thumb]');
  Effect.multiple(listItems,Effect.Shrink);
}

function grey() {
  var listItems = $('cubes').select('h1');
  Effect.multiple(listItems,Effect.Appear);
  var listItems = $('cubes').select('p');
  Effect.multiple(listItems,Effect.Appear);
  var listItems = $('referenzen').select('div[class=thumb]');
  Effect.multiple(listItems,Effect.Grow);
}

function hidecontent() {
  Effect.Fade('content_'+aktiv, { duration: 1.0 });
  aktiv = 'none';
}

function showcontent(container) {
  if (aktiv != 'none') return;
  white();
  aktiv = container;
  Effect.Appear('content_'+container, { duration: 1.0 });
}

// Preloader

var Preloader = {
    load: function() {
        var args = $A(arguments);
        var callback = Object.isFunction(args.last()) ? args.pop() : Prototype.emptyFunction;
        var urls = Object.isArray(args[0]) ? $A(args[0]) : args;
        var loaded = 0;
        var images = $A();

        var onload = function() {
            if (++loaded == urls.length) {
                callback();

                // cleanup
                images.each(function(i) { delete i });
                images = callback = urls = null;
            }
        };

        urls.each(function(url) {
            var image = new Image();
            image.onload = image.onerror = onload;
            image.src = url;
            images.push(image);
        });
    }
};
