/*#########################################################################

	== RS ==

	Formulare PrŸfen

	-------------------------------------------------------

	Aufruf: checkForm(ID, layer)

	    -------------+-------+-----------------------------

		Bezeichnung  |  Typ  |  Beschrieb

		-------------+-------+-----------------------------

		ID =		String	ID-Eigenschaft des Formulars
		layer =		String	ID-Eigenschaft des Layers in dem das Form liegt
	
	---------------------------------------------------------------------------- 
	
	Infos:
	* Die im Formular enthaltenen Inputfelder mŸssen eine ID besitzen
	* Inputfelder benštigen wenn diese geprŸft werden sollen das attribut Title
		- "txt"		=	String
		- "no"		=	Zahl
		- "email"	=	Email
		Diese kšnnen beliebeig verŠndert oder erweitert werden siehe: inputCheck();
	* okColor / errorColor = Definieren die Hintergrundfarben fŸr die Form-Felder
	* errorMsgFields = Standard Fehlermeldung

#########################################################################*/


formID		= null;
formular	= null;
input		= null;

okColor			= "#FFFFFF";
errorColor		= "#FFCC00";
onlyOneColor	= "#dddddd";

opacityLayer = null;

errorMsgFields = "Alle eingef&auml;rbten Felder m&uuml;ssen ausgef&uuml;llt werden. / Tous les champs de données coloré doivent être remplit.";

onlyOneVorhanden = '0';


/////////////////////////////////////////////////////////////////////////////////
// Start formCheck
/////////////////////////////////////////////////////////////////////////////////


function formCheck(ID, layer)
{
	// Initialisierung
	formID			= ID;
	formular		= document.forms[formID];
	opacityLayer	= layer;
	var errorMsg	= "";
	
	// PrŸfungsvariabel (true:OK | false:Fehler)
	var check = true;
	
	// Checkboxen
	var cbChecked	= false;
	var cbVorhanden	= false;
	// Radiobuttons
	var rbChecked	= false;
	var rbVorhanden	= false;
	
		
	/////////////////////////////////////////////////////////////////////////////////
	// STARTET CHECK (Steuerelement)
	/////////////////////////////////////////////////////////////////////////////////
	
	
	function startCheck()
	{
		// Loopt alle Elemente im Formular
		for (var i=0; i < formular.elements.length; i++)
		{
			input = formular.elements[i];
			if (input.title) { inputCheck(); }
		}
		// Setzt 1. Fehlermeldung
		if (!check) { errorMsg = errorMsgFields; }
		checkOtherElements(); //-->
		errorCheck(); //-->
	}
	
	
	/////////////////////////////////////////////////////////////////////////////////
	// PrŸft Felder in Formular
	/////////////////////////////////////////////////////////////////////////////////
	
	
	function inputCheck()
	{
		
		//////////////////////////////////
		// Erweiterbarer Bereich
		//////////////////////////////////
		//alert(input.title);
		
		switch (input.title)
		{
			// Strings
			case "txt":
				if (input.value.length > 1) { input.style.backgroundColor = okColor; }
				else { input.style.backgroundColor = errorColor; check = false; }
			break;
			// Zahlen
			case "no":
				if (input.value.length == 0) { input.style.backgroundColor = errorColor; check = false; }
				else { input.style.backgroundColor = okColor; }
			break;
			
			case "no_2":
				if (input.value.length != 2) { input.style.backgroundColor = errorColor; check = false; }
				else { input.style.backgroundColor = okColor; }
			break;
			case "no_3":
				if (input.value.length != 3) { input.style.backgroundColor = errorColor; check = false; }
				else { input.style.backgroundColor = okColor; }
			break;
			case "no_6":
				if (input.value.length != 6) { input.style.backgroundColor = errorColor; check = false; }
				else { input.style.backgroundColor = okColor; }
			break;
			case "no_10":
				if (input.value.length != 10) { input.style.backgroundColor = errorColor; check = false; }
				else { input.style.backgroundColor = okColor; }
			break;
			
			
			
			// Email
			case "mail":
				if (input.value.length < 8 || input.value.indexOf("@") == -1 || input.value.indexOf(".") == -1) { input.style.backgroundColor = errorColor; check = false; }
				else { input.style.backgroundColor = okColor; }
			break;
			// checkBox
			case "cb":
				cbVorhanden = true;
				if(input.checked) { cbChecked = true; }
			break;
			// RadioButtons
			case "rb":
				rbVorhanden = true;
				if(input.checked) { rbChecked = true; }
			break;
			
	
			case "onlyOne":
				ooVorhanden = true;
				if(input.checked) 
					{ 
					ooChecked = true; 
					onlyOneVorhanden = '1';
					}
				else
					{
					onlyOneVorhanden = '0';
					}
			break;
			
			// Strings Customer Supply
			case "txt2":
				//alert(onlyOneVorhanden);
				if (onlyOneVorhanden == '0')
				{
					if (input.value.length > 1) { input.style.backgroundColor = okColor; }
					else { input.style.backgroundColor = errorColor; check = false; }
				}
				
				if (onlyOneVorhanden == '1')
				{
					input.style.backgroundColor = onlyOneColor; 	
				}
			break;
			
			case "txt":
				//alert(onlyOneVorhanden);
				if (onlyOneVorhanden == '0')
				{
				input.style.backgroundColor = okColor; 	
				}
				
				if (onlyOneVorhanden == '1')
				{
					input.style.backgroundColor = onlyOneColor; 
					
				}
			break;
			
			// Zahlen Customer Supply
			case "no2":
				if (onlyOneVorhanden == '0')
				{
					if (input.value.length == 0) { input.style.backgroundColor = errorColor; check = false; }
					else { input.style.backgroundColor = okColor; }
				}
				if (onlyOneVorhanden == '1')
				{
					input.style.backgroundColor = onlyOneColor; 					
				}
			break;
			
			case "mail2":
				if (onlyOneVorhanden == '0')
				{
					if (input.value.length < 8 || input.value.indexOf("@") == -1 || input.value.indexOf(".") == -1) { input.style.backgroundColor = errorColor; check = false; }
					else { input.style.backgroundColor = okColor; }
				}
				if (onlyOneVorhanden == '1')
				{
					input.style.backgroundColor = onlyOneColor; 					
				}
			break;
			
			// Erweiterbarer Bereich
			// (hier kšnnen weitere Elemente hinzugefŸgt werden)
		}
	}
	
	
	/////////////////////////////////////////////////////////////////////////////////
	// PrŸft Spezielle Elemente (erweiterbar)
	/////////////////////////////////////////////////////////////////////////////////
	
	
	function checkOtherElements()
	{
		// PrŸft ob mind. eine Checkbox aktiviert ist
		if (!cbChecked && cbVorhanden)
		{
			check = false;
			errorMsg += "<p>Bitte selektieren Sie mindestens ein Steuerformular oder die CD-ROM.</p>";
		}
		// PrŸft ob mind. ein Radiobutton aktiviert ist
		if (!rbChecked && rbVorhanden)
		{
			check = false;
			errorMsg += "<p>Bitte selektieren Sie ein Objekt.</p>";
		}
		
		// Erweiterbarer Bereich
		// (hier kšnnen weitere Elemente hinzugefŸgt werden)
	}
	
	
	/////////////////////////////////////////////////////////////////////////////////
	// PrŸft ob ein Fehler auftrat
	/////////////////////////////////////////////////////////////////////////////////
	
	
	function errorCheck()
	{
		// OK
		if (check) { sendMail(); }
		// Fehler
		else { showError(); }
	}
	
	
	/////////////////////////////////////////////////////////////////////////////////
	// FEHLER
	/////////////////////////////////////////////////////////////////////////////////
	
	
	function showError()
	{
		for (var i=0; i < formular.elements.length; i++)
		{
			// Formularfelder deaktivieren
			input = formular.elements[i];
			//input.disabled = "disabled";
		}
		// Hintergrund ausblenden
		//changeOpacity(opacityLayer, false, 30);
		//changeOpacity('opacitybottom', false, 30);
		//changeOpacity('opacitytop', false, 30);
		// Ausgabe Fehlerbeschrieb
		document.getElementById("errorBoxMsg").innerHTML = errorMsg;
		
		// Neue Position der Error-Box errechnen
		var boxHeight = document.getElementById("errorBox").offsetHeight;
		var yPos = "";
		// IE
		if (navigator.appName == "Microsoft Internet Explorer")
		{
			yPos = Math.round((document.documentElement.clientHeight/2) - (boxHeight/2));
			document.getElementById("errorBox").style.top = (document.documentElement.scrollTop + yPos) + "px";
		}
		// Andere
		else
		{
			yPos = Math.round((window.innerHeight/2) - (boxHeight/2));
			document.getElementById("errorBox").style.top = (window.pageYOffset + yPos) + "px";
		}
		// Error-Box einblenden
		document.getElementById("errorBox").style.display = "block";
	}
	
	
	/////////////////////////////////////////////////////////////////////////////////
	// OK (Mail versenden)
	/////////////////////////////////////////////////////////////////////////////////
	
	
	function sendMail()
	{
		// Formularfelder aktivieren
		for (var i=0; i < formular.elements.length; i++) { input.disabled = ""; }
		// Hintergrund einblenden
		//changeOpacity(opacityLayer, false, 100);
		//changeOpacity('opacitybottom', false, 100);
		//changeOpacity('opacitytop', false, 100);
		formular.submit(); //-->
	}
	
	startCheck(); //-->
}





/////////////////////////////////////////////////////////////////////////////////
// Error-Box Buttonfunktion Press + Release
/////////////////////////////////////////////////////////////////////////////////

function errorBtPress()
{
	button = document.getElementById("errorBt");

}
function errorBtRelease()
{
	button = document.getElementById("errorBt");

	
	enableForm(); //-->
}

/////////////////////////////////////////////////////////////////////////////////
// Furmularfelder einblenden
/////////////////////////////////////////////////////////////////////////////////

function enableForm()
{
	// Blendet Formularfelder ein
	for (var i=0; i < formular.elements.length; i++)
	{
		input = formular.elements[i];
		input.disabled = "";
	}
	// Blendet Layer ein
	//changeOpacity(opacityLayer, false, 100);
	//changeOpacity('opacitybottom', false, 100);
	//changeOpacity('opacitytop', false, 100);
	// Blendet Error-Box aus
	document.getElementById("errorBox").style.display = "none";
}

/////////////////////////////////////////////////////////////////////////////////
// Transparenter Hintergrund
/////////////////////////////////////////////////////////////////////////////////

function changeOpacity(id, obj, objOpacity)
{
	if(id) obj = document.getElementById(id);
	obj.style.opacity 		= (objOpacity/100);
	obj.style.MozOpacity 	= (objOpacity/100);
	obj.style.KhtmlOpacity	= (objOpacity/100);
	obj.style.filter		= "alpha(opacity="+objOpacity+")";
}
