
var aktiv = window.setInterval("Farbe()", 100);
var farben = ["#000000", "#F0A845", "#D7C14F", "#C55310", "#A1450B", "#EFC34B", "#D96119"];
var flag = 0;
var count = 0;
var from_color = farben[0];
var body_target =  document.getElementById("body");

function Farbe() {
  from_color = farben[flag-1];
  if (flag >= farben.length-1) {
    flag = 0;
    from_color = farben[0];
  }
  /*document.bgColor = farben[flag++];*/

  /* schönere variante*/
  document.getElementsByTagName("body")[0].style.backgroundColor = farben[flag++];
  count++;

  if (count >= (farben.length-1)){
    var stop_at = array_rand( farben, 1 );
    document.getElementsByTagName("body")[0].style.backgroundColor = farben[stop_at];
    window.clearInterval(aktiv);
  }
}


function random_background(){
    var stop_at = array_rand( farben, 1 );
    document.getElementsByTagName("body")[0].style.backgroundColor = farben[stop_at];
}


function array_rand ( input, num_req ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Waldo Malqui Silva
    // *     example 1: array_rand( ['Kevin'], 1 );
    // *     returns 1: 0
 
    var Indexes = [];
    var Ticks = num_req || 1;
    var checkDuplicate = function ( input, value ) {
        var Exist = false, Index = 0;
        while ( Index < input.length ) {
            if ( input [ Index ] === value ) {
                Exist = true;
                break;
            }
            Index++;
        }
        return Exist;
    };
 
    if ( input instanceof Array && Ticks <= input.length ) {
        while ( true ) {
            var Rand = Math.floor ( ( Math.random ( ) * input.length ) );
            if ( Indexes.length === Ticks ) { break; }
            if ( !checkDuplicate ( Indexes, Rand ) ) { Indexes.push ( Rand ); }
        }
    } else {
        Indexes = null;
    }
 
    return ( ( Ticks == 1 ) ? Indexes.join ( ) : Indexes );
}