var jamp = {

	AjaxPath:'ajax/',
	errorColor:'#ff0000',
	successColor:'',

	isValidEmail: function(field) {
		var str=$(field).val();
		var filter=/^.+@.+\..{2,3}$/;
		if (filter.test(str)) {
			return true;
		} else {
			return false;
		}
	},

	checkKey: function(e) {
		if(window.event) {
			key = window.event.keyCode;
		} else {
			key = e.keyCode;
		}
		if(key==13) {
			Suche.Do($('Suche').value);
		}
	}

}

var Suche = {
	
	Do: function(value) {
		window.location.href='suche.php?suchbegriff='+value;	
	}
	
}

var Form = {
	errColor:'#ff0000',
	successColor:'',
	// fieldArr beinhaltet alle Felder aus dem Formular:
	/*
	 *	KONFIGURIERT FÜR jQuery!!!	
	 *
	 *	File: Die Datei, von der aus die E-Mail versendet wird. Standardmäßig wohl "Mail.php" im "Ajax"-Verzeichnis
	 *	SuccessText: Der Text, der ausgegeben werden soll, wenn das Formular erfolgreich verschickt wurde.
	 *	Fields: Ein Array, mit den Feldname, dem Überprüfungsmodus und dem Feldtypen:
	 *		Name: Ist die ID des Feldes ohne (!) "Form_".
	 *		Required: Ist Required auf true gesetzt, wird es auf Gültigkeit überprüft, andernfalls rutscht es so durch
	 *		Type:
	 *				text: Ist ein ganz normales Textfeld oder Textareafeld. Wird dann auf leer geprüft
	 *				int: Ist ein numerisches Feld und prüft, ob nur gültige Zahlen verwendet wurden
	 *				email: Ist ein "Textfeld", jedoch wird geprüft, ob die eingebene E-Mail Adresse gültig ist
	 *				checkbox: Prüft, ob bei dem Checkboxfeld der Haken gesetzt wurde
	 *				button: Ist der Sende- bzw. Abbrech-button.
	 *
	*/
	fieldArr:[
			   {	File:'Mail.php',
			   		SuccessText: 'Die Kontaktanfrage wurde erfolgreich versendet.',
					Fields:	[
								{ Name:'Nachname', Required:true, Type:'text' },
								{ Name:'Vorname', Required:true, Type:'text' },
								{ Name:'Strasse', Required:false, Type:'text' },
								{ Name:'Hausnummer', Required:false, Type:'text' },
								{ Name:'Telefon', Required:false, Type:'int' },
								{ Name:'Telefax', Required:false, Type:'int' },
								{ Name:'Email', Required:true, Type:'email' },
								{ Name:'Mitteilung', Required:true, Type:'text' },
								{ Name:'Submit', Required:false, Type:'button' }
							]
			   }
			 ],
	
	err:0,
	i:0,
	params:'',
	Text:'',
	
	errorHandling: {
		init:function(File) {
			t = Form;
			t.Text='';
			t.err=0;
			this.params='';

			for(i=0;i<t.fieldArr.length;i++) {
				if(t.fieldArr[i].File==File) {
					t.Text=t.fieldArr[i].SuccessText;
					
					for(k=0;k<t.fieldArr[i].Fields.length;k++) {						
						var Arr = t.fieldArr[i].Fields[k];
						
						if(Arr.Required==true) {
							if(Arr.Type=='text') {
								if($('#Form_'+Arr.Name).val()=='') {
									t.err++;
									$('#Form_'+Arr.Name).css('border','1px '+t.errColor+' solid');
									//$('#Form_'+Arr.Name).style.borderColor=t.errColor;	
								} else {
									$('#Form_'+Arr.Name).css('border','1px '+t.successColor+' solid');
									//$('#Form_'+Arr.Name).style.borderColor=t.successColor;
								}
							} else if(Arr.Type=='int') {
								if($('#Form_'+Arr.Name).val()=='' || isNaN($('#Form_'+Arr.Name).val())) {
									t.err++;
									$('#Form_'+Arr.Name).css('border','1px '+t.errColor+' solid');
									//$('#Form_'+Arr.Name).style.borderColor=t.errColor;
								} else {
									$('#Form_'+Arr.Name).css('border','1px '+t.successColor+' solid');
									//$('#Form_'+Arr.Name).style.borderColor=t.successColor;
								}
							} else if(Arr.Type=='checkbox') {
								if($('#Form_'+Arr.Name).checked==false) {
									t.err++;
									$('#Form_'+Arr.Name).css('border','1px '+t.errColor+' solid');
									//$('#Form_'+Arr.Name).style.borderColor=t.errColor;
								} else {
									$('#Form_'+Arr.Name).css('border','1px '+t.successColor+' solid');
									//$('#Form_'+Arr.Name).style.borderColor=t.successColor;
								}
							} else if(Arr.Type=='email') {
								if(!jamp.isValidEmail('#Form_'+Arr.Name)) {
									t.err++;
									$('#Form_'+Arr.Name).css('border','1px '+t.errColor+' solid');
									//$('#Form_'+Arr.Name).style.borderColor=t.errColor;
								} else {
									$('#Form_'+Arr.Name).css('border','1px '+t.successColor+' solid');
									//$('#Form_'+Arr.Name).style.borderColor=t.successColor;
								}
							}
						}
						
						this.params+=Arr.Name+'='+$('#Form_'+Arr.Name).val()+'&'
					}
				}
			}
		
			if(t.err<=0) {
				$.ajax({
							type:'post',
							url:jamp.AjaxPath+'Kontakt.php',
							data:this.params,
							success:function(html) {
								if(html=='done') {
									$('.fliesstext').html(t.Text);
								} else {
									
								}
							}
					   });
			}
		}
	},
	save:function(File) { this.errorHandling.init(File); }
}

var Newsletter = {
	
	error:0,
	fieldArr:[
				{ Name:'Anrede', Output:'Anrede', Required:false, Type:'text' },
				{ Name:'Name', Output:'Name', Required:true, Type:'text' },
				{ Name:'Vorname', Output:'Vorname', Required:true, Type:'text' },
				{ Name:'Email', Output:'E-Mail', Required:true, Type:'email' }
			 ],
	params:'',
	errorParams:'',
	
	Aktivieren: function(Bereich,Aktivierung,Email) {
		$.ajax({
				type:'post',
				url:jamp.AjaxPath+'Newsletter.php',
				data:'Mode='+Bereich+'&Aktivierung='+Aktivierung+'&Email='+Email,
				success:function(html) {
					if(html=='done') {
						$('.fliesstext').html('Sie haben sich erfolgreich für den Newsletter freigeschaltet.');
						for(i=0;i<Newsletter.fieldArr.length;i++) {
							$('#'+Newsletter.fieldArr[i].Name).val('');	
						}
					} else {
						$('.fliesstext').html(html);
					}
				}
			});
	},
	
	Deaktivieren: function(Bereich,Aktivierung,Email) {
		$.ajax({
				type:'post',
				url:jamp.AjaxPath+'Newsletter.php',
				data:'Mode='+Bereich+'&Aktivierung='+Aktivierung+'&Email='+Email,
				success:function(html) {
					if(html=='done') {
						$('.fliesstext').html('Sie haben sich erfolgreich aus dem Newsletterverteiler entfernt.');
						for(i=0;i<Newsletter.fieldArr.length;i++) {
							$('#'+Newsletter.fieldArr[i].Name).val('');	
						}
					} else {
						$('.fliesstext').html(html);
					}
				}
			});
	},
	
	Abonnieren: function() {
		this.error=0;
		this.params='';
		this.errorParams='';
		
		for(i=0;i<this.fieldArr.length;i++) {
			if(this.fieldArr[i].Required==true) {
				if(this.fieldArr[i].Type=='text') {
					if(jQuery.trim($('#'+this.fieldArr[i].Name).val())=='') {
						$('#'+this.fieldArr[i].Name).css('border','1px '+jamp.errorColor+' solid');
						
						this.errorParams+=this.fieldArr[i].Name+'['+this.fieldArr[i].Output+']='+jQuery.trim($('#'+this.fieldArr[i].Name).val())+'&';
						
						this.error++;
					} else {
						$('#'+this.fieldArr[i].Name).css('border','1px '+jamp.successColor+' solid');	
					}
				} else if(this.fieldArr[i].Type=='email') {
					if(!jamp.isValidEmail('#'+this.fieldArr[i].Name)) {
						$('#'+this.fieldArr[i].Name).css('border','1px '+jamp.errorColor+' solid');
						
						//this.errorParams+=this.fieldArr[i].Name+'['+this.fieldArr[i].Output+']='+jQuery.trim($('#'+this.fieldArr[i].Name).val())+'&';
						//StatusBox.SetParams('Email[E-Mail]={Email}&');
						this.error++;
					} else {
						$('#'+this.fieldArr[i].Name).css('border','1px '+jamp.successColor+' solid');	
					}
				}
				
			}
			this.params+=this.fieldArr[i].Name+'='+$('#'+this.fieldArr[i].Name).val()+'&';
		}
		
		if(this.error>0) {
			/*StatusBox.SetParams(this.errorParams);
			StatusBox.Execute();*/
		} else {
			$.ajax({
				type:'post',
				url:jamp.AjaxPath+'Newsletter.php',
				data:'Mode=Abonnieren&'+Newsletter.params,
				success:function(html) {
					if(html=='accept') {
						$('.fliesstext').html('Sie haben sich erfolgreich für den Newsletter registriert. Ihnen wird in Kürze eine E-Mail mit einem Bestätigungslink geschickt, den Sie öffnen müssen, um für den Newsletter freigeschaltet zu werden.');
						for(i=0;i<Newsletter.fieldArr.length;i++) {
							$('#'+Newsletter.fieldArr[i].Name).val('');	
						}
					} else {
						$('.fliesstext').html(html);
					}
				}
			});
		}
	},
	
	Abmelden: function() {
		this.error=0;
		this.params='';
		this.errorParams='';
		
		if($('#EmailAbmelden').val()=='') {
			this.error++;
			$('#EmailAbmelden').css('border','1px '+jamp.errorColor+' solid');
			this.errorParams+='EmailAbmelden[E-Mail]='+jQuery.trim($('#EmailAbmelden').val())+'&';
		} else if(!jamp.isValidEmail('#EmailAbmelden')) {
			this.error++;
			$('#EmailAbmelden').css('border','1px '+jamp.errorColor+' solid');
			StatusBox.SetParams('Email[E-Mail]={Email}&');
			//this.errorParams+='EmailAbmelden[E-Mail]='+jQuery.trim($('#EmailAbmelden').val())+'&';
		} else {
			this.params+='Email='+$('#EmailAbmelden').val()+'&';
			$('#EmailAbmelden').css('border','1px '+jamp.successColor+' solid');	
		}
		
		if(this.error>0) {
			/*StatusBox.SetParams(this.errorParams);
			StatusBox.Execute();*/
		} else {
			$.ajax({
				type:'post',
				url:jamp.AjaxPath+'Newsletter.php',
				data:'Mode=Abmelden&'+Newsletter.params,
				success:function(html) {
					if(html=='decline') {
						$('.fliesstext').html('Sie haben sich erfolgreich abgemeldet. Ihnen wird eine E-Mail mit einem Bestätigungslink zu gesendet, den Sie öffnen müssen.');
						$('#EmailAbmelden').val('');	
					} else {
						$('.fliesstext').html(html);
					}
				}
			});	
		}
	}
}
