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 		= 20; 	//Anzahl der Zellen, Objekte

//Berechne Farbübergänge
//Man muss die Farben noch fürs ein- und ausfaden anpassen
var colors = new Array(step); //Farbübergang für die Zelle
createColorTable( colors, 236, 0, 140, 190, 0, 110 );

var colors2 = new Array(step); //Farbübergang für die Schrift
createColorTable( colors2, 255, 255, 255, 255, 255, 255 );

var colors4 = new Array(step); //Farbübergang für die Schrift
createColorTable( colors4, 255, 255, 255, 80, 80, 80 );

var colors5 = new Array(step); //Farbübergang für leistungsmenüs
createColorTable( colors5, 255, 255, 255, 255,228, 238 );
//////////////////////////////////////////////////////////////////////////////////////////

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);
    }
}

//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 == 4 )
		e.element.style.color = "" + colors4[Math.round(e.i)];

	if ( e.typ == 5 ){
		e.element.style.background = "" + colors5[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, hide, page)
{
  echo (page);

  if(hide) {
    showContext(nr);
  }
	var e = fadeArray[nr];

	if ( e.element == 0 )
		e.element = element;

	e.direction = 1;
	e.typ		= fadetyp;

    fade(nr,faktor);
}

function echo(page){
   switch (page) {

    case  0: status='Zurück zur Startseite';break;
    case  1: status='Lernen Sie unsere FirmenPhilosophie näher kennen';break;
    case  2: status='Ein kurzer Überblick über unser Serviceangebot';break;
    case  3: status='Einige Beispiele unserer bisherigen Tätigkeit';break;
    case  4: status='Hier finden Sie unsere Kontaktinformationen';break;
    case  5: status='Das obligatorische Impressum';break;
    case  6: status='Nutzen Sie unseren kostenlosen RückrufService';break;
    case  7: status='Nutzen Sie unseren WebMailer um uns eine Nachricht zukommen zu lassen';break;
    case  8: status='Schicken Sie uns eine eMail';break;
    case  9: status='Sie wünschen, wir programmieren';break;
    case 10: status='Der persönliche Rundumservice für Ihr Unternehmen';break;
    case 11: status='Guter Geschmack ist keine Geschmackssache';break;
    case 12: status='Ihre individuelle Homepage, professionell gemacht';break;
    case 13: status='Lernen Sie Ihre Zeit besser zu nutzen';break;
    case 14: status='Hardware/Software - wir finden das passende für Sie';break;
    case 15: status='Wir lösen Probleme';break;
    case 16: status='Wir helfen Ihnen beim Umstieg';break;
    case 17: status='Ansprechpartner bei allen kleinen und großen Problemen';break;
    case 18: status='faire Preise für guten Service';break;

	case 30: status='weiter zur nächsten Seite';break;
	case 31: status='zurück zur vorherigen Seite';break;
	
	case 35: status='Nehmen Sie mit uns Kontakt auf';break;
	case 36: status='Wir rufen Sie zurück';break;


	case 40: status='Infomationen grafisch darstellen';break;
	case 41: status='Grundlegendes Handwerk';break;
	case 42: status='Verborgene Schönheit freilegen';break;
	case 43: status='Programme die den Alltag erleichtern';break;
	case 44: status='Gute Seiten gehören zum guten Ton';break;

    case 50: status='Arnoldt IT - Startseite';break;
    case 51: status='Arnoldt IT - Firmenprofil';break;
    case 52: status='Arnoldt IT - Leistungen';break;
    case 53: status='Arnoldt IT - Referenzen';break;
    case 54: status='Arnoldt IT - Kontakt';break;
    case 55: status='Arnoldt IT - Impressum';break;
    case 56: status='Arnoldt IT - CallBack Service';break;
    case 57: status='Arnoldt IT - WebMailer Service';break;
    case 58: status='Arnoldt IT - PrivatKunden';break;
    case 59: status='Arnoldt IT - Prgrammieren';break;
    case 60: status='Arnoldt IT - Preise';break;
    case 61: status='Arnoldt IT - SystemAdministration';break;
	case 62: status='Arnoldt IT - Grafiken / Design';break;
	case 63: status='Arnoldt IT - Homepages';break;
	case 64: status='Arnoldt IT - Schulungen';break;
	case 65: status='Arnoldt IT - Hardware / Software';break;
	case 66: status='Arnoldt IT - PC-Notdienst';break;
	case 67: status='Arnoldt IT - Internet / Telefon';break;
	case 68: status='Arnoldt IT - Betreuung';break;
	case 69: status='Arnoldt IT - Preise';break;



  }
  return true;
}


//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, page )
{
  echo (page);
	fadeArray[nr].direction = 0;
	fade(nr,faktor);
}


function showContext(nr){
  document.getElementById("c1").style.visibility = "hidden";
  document.getElementById("c2").style.visibility = "hidden";
  document.getElementById("c3").style.visibility = "hidden";
  document.getElementById("c4").style.visibility = "hidden";
  switch (nr) {
    case 3:document.getElementById("c1").style.visibility = "visible"; ;break;
    case 2:document.getElementById("c2").style.visibility = "visible"; ;break;
    case 1:document.getElementById("c3").style.visibility = "visible"; ;break;
    case 0:document.getElementById("c4").style.visibility = "visible"; ;break;
  }
}
