var textBuffer = Array(),txtFormat = Array(), macro = Array(), grau, curTextBuffer, charOffset, activeTO, txtObj, initialize_iframe = true, txtCounter, switchSPAN=false, prefixNext=false;

var l_grau=Array(), lf_TO = Array(), link_obj = Array();

var formatKey = "^",
    typeWait = 100,
    fadeoutSpeed = 20,
    fade_color=197,            // decimal fŸr C5
    fade_step=3,
    link_fd_speed = 25,
    link_fh_speed = 10,
    link_hi=197,
    link_lo=1;					// 0 macht probleme - ist abe so gut wie schwarz...


textBuffer["ref"] = "atelier goldner schnitt ^m1^ bernhard fleischer moving images ^m1^ mag. harald burgauner ^m1^ dr. ernst cloeter ^m1^ coty austria ^m1^ daihatsu austria ^m1^ damtec d^a^mmunterlagen ^m1^ 3volt ^m1^ european union opera ^m1^ fh-sbg ^m1^ sabina hank ^m1^ i.gym ^m1^ induktiv edv.dienstleistungen ^m1^ international press institute ^m1^ kraiburg gruppe ^m1^ kfz k^u^hleitner ^m1^ media ^&^ concept ^m1^ neue medien interaktiv ^m1^ ncicube ^m1^ physiocenter ^m1^ salzburg-agentur ^m1^ satellitenstadt ^m1^ schauspielhaus bochum ^m1^ dr. thomas schindler ^m1^ sch^u^tz engineering ^m1^ sekira verpackungstechnik ^m1^ sportec sportbodensysteme ^m1^ stadt salzburg ^m1^ strail verkehrssysteme ^m1^ karoline strobl ^m1^ twinnie ^m1^ worthbase ^m1^ zahn, mund ^&^ psyche";

macro[2] = '<span style="font-weight:bold">::</span>';
macro[1] = '<img src="images/onepx_grey.png" width="6" height="6" alt="">';

function _lf2d(link_id) {

	l_grau[link_id] = l_grau[link_id] - fade_step;

	link_obj[link_id].style.color="rgb("+l_grau[link_id]+","+l_grau[link_id]+","+l_grau[link_id]+")";

	if (l_grau[link_id] >= link_lo)
		lf_TO[link_id] = window.setTimeout("lf2d('"+link_id+"')", link_fd_speed);

}

function lf2d(link_id) {
    if (lf_TO[link_id]) window.clearTimeout(lf_TO[link_id]);
	if (!l_grau[link_id]) l_grau[link_id] = link_hi;
    if (!link_obj[link_id]) link_obj[link_id] = document.getElementById(link_id);
	_lf2d(link_id);
}

function _lf2h(link_id) {

	l_grau[link_id] = l_grau[link_id] + fade_step;

	link_obj[link_id].style.color="rgb("+l_grau[link_id]+","+l_grau[link_id]+","+l_grau[link_id]+")";

	if (l_grau[link_id] <= link_hi)
		lf_TO[link_id] = window.setTimeout("_lf2h('"+link_id+"')", link_fh_speed);

}

function lf2h(link_id) {
    if (lf_TO[link_id]) window.clearTimeout(lf_TO[link_id]);
    link_obj[link_id] = document.getElementById(link_id);
    l_grau[link_id] = link_lo;
    _lf2h(link_id);
}

function fadeout() {

    txtObj.style.color="rgb("+grau+","+grau+","+grau+")";

    grau=grau+fade_step;

    if (grau <= 255)
         activeTO = setTimeout("fadeout()", fadeoutSpeed);
    else txtObj.innerHTML='';

}

function stop_tt() {
    if (activeTO) window.clearTimeout(activeTO);
    txtCounter=0;
    txtFormat["b"] = false;
    txtFormat["i"] = false;
    txtFormat["s"] = false;
    fadeout();
}

function process_params() {
	prevChar = curTextBuffer.substr(charOffset-1, 1);

	++charOffset;
    workText = "";

    format_index = curTextBuffer.substr(charOffset, 1);

    if (format_index == "m") {
        ++charOffset;
        workText = macro[curTextBuffer.substr(charOffset, 1)];
        switchSPAN = true;
    } else if (" aou§".indexOf(format_index)) {
        switch(format_index) {
            case "a": workText = "&auml;"; break;
            case "o": workText = "&ouml;"; break;
            case "u": workText = "&uuml;"; break;
            case "§": workText = "&szlig;"; break;
            case "&": workText = "&amp;"; break;
            case '"': workText = "&quot;"; break;
            case ' ': workText = "&nbsp;"; break;
            case 'Â': workText = "&not;"; break;
        }
    } else {

        if (txtFormat[format_index])
             txtFormat[format_index] = false;
        else txtFormat[format_index] = true;
    }

    ++charOffset;

	if (prevChar == " ") workText = " " + workText;

    return workText;
}

function getFormatetBuffer() {
    curChar = curTextBuffer.substr(charOffset, 1);
    prevChar = curTextBuffer.substr(charOffset-1, 1);

    if (curChar == " ") return '';
	if (prevChar == " ") curChar = " " + curChar;
    if (txtFormat["b"]) curChar = curChar.bold();
    if (txtFormat["i"]) curChar = curChar.italics();
    if (txtFormat["s"]) curChar = curChar.strike();

	return curChar;
}

function type_text() {
    if (activeTO) window.clearTimeout(activeTO);
    txtOut = "";

    xObj = info_frame.document.getElementById(txtCounter);

    if (curTextBuffer.substr(charOffset, 1) == formatKey)
         txtOut = process_params();
    else txtOut = getFormatetBuffer();

	xObj.innerHTML = xObj.innerHTML + txtOut;

    if (switchSPAN) {
        ++txtCounter;
        xObj.innerHTML = xObj.innerHTML + ' <span id="'+txtCounter+'"></span>'
        switchSPAN = false;
    }

    ++charOffset;

    if (charOffset < curTextBuffer.length)
        activeTO = window.setTimeout("type_text()", typeWait);
}

function init_tt(textBufferId) {
    if (activeTO) window.clearTimeout(activeTO);
    curTextBuffer = textBuffer[textBufferId];

    charOffset=0;
    txtCounter=0;
    grau = fade_color;

    if (initialize_iframe) {
        info_frame.document.open();
        info_frame.document.write('<div id="info_text" style="font-family:Verdana,Arial,sans-serif;line-height:12px;font-size:10px;top:-2;position:absolute"></div>');
        info_frame.document.close();
        initialize_iframe = false;
        txtObj = info_frame.document.getElementById("info_text");
    }

    txtObj.innerHTML = '<span id="0"></span>';
    txtObj.style.color="rgb("+fade_color+","+fade_color+","+fade_color+")";
    activeTO = window.setTimeout("type_text()", 10);
    // document.getElementById("debug").innerHTML = "";
}

function w_o(url,fenster,breit,hoch) {
    F1=window.open(url,fenster,"width=" +breit+ ",height=" +hoch+ ",status=no,scrollbars=no,resizable=no");
    F1.focus();
}


