// Javascript zur kontrolle der pflichtigen Felder

// Fehlertexte angeben, pro kontrolle ein Array mit allen Sprachen
var messages = new Array();

messages['name'] = new Array();
messages['name']['de'] = 'Bitte einen gültigen Nach- und Vornamen eingeben!';
messages['name']['it'] = 'Prego inserire un cognome e nome valido!';
messages['name']['en'] = 'Please insert your correct surname and first name!';

messages['adresse'] = new Array();
messages['adresse']['de'] = 'Bitte Ihre gültige Adresse eingeben!';
messages['adresse']['it'] = 'Prego inserire il suo indirizzo valido!';
messages['adresse']['en'] = 'Please insert your correct address name!';

messages['plz'] = new Array();
messages['plz']['de'] = 'Bitte Ihre gültige Postleitzahl eingeben!';
messages['plz']['it'] = 'Prego inserire un C.A.P. valido!';
messages['plz']['en'] = 'Please insert your correct zip!';

messages['ort'] = new Array();
messages['ort']['de'] = 'Bitte eine gültige Ortschaft eingeben!';
messages['ort']['it'] = 'Prego inserire una città valida!';
messages['ort']['en'] = 'Please insert your correct city!';

messages['land'] = new Array();
messages['land']['de'] = 'Bitte Ihr gültiges Land eingeben!';
messages['land']['it'] = 'Prego inserire uno stato valido!';
messages['land']['en'] = 'Please insert your correct country!';

messages['telefonemail'] = new Array();
messages['telefonemail']['de'] = 'Bitte Ihre gültige Telefonnummer oder e-mail Adresse eingeben!';
messages['telefonemail']['it'] = 'Prego inserire un numero telefonico o indirizzo e-mail valido!';
messages['telefonemail']['en'] = 'Please insert your correct phone numer or e-mail address!';

messages['abholdatum'] = new Array();
messages['abholdatum']['de'] = 'Bitte das richtige Abholdatum eingeben!';
messages['abholdatum']['it'] = 'Prego inserire una data di ritiro valida!';
messages['abholdatum']['en'] = 'Please insert a valid arrive date!';

messages['leihdauer'] = new Array();
messages['leihdauer']['de'] = 'Bitte geben Sie eine gültige Leihdauer ein!';
messages['leihdauer']['it'] = 'Prego inserire la durata del noleggio!';
messages['leihdauer']['en'] = 'Please insert a valid number of days for the service!';

// definieren der Funktionen

function control (lang)
{
	// hier kontrollen definieren:
	
	// name:
	var value = document.formaction.name.value;
	if (value.length < 5 || value.indexOf(' ') == -1)
	{
		alert(messages['name'][lang]);
		document.formaction.name.focus();
		return false;
	}
		
	// adresse:
	var value = document.formaction.adresse.value;
	if (value.length < 5)
	{
		alert(messages['adresse'][lang]);
		document.formaction.adresse.focus();
		return false;
	}
	
	// plz:
	var value = document.formaction.plz.value;
	if (!check_value(value, '[0-9]+') || value.length < 4)
	{
		alert(messages['plz'][lang]);
		document.formaction.plz.focus();
		return false;
	}
	
	// ort:
	var value = document.formaction.ort.value;
	if (value.length < 4)
	{
		alert(messages['ort'][lang]);
		document.formaction.ort.focus();
		return false;
	}
	
	// land:
	var value = document.formaction.land.value;
	if (value.length < 4)
	{
		alert(messages['land'][lang]);
		document.formaction.land.focus();
		return false;
	}
	
	// telefonemail:
	var value = document.formaction.telefon.value;
	if (value.length < 7 && !check_email(document.formaction.email.value))
	{
		alert(messages['telefonemail'][lang]);
		document.formaction.email.focus();
		return false;
	}
	
	// abholdatum:
	var value = document.formaction.abholdatum.value;
	value = value.replace(/\./g, '-');
	value = value.replace(/\//g, '-');
	value = value.replace(/,/g, '-');
	document.formaction.abholdatum.value = value;
	value = value.split('-');
	if (value.length < 3 || value.length > 3 || !check_value(value[0], '^([0-9]+)$') || !check_value(value[1], '^([0-9]+)$') || !check_value(value[2], '^([0-9]+)$') || value[0] < 1 || value[0] > 31 || value[1] < 1 || value[1] > 12 || value[2] < 2006 || value[2] > 2050)
	{
		alert(messages['abholdatum'][lang]);
		document.formaction.abholdatum.focus();
		return false;
	}
	
	// leihdauer:
	var value = document.formaction.leihdauer.value;
	if (!check_value(value, '^([0-9]+)$') || value < 1 || value > 365)
	{
		alert(messages['leihdauer'][lang]);
		document.formaction.leihdauer.focus();
		return false;
	}
	return true;
}

function check_email (email)
{
  var user   = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
  var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
  var regex  = "^" + user + "\@" + domain + "$";
  var rgx    = new RegExp(regex);
  return rgx.exec(email) ? true : false;
}

function check_value (value, pattern)
{
  var rgx     = new RegExp(pattern);
  return rgx.exec(value) ? true : false;
}