/**
 * @Authors: Bank G. & Rau A. 
 * @Version: 1.1 RC1
 * @Date: 20.05.08
 * by RAGBIT GmbH
 **/
 
/** 
 * Regular expressions defenieren 
 * Um auf die Regular expression zuzugreifen 
 * wird in dem feld was gecheckt wird ein Atribut 
 * <INPUT na....checkfor="key"../> eingefügt (key ist z. B. "*")
 **/
var checkRegs = Array();
/** Feldname = Regular expression **/
checkRegs['emtpy'] = '.+';
checkRegs['*'] = '.+';
checkRegs['#'] = '[0-9]+';
checkRegs['@'] = '.+@.+[.][a-zA-Z]+';

/**
 * Hintergrundfarbe von Felder
 **/
var useErrorBgColor = true; // Hintergrundfarbe ändern wenn ein Fehler auftritt
var errorBgColor = '#FFCCCC'; // Bei Fehler
var defaultColor = '#ffffff'; // Bei Ok

var _text_fill_required_form_fields;

/**
 * Fehlernachricht
 **/
var errorMessage = (_text_fill_required_form_fields)?  _text_fill_required_form_fields : 'Bitte fuellen Sie alle mit * gekennzeichneten Felder aus!';

/**
 * CSS Klasse von Felder
 **/
var useErrorClass = false; // Klasse hinzufügen wenn ein Fehler auftritt
var errorClass = ' err'; // Klassname

/**
 * Initialisiere Formular
 **/
function initForm(f) {
	if (f) {
		e = f.elements;
		for (i=0;i<e.length;i++) {
			if (dv = e[i].defaultValue) {
				e[i].keep = e[i].getAttribute("keep");
			}
			e[i].onfocus = function() {
				if (this.value == this.defaultValue && !this.keep) if (!this.className.match(/err/)) this.value = '';
			}
			e[i].onblur = function() { 
				if (this.value == '' && this.defaultValue) this.value = this.defaultValue;
			}
		}
	}
}

/**
 * formular beim abschicken testen
 * example: <FORM na....onSubmit="return checkform(this)"...>
 **/
function checkform(f) {
	var checkfor;
	var err = 0;
	var err_field;
	e = f.elements;
	for (i=0;i<e.length;i++) {
		if (checkfor = e[i].getAttribute("checkfor")) {
			v = e[i].value;
			if (!v.match(checkRegs[checkfor])) {
				err++;
				if (useErrorBgColor) { 
					e[i].style.backgroundColor = errorBgColor;
					e[i].onchange = (function (element) {
						return function() {element.style.backgroundColor = defaultColor };
					})(e[i]);
				}
				if(useErrorClass && !useErrorBgColor) {
					e[i].className += errorClass;
					e[i].onchange = (function (element) {
						return function() {
							element.className = element.className.replace(errorClass,"");
						};
					})(e[i]);
				}
				
			} else {
				if (useErrorBgColor) e[i].style.backgroundColor = defaultColor;
				
				if(useErrorClass && e[i].className.match(errorClass)) {
				  e[i].className = e[i].className.replace(errorClass,"");
				}
			}
		}
	}
	if (err > 0) {
		alert(errorMessage);
		if (err_field) err_field.select();
		return false;
	}
	return true;
}
