/*
 * jQuery Form Plugin
 * version: 2.32 (17-SEP-2009)
 * @requires jQuery v1.2.2 or later
 *
 * Examples and documentation at: http://malsup.com/jquery/form/
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
;(function($){$.fn.ajaxSubmit=function(options){if(!this.length){log('ajaxSubmit: skipping submit process - no element selected');return this;}
if(typeof options=='function')
options={success:options};var url=$.trim(this.attr('action'));if(url){url=(url.match(/^([^#]+)/)||[])[1];}
url=url||window.location.href||'';options=$.extend({url:url,type:this.attr('method')||'GET'},options||{});var veto={};this.trigger('form-pre-serialize',[this,options,veto]);if(veto.veto){log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');return this;}
if(options.beforeSerialize&&options.beforeSerialize(this,options)===false){log('ajaxSubmit: submit aborted via beforeSerialize callback');return this;}
var a=this.formToArray(options.semantic);if(options.data){options.extraData=options.data;for(var n in options.data){if(options.data[n]instanceof Array){for(var k in options.data[n])
a.push({name:n,value:options.data[n][k]});}
else
a.push({name:n,value:options.data[n]});}}
if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false){log('ajaxSubmit: submit aborted via beforeSubmit callback');return this;}
this.trigger('form-submit-validate',[a,this,options,veto]);if(veto.veto){log('ajaxSubmit: submit vetoed via form-submit-validate trigger');return this;}
var q=$.param(a);if(options.type.toUpperCase()=='GET'){options.url+=(options.url.indexOf('?')>=0?'&':'?')+q;options.data=null;}
else
options.data=q;var $form=this,callbacks=[];if(options.resetForm)callbacks.push(function(){$form.resetForm();});if(options.clearForm)callbacks.push(function(){$form.clearForm();});if(!options.dataType&&options.target){var oldSuccess=options.success||function(){};callbacks.push(function(data){$(options.target).html(data).each(oldSuccess,arguments);});}
else if(options.success)
callbacks.push(options.success);options.success=function(data,status){for(var i=0,max=callbacks.length;i<max;i++)
callbacks[i].apply(options,[data,status,$form]);};var files=$('input:file',this).fieldValue();var found=false;for(var j=0;j<files.length;j++)
if(files[j])
found=true;var multipart=false;if(options.iframe||found||multipart){if(options.closeKeepAlive)
$.get(options.closeKeepAlive,fileUpload);else
fileUpload();}
else
$.ajax(options);this.trigger('form-submit-notify',[this,options]);return this;function fileUpload(){var form=$form[0];if($(':input[name=submit]',form).length){alert('Error: Form elements must not be named "submit".');return;}
var opts=$.extend({},$.ajaxSettings,options);var s=$.extend(true,{},$.extend(true,{},$.ajaxSettings),opts);var id='jqFormIO'+(new Date().getTime());var $io=$('<iframe id="'+id+'" name="'+id+'" src="about:blank" />');var io=$io[0];$io.css({position:'absolute',top:'-1000px',left:'-1000px'});var xhr={aborted:0,responseText:null,responseXML:null,status:0,statusText:'n/a',getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;$io.attr('src','about:blank');}};var g=opts.global;if(g&&!$.active++)$.event.trigger("ajaxStart");if(g)$.event.trigger("ajaxSend",[xhr,opts]);if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&$.active--;return;}
if(xhr.aborted)
return;var cbInvoked=0;var timedOut=0;var sub=form.clk;if(sub){var n=sub.name;if(n&&!sub.disabled){options.extraData=options.extraData||{};options.extraData[n]=sub.value;if(sub.type=="image"){options.extraData[name+'.x']=form.clk_x;options.extraData[name+'.y']=form.clk_y;}}}
setTimeout(function(){var t=$form.attr('target'),a=$form.attr('action');form.setAttribute('target',id);if(form.getAttribute('method')!='POST')
form.setAttribute('method','POST');if(form.getAttribute('action')!=opts.url)
form.setAttribute('action',opts.url);if(!options.skipEncodingOverride){$form.attr({encoding:'multipart/form-data',enctype:'multipart/form-data'});}
if(opts.timeout)
setTimeout(function(){timedOut=true;cb();},opts.timeout);var extraInputs=[];try{if(options.extraData)
for(var n in options.extraData)
extraInputs.push($('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />').appendTo(form)[0]);$io.appendTo('body');io.attachEvent?io.attachEvent('onload',cb):io.addEventListener('load',cb,false);form.submit();}
finally{form.setAttribute('action',a);t?form.setAttribute('target',t):$form.removeAttr('target');$(extraInputs).remove();}},10);var domCheckCount=50;function cb(){if(cbInvoked++)return;io.detachEvent?io.detachEvent('onload',cb):io.removeEventListener('load',cb,false);var ok=true;try{if(timedOut)throw'timeout';var data,doc;doc=io.contentWindow?io.contentWindow.document:io.contentDocument?io.contentDocument:io.document;var isXml=opts.dataType=='xml'||doc.XMLDocument||$.isXMLDoc(doc);log('isXml='+isXml);if(!isXml&&(doc.body==null||doc.body.innerHTML=='')){if(--domCheckCount){cbInvoked=0;setTimeout(cb,100);return;}
log('Could not access iframe DOM after 50 tries.');return;}
xhr.responseText=doc.body?doc.body.innerHTML:null;xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;xhr.getResponseHeader=function(header){var headers={'content-type':opts.dataType};return headers[header];};if(opts.dataType=='json'||opts.dataType=='script'){var ta=doc.getElementsByTagName('textarea')[0];xhr.responseText=ta?ta.value:xhr.responseText;}
else if(opts.dataType=='xml'&&!xhr.responseXML&&xhr.responseText!=null){xhr.responseXML=toXml(xhr.responseText);}
data=$.httpData(xhr,opts.dataType);}
catch(e){ok=false;$.handleError(opts,xhr,'error',e);}
if(ok){opts.success(data,'success');if(g)$.event.trigger("ajaxSuccess",[xhr,opts]);}
if(g)$.event.trigger("ajaxComplete",[xhr,opts]);if(g&&!--$.active)$.event.trigger("ajaxStop");if(opts.complete)opts.complete(xhr,ok?'success':'error');setTimeout(function(){$io.remove();xhr.responseXML=null;},100);};function toXml(s,doc){if(window.ActiveXObject){doc=new ActiveXObject('Microsoft.XMLDOM');doc.async='false';doc.loadXML(s);}
else
doc=(new DOMParser()).parseFromString(s,'text/xml');return(doc&&doc.documentElement&&doc.documentElement.tagName!='parsererror')?doc:null;};};};$.fn.ajaxForm=function(options){return this.ajaxFormUnbind().bind('submit.form-plugin',function(){$(this).ajaxSubmit(options);return false;}).each(function(){$(":submit,input:image",this).bind('click.form-plugin',function(e){var form=this.form;form.clk=this;if(this.type=='image'){if(e.offsetX!=undefined){form.clk_x=e.offsetX;form.clk_y=e.offsetY;}else if(typeof $.fn.offset=='function'){var offset=$(this).offset();form.clk_x=e.pageX-offset.left;form.clk_y=e.pageY-offset.top;}else{form.clk_x=e.pageX-this.offsetLeft;form.clk_y=e.pageY-this.offsetTop;}}
setTimeout(function(){form.clk=form.clk_x=form.clk_y=null;},10);});});};$.fn.ajaxFormUnbind=function(){this.unbind('submit.form-plugin');return this.each(function(){$(":submit,input:image",this).unbind('click.form-plugin');});};$.fn.formToArray=function(semantic){var a=[];if(this.length==0)return a;var form=this[0];var els=semantic?form.getElementsByTagName('*'):form.elements;if(!els)return a;for(var i=0,max=els.length;i<max;i++){var el=els[i];var n=el.name;if(!n)continue;if(semantic&&form.clk&&el.type=="image"){if(!el.disabled&&form.clk==el){a.push({name:n,value:$(el).val()});a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y});}
continue;}
var v=$.fieldValue(el,true);if(v&&v.constructor==Array){for(var j=0,jmax=v.length;j<jmax;j++)
a.push({name:n,value:v[j]});}
else if(v!==null&&typeof v!='undefined')
a.push({name:n,value:v});}
if(!semantic&&form.clk){var $input=$(form.clk),input=$input[0],n=input.name;if(n&&!input.disabled&&input.type=='image'){a.push({name:n,value:$input.val()});a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y});}}
return a;};$.fn.formSerialize=function(semantic){return $.param(this.formToArray(semantic));};$.fn.fieldSerialize=function(successful){var a=[];this.each(function(){var n=this.name;if(!n)return;var v=$.fieldValue(this,successful);if(v&&v.constructor==Array){for(var i=0,max=v.length;i<max;i++)
a.push({name:n,value:v[i]});}
else if(v!==null&&typeof v!='undefined')
a.push({name:this.name,value:v});});return $.param(a);};$.fn.fieldValue=function(successful){for(var val=[],i=0,max=this.length;i<max;i++){var el=this[i];var v=$.fieldValue(el,successful);if(v===null||typeof v=='undefined'||(v.constructor==Array&&!v.length))
continue;v.constructor==Array?$.merge(val,v):val.push(v);}
return val;};$.fieldValue=function(el,successful){var n=el.name,t=el.type,tag=el.tagName.toLowerCase();if(typeof successful=='undefined')successful=true;if(successful&&(!n||el.disabled||t=='reset'||t=='button'||(t=='checkbox'||t=='radio')&&!el.checked||(t=='submit'||t=='image')&&el.form&&el.form.clk!=el||tag=='select'&&el.selectedIndex==-1))
return null;if(tag=='select'){var index=el.selectedIndex;if(index<0)return null;var a=[],ops=el.options;var one=(t=='select-one');var max=(one?index+1:ops.length);for(var i=(one?index:0);i<max;i++){var op=ops[i];if(op.selected){var v=op.value;if(!v)
v=(op.attributes&&op.attributes['value']&&!(op.attributes['value'].specified))?op.text:op.value;if(one)return v;a.push(v);}}
return a;}
return el.value;};$.fn.clearForm=function(){return this.each(function(){$('input,select,textarea',this).clearFields();});};$.fn.clearFields=$.fn.clearInputs=function(){return this.each(function(){var t=this.type,tag=this.tagName.toLowerCase();if(t=='text'||t=='password'||tag=='textarea')
this.value='';else if(t=='checkbox'||t=='radio')
this.checked=false;else if(tag=='select')
this.selectedIndex=-1;});};$.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=='function'||(typeof this.reset=='object'&&!this.reset.nodeType))
this.reset();});};$.fn.enable=function(b){if(b==undefined)b=true;return this.each(function(){this.disabled=!b;});};$.fn.selected=function(select){if(select==undefined)select=true;return this.each(function(){var t=this.type;if(t=='checkbox'||t=='radio')
this.checked=select;else if(this.tagName.toLowerCase()=='option'){var $sel=$(this).parent('select');if(select&&$sel[0]&&$sel[0].type=='select-one'){$sel.find('option').selected(false);}
this.selected=select;}});};function log(){if($.fn.ajaxSubmit.debug&&window.console&&window.console.log)
window.console.log('[jquery.form] '+Array.prototype.join.call(arguments,''));};})(jQuery);

/* Plugin Cookies */
jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1;}
var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}
expires='; expires='+date.toUTCString();}
var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
return cookieValue;}};

/* PlugIn Validierung START */
(function($) {
	var default_parameters = {
		parameters: $.makeArray(),
		class_on_error: 'val_onerror',
		error_tag: 'li',
		error_class: 'val_has_error',
		submit_error_class: 'val_submit_error',
		class_hint: 'hint',
		validation_url: false,
		validation_cache: false
	}
	$.fn.extend({
		add_validation: function(parameters) {
			var forms = [];
			var p = parameters;
			this.each(function() {
				if(!this.form){
					forms.push( new $.form( this, p ) );
				} else {
					forms.push( this.form );
				}
			});
			return (forms.length == 1) ? forms[0] : $.makeArray(forms);
		},
		parameter: function( name, value ){
			if( value != null ){
				this.parameters[ name ] = value;
			} else {
				return (this.parameters[name]) ? this.parameters[name] : default_parameters[name];
			}
		},
		get_form: function() {
			var forms = [];
			this.each(function() {
				forms.push(this.form);
			});
			return (forms.length == 1) ? forms[0] : $.makeArray(forms);
		}
	});
	$.form = function( form, parameters ) {
		this.form = $(form);
		this.parameters = (parameters) ? parameters : {};
		this.setup( form, parameters );
	};
	$form = {
		validation_cache: {},
		valid: false,
		parameter: function ( name, value ){
			if( value != null ){
				this.parameters[ name ] = value;
			} else {
				return (this.parameters[name]) ? this.parameters[name] : default_parameters[name];
			}
		},
		validators: {
			val_required: function(field){
				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				return (val);
			},
			val_required_la_p: function(field){
				var la_p_field = $('input[name=fldlieferoption]');
				var la_p_select = $('select[name=fldGArt]');
				var la_p_val_f = la_p_field.is('input:radio,input:checkbox') ? $('*[name="'+la_p_field.attr('name')+'"]:checked').val() : la_p_field.val();
				var la_p_val_s = la_p_select.is('input:radio,input:checkbox') ? $('*[name="'+la_p_select.attr('name')+'"]:checked').val() : la_p_select.val();
				if(!la_p_val_f || la_p_val_s != 'P'){ return true; }

				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				return (val);
			},
			val_required_la_o: function(field){
				var la_o_field = $('input[name=fldlieferoption]');
				var la_o_select = $('select[name=fldGArt]');
				var la_o_val_f = la_o_field.is('input:radio,input:checkbox') ? $('*[name="'+la_o_field.attr('name')+'"]:checked').val() : la_o_field.val();
				var la_o_val_s = la_o_select.is('input:radio,input:checkbox') ? $('*[name="'+la_o_select.attr('name')+'"]:checked').val() : la_o_select.val();
				if(!la_o_val_f || la_o_val_s != 'O'){ return true; }

				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				return (val);
			},
			val_string: function(field){
				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				if( val.length == 0 || val.length >= 32000){
					return false;
				}
				var l = val.length;
				for(var i=0; i<l; i++){
					var z = val.charCodeAt(i);
					if( ( z < 32 || (z >58 && z < 63) || z > 255 || ( z < 191 && z > 128 ) )) {
						// there are exceptions to the if clause above
						// allow line feed character (10) and EURO-sign (8364)
						if (z!=10 && z!=8364) {
							return false;
						}
					}
				}
				return true;
			},
			val_string_notreq: function(field){
				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				var l = val.length;
				for(var i=0; i<l; i++){
					var z = val.charCodeAt(i);
					if( ( z < 32 || (z >58 && z < 63) || z > 255 || ( z < 191 && z > 128 ) ) && z!=10 ){
						return false;
					}
				}
				return true;
			},
			val_string_nr: function(field){
				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				if( val.length == 0 ){
					return true;
				}
				var l = val.length;
				for(var i=0; i<l; i++){
					var z = val.charCodeAt(i);
					if( ( z < 32 || (z >58 && z < 63) || z > 255 || ( z < 191 && z > 128 ) ) && z!=10 ){
						return false;
					}
				}
				return true;
			},
			val_string_la_p: function(field){
				var la_p_field = $('input[name=fldlieferoption]');
				var la_p_select = $('select[name=fldGArt]');
				var la_p_val_f = la_p_field.is('input:radio,input:checkbox') ? $('*[name="'+la_p_field.attr('name')+'"]:checked').val() : la_p_field.val();
				var la_p_val_s = la_p_select.is('input:radio,input:checkbox') ? $('*[name="'+la_p_select.attr('name')+'"]:checked').val() : la_p_select.val();
				if(!la_p_val_f || la_p_val_s != 'P'){ return true; }

				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				if( val.length == 0 ){
					return false;
				}
				var l = val.length;
				for(var i=0; i<l; i++){
					var z = val.charCodeAt(i);
					if( ( z < 32 || (z >58 && z < 63) || z > 255 || ( z < 191 && z > 128 ) ) && z!=10 ){
						return false;
					}
				}
				return true;
			},
			val_string_la_o: function(field){
				var la_o_field = $('input[name=fldlieferoption]');
				var la_o_select = $('select[name=fldGArt]');
				var la_o_val_f = la_o_field.is('input:radio,input:checkbox') ? $('*[name="'+la_o_field.attr('name')+'"]:checked').val() : la_o_field.val();
				var la_o_val_s = la_o_select.is('input:radio,input:checkbox') ? $('*[name="'+la_o_select.attr('name')+'"]:checked').val() : la_o_select.val();
				if(!la_o_val_f || la_o_val_s != 'O'){ return true; }

				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				if( val.length == 0 ){
					return false;
				}
				var l = val.length;
				for(var i=0; i<l; i++){
					var z = val.charCodeAt(i);
					if( ( z < 32 || (z >58 && z < 63) || z > 255 || ( z < 191 && z > 128 ) ) && z!=10 ){
						return false;
					}
				}
				return true;
			},
			val_20: function(field){
				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				if( val.length > 0 && isNaN(parseInt(val)) ){
					field.val('');
					return false;
				}
				if( val.length > 0 && !isNaN(parseInt(val)) ){
					val = parseInt(val);
					field.val(val);
				}
				return (val == parseInt(val) && val >= 20);
			},
			val_num_5: function(field){
				var val = field.val();
				return ( val && val.match(/[0-9]{4,5}/) && (val.length == 5 || val.length == 4 ) );
			},
			val_num_8: function(field){
				var val = field.val();
				return ( val && val.match(/[0-9]{4,5}/) && (val.length == 8 || val.length == 7 || val.length == 6 ) );
			},
			val_num_5_la_p: function(field){
				var la_p_field = $('input[name=fldlieferoption]');
				var la_p_select = $('select[name=fldGArt]');
				var la_p_val_f = la_p_field.is('input:radio,input:checkbox') ? $('*[name="'+la_p_field.attr('name')+'"]:checked').val() : la_p_field.val();
				var la_p_val_s = la_p_select.is('input:radio,input:checkbox') ? $('*[name="'+la_p_select.attr('name')+'"]:checked').val() : la_p_select.val();
				if(!la_p_val_f || la_p_val_s != 'P'){ return true; }

				var val = field.val();
				return ( val && val.match(/[0-9]{4,5}/) && (val.length == 5 || val.length == 4 ) );
			},
			val_kk: function(field){
				var za_field = $('input[name=fldzahlart]');
				var za_val = za_field.is('input:radio,input:checkbox') ? $('*[name="'+za_field.attr('name')+'"]:checked').val() : za_field.val();
				if(za_val!='Kreditkarte'){ return true; }

				var kk_field = $('*[name=fldKKinstitut]');
				var kk_val = kk_field.is('input:radio,input:checkbox') ? $('*[name="'+kk_field.attr('name')+'"]:checked').val() : kk_field.val();

				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				var le = ( kk_val=='AmEx') ? 15 : 16;
				return ( val.length == le );
			},
			val_fldKKGuelmonat: function(field){
				var za_field = $('input[name=fldzahlart]');
				var za_val = za_field.is('input:radio,input:checkbox') ? $('*[name="'+za_field.attr('name')+'"]:checked').val() : za_field.val();
				if(za_val!='Kreditkarte'){ return true; }

				var y_field = $('*[name=fldKKGueljahr]')
				var y_val = y_field.is('input:radio,input:checkbox') ? $('*[name="'+y_field.attr('name')+'"]:checked').val() : y_field.val();

				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				var today = new Date();
				return ( today.getFullYear() < y_val || (today.getFullYear() == y_val && val >= (today.getMonth()+1) ) );
			},
			val_fldKKGueljahr: function(field){
				var za_field = $('input[name=fldzahlart]');
				var za_val = za_field.is('input:radio,input:checkbox') ? $('*[name="'+za_field.attr('name')+'"]:checked').val() : za_field.val();
				if(za_val!='Kreditkarte'){ return true; }

				var m_field = $('*[name=fldKKGuelmonat]')
				var m_val = m_field.is('input:radio,input:checkbox') ? $('*[name="'+m_field.attr('name')+'"]:checked').val() : m_field.val();

				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				var today = new Date();
				return ( today.getFullYear() < val || (today.getFullYear() == val && m_val >= (today.getMonth()+1) ) );
			},
			val_fldbankname: function(field){
				var za_field = $('input[name=fldzahlart]');
				var za_val = za_field.is('input:radio,input:checkbox') ? $('*[name="'+za_field.attr('name')+'"]:checked').val() : za_field.val();
				if(za_val!='Lastschrift'){ return true; }

				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				return (val);
			},
			val_fldBankblz: function(field){
				var za_field = $('input[name=fldzahlart]');
				var za_val = za_field.is('input:radio,input:checkbox') ? $('*[name="'+za_field.attr('name')+'"]:checked').val() : za_field.val();
				if(za_val!='Lastschrift'){ return true; }

				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				return ( val && val.match(/\d*/) && ( val.match(/[0-9]{7,8}/) ) );
			},
			val_fldBankkto: function(field){
				var za_field = $('input[name=fldzahlart]');
				var za_val = za_field.is('input:radio,input:checkbox') ? $('*[name="'+za_field.attr('name')+'"]:checked').val() : za_field.val();
				if(za_val!='Lastschrift'){ return true; }

				var val = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
				return ( val && val.match(/\d*/) && ( val.match(/[0-9]{6,8}/) ) );
			},
			val_email: function(field){
				var val = field.val();
				var reg = /^([A-Za-z0-9_\-\.])+\@([Ã¤Ã¶Ã¼A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
				return (reg.test(val));
			},
			val_email_confirm: function(field){
				var parentForm = field.closest('form');
				// get email val
				var emailVal = parentForm.find('input[name="fldEmail"]').val();
				if (field.val() !== emailVal) {
				    return false;
				} else {
				    return true;
				}
		        },
			val_email_la_o: function(field){
				var la_o_field = $('input[name=fldlieferoption]');
				var la_o_select = $('select[name=fldGArt]');
				var la_o_val_f = la_o_field.is('input:radio,input:checkbox') ? $('*[name="'+la_o_field.attr('name')+'"]:checked').val() : la_o_field.val();
				var la_o_val_s = la_o_select.is('input:radio,input:checkbox') ? $('*[name="'+la_o_select.attr('name')+'"]:checked').val() : la_o_select.val();
				if(!la_o_val_f || la_o_val_s != 'O'){ return true; }

				var val = field.val();
				var reg = /^([A-Za-z0-9_\-\.])+\@([Ã¤Ã¶Ã¼A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
				return (reg.test(val));
			},
			val_email_nr: function(field){

                                var check = $('*[name=fldNl]:checked').val();
                                 var val = field.val();


				if(check == 'nl')
                                {

                                    if( val.length == 0 ){ return false; }
                                    var reg = /^([A-Za-z0-9_\-\.])+\@([Ã¤Ã¶Ã¼A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
                                    return (reg.test(val));

                                }

                                else
                                {

                                    if( val.length == 0 ){ return true; }
                                    var reg = /^([A-Za-z0-9_\-\.])+\@([Ã¤Ã¶Ã¼A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
                                    return (reg.test(val));;

                                }



				/*var val = field.val();
				if( val.length == 0 ){ return true; }
				var reg = /^([A-Za-z0-9_\-\.])+\@([Ã¤Ã¶Ã¼A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
				return (reg.test(val));*/
			},
			val_min: function(field){
				var fields = $('*[name="'+field.attr('name')+'"]:checked');
				if(fields.size()==0){ return false; }
				if(fields.size()==1){ return (fields.val()); }
				var valid = false;
				fields.each(function(){
					if($(this).val()){ valid = true; };
				});
				return (valid);
			}
		},
		setup: function( form, parameters ){
			this.hide_errors();
			this.hide_hints();
			this.add_events();
			this.validate_form(false);
			var v = this;
			this.form.submit(function(){return v.submit_form()});
		},
		add_events: function(){
			var validator = this;
			var validate = function(){
				validator.validate_field($(this),true);
				validator.validate_form(false);
			}
			var hint = function(){ $(this).parents(validator.parameter('error_tag')).find('.'+validator.parameter('class_hint')).show(); }
			var hint_off = function(){ $(this).parents(validator.parameter('error_tag')).find('.'+validator.parameter('class_hint')).hide(); }
			this.form.find(':input').blur(validate);
			this.form.find('select').change(validate);
			this.form.find(':radio,:checkbox').click(validate);
			this.form.find(':input').focus(hint);
			this.form.find(':input').blur(hint_off);
			$(document.body).click(function(){ validator.form.find('.'+validator.parameter('submit_error_class')).hide();});
		},
		hide_errors: function(){
			this.form.find('.'+this.parameter('submit_error_class')).hide();
		},
		hide_hints: function(){
			this.form.find('.'+this.parameter('class_hint')).hide();
		},
		validate_form: function( show_errors ){
			var validator = this;
			var show_errors = (show_errors == null) ? true : (show_errors);
			var valid = true;
			var errors = [];
			this.form.find(':input').each(function(){
				if( !validator.validate_field($(this),show_errors) ){
					valid = false;
					validator.last_error = this.name;
					errors.push(this.name);
				}
			});
			if(show_errors){ this.form.addClass('val_show_errors'); }
			this.last_errors = errors;
			this.valid = valid;
			this.toggle_submit();
			return valid;
		},
		toggle_submit: function(){
			this.form.toggleClass(this.parameter('error_class'),!this.valid);
		},
		cache: function(field_name, field_value, valid ){
			if( this.parameter('validation_cache') ){
				if(!this.validation_cache[field_name]){ this.validation_cache[field_name] = {}; }
				if( typeof( valid ) != 'undefined' ){
					this.validation_cache[field_name][field_value] = valid;
				} else {
					return this.validation_cache[field_name][field_value];
				}
			}
		},
		validate_field: function( field, show_error ){
			var v = this;
			var show_error = show_error;
			var field_name = field.attr('name');
			var field_value = '';
			if( field.is('input:radio,input:checkbox') && $('*[name="'+field.attr('name')+'"]:checked').size()>0 ){
				field_value = $('*[name="'+field.attr('name')+'"]:checked').val();
			} else if ( !field.is('input:radio,input:checkbox') ){
				field_value = field.val();
			}
			var cache = this.cache( field_name, field_value );
			var valid = true;
			if( typeof( cache ) != 'undefined' ){
				valid = cache;
				this.error( cache , field, show_error );
			} else if( this.parameter('validation_url') ){
				delete(this.validation_cache[field_name][field_value]);
				var response = false;
				$.ajax({
					async: false,
					dataType: 'json',
					timeout: 1000,
					url: this.parameter('validation_url').replace(/&fieldname;/g, field_name).replace(/&fieldvalue;/g, field_value),
					success: function(msg){
						response = msg;
					}
				});
				this.error( response , field, show_error );
				valis = response;
				return false;
			} else {
				for( var type in this.validators){
					if(field.hasClass(type)){
						valid = this.validators[type](field);
						this.error( valid , field, show_error );
						break;
					}
				}
			}
			if(!valid){ this.valid = false; }
			return valid;
		},
		error: function( valid, field, show_error ){
			var validator = this;
			var field_name = field.attr('name');
			var field_value = field.is('input:radio,input:checkbox') ? $('*[name="'+field.attr('name')+'"]:checked').val() : field.val();
			this.cache( field_name, field_value, valid );
			var error_element = $(field).parents(this.parameter('error_tag')).find('.'+this.parameter('class_on_error'));
			var line_parent = $(field).parents(this.parameter('error_tag')).eq(0);
			if(!valid && show_error){
				//error_element.show();
				line_parent.addClass(this.parameter('error_class'));
			} else if(show_error){
				//error_element.hide();
				var line_error = false;
				line_parent.find(':input').each(function(){
					if(!validator.validate_field($(this),false)){
						line_error=true;
					}
				});
				if(!line_error){
					line_parent.removeClass(this.parameter('error_class'));
				}
			}
		},
		submit_form: function(){
			var valid = this.validate_form(true);
			var test1 = $('input[name=fldLastName]').val();
			var test2 = $('input[name=EMail]').val();
			var test3 = test1 + "_" + test2;
			// URL nach AGN 184069 durchsuchen, wenn vorhanden URL manipulieren -> Tracking Gewinnspiel
			var s=window.location.search.substring(1).split('=');
			url = $('input[name=successUrl]').val();
			
			if (s[1] == 184069)
			{
				url = url + "?pixel=" +test3;
			}
			else
			{
				// do nothing
			}
			this.form.find('.'+this.parameter('submit_error_class')).toggle(!valid);
			return valid;
		}
	}
	$.form.prototype = $form;
})($);


(function(){
	$(document.body).addClass('js');
	$(document).ready(function(){
		var b = $(document.body);

		/* Suche */
		/*
		var def_sparam = $('#searchfield').val();
		var sform = $('form#search');
		sform.submit(function(){
		    var sparam = $('#searchfield').val();
		    if( !sparam || sparam == def_sparam ){
			sform.addClass('error');
			return false;
		    } else {
			sform.removeClass('error');
			return true;
		    }
		});
		*/
		/* Validierung */
		(function(){
			if($('form.validate').size()>0){
				$('form.validate').each(function(){
					this.validator = $(this).add_validation();
				})
			}
		}());
		/* Reisegutschein */
		/* Post */
		(function(){
			if($('#rg_la').size()>0){
				var toggleLA = function(e){if(e.button==0){
					var is_checked = ($('input[name=fldlieferoption]:checked').val()==1);
					var is_post = ($('select[name=fldGArt]').val()=='P');
					var is_ala = (is_checked && is_post);
					$('#rg_ala').toggle(is_ala);
				}}
				toggleLA({button:0});
				$('input[name=fldlieferoption]').click(toggleLA);
				$('select[name=fldGArt]').click(toggleLA);
			}
		}());
		/* Mail */
		(function(){
			if($('#rg_eVoucher').size()>0){
				var toggleEV = function(e){if(e.button==0){
					var is_checked = ($('input[name=fldlieferoption]:checked').val()==1);
					var is_mail = ($('select[name=fldGArt]').val()=='O');
					var is_eVoucher = (is_checked && is_mail);
					$('#rg_eVoucher').toggle(is_eVoucher);
				}}
				toggleEV({button:0});
				$('input[name=fldlieferoption]').click(toggleEV);
				$('select[name=fldGArt]').click(toggleEV);
			}
		}());

/* BM Callback */
		(function(){
			if($('form.validate.call_bm').size()>0){
				$('form.validate.call_bm').each(function(){
					var error_message = $('<div class="error-message"><p><strong>Achtung!</strong>'+$('input[name=errorMessage]',this).val()+'</p><div></div></div>').appendTo(this).hide();
                                        var loading = $('<div class="form_loading"><img src="/media/statisch/wait.gif" alt="Bitte warten..." /></div>').appendTo(this).hide();
					$(document.body).click(function(){error_message.hide();});
					var form = $(this);
					$(this).submit(function(){
						if($(this).attr('validator').validate_form()){

						  if($('input[name=successUrl]',form).val() != '')
						  {
  							var iframe = $("<iframe></iframe>").attr("src", this.action + '&' + form.formSerialize()).load(function(){
  							// var target = $('input[name=successUrl]',form).val();
  							var target = url;
  							
  							location.href = target;
  							}).css({
  								position: 'absolute',
  								left: '-999px',
  								top: '-99999px'
  							}).appendTo(document.body);
  							$('<div class="form_loading"><img src="/media/statisch/wait.gif" alt="Bitte warten..." /></div>').appendTo(this);
							}

							else
							{
                                                            if($('input[name=gutschein]',form).val() != '')
                                                            {
                                                            loading.show();
                                                            location.href = this.action + '?' + form.formSerialize();
                                                            } else {
                                                            location.href = this.action + '?' + form.formSerialize();
                                                            }
						  }
						} else {
							error_message.show();
						}
						return false;
					});
				});
			}
		}());

		/* Zahlart Reisegutschein */
		(function(){if($('#rg-zahlart').size()>0){
			var show_zahlart = function(){
				var kk = $('#rg-kreditkarte');
				var ls = $('#rg-lastschrift');
				var val = $('*[name=fldzahlart]:checked').val();
				if(val == 'Kreditkarte'){ kk.show(); ls.hide(); }
				else if(val == 'Lastschrift'){ ls.show(); kk.hide(); }
				else { kk.hide();ls.hide(); }
			}
			$('input[name=fldzahlart]').click(function(){show_zahlart();});
			show_zahlart();
		}}());


		/* Ferienkalender */
		(function(){
			if($('#fk-kalender').size()>0){
				var set_kal = function(bl,y){
					bl = (bl) ? bl : $('#f-bl').val();
					y = (y) ? y : $('#f-jahr').val();
					var kal = $('#'+bl+y);
					if(kal.size()!=0){
						$('.fk-wr').not(kal).hide();
						kal.show();
					}
				}
				$('#f-jahr,#f-bl').change(function(){set_kal();});
				set_kal('de');
			}
		})();

		(function(){if($('#rss').size()>0){
			$('#rss a').click(function(e){ if (e.button == 0 && $(this.hash).size()>0 && $(this.hash).parent().is('.flip')){
				dt = $(this.hash);
				$(dt).toggleClass('shown');
				$(dt).next('dd').slideDown('fast');
			}});
		}})();

	/* Info-Buttons */
	$('.kat-info').hover(function(){
		$(this).parent().addClass('show-kat-layer');
	},function(){
		$(this).parent().removeClass('show-kat-layer');
	});
	$('.kat-info').click(function(){ return false; });

	/* katalogbestellung labels */
	$('#katalog-bestellen label').hover(function(){
		$(this).parent().addClass('show-kb-layer');
	},function(){
		$(this).parent().removeClass('show-kb-layer');
	});
});
}());
/* Newsletter-Cookie */
/*$(window).load(function(){
	/* Gewinnspiel-Layer */
	/*var s = document.cookie.search('bmag');
	if(document.cookie.substring(s + 20, s + 26) != 184063)
		if($('#homeTeaser').size()>0){
			if($.cookie('BM_NL')!='newsletter_angezeigt'){
				$.cookie('BM_NL','newsletter_angezeigt',{ path: '/', expires: 999 });
				$('iframe[name=layer]').attr('src','/page/id/279');
				window.setTimeout(function(){ $('#layerIframeLink').trigger('click');}, 1000);
			}
		}
});*/

