function addEvent(obj, evType, fn){
 if (obj.addEventListener){
    obj.addEventListener(evType, fn, true);
    return true;
 } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
 } else {
    return false;
 }
}

function getLabelForId(id) {
    var label, labels = document.getElementsByTagName('label');
    for (var i = 0; (label = labels[i]); i++) {
        if (label.htmlFor == id) {
            return label;
        }
    }
    return false;
}

function checkRequired(id) {
    var formfield = document.getElementById(id);
    var label = getLabelForId(id);
    if (formfield.value.length == 0) {
        label.className = 'problem';
    } else {
        label.className = 'completed';
    }
}

function markRequired(){
inputs = document.getElementsByTagName('input');
    for (var i = 0; (input = inputs[i]); i++) {
    	//alert(input.id);
    	if (input.id.match('req_')) checkRequired(input.id)
    }
selects = document.getElementsByTagName('select');
	for (var i = 0; (sel = selects[i]); i++) {
		if (sel.id.match('req_')) checkRequired(sel.id)
	}
}

function oninputfocus(e) {
 if (typeof e == 'undefined') {
   var e = window.event;
 }
 var source;
 if (typeof e.target != 'undefined') {
    source = e.target;
 } else if (typeof e.srcElement != 'undefined') {
    source = e.srcElement;
 } else {
   return;
 }
 //Hier kommen die Styleangaben f�r die aktivierten Formularfelder (onFocus)
 source.style.backgroundColor='#ffffff';
 source.style.border='1px solid #666666';
}
function oninputblur(e) {
 if (typeof e == 'undefined') {
   var e = window.event;
 }
 var source;
 if (typeof e.target != 'undefined') {
    source = e.target;
 } else if (typeof e.srcElement != 'undefined') {
    source = e.srcElement;
 } else {
   return;
 }
 //Hier kommen die Styleangaben f�r die wieder deaktivierten Formularfelder (onBlur)
 //d.h. hier werden die Formularfelder wieder auf ihre urspr�nglichen Styleangaben zur�ckgesetzt
 if (source.className == 'ausfuellen') {
 	//Diese Angaben beziehen sich auf die als fehlerhaft ausgefuellt deklarierten Formularfelder
 	//d.h. sie sollten mit den Styleangaben der CSS-Klasse .ausfuellen �bereinstimmen
 	source.style.backgroundColor='#f0f0f0';
 	source.style.border='1px solid #ff0000';
 } else {
 	//Diese Angaben beziehen sich auf alle anderen Formularfelder
 	//d.h. sie sollten mit den allgemeinen Styleangaben f�r Formularfelder �bereinstimmen
 	source.style.backgroundColor='#f0f0f0';
 	source.style.border='1px solid #999999';
 }
}

addEvent(window, 'load', function() {
 var input, Textarea, sel;
 var inputs = document.getElementsByTagName('input');
 for (var i = 0; (input = inputs[i]); i++) {
   addEvent(input, 'focus', oninputfocus);
   addEvent(input, 'blur', oninputblur);
 }
 var textareas = document.getElementsByTagName('textarea');
 for (var i = 0; (textarea = textareas[i]); i++) {
   addEvent(textarea, 'focus', oninputfocus);
   addEvent(textarea, 'blur', oninputblur);
 }
 var selects = document.getElementsByTagName('select');
 for (var i = 0; (sel = selects[i]); i++) {
   addEvent(sel, 'focus', oninputfocus);
   addEvent(sel, 'blur', oninputblur);
 }
});

window.onload = markRequired;


