// JavaScript Document
//prüft das gesamte Dokument

function p_l_z(f)
{

	wert = f.value.length;
	if( (wert >0) && (wert != 5) )
	{
		alert("Geben Sie bitte eine korrekte PLZ ein");
		f.focus();
		return false;
	}	
	return NurZiffern(f);
}
function pruefen(f)
{
   var fehler = "" //Variable für die Fehlermeldung
   var radiocheck = "" //Variable für überprüfte Radiobutton
   set_focus = false;

   var i; //Enthält das jeweilige Formularelement
   for (var j=0; j<f.elements.length; j++)
   {
      i = f.elements[j];
	  
	  //Generel nicht zu überprüfende Formularfelder
	  switch(i)
	  {
	  
	    case document.forms[0].anrede:
			continue;
		case document.forms[0].titel:
			continue;
		case document.forms[0].funktion:
			continue;	
	  	case document.forms[0].fax:
			continue;		
		case document.forms[0].bemerkungen:
			continue;
		case document.forms[0].mobil:
			continue;
		case document.forms[0].Anruf_um:
			continue;
		
				
	  }		
	  //Texteingabefelder
      if (i.type=="text"||i.type=="password"||i.type=="textarea")
         if (i.value=="")
		 {
		 	fehler += gibFeldText(i.name) + "\n"
         }
      //Radiobuttons
 		if (i.type=="radio")
		{
         	if (radiocheck.indexOf(i.name+ " "<0))
		 	{
	 		radiocheck += i.name + " "
            eval("radiogroup = f."+i.name)
            var ok = false;
            for (var j=0; j<radiogroup.length; j++)
               if (radiogroup[j].checked)
                  ok = true
            if (!ok)
               fehler += gibFeldText(i.name) + "\n"
         }
      }

      //Auswahllisten
      if (i.type=="select-one" || i.type=="select-multiple")
	  {
         if (i.selectedIndex == 0)
		 {
            fehler += gibFeldText(i.name) + "/n";
		 }
	  }
   }

   //Fehlermeldung
   if (fehler != "")
   {
   		
		
   		
     // if(!makeAlert('Fehler beim Absenden des Kontaktforumlars', 'Bitte füllen Sie die folgenden Felder aus:\n\n' + fehler))
	  //{	  
	  	alert('Bitte füllen Sie die folgenden Felder aus:\n\n' + fehler);
	  //}
	  //document.forms[0].feld.focus();
      return false
   }
   return true
}
function gibFeldText(feld)
{
	switch(feld)
	{
		case "name":
			return "Nachname";
		case "vorname":
			return "Vorname";
		case "strasse":
			return "Strasse";
		case "strasse_nr":
			return "Strassen Nr";
		case "plz":
			return "PLZ";
		case "ort":
			return "Ort";
		case "telefon":
			return "Telefon";		
		case "fax":
			return "Fax";
		case "bemerkungen":
			return "Bemerkungen";
		default:
			return feld
	}
}

//prüft, ob ein Feld nur Ziffern enthält
function NurZiffern(Feld)
{
	if (Feld.name == "Telefon" || Feld.name == "Tele_Fax" || Feld.name == "Mobil_Telefon")
	{
		return PruefeZeichen(Feld, "0123456789/ ()", "Bitte pr\xFCfen Sie die Zahl");
	}
	else
	{
		return PruefeZeichen(Feld, "0123456789", "Bitte pr\xFCfen Sie die Zahl");
	}
}

//Funktion zum überprüfen der email-angabe
function eMailAdresseOK(eMail)
{
  	if (eMail.value.length==0)
	{
		return true
	}

	var FehlerMeldung = new String("Fehler in der eMail-Adresse\n\n")

	var PosEt = eMail.value.indexOf("@")
	if (PosEt == -1)
    {
    	alert(FehlerMeldung + "Es fehlt ein @")
	    return eMail.focus()
    }
  	if (PosEt == 0)
    {
		alert(FehlerMeldung + "Es fehlt der Empf\xE4nger")
	    return eMail.focus()
    }
	if (eMail.value.indexOf("@", PosEt + 1) > PosEt)
    {
    	alert(FehlerMeldung + "Es darf nur ein @ enthalten sein")
	    return eMail.focus()
    }

	var PosPt = eMail.value.indexOf(".", PosEt)

	if ((PosPt == -1) || (PosPt - PosEt < 2) || (eMail.value.length - PosPt < 3))
    {
	    FehlerMeldung += "Eine eMail-Adresse muss so aufgebaut sein: x@x.xx "
    	FehlerMeldung += "Jedes x steht f\xFCr mindestens ein Zeichen"
	    alert(FehlerMeldung)
    	return eMail.focus()
    }

	var ZugelasseneZeichen = new String("abcdefghijklmnopqrstuvwxyz")
	  ZugelasseneZeichen += ZugelasseneZeichen.toUpperCase() + "0123456789.-_@"

	return PruefeZeichen(eMail, ZugelasseneZeichen, FehlerMeldung)
}

//prüft, ob das übergebene Variablen "Feld" Zeichen enthält, die in der übergebenen Variablen "ZugelasseneZeichen" nicht entahlten sind
function PruefeZeichen(Feld, ZugelasseneZeichen, FehlerMeldung)
{
	for (var Pos = 0; Pos < Feld.value.length; Pos++)
    {
    	if (ZugelasseneZeichen.indexOf(Feld.value.charAt(Pos)) == -1)
	    {
    		FehlerMeldung += "\n\nIhre Eingabe enth\xE4lt das Zeichen '"
			FehlerMeldung += Feld.value.charAt(Pos)
      		FehlerMeldung += "'. Sie d\xFCrfen nur diese Zeichen verwenden:\n"
      		FehlerMeldung += ZugelasseneZeichen
      		if (ZugelasseneZeichen.indexOf(" ") == -1)
        	{
        		FehlerMeldung += "\nLeerzeichen sind nicht erlaubt"
        	}
      		else
        	{
        		FehlerMeldung += "\nund das Leerzeichen"
        	}
      		alert(FehlerMeldung)
      		Feld.focus()
      		return false;
     	}
	}
}

hexa = new Array(0,1,2,3,4,5,6,7,8,9,"a","b","c","d","e","f");

function hex(i)
{
    if (i < 0)
        return "00";
    else if (i > 255)
        return "ff";
    else
       return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}

var step  		= 20;	//Die Anzahl der Farbpaletteneinträge. Die Farbabstufungen
var max_Object 	= 18; //Anzahl der Zellen, Objekte

//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();

//Berechne Farbübergänge

//Farbübergänge Background
var colors = new Array(step);
createColorTable( colors, 204, 204, 204 , 255,255,255 ); 
//Farbübergänge Schrift
var colors2 = new Array(step);
createColorTable( colors2, 0, 0,0,0,0, 0);

//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];

	e.element.style.backgroundColor = "" + colors[Math.round(e.i)];
	e.element.style.color = "" + colors2[Math.round(e.i)];	
	//e.element.style.background = "" + colors[e.i]; //Mozilla muckt hier auf....

 	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;
}

function fadein(i,element)
{
	var e = fadeArray[i];

	if ( e.element == 0 )
		e.element = element;

	e.direction = 1;
    fade(i,5);	//Anpassen falls nötig
}

function fadeout(i)
{
	fadeArray[i].direction = 0;
	fade(i,1);	//Anpassen falls nötig
}

