// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function validateForm(frm_id)
{
	var blnvalidate = true;
	var elementsInputs;
	var error = "";

	currentForm = document.getElementById(frm_id);

 // Handle input
 	elementsInputs = currentForm.getElementsByTagName("input");
 	for (var intCounter = 0; intCounter < elementsInputs.length; intCounter++)
	{
//if (frm_id == "frmtst")
//	alert ("now:"+elementsInputs[intCounter].name);
		if (elementsInputs[intCounter].className.indexOf("reqtext") > -1)
		{
			if (validateText(elementsInputs, intCounter))
			{
				blnvalidate = false;
 				error = error + "Bitte folgendes Feld ausfüllen: "+elementsInputs[intCounter].id+"\n";
			}
		}
		if (elementsInputs[intCounter].className.indexOf("reqemail") > -1)
 		{
 			if (validateEmail(elementsInputs, intCounter))
			{
 				blnvalidate = false;
 				error = error + "Bitte gib eine korrekte Email an!\n";
			}
		}
		if (elementsInputs[intCounter].className.indexOf("reqnum") > -1)
 		{
 			if (validateNumber(elementsInputs, intCounter))
			{
 				blnvalidate = false;
 				error = error + "Das Feld "+elementsInputs[intCounter].id+" darf nur aus Ziffern bestehen.\n";
			}
		}
		if (elementsInputs[intCounter].className.indexOf("reqpass") > -1)
 		{
 			if (validatePass(elementsInputs, intCounter, 1))
			{
 				blnvalidate = false;
 				error = error + "Bitte gib ein Passwort mit 5 bis 10 Zeichen (Erlaubt: 0-9, a-Z, Plus, Minus, Unterstrich, Punkt) ein.\n";
			}
		}
		if (elementsInputs[intCounter].className.indexOf("reqpwchange") > -1)
 		{
 			if (validatePass(elementsInputs, intCounter, 2))
			{
 				blnvalidate = false;
 				error = error + "Bitte gib ein Passwort mit 5 bis 10 Zeichen (Erlaubt: 0-9, a-Z, Plus, Minus, Unterstrich, Punkt) ein.\n";
			}
		}
		if (elementsInputs[intCounter].className.indexOf("reqcheck") > -1)
		{
			
			if (validateCheckbox(elementsInputs, intCounter))
			{
				blnvalidate = false;
				error = error + "Bitte folgende Checkbox anhacken: "+elementsInputs[intCounter].id+"\n";
			} 
		}
		if (elementsInputs[intCounter].className.indexOf("reqchkbxarr") > -1)
		{
			var k=intCounter;
			var doit = 1;
			var found = 0;
//			var skipit = 0;
			var oldid = elementsInputs[intCounter].id;
			var newErr = "Bitte folgende Checkbox anhacken: "+elementsInputs[intCounter].id+"\n";
			do {
				if (!(validateCheckbox(elementsInputs, k))) {
					found = 1;
//					skipit = 1;
					newErr = "";
				} 
				
//				else {
					k = k + 1;
					if (k >= elementsInputs.length) {
						doit = 0;
						k = k -1;
					} else {
						if (elementsInputs[k].id != oldid) {
							k = k -1;
							doit = 0;
						}
					}
//				}
			} while (doit == 1);

			if (found == 0) 			
			{
				blnvalidate = false;
				error = error + newErr;
			} 
			intCounter = k;
		}
		if (elementsInputs[intCounter].className.indexOf("reqradio") > -1)
		{
			elem_obj = eval("currentForm." + elementsInputs[intCounter].name);
			if (getCheckedValue(elem_obj) == "")
			{
				blnvalidate = false;
				temp = elementsInputs[intCounter].id.length;
				if (temp > 1)
	 				error = error + "Bitte folgendes Feld auswählen: "+elementsInputs[intCounter].id+"\n";
			}
		}
	}

// Handle textarea
 	elementsInputs = currentForm.getElementsByTagName("textarea");
 	for (var intCounter = 0; intCounter < elementsInputs.length; intCounter++)
	{
		if (elementsInputs[intCounter].className.indexOf("reqtext") > -1)
		{
			if (validateText(elementsInputs, intCounter))
			{
				blnvalidate = false;
 				error = error + "Bitte folgendes Textfeld ausfüllen: "+elementsInputs[intCounter].id+"\n";
			}
		}
	}


	error = error + "\nAlle Felder mit * sind Pflichfelder!";
	if (blnvalidate == false)
		alert(error);
	return blnvalidate;
}

function validateEmail(elementsInputs, intCounter)
{
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(!elementsInputs[intCounter].value.match(emailExp)) {
		return true;
	}
}

function validateNumber(elementsInputs, intCounter)
{
	var numericExpression = /^[0-9]+$/;
	if(!elementsInputs[intCounter].value.match(numericExpression)){
		return true;
	}
}

function validateText(elementsInputs, intCounter)
{
	if (elementsInputs[intCounter].value == "")
	{
		return true;
	}
}

function validatePass(elementsInputs, intCounter, mode)
{
	var charExpression = /^[\w\-\.\+]+$/;
	if ( (!elementsInputs[intCounter].value.match(charExpression)) || ( !(elementsInputs[intCounter].value.length >= 5 && elementsInputs[intCounter].value.length <= 10) ) ){
		if ((mode ==1) || ((mode == 2) && (elementsInputs[intCounter].value.length > 0)) )
			return true;
	}
}

function validateCheckbox(elementsInputs, intCounter)
{
	if (!(elementsInputs[intCounter].checked))
	{
		return true;
	}
}

function frm_report_check(){
	if (document.forms["reportEntry"].reasoncomment.value == "") {
		alert("Bitte wähle einen Grund für deine Meldung.");
		return false;
	} else
		return true;
}
function frm_video() {
	if (document.forms["regstep3_m"].mymov.value == "") {
		alert("Bitte wähle zuerst einen Movie aus");
		return false;
	} else {
		var ext = Right(document.forms["regstep3_m"].mymov.value, 4).toLowerCase();
		if ((ext == ".avi") || (ext == ".mpg") || (ext == ".mov") || (ext == "mpeg") || (ext == ".wmv")) {
			if (ext == "mpeg")
				ext = ".mpeg";
			myname = document.forms["regstep3_m"].tempname.value + ext;
			document.forms["regstep3_m"].fullname.value = myname;
			document.forms["regstep3_e"].movname.value = myname;

			toggleElem("btnNextLocked");
			toggleElem("btnNextSubmit");
			return true;
		} else {
			alert ("Falscher Dateityp - Erlaubt sind nur Dateien mit Endung .avi, .mpg, .mov, .wav oder .mpeg");
			return false;
		}
	}
}

