/**
 * Formulare verarbeiten
 * für www.stadthalle-hockenheim.de
 *
 * @author			René Kubach, www.exedis.de
 * @copyright		exedis, http://www.exedis.de
 *
 * © exedis – Internet Konzeption, Gestaltung, Realisation
 * http://www.exedis.de
 */

$(document).ready(function(){
	anfrageFormular.laden();
});

anfrageFormular = {

	// Einstellungen
	formId:				'anfrageFormular',
	selPflichtfeld:		'.nichtleer',
	selTitel:			'.titel',

	//
	selForm:			'',
	elemente:			new Array(),
	pflichtfelder:		new Array(),

	laden: function () {
		this.selForm 	= '#'+this.formId;
		this.elemente 	= document.forms[this.formId].elements;
		$(this.selForm+' '+this.selPflichtfeld).each(function(){
			anfrageFormular.addPflichtfeld(this);
		});
		$(this.selForm).submit(function(){
			return anfrageFormular.pruefen();
		}).find('.aktion').before('<div>Mit einem * gekennzeichnete Felder müssen ausgefüllt werden.</div>');

	},

	pruefen: function () {
		for ( var nr=0; nr<this.pflichtfelder.length; nr++ ) {
			var obj 		= this.pflichtfelder[nr];
			var felder		= obj.find('input').add(obj.find('textarea')).add(obj.find('select'));
			var erstesFeld 	= felder.get(0);
			var name		= felder.attr('name');
			// Einfache Texteingaben
			if ( felder.length==1 ) {
				if ( jQuery.trim(erstesFeld.value)=='' ) {
					switch ( name ) {
						case 'freitext':
							meldung = 'Bitte formulieren Sie eine Anfrage!';
							break;
						case 'ansprechpartner':
							meldung = 'Bitte geben Sie den Namen eines Ansprechpartners an!';
							break;
						case 'str':
						case 'ort':
							meldung = 'Bitte geben Sie eine vollständige Adresse an!';
							break;
						case 'tel':
							meldung = 'Bitte geben Sie eine Telefonnummer an!';
							break;
						case 'email':
							meldung = 'Bitte geben Sie eine E-Mail-Adresse an!';
							break;
						default:
							meldung = 'Das Feld \''+obj.find(this.selTitel).text()+'\' darf nicht leer bleiben';
					}
					alert( meldung );
					erstesFeld.focus();
					return false;
				}
			// Andere Felder
			} else {
				var leer = true;
				switch ( erstesFeld.type ) {
					case 'radio':
						for ( var i=0; i<this.elemente[name].length; i++ ) {
							if( this.elemente[name][i].checked ) {
								leer = false;
								break;
							}
						}
						switch ( name ) {
							case 'anrede':
								if ( leer ) {
									alert( 'Bitte wählen Sie eine Anredeform aus!' );
									return false;
								}
								break;
							case 'art':
								if ( leer ) {
									alert( 'Bitte wählen Sie die Art der geplanten Veranstaltung aus!' );
									return false;
								}
								break;
						}
						break;
				}
			}
		}
	},

	addPflichtfeld: function ( domObj ) {
		var obj = $(domObj);
		// Pflichtfeld merken
		this.pflichtfelder.push( obj );
		// ... und markieren
		obj.find(this.selTitel).append('<span>*</span>');
	}

};
