// ***********************
// Copyright by GardenaNet
// ***********************
// info@gardena.net
// ***********************
// Coded by Andreas on 15-11-2006
// last change on 29-06-2007 - now v.1.3
// ***********************

// 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['address'] = new Array();
messages4output['address']['deu'] = 'Geben Sie bitte Ihre Straße ein!';
messages4output['address']['ita'] = 'Per cortesia inserisca la Suo via corretta!';
messages4output['address']['eng'] = 'Please insert your address!';
messages4output['address']['fra'] = 'Svp insertion votre rue!';
messages4output['plz'] = new Array();
messages4output['plz']['deu'] = 'Geben Sie bitte Ihre Postleitzahl ein!';
messages4output['plz']['ita'] = 'Per cortesia inserisca il Suo C.A.P. corretto!';
messages4output['plz']['eng'] = 'Please insert your post code!';
messages4output['plz']['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['city'] = new Array();
messages4output['city']['deu'] = 'Geben Sie bitte Ihren Ort ein!';
messages4output['city']['ita'] = 'Per cortesia inserisca la Sua città corretta!';
messages4output['city']['eng'] = 'Please insert your town/city!';
messages4output['city']['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['tel'] = new Array();
messages4output['tel']['deu'] = 'Geben Sie bitte eine gültige Telefonnummer ein!';
messages4output['tel']['ita'] = 'Per cortesia inserisca un recapito telefonico valido!';
messages4output['tel']['eng'] = 'Please insert a valid phone number!';
messages4output['tel']['fra'] = 'Indiquez votre nombre de téléphone!';
messages4output['fax'] = new Array();
messages4output['fax']['deu'] = 'Geben Sie bitte eine gültige Faxnummer ein!';
messages4output['fax']['ita'] = 'Per cortesia inserisca un recapito fax valido!';
messages4output['fax']['eng'] = 'Please insert a valid fax number!';
messages4output['fax']['fra'] = 'Indiquez votre nombre de fax!';
messages4output['vatid'] = new Array();
messages4output['vatid']['deu'] = 'Geben Sie bitte eine gültige UST-ID-Nummer ein!';
messages4output['vatid']['ita'] = 'Per cortesia inserisca una partita IVA valida!';
messages4output['vatid']['eng'] = 'Please insert a valid VAT ID-number!';
messages4output['privacy'] = new Array();
messages4output['privacy']['deu'] = 'Dieser Antrag kann nicht abgesendet werden ohne Ihre Bestätigung, die Mitteilung zum Datenschutz gelesen zu haben!';
messages4output['privacy']['ita'] = 'La richiesta non puó essere spedita senza la Sua conferma di aver letto e accettato l\'informativa sulla tutela della privacy!';
messages4output['privacy']['eng'] = 'This request cannot be submitted without your confirmation that you have read the information on data protection!';
messages4output['privacy']['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.';
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.';
messages4output['pwd'] = new Array();
messages4output['pwd']['deu'] = 'Geben Sie bitte ein Password Ihrer Wahl an.';
messages4output['pwd']['ita'] = 'Vi preghiamo di immettere una password a scelta.';
messages4output['pwd']['eng'] = 'Please choose a password of your choice.';

// 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 ()
{
	// prüfen ob das Definitions-Array exisitert
	if (fields2check == null) { alert('The definition array is not defined!'); return false; }
	for (var nr in fields2check)
	{
		if (typeof(fields2check[nr]) != 'object')
		{
			continue;
		}
		
		var name   = fields2check[nr][0];
		var type   = fields2check[nr][1];
		
		name = name.split(';');
		
		result = true;
		for (var o = 0; o < name.length; o++)
		{
			var object = document.getElementsByName(name[o])[0];
			if (!object)
			{
				object = document.getElementsByName('required_'+name[o])[0];
				if (!object)
				{
					alert('Field '+name[o]+' is not existing, form cannot be sent!');
					return false;
				}
			}
			
			switch (type)
			{
				case 'string':
					if (object.value == '') result = false;
				break;
				case 'email':
					if (!checkemail(object.value)) result = false;
				break;
				case 'checkbox':
					if (!object.checked)
					{
						result = false;
					}
				break;
			}
			if (result == false) return process(name.join('_'), lang);
		}
	}
	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]);
	name = name.split('_');
	name = name[0];
	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); 
}
