var ie = document.getElementById ? true : false;
var ns = document.layers ? true : false;
var ml = 'MAXLENGTH=';
var notAllowed = '!"§$%()`´ß}][{³²\',;µ@<>|';
var oriWert = ''
function chkFormIni() {
if (ie || ns) {
document.kForm.onsubmit = chkForm;
for (var i=0; i < document.kForm.elements.length; i++)
if (document.kForm.elements[i].type == 'text' || document.kForm.elements[i].type == 'textarea' || document.kForm.elements[i].type == 'password') {
document.kForm.elements[i].onblur  = chkBlur;
document.kForm.elements[i].onkeyup = chkKeyUp;
document.kForm.elements[i].onfocus = chkFocus;
document.kForm.elements[i].nextElement = (document.kForm.elements[i+1] ? i+1 : 0);
}
}
}
function chkForm(evt) {
for (var i=0; i < this.elements.length; i++)
if ((this.elements[i].type == 'text' || this.elements[i].type == 'textarea' || document.kForm.elements[i].type == 'password') && (this.elements[i].name.charAt(0) != this.elements[i].name.toLowerCase().charAt(0)))
if (!this.elements[i].value) {
alert ('Please fill out all required (bold) field.');
this.elements[i].focus();
return false;
}
return true;
}
function chkFocus(evt) {
var txtName = this.name.toLowerCase();
if (txtName.indexOf('_f') != -1 || txtName.indexOf('_i') != -1 || txtName.indexOf('_c') != -1) {
if (this.value.indexOf('.') != -1)
this.value = this.value.replace(/\./g, '');
}
oriWert = this.value;
this.select();
}
function chkBlur(evt) {
var txtName = this.name.toLowerCase();
var txtZahl = parseInt(this.value);
var txtZahl2 = this.value;
if ((txtName.indexOf('_f') != -1 || txtName.indexOf('_c') != -1) && txtZahl2.indexOf(',') != -1) {
txtZahl2 = txtZahl2.substring(txtZahl2.indexOf(',')+1);
if (!txtZahl2) {
this.value = oriWert;
this.focus();
alert ('Only numbers allowed.');
this.value = oriWert;
return false;
}
}
else if (txtName.indexOf('_y') != -1) {
if (txtZahl < 1900 || txtZahl > 2100) {
this.value = oriWert;
this.focus();
alert ('The year has to be between 1900 and 2100.');
return false;
}
}
else if (txtName.indexOf('_e') != -1) {
if (this.value && (this.value.indexOf('@') == -1 || this.value.indexOf('.') == -1 || this.value.length<9)) {
this.value = oriWert;
this.focus();
alert ('Wrong email format.\nUsage: person@domaine (eg: ^E)');
return false;
}
}
if (txtName.indexOf('_f') != -1) {
var counter = parseInt((String(txtZahl).length - 1) / 3);
if (counter) {
var Ergebnis = '';
var Anfang = String(txtZahl).length - (3 * counter);
txtZahl2 = (txtZahl2 != this.value ? ',' + txtZahl2 : '');
for (var i=counter; i > 0; i--)
Ergebnis = '.' + String(txtZahl).substring(Anfang+(i-1)*3, Anfang+(i-1)*3+3) + Ergebnis;
Ergebnis = String(txtZahl).substring(0, Anfang) + Ergebnis + txtZahl2;
this.value = Ergebnis;
}
}
if (txtName.indexOf('_c') != -1) {
var counter = parseInt((String(txtZahl).length - 1) / 3);
var Ergebnis = '';
var Anfang = String(txtZahl).length - (3 * counter);
txtZahl2 = (txtZahl2 != this.value ? ',' + txtZahl2 : ',00');
if (txtZahl2.length==2) txtZahl2 += '0';
for (var i=counter; i > 0; i--)
Ergebnis = '.' + String(txtZahl).substring(Anfang+(i-1)*3, Anfang+(i-1)*3+3) + Ergebnis;
Ergebnis = String(txtZahl).substring(0, Anfang) + Ergebnis + txtZahl2;
this.value = Ergebnis;
}
return true;
}
function chkKeyUp(evt) {
if (ns && !this.maxLength) {
var inputHtml = this.toString().toLowerCase();
var tmpString = inputHtml.substring(inputHtml.indexOf(ml)+ml.length);
this.maxLength = parseInt(tmpString.substring(0, tmpString.indexOf('"')));
}
var txtName = this.name.toLowerCase();
var txtZahl = this.value;
var txtZahl2 = this.value;
var KommaZahl = false;
if (txtName.indexOf('_f') != -1 || txtName.indexOf('_c') != -1) {
if (txtZahl.indexOf(',') != -1) {
txtZahl = txtZahl.substring(0, txtZahl.indexOf(','));
txtZahl2 = txtZahl2.substring(txtZahl2.indexOf(',')+1);
KommaZahl = true;
}
if (this.value && (isNaN(txtZahl) || isNaN(txtZahl2) || txtZahl.indexOf('.') != -1 || txtZahl2.indexOf('.') != -1 || (KommaZahl && String(txtZahl+','+txtZahl2) != this.value))) {
alert ('Invalid number.');
this.value = oriWert;
this.focus();
return false;
}
}
else if (txtName.indexOf('_d') != -1 || txtName.indexOf('_m') != -1 || txtName.indexOf('_y') != -1 || txtName.indexOf('_i') != -1 || txtName.indexOf('_d') != -1 || txtName.indexOf('_s') != -1 || txtName.indexOf('_n') != -1) {
if (this.value && isNaN(txtZahl)) {
alert ('Invalid number.');
this.value = oriWert;
this.focus();
return false;
}
else
txtZahl = parseInt(txtZahl);
}
else if (txtName.indexOf('_u') != -1) {
for (var i=0; i < this.value.length; i++)
if (notAllowed.indexOf(this.value.charAt(i)) != -1) {
alert ('Invalid character in URL.');
this.value = oriWert;
this.focus();
return false;
}
}
if (txtName.indexOf('_d') != -1) {
if ((txtZahl == 0 && this.value.length == 2) || txtZahl > 31) {
alert ('The day must be between 1 and 31.');
this.value = oriWert;
this.focus();
return false;
}
}
else if (txtName.indexOf('_m') != -1) {
if ((txtZahl == 0 && this.value.length == 2) || txtZahl > 12) {
alert ('The month must be between 1 and 12.');
this.value = oriWert;
this.focus();
return false;
}
}
else if (txtName.indexOf('_h') != -1) {
if (txtZahl > 23) {
alert ('The hour must be between 0 and 23.');
this.value = oriWert;
this.focus();
return false;
}
}
else if (txtName.indexOf('_s') != -1 || txtName.indexOf('_n') != -1) {
if (txtZahl > 59) {
if (txtName.indexOf('_s') != -1) alert('The seconds must be between 0 and 59.');
else alert('The minutes must be between 0 and 59.');
this.value = oriWert;
this.focus();
return false;
}
}
if (this.value.length == this.maxLength && ((ns && evt.which != 9 && evt.which) || (ie && event.keyCode != 9 && event.keyCode != 16 && event.keyCode)))
window.document.kForm.elements[this.nextElement].focus();
return true;
}

