// we-eigenes Formularscript einbinden
$.getScript("/webEdition/js/external/weCheckForm.js");
/**
* Formularschutz-Literal
*
* @author Thomas Scholz
* @created 18.07.14
*/
var de = de || {};
de.xport = de.xport || {};
de.xport.webEdition =
{
/** JavaScript-WE-ID der Seite, welche die echten Formularziele liefert */
GET_FORM_ACTION: "/global/form/K84hJ8fBs3.html",
/**
* Liegt der Debug-Modus vor?
* Hier: Erkennung über URL-Parameter, geht natürlich auch anders
*/
IS_DEBUG: (location.search.indexOf("debug=1") > -1),
/**
* Liegt englischsprachige Seite vor?
* (TODO je nach Umgebung automatisch erkennen)
*/
IS_EN: false,
/**
* Hauptmethode
*/
initProcessForm: function()
{
// Achtung: nicht "self" verwenden, weil das bereits
// im globalen Scope von webEdition verwendet wird
var _this = this;
// Formularhandler
$("#Tagungsraumanfrage").submit(function(e) {
return _this.onSubmit(
$(this),
($(this).data("msg")
? $(this).data("msg")
: (_this.IS_EN
? "Please provide at least all mandatory fields."
: "Bitte füllen Sie alle Pflichtfelder aus."
)
),
/* Pflichtfelder */
$(this).data("required"),
/* auf E-Mailadresse zu validierendes Feld */
$(this).data("email")
);
});
},
/**
* allgemeiner Submithandler
*
* @param {jQuery} $form Referenz auf das Formular
* @param {String} msg Meldungstext bei unvollständigem Formular
* @param {String} required Namen der Pflichtfelder (kommasepariert)
* @param {String} email Name des E-Mail-Feldes
* @return {Boolean}
*/
onSubmit: function($form, msg, required, email)
{
// Formularfelder mit webEdition-Clone checken
if (!this.weCheckForm($form, msg, required, email))
return false;
// Formularname als HIDDEN-INPUT-Feld mitgeben
$form.append($("").attr({
type: "hidden",
name: "formName",
value: $form.attr("name")
}));
// echtes Ziel erst jetzt ermitteln, damit es bei unvollständigem
// Formular nicht schon sichtbar ist (z.B. im Debugger)
this.cfG5Ke62Zaa9w0x($form);
return true;
},
/**
* Setzt per AJAX das echte Formularziel
*
* @param {jQuery} $form Formular
* @return {Boolean}
*/
cfG5Ke62Zaa9w0x: function($form)
{
var result = "";
$.ajax(this.GET_FORM_ACTION, {
async: false,
cache: false,
dataType: "text",
data: { formName : $form.attr("name") },
success: function(data) { result = $.trim(data); }
});
if (result.length == "")
return false;
$form.attr("action", result);
return true;
},
/**
* Emulation des von webEdition direkt als JavaScript
* injizierten Codes des -Tags
* (erfordert /webEdition/js/external/weCheckForm.js)
*
* @param {jQuery} $form Referenz auf das Formular
* @param {String} msg Meldungstext bei unvollständigem Formular
* @param {String} required Namen der Pflichtfelder (kommasepariert)
* @param {String} email Name des E-Mail-Feldes
*/
weCheckForm: function($form, msg, required, email)
{
/*
* Achtung, Bug in webEdition: weCheckFormEmail()
* bekommt zwar die Formularreferenz als erstes
* Argument, benutzt aber intern "formular" als
* globale Variable, die deshalb hier gesetzt wird
*/
formular = $form.get(0);
var pwError = false;
// check mandatory
var missingReq = weCheckFormMandatory(formular, required.split(","));
// validate emails
var wrongEmail = weCheckFormEmail(formular, email.split(","));
// return true or false depending on errors
if ((wrongEmail.length > 0) || (missingReq.length > 0) || pwError) {
if (self.dealFormError)
dealFormError(formular, missingReq, wrongEmail, pwError);
else
alert(msg);
//weCheckFormEvent.stopEvent(ev);
return false;
}
return true;
}
};
$(document).ready(function()
{
de.xport.webEdition.initProcessForm();
});
/*
* globale we-Funktionen
*/
function setLabelClass(elems, idFor, newClass)
{
for(j=0;j0){
oldFields = new Array();
oldClasses = new Array();
for(i=0;i0){
msg += "\nBitte füllen Sie alle Pflichtfelder aus.";
}
if(wrongEmails.length>0){
msg += "\nWenn Sie Emailadressen eingeben, müssen diese syntaktisch korrekt sein.";
}
if(wrongPassword){
msg += "\nDie Passwörter müssen mind. 4 Zeichen groß sein und miteinander übereinstimmen.";
}
alert(msg);
}