//--------------------- Formular auf Vollstþndigkeit pr&uuml;fen ---------------------

//window.status='formtest\.js loaded';
//alert('formtest loaded');

var feldfarbe = "#ffcc99" // hellgelb FFFF99
var textfarbe = "#000000"

//"#990000""#FFFFFF"

function resetField(feldObjekt) {
	//alert(feldObjekt);
	feldObjekt.style.backgroundColor = "#FFFFFF";
	feldObjekt.style.color = "#000000";
}

function go(theButton){

	//var testform = checkForm(theButton.formular)
	//alert(theButton)
	
	//if(testform != false){
	
		if(theButton.sendstate == 'ready'){
		
			theButton.sendstate = 'wait'
			theButton.disabled = true
			theButton.formular.action = submitButton.action
			theButton.formular.submit()
			timer=setTimeout("disableForm()",1000)
			
			aniButtonText();
		} 
		else {
			alert('not ready');
			//document.inputForm.status.value = "not ready state: "+sendstate
			theButton.formular.action = "#"
	 	}
	 //}
}
function disableForm(){

	submitButton.formular.action = "#"

}

function aniButtonText(){

	if(submitButton.pause >= 60){
		//alert('fertig');
		submitButton.sendstate = 'ready'
		submitButton.value = submitButton.origtext
		submitButton.pause = 0
		submitButton.counter = 0
		submitButton.disabled = false
		submitButton.formular.action = submitButton.action
	}

	if(submitButton.sendstate == 'wait'){
		submitButton.counter = (submitButton.counter < submitButton.waitLines.length-1) ? (submitButton.counter + 1) : 1
		submitButton.value = submitButton.waitLines[submitButton.counter]
		timer=setTimeout("aniButtonText()",100)

		submitButton.pause += 1
	}
	
}

function initForm(myForm){

	submitButton = document[myForm].sendbutton
	submitButton.origtext = submitButton.value
	submitButton.action = document[myForm].action
	submitButton.sendstate = 'ready'
	submitButton.pause = 0
	submitButton.counter = 0
	submitButton.waitLines = new Array();
	submitButton.buchstaben = submitButton.value.split("");
	submitButton.formular = document[myForm]
	
	//alert(submitButton.counter)

	document[myForm].action = '#'
	submitButton.value = submitButton.origtext
	
	var filler = ''

	// Textanimation fuer button
	
	for(var i=0; i<submitButton.buchstaben.length;i++){
		filler = filler + submitButton.buchstaben[i]
		var anzpoints = submitButton.buchstaben.length - i
		var punkte = ''
		  
		for(var x=1;x<anzpoints;x++){
			punkte = punkte +'>'
		}
		submitButton.waitLines[i] = punkte+filler
	}
	submitButton.waitLines.reverse()


}

function checkForm(theForm) {
	
	if(!theForm.lang.value){ sprache = "d" }
	else{sprache = theForm.lang.value}

	//if(theForm.lang){ sprache = theForm.lang.value }
	//else{sprache = "d"}
	
	if(sprache == "d"){
		// umlaute von mac manuell in iso 8859-1 konvertieren
		
		var missingfieldtext = "Bitte füllen Sie dieses Feld aus:\r \r";
		var invalidemailtext = "\r \rscheint keine gültige E-Mail Adresse zu sein!"
		var tomanytext = "Zeichen zu viel in Feld"
		var maxtext = "Maximale Anzahl Zeichen: "
		var noselectiontext = "keine Auswahl getroffen"
		var emailzwingendtext = "Wenn Anmeldung moeglich E-Mail = zwingend!"
		var phonenumbertext = "Unter welcher Telefonnummer sind Sie erreichbar?";
	}
	if(sprache == "f"){
		var missingfieldtext = "Remplissez ce champ s\'il vous plaît:\r \r"
		var invalidemailtext = "\r \rn\'est pas une adresse valide!"
		var tomanytext = "Zeichen zu viel in Feld"
		var maxtext = "Maximale Anzahl Zeichen: "
		var noselectiontext = "keine Auswahl getroffen"
		var emailzwingendtext = "Wenn Anmeldung moeglich E-Mail = zwingend!"
		var phonenumbertext = "Unter welcher Telefonnummer sind Sie erreichbar?";
	}
	if(sprache == "i"){
		var missingfieldtext = "Please fill out this field:\r \r"
		var invalidemailtext = "\r \rseems not to be a valid email address!"
		var tomanytext = "Zeichen zu viel in Feld"
		var maxtext = "Maximale Anzahl Zeichen: "
		var noselectiontext = "keine Auswahl getroffen"
		var emailzwingendtext = "Wenn Anmeldung moeglich E-Mail = zwingend!"
		var phonenumbertext = "Under what phone number may we call you?";
	}
	if(sprache == "e"){
		var missingfieldtext = "Please fill out this field:\r \r"
		var invalidemailtext = "\r \ris not a valid email address!"
		var tomanytext = "Zeichen zu viel in Feld"
		var maxtext = "Maximale Anzahl Zeichen: "
		var noselectiontext = "May we ask which brochure we should send you?"
		var emailzwingendtext = "Wenn Anmeldung moeglich E-Mail = zwingend!"
		var phonenumbertext = "Under what phone number may we call you?";
	}
	if(sprache == "s"){
		var missingfieldtext = "Please fill out this field:\r \r"
		var invalidemailtext = "\r \rseems not to be a valid email address!"
		var tomanytext = "Zeichen zu viel in Feld"
		var maxtext = "Maximale Anzahl Zeichen: "
		var noselectiontext = "keine Auswahl getroffen"
		var emailzwingendtext = "Wenn Anmeldung moeglich E-Mail = zwingend!"
		var phonenumbertext = "Under what phone number may we call you?";
	}

	var foundFlag = 0
	var foundBoxFlag = 0
	var countAnzahlFelder = 0
	var countBoxes = 0

	// Felder die zwingend ausgef&uuml;llt werden m&uuml;ssen (DB-Feldnamen)
 	// Klarere Feldnamen f&uuml;r die Fehlermeldung

	var required = theForm.required.value.split(",")
	var required2 = theForm.requiredLables.value.split(",")
	var zwingend = required2.join("/")
	
	// alle Formular Element durchgehen

	for (var i = 0; i <= (theForm.length-1);i++){
			
		var name = theForm.elements[i].name
		
		if(name.indexOf("anzahl",0) + 1) {                     // Mengenfelder durchgehen
			//alert(name)
			if(theForm[name].value){foundFlag = 1} // Mengenangabe vorhanden
			countAnzahlFelder = countAnzahlFelder + 1           // Anzahlfelder abzþhlen
			if(countAnzahlFelder == 1){ var anzahlFeld = name } // Name erstes Anzahlfeld
		}
		else if(name.indexOf("box:",0) + 1 || name.indexOf("anruf",0) + 1 ) {    // Boxen durchgehen
			//alert("box found:"+name+"\r"+theForm[name].checked)
			if(theForm[name].checked){foundBoxFlag = 1 } // mind. eine Box geklickt
			countBoxes++           // Anzahl Boxen abzþhlen
		}	
		else {
				 
			for (var x = 0; x <= (required.length);x++){       // andere Felder zwingend? 
						
				if(name == required[x] && theForm[name]){
								
					if(theForm[name].value == ""){	  // Inhalt vorhanden ?
						feldNamePlain = required2[x]              // Lable des Feldes
						alert(missingfieldtext +"\""+ feldNamePlain +"\"");
						theForm[name].style.backgroundColor = feldfarbe;
						theForm[name].style.color = textfarbe;

						theForm[name].focus();
						//theForm[name].className = 'error';
						return false
					} 
					
					fieldtype = theForm.elements[i].type
					
					if(fieldtype  == 'select-one'){ 

					var tempindex = theForm.elements[i].selectedIndex
					var auswahl = theForm.elements[i].options[tempindex].value

					if(auswahl == "..."){
						feldNamePlain = required2[x]              // Lable des Feldes
						alert(missingfieldtext +"\""+ feldNamePlain +"\"");
						
						theForm.elements[i].style.backgroundColor = feldfarbe;
						theForm.elements[i].style.color = textfarbe;
						return false
					}
					}
				}
			}
		}

		// Wenn Feldname 'email' enthþlt, Inhalt auf '@' und '.' pr&uuml;fen

		if (name.indexOf("email",0) + 1){
		
			if(theForm[name].value && theForm[name].value != "-x-"){
				if(theForm[name].value.indexOf("@",0) + 1 &&
				theForm[name].value.indexOf(".",0) + 1){
				}
				else {
				
					if(theForm[name].value != "-"
					&& theForm[name].value != "-x-"
					){
					alert("\""+theForm[name].value+"\" "+invalidemailtext)
					theForm[name].focus();
					
						theForm[name].style.backgroundColor = feldfarbe;
						theForm[name].style.color = textfarbe;
					return false
					}
				}
			}
		}
		
		if(name.indexOf("anmeldefrist",0) + 1){
			if(theForm.anmeldefrist.value
			&& !theForm.email.value
			|| theForm.email.value == "-"
			&& theForm.anmeldefrist.value != "-") {
			   
				alert(emailzwingendtext);
				theForm.email.focus();
				return false
			}
		}
		
		// Wenn ein grosses Textfeld limitiert wird
		
		fieldtype = theForm.elements[i].type
		
		if(fieldtype  == 'textarea'){ 
		
			var limitfield = name+"limit"

			if(theForm.elements[limitfield]) {

				var textlimit = eval(theForm.elements[limitfield].value)
				var textarea  = theForm.elements[name].value

				if(textlimit && textarea){
		
					var textlength = textarea.length
				
					if(textlength > textlimit) {
						var toMuch = textlength-textlimit
						alert(toMuch + " "+tomanytext +" \""+name+"\".\r"+ maxtext + textlimit)
						theForm[name].focus();
						return false;
					}
				}	
			}
		}
	}
		
	
	// -------- zusaetztliche kontrollen ----------

	// Wenn keines der Felder 'anzahl..' gef&uuml;llt wurde Fehlermeldung

	if(countAnzahlFelder > 0 && foundFlag == 0 && theForm.checkForItems.value == 'ja'){
		alert(noselectiontext);
		theForm[anzahlFeld].focus(); // zum ersten Anzahl Feld
		return false;
	}
	
	if(countBoxes > 0 && foundBoxFlag == 0 && theForm.checkForBoxes.value == 'ja'){
		alert(noselectiontext);
		return false;
	}
	
	if(theForm.anruf && theForm.anruf.checked
	&& theForm.telefon.value == ''){
	
		alert(phonenumbertext);
		theForm.telefon.style.backgroundColor = feldfarbe;
		theForm.telefon.style.color = textfarbe;
		return false;
	
	}

	//else{ alert("ok") }

	// es kann losgehen + button animieren/blockieren
	go(theForm.sendbutton)

}





