/**********************************************************************  
// Copyright 2005 NETural.com
// form validator script
// 28.07.2005
**********************************************************************/

/**********************************************************************  
	does validity check for form element
**********************************************************************/
function validateInput(that, form) {	
	var obj = document.getElementById(that);
	if (obj!=null) {
		var classItem = obj.className.split(' ');
		var passok = true;
		var i;
		var attributes;
		if (obj.name!=null) {
				attributes = obj.name.split("_");
		}


		for (i=0; i<classItem.length; i++) {
			switch (classItem[i]) {
				case "notempty" :
					passok = (obj.value!="");

					if (attributes.length>=4) {
						if (document.getElementById(form+"_warning_"+attributes[3])) {
							document.getElementById(form+"_warning_"+attributes[3]).style.display = "none";
						}
					}

					break;
				case "email" :
					passok = (obj.value.match(/^[\w\.\-\,\+]+@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/)!=null);
					document.getElementById(that).style.color =  "#d10909";
					document.getElementById(that).value = "Hier Wert eintragen!";
					break;
				case "num" :
					passok = (obj.value.match(/^[0-9]/)!=null);
					break;
				case "radio" :
					passok = checkRadio(that, form);
					break;
				default :
					passok = true;
					break;
			}
		}

		if (passok!=true) {
			if (attributes.length>=4) {
				if (document.getElementById(form+"_warning_"+attributes[3])) {
					document.getElementById(form+"_warning_"+attributes[3]).style.display = "inline";
				}
			}
			document.getElementById(that).style.color =  "#d10909"
			document.getElementById(obj.name).value = "Hier Wert eintragen!";
			document.getElementById(obj.name).focus();
		}
		return passok;
	} else {
		return true;
	}

}


/**********************************************************************  
	does validity check for radio button options
**********************************************************************/
function checkRadio(that, form) {
	var radioElements = new Array();
	var elements = document.getElementsByTagName("input");
	var i;

	for (i=0; i<elements.length; i++) {
		if (elements[i].name.substring(0, form.length)==form && elements[i].type== 'radio') {
			radioElements.push(elements[i]);
		}
	}
	
	var val = false;
	for (i=0; i<radioElements.length; i++) {
		if (radioElements[i].checked) {
			val = true;
		}
	}
	return (val);
}


/**********************************************************************  
	checks all input and textarea for this form
	and submits form or shows error message
**********************************************************************/
function doSubmit(form){
	var elements;
	var i;
	checkElementsInput = new Array();
	elements = document.getElementsByTagName("input");

	for (i=0; i<elements.length; i++) {
		if (elements[i].name.substring(0, form.length)==form) {
			checkElementsInput.push(elements[i].name);
		}
	}

	var allok = true;
	for (i=0; i<checkElementsInput.length; i++) {
		var check = validateInput(checkElementsInput[i], form);
		if (!check) {
			allok = false;
		}
	}

	checkElementsTextarea = new Array();
	elements = document.getElementsByTagName("textarea");
	for (i=0; i<elements.length; i++) {
		if (elements[i].name.substring(0, form.length)==form) {
			checkElementsTextarea.push(elements[i].name);
		}
	}

	for (i=0;i<checkElementsTextarea.length;i++) {
		var check= validateInput(checkElementsTextarea[i], form);
		if (!check) {
			allok = false;
		}
	}

	if (allok) {
		document.forms["PageForm"].formID.value = form;
		document.forms["PageForm"].submit();
	} else {
		alert("Bitte tragen Sie Werte in alle Pflichtfelder ein.");
	}
}


/**********************************************************************  
	resets form
	input text values and textareas will be set to default text
	radio buttons and checkboxes will be checked according to
	their default settings
**********************************************************************/
function doReset(form){
	var elements;
	var i;

	elements = document.getElementsByTagName("input");
	for (i=0; i<elements.length; i++) {
		if (elements[i].name.substring(0, form.length)==form) {
			switch (elements[i].type) {
				case "text":
					elements[i].value = elements[i].defaultValue;
					break;
				case "radio":
					if (elements[i].defaultChecked==true) {
						elements[i].checked = true;
					} else {
						elements[i].checked = false;
					}
					break;
				case "checkbox":
					if (elements[i].defaultChecked==true) {
						elements[i].checked = true;
					} else {
						elements[i].checked = false;
					}
					break;
			}
		}
	}

	elements = document.getElementsByTagName("textarea");
	for (i=0; i<elements.length; i++) {
		if (elements[i].name.substring(0, form.length)==form) {
			elements[i].value = elements[i].defaultValue;
		}
	}

}


/**********************************************************************  
	validates textarea input lenght
	shows alert and cuts input text if max length is exceeded
**********************************************************************/
function validateMaxLength(elementName, maxLength) {

	 if(document.getElementsByName(elementName)[0]!=null && document.getElementsByName(elementName)[0].value.length>=maxLength) {
 		  document.getElementsByName(elementName)[0].value = document.getElementsByName(elementName)[0].value.substr(0, maxLength);
          alert('Bitte tragen Sie Werte in alle Pflichtfelder ein.');
          return false;
     } else {
          return true;
     }
	 return true;
}
