// ***********************
// Copyright by GardenaNet
// ***********************
// info@gardena.net
// ***********************
// Coded by Andreas on 15-11-2006
// last change on 25-09-2007 - now v.1.3.1
// ***********************

// 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';
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';
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';
messages4output['street']['eng'] = 'Please insert your address';
messages4output['street']['fra'] = 'Svp insertion votre rue';
messages4output['cap'] = new Array();
messages4output['cap']['deu'] = 'Geben Sie bitte Ihre Postleitzahl ein';
messages4output['cap']['ita'] = 'Per cortesia inserisca il Suo C.A.P.';
messages4output['cap']['eng'] = 'Please insert your post code';
messages4output['cap']['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à';
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';
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['phone'] = new Array();
messages4output['phone']['deu'] = 'Geben Sie bitte eine gültige Telefonnummer ein';
messages4output['phone']['ita'] = 'Per cortesia inserisca un recapito telefonico valido';
messages4output['phone']['eng'] = 'Please insert a valid phone number';
messages4output['phone']['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['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['posti'] = new Array();
messages4output['posti']['deu'] = '';
messages4output['posti']['ita'] = 'Per cortesia inserisca i posti richiesti';
messages4output['posti']['eng'] = 'Please insert the number of required seats';
messages4output['posti']['fra'] = 'Indiquez le nombre de places';
messages4output['quando'] = new Array();
messages4output['quando']['deu'] = '';
messages4output['quando']['ita'] = 'Per cortesia inserisca il giorno che desidera prenotare';
messages4output['quando']['eng'] = 'Please insert the date of booking';
messages4output['quando']['fra'] = 'Indiquez la date de la réservation';
messages4output['ora'] = new Array();
messages4output['ora']['deu'] = '';
messages4output['ora']['ita'] = 'Per cortesia inserisca l\'ora alla quale desidera prenotare';
messages4output['ora']['eng'] = 'Please insert the hour of booking';
messages4output['ora']['fra'] = 'Entrez l\'heure de la réservation';

// 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 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); 
}
