var Mailer = new Class( { e: {}, t: { name: 'Ihr Name', email: 'Ihre E-Mail-Adresse', subjectt: 'Ihr Anliegen', subject: [ 'Ihr Anliegen: - - - bitte auswählen - - -', 'Allgemeine Informationen', 'Krankmeldung eines Kindes', 'Anfrage an das Ganztagsteam', 'Hospitationsanfragen', 'Praktikumsanfragen', 'Schulplatzanfrage', 'Sonstiges' ], message: 'Nachricht', send: 'Absenden', privacy: 'Sie erklären sich damit einverstanden, dass Ihre Nachricht und Kontaktdaten zum Zweck der Bearbeitung Ihrer Anfrage und für den Fall möglicher Anschlussfragen gespeichert werden. Wir behandeln Ihre Daten vertraulich und mit Sorgfalt, gemäß unserer Datenschutzerklärung.', errName: 'Bitte geben Sie Ihren Namen ein!', errEmail: 'Bitte geben Sie Ihre E-Mail-Adresse ein!', errEmail2: 'Die eingegebene E-Mail-Adresse scheint fehlerhaft zu sein!', errPrivacy: 'Bitte akzeptieren Sie unsere Datenschutzerklärung!', sent: '
Vielen Dank! Ihre Nachricht wurde erfolgreich versendet.
' }, initialize: function( id) { // console.log( 'Mailer.initialize()'); // this.t = msg; this.e.wrp = $(id).addClass('Mailer').empty(); this.build(); }, build: function() { // console.log( 'Mailer.build()'); var e = this.e; var t = this.t; // console.log( t); e.form = new Element( 'span' ).inject( e.wrp); // e.gender = new Element( 'select', { 'class':'gender', html:'' }).inject( e.form); e.name = new Element( 'input', { 'class':'name', type:'text', title:t.name, placeholder:t.name }).inject( e.form); e.email = new Element( 'input', { 'class':'email', type:'text', title:t.email, placeholder:t.email }).inject( e.form); // e.subj = new Element( 'input', { 'class':'subject', type:'text', title:t.subject, placeholder:t.subject }).inject( e.form); var options = ''; t.subject.each( function(num) { options += ''; }); e.subj = new Element( 'select', { 'class':'subject', title:t.subjectt, html:options }).inject( e.form); e.msg = new Element( 'textarea', { 'class':'message', title:t.message, placeholder:t.message }).inject( e.form); var cbBox = new Element( 'span', { 'class':'cbBox' }).inject( e.form); var prBox = new Element( 'label', { 'class':'prBox', html:t.privacy }).inject( cbBox); e.privacy = new Element( 'input', { type:'checkbox', name:'privacy', value:1 }).inject( prBox, 'top'); var btnBox = new Element( 'span', { 'class':'btnBox' }).inject( e.form); e.sendBtn = new Element( 'a', { 'class':'btn', href:window.location.href, html:t.send }).inject( btnBox); e.ldr = new Element( 'div', { 'class':'ldr' }).inject( e.wrp).fade('hide'); e.sendBtn.addEvent( 'click', this.send.bind(this)); }, validate: function() { // console.log( 'Mailer.validate()'); var e = this.e; var t = this.t; if( !e.name.get('value').trim()) { alert(t.errName); e.name.select(); return false; } else if( !e.email.get('value').trim()) { alert(t.errEmail); e.email.select(); return false; } else if( !e.email.get('value').trim().test(/^.+@+.+\..+$/)) { alert(t.errEmail2); e.email.select(); return false; } else if( !e.privacy.get('checked')) { alert(t.errPrivacy); e.privacy.focus(); return false; } else return true; }, reqHandler: function(txt) { // console.log( 'Mailer.reqHandler()'); // console.log( txt); var e = this.e; var t = this.t; (function() { if( txt=='noName') { alert(t.errName); e.name.select(); } else if( txt=='noEmail') { alert(t.errEmail); e.email.select(); } else if( txt=='wrongEmail') { alert(t.errEmail2); e.email.select(); } else if( txt=='ok') { e.form.destroy(); new Element('div', { html:t.sent }).fade('hide').inject( this.e.wrp, 'top').fade('in'); } else { alert(txt); } e.ldr.removeClass('loading').fade('out'); }).delay(1000,this); }, send: function(ev) { // console.log( 'Mailer.send()'); var e = this.e; var t = this.t; if( ev) ev.preventDefault(); if( this.validate()) { e.ldr.addClass('loading').fade('in'); new Request( { url: 'https://mmgh.de/wp-content/themes/mmgh/mailer.php', data: { action: 'sendMail', name: e.name.get('value'), email: e.email.get('value'), subject: e.subj.get('value'), message: e.msg.get('value'), privacy: e.privacy.get('checked') ? 1 : '', check: new Date().getTime().toString().substr(0,5) }, noCache: true, onSuccess: this.reqHandler.bind(this) }).send(); } } });