(function(a){a.fn.extend({forms:function(b){if(b===undefined)b={};this.each(function(){var c=a(this),d=c.data("forms"),e={errorCl:"error",emptyCl:"empty",invalidCl:"invalid",successCl:"success",successShow:"4000",mailHandlerURL:"bin/MailHandler.php",ownerEmail:"info@ballett-in-kempten.de",stripHTML:true,smtpMailServer:"localhost",targets:"input,textarea",controls:"a[data-type=reset],a[data-type=submit]",validate:true,rx:{".name":{rx:/.{5}/,target:"input"},".state":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:"input"},".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:"input"},".phone":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:"input"},".fax":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:"input"},".message":{rx:/.{20}/,target:"textarea"}},preFu:function(){e.labels.each(function(){var b=a(this),c=a(e.targets,this),d=c.attr("value"),f=function(){var a=c.is("input")?(a=b.html().match(/value=['"](.+?)['"].+/),!!a&&!!a[1]&&a[1]):c.html();return a}();f!=d&&c.val(d=f||d);b.data({defVal:d});c.bind("focus",function(){c.val()==d&&(c.val(""),e.hideEmptyFu(b),b.removeClass(e.invalidCl))}).bind("blur",function(){!c.val()?c.val(d):e.isValid(b)?e.showErrorFu(b):e.hideErrorFu(b),e.isEmpty(b)?e.showEmptyFu(b):e.hideEmptyFu(b)}).bind("keyup",function(){b.hasClass(e.invalidCl)&&e.isValid(b)?e.showErrorFu(b):e.hideErrorFu(b)});b.find("."+e.errorCl+",."+e.emptyCl).css({display:"block"}).hide()});e.success=a("."+e.successCl,e.form).hide()},isValid:function(b){var c=true,d=e.isEmpty(b);if(d)c=false,b.addClass(e.invalidCl);else a.each(e.rx,function(a,d){if(b.is(a))d.rx.test(b.find(d.target).val())?(b.removeClass(e.invalidCl),c=false):b.addClass(e.invalidCl)});return c},isEmpty:function(a){var b;return(b=a.find(e.targets).val())==""||b==a.data("defVal")},validateFu:function(){e.labels.each(function(){var b=a(this);e.isEmpty(b)?e.showEmptyFu(b):e.hideEmptyFu(b);e.isValid(b)?e.showErrorFu(b):e.hideErrorFu(b)})},submitFu:function(){e.validateFu();if(!e.form.has("."+e.invalidCl).length)a.ajax({type:"POST",url:e.mailHandlerURL,data:{name:a(".name input",e.form).val()||"nope",email:a(".email input",e.form).val()||"nope",phone:a(".phone input",e.form).val()||"nope",fax:a(".fax input",e.form).val()||"nope",state:a(".state input",e.form).val()||"nope",message:a(".message textarea",e.form).val()||"nope",owner_email:e.ownerEmail,stripHTML:e.stripHTML},success:function(){e.showFu()}})},showFu:function(){e.success.slideDown(function(){setTimeout(function(){e.success.slideUp();e.form.trigger("reset")},e.successShow)})},controlsFu:function(){a(e.controls,e.form).each(function(){var b=a(this);b.bind("click",function(){e.form.trigger(b.data("type"));return false})})},showErrorFu:function(a){a.find("."+e.errorCl).slideDown()},hideErrorFu:function(a){a.find("."+e.errorCl).slideUp()},showEmptyFu:function(a){a.find("."+e.emptyCl).slideDown();e.hideErrorFu(a)},hideEmptyFu:function(a){a.find("."+e.emptyCl).slideUp()},init:function(){e.form=this;e.labels=a("label",e.form);e.preFu();e.controlsFu();e.form.bind("submit",function(){if(e.validate)e.submitFu();else e.form[0].submit();return false}).bind("reset",function(){e.labels.removeClass(e.invalidCl);e.labels.each(function(){var b=a(this);e.hideErrorFu(b);e.hideEmptyFu(b)})});e.form.trigger("reset")}};if(!d)(typeof b=="object"?a.extend(e,b):e).init.call(c),c.data({cScroll:e}),d=e;else e=typeof b=="object"?a.extend(d,b):d});return this}})})(jQuery)
