var W3CDOM = (document.getElementsByTagName && document.createElement);

var errorMessages = {};
errorMessages.nameMissing = 'Dieses Feld ist ein Pflichtfeld.';
errorMessages.emailMissing = 'Bitte geben Sie Ihre Email-Adresse an.\n Sie wird nicht veröffentlicht oder an Dritte weitergegeben.';
errorMessages.emailInvalid = 'Bitte überprüfen Sie, ob die eingegebene Adresse korrekt ist.';
errorMessages.commentMissing = 'Dieses Feld ist ein Pflichtfeld.';
errorMessages.locationMissing = 'Dieses Feld ist ein Pflichtfeld.';

errorMessages.postcodeMissing = 'Bitte geben Sie die Postleitzahl an.';
errorMessages.cityMissing = 'Bitte geben Sie den Ort an.';
errorMessages.streetMissing = 'Bitte geben Sie Straße und Hausnummer an.';


window.addEvent('domready', initFormValidation );


function initFormValidation () {
	var formular = document.forms[0];
	if (formular) 
		formular.onsubmit = function () { return validate() };
}


// Formvalidation blog comments

function validate() {
	
	validForm = true;
	firstError = null;
	errorstring = '';
	var x = document.forms[0].elements;

	if (x['name'] && !x['name'].value)
		writeError(x['name'],errorMessages.nameMissing);
	if (x['email'] && !x['email'].value)
		writeError(x['email'],errorMessages.emailMissing);
	if (x['email'] && x['email'].value.indexOf('@') == -1)
		writeError(x['email'],errorMessages.emailInvalid);
	if (x['comment'] && !x['comment'].value)
		writeError(x['comment'],errorMessages.commentMissing);
	if (x['location'] && !x['location'].value)
		writeError(x['location'],errorMessages.locationMissing);
	if (x['city'] && !x['city'].value)
		writeError(x['city'],errorMessages.cityMissing);
	if (x['postcode'] && !x['postcode'].value)
		writeError(x['postcode'],errorMessages.postcodeMissing);
	if (x['street'] && !x['street'].value)
		writeError(x['street'],errorMessages.streetMissing);				
	if (!W3CDOM)
		alert(errorstring);
	if (firstError)
		firstError.focus();

	if (validForm)
		return true;
	return false;
}

function writeError(obj,message) {
	validForm = false;
	if (obj.hasError) return;
	if (W3CDOM) {
		obj.className += ' error';
		obj.onchange = removeError;
		var sp = document.createElement('span');
		sp.className = 'error';
		sp.appendChild(document.createTextNode(message));
		obj.parentNode.appendChild(sp);
		obj.hasError = sp;
	}
	else {
		errorstring += obj.name + ': ' + message + '\n';
		obj.hasError = true;
	}
	if (!firstError)
		firstError = obj;
}

function removeError()
{
	this.className = this.className.substring(0,this.className.lastIndexOf(' '));
	this.parentNode.removeChild(this.hasError);
	this.hasError = null;
	this.onchange = null;
}
