// Array mit Feldnamen, die überprüft werden
var fieldnames = new Array('agb', 'zielrufnummer', 'absenderrufnummer', 'captcha', 'tag', 'monat', 'jahr', 'zeichen' );

// Assoc Array mit Fehlermeldungen für die Felder
var checkfields = {
	'agb' : 'Bitte AGB akzeptieren',
	'zielrufnummer' : 'Bsp.: 017212345678',
	'absenderrufnummer' : 'Bsp.: 017212345678',
	'captcha' : 'Bitte Captcha eingeben',
	'tag' : 'Bsp.: 4.10.1980',
	'monat' : 'Bsp.: 4.10.1980',
	'jahr' : 'Bsp.: 4.10.1980',
	'zeichen' : 'Bitte SMS Text eingeben (mind. 3 Zeichen)'
};

function checkSubmit() {
	var s = checkAll();
	if (s) {
		return true;
	}
	$('span_submit').appear();
	new Effect.Highlight('span_submit');
	return false;
}

function checkAll() {
	success = true;
	for (var i = 0; i < fieldnames.length; ++i) {
		success = success & doCheck(fieldnames[i]);
	}
	return (success!=0);
}

// Generische Check-Funktion für die Felder
function doCheck(event) {
	elem = $(event); //event.element();
	if (elem) {
		id = elem.identify();
	} else {
		return true;
	}
	msg_error = checkfields[id];
	msg_ok = 'OK';
	var span = $('span_' + id);
	switch (true) {
		case id == 'agb':
			success = (elem.getValue() == 'akzeptiert');
			break;
		case id == 'zielrufnummer' || id == 'absenderrufnummer':
			var satz = $F(id);
			var suche = /^01\d{9,10}$/;
			success = suche.test(satz);
			//success = ($F(id).length > 3);
			break;
		case id == 'captcha':
			success = ($F('captcha').length == 5);
			break;
		case id == 'tag' || id == 'monat' || id == 'jahr':
			success = ($('tag').value!='-' && $('monat').value!='-' && $('jahr').value!='-');
			span = $('span_geburtsdatum');
			break;
		case id == 'zeichen':
			maxlength = 140; //die maximale Zeichenlänge
			len = $F(id).length;
			if (len == 1 && $F(id).substring(0,1) == " ") {
				$(id).value = "";
				len = 0;
			}
			if (len > maxlength) {
				$(id).value = $F(id).substring(0,maxlength);
				CharsLeft = 0;
			} else {
				CharsLeft = maxlength - len;
			}
			$('span_zeichen_anzahl').innerHTML = CharsLeft;
			success = ($F(id).length > 2);
			break;
		default:
			success = false;
	}
	span.setStyle({color:success ? 'green' : 'white'});
	span.innerHTML = success ? msg_ok : msg_error;
	return success;
}

// Observer einrichten für Änderung eines Formularwertes
function ObserveInit(event) {
	var event_types = new Array('change', 'focus', 'keydown', 'keyup');
	for (var i = 0; i < fieldnames.length; ++i) {
		for (var j = 0; j < event_types.length; ++j) {
			if ($(fieldnames[i]))
				Event.observe(fieldnames[i], event_types[j], checkAll);
		}
	}
	checkAll();
}

// Start Oberving when page loaded
Event.observe (window, 'load', ObserveInit, false);
