var hexArray = new Array(0,1,2,3,4,5,6,7,8,9,"a","b","c","d","e","f");

/////////////////////////////// User-Variablen ///////////////////////////////////////////

var step  			= 40;	//Die Anzahl der Farbpaletteneinträge. Die Farbabstufungen
var max_Object 		= 7; 	//Anzahl der Zellen, Objekte

//Berechne Farbübergänge
//Man muss die Farben noch fürs ein- und ausfaden anpassen
// hintergrundfading
var colors = new Array(step); //Farbübergang für die Zelle		hell   --> dunkel
createColorTable( colors, 255, 204, 102, 204, 51, 0 ); /*  ffcc66 --> cc3300 */
// Schriftfading
var colors2 = new Array(step); //Farbübergang für die Schrift
createColorTable( colors2, 102, 102, 51, 255, 204, 102 );	/*  666633 <-- ffcc66 */

//invColorTable(colors2);     /* invertiert die Reihenfolge der Farben für die Schrift */
//////////////////////////////////////////////////////////////////////////////////////////

// Checkt die Pflichtfelder der Adressmaske
function chkBest() {
// if((document.form._f13[0].checked == false)
// if(document.form._f32.value == "") {
////
//        document.form._f50a.focus();
//        return false;
//    }
	return true;
}



function hex(i)
{
    if (i < 0)
        return "00";
    else if (i > 255)
        return "ff";
    else
       return "" + hexArray[Math.floor(i/16)] + hexArray[i%16];
}

//FadeObjekte
var fadeArray = new Array( max_Object );	//Anzahl der Objekte, sprich der zu fadenden Felder
for ( i=0; i<fadeArray.length; i++ )
	fadeArray[i] = new Objekt();

//Param1: Das zu füllende Array
//Param2,3,4: Fadeout-Color
//Param5,6,7: Fadein-Color
function createColorTable( array, max_r, max_g, max_b, min_r, min_g, min_b )
{
	for ( i=0; i<array.length; ++i)
	{
        var r = Math.floor(max_r * ((step - i)/ step) + min_r * (i / step));
        var g = Math.floor(max_g * ((step - i)/ step) + min_g * (i / step));
        var b = Math.floor(max_b * ((step - i)/ step) + min_b * (i / step));
        array[i] = "#"+hex(r)+hex(g)+hex(b);
    }
}

function invColorTable(array) {
	var l = array.length;
	var j = l - 1;
	var hlp = new Array(l);
	hlp=array;
	for (i=0; i<l; i++) {
		array[i] = hlp[j];
		j--;
	}
}


//Der 1 Parameter ist der index des Objekts, welches gefadet werden soll. Index beginnt ab 0
//Der 2 Parameter gibt den Faktor an. Der Faktor ist der Wert wie schnell die Farbpalette durchlaufen werden soll.
function fade( elementNr, faktor )
{
	var e = fadeArray[elementNr];

	if ( e.typ & 1 )
		e.element.style.backgroundColor = "" + colors[Math.round(e.i)];

	if ( (e.typ & 1) && (e.element.style.backgroundColor == "") )
		e.element.style.background = "" + colors[Math.round(e.i)];

	if ( e.typ & 2 )
		e.element.style.color = "" + colors2[Math.round(e.i)];

 	if ( (!e.direction && e.i >0) || (e.direction && e.i<step-1) )
 	{
 		if ( e.direction )
 			e.i += faktor;
 		else
 			e.i -= faktor;

 		if ( e.i < 0 )
 			e.i = 0;
 		else if ( e.i >step-1 )
 			e.i = step-1;

 		setTimeout("fade("+elementNr+","+faktor+");",step);
 	}
}

//Das Objekt welches gefadet werden soll
function Objekt()
{
	this.element	= 0;
	this.i			= 0;
	this.direction  = 0;
	this.typ		= 1;
}

//nr:		Nummer des Fadeobjektes
//element:	Das Objekt
//faktor: 	Schnelligkeit des Fadens 1=normal(Arbeite alle Farbübergänge ab). Faktor 5 bedeutet: "Jede 5 Farbe", also 5 mal so schnell
//fadetyp: 	Was wollen sie faden 1=Tabellenzelle; 2=Text; 3=Beides; 0=nichts
function fadein( nr, element, faktor, fadetyp )
{
	var e = fadeArray[nr];

	if ( e.element == 0 )
		e.element = element;

	e.direction = 1;
	e.typ		= fadetyp;

    fade(nr,faktor);
}

//nr:		Nummer des Fadeobjektes
//faktor: 	Schnelligkeit des Fadens 1=normal(Arbeite alle Farbübergänge ab). Faktor 5 bedeutet: "Jede 5 Farbe", also 5 mal so schnell
function fadeout( nr, faktor )
{
	fadeArray[nr].direction = 0;
	fade(nr,faktor);
}

var DHTML = 0, DOM = 0, FF = 0, MS = 0, NS = 0, OP = 0;

/**
Bibliothek initialisieren:
Diese Funktion wird automatisch aufgerufen, wenn Sie die hier vorgestellte Bibliothek verwenden wollen. Dazu ist am Ende der Bibliotheksdatei der Aufruf DHTML_init() notiert. Anschließend sind die wichtigen globalen Variablen mit ihren Werten versorgt. Wenn DHTML_init() nicht vor allen anderen Aufrufen von Funktionen dieser Bibliothek aufgerufen wird, passiert nicht das Gewünschte, da dann eine veraltete Browserversion angenommen wird. Die Wirkungsweise der übrigen Funktionen ist davon abhängig, dass die globalen Variablen mit korrekten Werten versorgt sind. Durch die Notation am Ende der Datei ist dies jedoch sichergestellt und die globalen Variablen sind in allen Dokumenten verfügbar, die diese Bibliothek einbinden.
Die Funktion DHTML_init() bedient sich der Möglichkeit,  abzufragen, ob ein Objekt existiert. Bereits in der ersten Abfrage wird getestet, ob ein Opera-Browser vorliegt. Das ist notwendig, da Opera je nach Nutzereinstellung auch angibt, document.all oder document.layers zu kennen. Zum Testen auf DOM-Verfügbarkeit eignet sich die Frage, ob document.getElementById verfügbar ist, denn das ist eine wichtige DOM-Methode, die in allen DOM-Implementierungen existieren sollte.
Zum Testen auf die ältere Microsoft- und Netscape-Syntax wird auf deren zentrale DHTML-Objekte hin abgefragt. Wenn document.all verfügbar ist, ist Syntax nach dem älteren Microsoft-Modell angesagt. Wenn document.layers verfügbar ist, Syntax nach dem älteren Netscape-Modell. In beiden Fällen wird mit !OP der Opera-Browser ausgeschlossen, für den Fall, dass die Nutzereinstellungen die Kenntnis dieser Objekte ermöglichen.
**/
function DHTML_init()
{
    if (window.opera) {            // Opera 7.11
    OP = 1;
    }
    if(document.getElementById) {
    DHTML = 1;
    DOM = 1;
    }
    if(document.all && !OP) {      // Abfrage IE ab 4: if(document.all && !DOM && !OP) bzw. Abfrage IE ab 5: if(document.all && DOM && !OP)
    DHTML = 1;
    MS = 1;
    }
    if(document.layers && !OP) {    // Netscape ab 4
    DHTML = 1;
    NS = 1;
    }
    if (DOM && (!document.all)) { // Mozilla Firefox 1.0.6 und Netscape ab 6
    FF = 1;
    }
}

DHTML_init();