// JavaScript Document

var Pos = new Class({
  initialize: function( X, Y ) { this.x = X, this.y = Y },
  add: function( dx, dy ) { return new Pos( this.x+dx, this.y+dy ); }
});

var Set = Array;
Set.implement({
  mirrorX: function() {
    var d = window.getSize();
    var m = new Set;
    for ( var i=0; i<anz; i++ )
      m.push( new Pos( d.x-this[i].x-width, this[i].y ));
    return m;
  },
  mirrorY: function() {
    var d = window.getSize();
    var m = new Set;
    for ( var i=0; i<anz; i++ )
      m.push( new Pos( this[i].x, d.y-this[i].y-height ));
    return m;
  }
});

var set = 0;
var sets = 0;
var width = 0, oldWidth = 0;
var height = 0, oldHeight = 0;
var fontSize = 0, oldFontSize = 0;
var deltaWidth, deltaHeight, deltaFontSize;
var bewegung;

function calcSets() {
  oldWidth = width;
  oldHeight = height;
  width = 228;
  height = 197;
  var d = window.getSize();
  $('adresse').setStyles({
    top: d.y *0.94,
    fontSize: d.y*0.04
  });
  if ( d.x<width*5 ) {
    height *= (d.x/5/width);
    width = d.x/5;
  }
  if ( d.y<height*4.3 ) {
    width *= (d.y/4.3/height);
    height = d.y/4.3;
  }
  
  bewegung = new Fx.Morph( 'bewegung', {
    duration: 2000,
    transition: Fx.Transitions.Sine.easeOut
  });
  var to ={
    marginTop: d.y*0.36,
    fontSize: d.y*0.08,
    opacity: 1
  };
  if ( oldWidth )
    bewegung.start( to );
  else
    bewegung.set( to );

  boxSize.x = d.x*0.75;
  boxSize.y = d.y*0.75;
  
  if ( oldWidth && oldWidth!=width ) {
    oldFontSize = fontSize;
    fontSize = height / 8;
    deltaWidth = width - oldWidth;
    deltaHeight = height - oldHeight;
    deltaFontSize = fontSize - oldFontSize;
  } else
    fontSize = height / 8;
    
  var stepX = width * 0.79;
  var stepY = height * 0.51;

  set = new Array();
  
  // Kreis
  var s = new Set;
  s[0] = new Pos( d.x/2-width/2, d.y/2-height*1.5 );
  s[1] = s[0].add( stepX, stepY );
  s[2] = s[0].add( stepX, 3*stepY );
  s[3] = s[0].add( 0, 4*stepY );
  s[4] = s[0].add( -stepX, 3*stepY );
  s[5] = s[0].add( -stepX, stepY );
  set.push( s );
  
  // Stern
  s = new Set;
  s[0] = new Pos( d.x/2-width/2, d.y/2-height );
  s[1] = s[0].add( 0, -2*stepY );
  s[2] = s[0].add( stepX, 3*stepY );
  s[3] = s[2].add( stepX, stepY );
  s[4] = s[0].add( -stepX, 3*stepY );
  s[5] = s[4].add( -stepX, stepY );
  set.push( s );
  
  // Stern 2
  set.push( s.mirrorY());
      
  // Dreieck rechts
  s = new Set;
  s[0] = new Pos( 10, d.y/2-height*1.5 );
  s[1] = s[0].add( 0, stepY*2 );
  s[2] = s[0].add( 0, stepY*4 );
  s[3] = s[0].add( stepX, stepY );
  s[4] = s[1].add( stepX, stepY );
  s[5] = s[3].add( stepX, stepY );
  set.push( s );
  
  // Dreieck links
  set.push( s.mirrorX())
  
  // Reihe oben
  s = new Set;
  s[0] = new Pos( d.x/2-width/2-2*stepX, 10 );
  s[1] = s[0].add( stepX, stepY );
  s[2] = s[0].add( 2*stepX, 0 );
  s[3] = s[2].add( stepX, stepY );
  s[4] = s[2].add( 2*stepX, 0 );
  s[5] = s[1].add( stepX, stepY );
  set.push( s );
  
  // Reihe unten
  set.push( s.mirrorY());
  
  // Diagonale \
  s = new Set;
  s[0] = new Pos( (d.x-5*stepX-width)/2, (d.y-5*stepY-height)/2 );
  s[1] = s[0].add( stepX, stepY );
  s[2] = s[1].add( stepX, stepY );
  s[3] = s[2].add( stepX, stepY );
  s[4] = s[3].add( stepX, stepY );
  s[5] = s[4].add( stepX, stepY );
  
  // Diagonale /
  set.push( s.mirrorX());
  
  sets = set.length;
  
  resize = false;
}

