// letters.js

var letter_basename = {
    K1: 'K',
    u1: 'u',
    n1: 'n',
    t1: 't',
    e1: 'e',
    r1: 'r',
    b1: 'b',
    u2: 'u',
    n2: 'n',
    t2: 't',
    e2: 'e',   
    P1: 'Pg',
    u3: 'u',
    m1: 'm',
    a1: 'a',
    p2: 'p',
    a2: 'a',
    n3: 'n',
    t3: 't',
    h1: 'h',
    e3: 'e',
    r2: 'r' };

var letter_name = [ 'K1', 'u1', 'n1', 't1', 'e1', 'r1', 'b1', 'u2', 'n2', 't2', 'e2',   
    'P1', 'u3', 'm1', 'a1', 'p2', 'a2', 'n3', 't3', 'h1', 'e3', 'r2'];

var letter_color = [ 'rot', 'gruen', 'blau',
    'lila', 'orange','tuerkis', 'pink' ];

var letters = new Object;

/* ----------------------------------------------- */

var Letter = Class.create();

Letter.prototype = {

    initialize: function(name, base_name, no_effect) {
	this.name = name;
	this.base_name = base_name;
	this.timeout = false;
	this.image = $(name);
	this.counter = 1;

	if(! no_effect) this.set_timeout();
	//this.circle();
	return this;
    },

    random_color: function(color){
	if(! color) color = Math.floor(Math.random() * letter_color.length);
	if(color >= letter_color.length) color = 0;
	this.image.src = ('/pics/letters/' + this.base_name +
			  '_' + letter_color[color] + '.png');
    },

    change: function(color, time, func){
	this.random_color(color);
	this.set_timeout(time, func);
    },

    circle: function(){
	this.change(this.counter, 1000, 'circle_letter');
	this.counter++;
	if(this.counter > letter_color.length) this.counter = 1; // no zero!
    },

    set_timeout: function(time, func) {
	if(! func) func = 'change_letter';
	if(! time) time = 2000 + Math.floor(Math.random() * 5000); // 2-7 sec
	this.timeout = window.setTimeout(func + '("' + this.name + '");',
					 time);
    }
};

/* ----------------------------------------------- */

function letter_init(no_effect) {
    for (var i in letter_basename) {
	letters[i] = new Letter(i, letter_basename[i], no_effect);
    }
}

function change_letter(id) {
    var lt = letters[id];
    if(lt) lt.change();
}

function circle_letter(id) {
    var lt = letters[id];
    if(lt) lt.circle();
}

function change_one_letter(id, time){
    var lt = '';
    if(id){
	lt = letters[id];
    }else{
	var i = Math.floor(Math.random() * letter_name.length); // random index
	lt = letters[letter_name[i]];
    }

    if(lt) lt.random_color();

    if(! time) time = 1500 + Math.floor(Math.random() * 1500); // 1.5-3 sec

    window.setTimeout('change_one_letter();', time);
}

Event.observe(window, 'load', function() { letter_init(true); change_one_letter(); });

// End of file

