// ***********************
// Copyright by GardenaNet
// ***********************
// info@gardena.net
// ***********************
// Coded by Andreas on 15-11-2006
// ***********************

// Array mit Fehlerausgaben in allen 3 Sprachen
var messages4output = new Array();
messages4output['name'] = new Array();
messages4output['name']['deu'] = 'Geben Sie bitte Ihren Namen ein!';
messages4output['name']['ita'] = 'Per cortesia inserisca il Suo nome corretto!';
messages4output['name']['eng'] = 'Please insert your name!';
messages4output['name']['fra'] = 'Svp insertion votre nom!';
messages4output['surname'] = new Array();
messages4output['surname']['deu'] = 'Geben Sie bitte Ihren Nachnamen ein!';
messages4output['surname']['ita'] = 'Per cortesia inserisca il Suo cognome corretto!';
messages4output['surname']['eng'] = 'Please insert your surname!';
messages4output['surname']['fra'] = 'Svp insertion votre nom de famille!';
messages4output['street'] = new Array();
messages4output['street']['deu'] = 'Geben Sie bitte Ihre Straße ein!';
messages4output['street']['ita'] = 'Per cortesia inserisca la Suo via corretta!';
messages4output['street']['eng'] = 'Please insert your address!';
messages4output['street']['fra'] = 'Svp insertion votre rue!';
messages4output['zip'] = new Array();
messages4output['zip']['deu'] = 'Geben Sie bitte Ihre Postleitzahl ein!';
messages4output['zip']['ita'] = 'Per cortesia inserisca il Suo C.A.P. corretto!';
messages4output['zip']['eng'] = 'Please insert your post code!';
messages4output['zip']['fra'] = 'Svp insertion votre PLZ!';
messages4output['location'] = new Array();
messages4output['location']['deu'] = 'Geben Sie bitte Ihren Ort ein!';
messages4output['location']['ita'] = 'Per cortesia inserisca la Sua città corretta!';
messages4output['location']['eng'] = 'Please insert your town/city!';
messages4output['location']['fra'] = 'Svp insertion votre ville!';
messages4output['country'] = new Array();
messages4output['country']['deu'] = 'Geben Sie bitte Ihr Land ein!';
messages4output['country']['ita'] = 'Per cortesia inserisca la Sua provincia corretta!';
messages4output['country']['eng'] = 'Please insert your country!';
messages4output['country']['fra'] = 'Svp insertion votre Région!';
messages4output['email'] = new Array();
messages4output['email']['deu'] = 'Geben Sie bitte eine gültige E-Mail Adresse ein!';
messages4output['email']['ita'] = 'Per cortesia inserisca un indirizzo email valido!';
messages4output['email']['eng'] = 'Please insert a valid e-mail address!';
messages4output['email']['fra'] = "Veuillez insérer une adresse valide d'E-mail!";
messages4output['conditions'] = new Array();
messages4output['conditions']['deu'] = 'Dieser Antrag kann nicht abgesendet werden ohne Ihre Bestätigung, die Mitteilung zum Datenschutz gelesen zu haben!';
messages4output['conditions']['ita'] = 'La richiesta non puó essere spedita senza la Sua conferma di aver letto e accettato l\'informativa sulla tutela della privacy!';
messages4output['conditions']['eng'] = 'This request cannot be submitted without your confirmation that you have read the information on data protection!';
messages4output['conditions']['fra'] = 'La demande ne peut pas être envoyée sans votre déclaration d´avoir lu et accepté les informations sur la tutelle de la privacy.';

// Array, in dem die Werte beschrieben werden, die geprüft werden sollen
var fields2check = new Array();

// Funktion zum auswerten von Formularen anhand des Arrays fields2check
function validate (lang)
{
	// prüfen ob das Definitions-Array exisitert
	if (fields2check == null) { alert('The definition array is not defined!'); return false; }
	
	for (i = 0; fields2check[i] != null; i++)
	{
		var name   = fields2check[i][0];
		var type   = fields2check[i][1];
		
		var result = true;
		var object = document.getElementsByName(name)[0];
		if (!object)
		{
			object = document.getElementsByName('required_'+name)[0];
			if (!object)
			{
				alert('Field is not existing, form cannot be sent!');
				return false;
			}
		}
		
		switch (type)
		{
			case 'string':
				if (object.value == '') return process(name, lang);
			break;
			case 'email':
				if (!checkemail(object.value)) return process(name, lang);
			break;
			case 'checkbox':
				if (!object.checked) return process(name, lang);
			break;
		}
	}
	return true;
}

// Funktion, die ausgeführt wird wenn das Formulr nicht verschickt werden soll
function process (name, lang)
{
	if (messages4output[name] == null || messages4output[name][lang] == null)
	{
		alert('Message not defined: '+name+', '+lang);
		return false;
	}
	alert(messages4output[name][lang]);
	var object = document.getElementsByName(name)[0];
	if (!object)
	{
		object = document.getElementsByName('required_'+name)[0];
		if (!object)
		{
			alert('Field is not existing, form cannot be sent!');
			return false;
		}
	}
	object.focus();
	return false;
}

// überprüfen ob es sich bei value um eine gültige e-mail handelt
function checkemail (value)
{
	var expression=/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/; 
	return expression.test(value); 
}
