var tmpPics = new Array();
var fadeSpeed = 5;
var fadeTasks = 1;
var fadeStartTimout = 1000;
var taskTimeshift = 500;
var fadeTimeout = 1000;
var picArray = new Array();
picArray[0] = 0;
picArray[1] = 1;
picArray[2] = 2;
picArray[3] = 3;
picArray[4] = 4;
picArray[5] = 5;
picArray[6] = 6;


Array.prototype.copy = function() {
  return this.slice(0, this.length);
}

function initHome(){
  initLayout();
  initPics();
  for(var i = 0; i < fadeTasks; i++){
    setTimeout("fadeRandom()", taskTimeshift * i + fadeStartTimout);
  }
  //setTimeout("fadeRandom()", taskTimeshift * i + fadeStartTimout);
}

function initLayout(){
  var id = GetRandom(0, homeLayouts.length - 1);
  for(var i = 0; i < 7; i++){
    document.getElementById("pos" + i).style.position = "absolute";
    document.getElementById("pos" + i + "_fade").style.position = "absolute";
    try{
    posParts = homeLayouts[id][i].split("x");
    }
    catch(e){
      alert("fehler: " + id + " / " + i);
    }
    x = posParts[0];
    y = posParts[1];
    document.getElementById("pos" + i).style.top = y + "px";
    document.getElementById("pos" + i).style.left = x + "px";
    document.getElementById("pos" + i).style.width =  "160px";
    document.getElementById("pos" + i).style.height =  "160px";
    
    document.getElementById("pos" + i + "_fade").style.top = y + "px";
    document.getElementById("pos" + i + "_fade").style.left = x + "px";
    document.getElementById("pos" + i + "_fade").style.width =  "160px";
    document.getElementById("pos" + i + "_fade").style.height =  "160px";
    //document.getElementById("pos" + i).style.border =  "1px solid red";
  }
  //initLayoutRotate();
}

function initPics(){
  //alert(homePics.length);
  tmpPics = homePics.copy();
  for(var i = 0; i < 7; i++){
    picNumber = GetRandom(0, tmpPics.length - 1);
    src = tmpPics[picNumber];
    document.getElementById("pic" + i).src = src;
    document.getElementById("pic" + i + "_fade").src = src;
    tmpPics.splice(picNumber, 1);
  }
  //initPicRotate();
}

function initPicRotate(){
  var picRotateTimeout = 3;
  setTimeout("initPics()", picRotateTimeout * 1000);
}

function initLayoutRotate(){
  var layoutRotateTimeout;
  setTimeout("initLayout()", 3000);
}

function GetRandom( min, max ){
  if( min > max ) {
    return( -1 );
  }
  if( min == max ) {
    return( min );
  }
  return( min + parseInt( Math.random() * ( max-min+1 ) ) );
}

function fadeOut(id){
  var opacity = document.getElementById(id).style.opacity;
  opacity = parseFloat(opacity);
  opacity = opacity - 0.1;
  if(opacity < 0){
    opacity = 0;
  }
  document.getElementById(id).style.opacity = opacity;
  document.getElementById(id).style.filter = "alpha(opacity=" + opacity * 100 + ")";
  if(opacity > 0){
    setTimeout("fadeOut(\"" + id + "\");", fadeSpeed);
  }
  else{
    addToStacks(document.getElementById(id).src, id);
  }
}

function fadeIn(id){
  var opacity = document.getElementById(id).style.opacity;
  if(!opacity){
    opacity = 0;
  }
  opacity = parseFloat(opacity);
  opacity = opacity + 0.1;
  if(opacity > 1){
    opacity = 1;
  }
  document.getElementById(id).style.opacity = opacity;
  document.getElementById(id).style.filter = "alpha(opacity = " + opacity * 100 + ")";
  if(opacity < 1){
    setTimeout("fadeIn(\"" + id + "\");", fadeSpeed);
  }
  else{
    document.getElementById(id).style.filter = "";
  }
}

function fade(id){
  document.getElementById(id + "_fade").style.opacity = 1;
  document.getElementById(id + "_fade").style.filter = "alpha(opacity = 100)";
  document.getElementById(id + "_fade").src = document.getElementById(id).src;
  //document.getElementById(id).style.display = "none";
  document.getElementById(id).style.opacity = 1;
  document.getElementById(id).style.filter = "alpha(opacity = 100)";
  var newSrc = getRandomPic();
  document.getElementById(id).src = newSrc;
  //document.getElementById(id).style.display = "block";
  setTimeout("fadeIn(\"" + id + "\");", 50);
  setTimeout("fadeOut(\"" + id + "_fade\");", 1);
}

function fadeRandom(){
  var random = GetRandom(0, picArray.length - 1);
  var picNumber = picArray[random];
  picArray.splice(random, 1);
  fade("pic" + picNumber);
}

function getRandomPic(){
  var picNumber = GetRandom(0, tmpPics.length - 1);
  src = tmpPics[picNumber];
  //document.getElementById("pic" + i).src = src;
  tmpPics.splice(picNumber, 1);
  return src;
}

function addToStacks(path, id){
  tmpPics[tmpPics.length] = path;
  number = id.substr(3, 1);
  picArray[picArray.length] = parseInt(number);
  //alert("test: " + fadeTimeout);
  setTimeout("fadeRandom()", fadeTimeout);
}
