//* Begin Date Check!

function isValidDate(date, dateStr) {
// check if the box is empty
if (dateStr == "") {
return false;
}

var datePat = /^(\d{1,2})(\/|-|.|. | |,|, )(\d{1,2})\2(\d{2}|\d{4})$/;

// 4 digit year entry
// var datePat = /^(\d{1,2})(\/|-|.|. | |,|, )(\d{1,2})\2(\d{4})$/;

var matchArray = dateStr.match(datePat); // Check Format!
if (matchArray == null) {
 alert("Falsches Datumsformat.");
 date.focus();
 date.select();
 return false;
}
month = matchArray[3]; // parse date into variables
day = matchArray[1];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
 alert("Der Monat muß zwischen dem 1. und 12. liegen");
date.focus();
date.select();
return false;
}
if (day < 1 || day > 31) {
alert("Der Tag muß zwischen dem 1. und 31. liegen");
date.focus();
date.select();
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Der Monat "+month+" hat keine 31 Tage!");
date.focus();
date.select();
return false
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert("Februar " + year + " hat keine " + day + " Tage!");

date.focus();
date.select();
return false;
   }
}
return true;  // date is valid
}


//* Begin Numeric Check!
function validnum(field) {
var valid = "0123456789";
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Falsche Eingabe! Es können ausschließlich Zahlen eingegeben werden.");
field.focus();
field.select();
   }
}

//* Begin Character Check!
function validchar(field) {
var valid = "&ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz "
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Falsche Eingabe! Es können ausschließlich Zeichen eingegeben werden.");
field.focus();
field.select();
   }
}

//* Begin E-mail Check!
function emailCheck(email, emailStr) {
// check if the box is empty
if (emailStr == "") {
return false;
}

// check if the e-mail address is valid
var emailPat = /^(\".*\"|[A-Za-z0-9]\w*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z0-9]\w*(\.[A-Za-z]\w*)+)$/;
var matchArray = emailStr.match(emailPat);
if (matchArray == null) {
alert("Ihre E-Mail Adresse scheint nicht korrekt zu sein. Bitte nochmal eingeben (und überprüfen, ob '@' und ''.' in der Adresse vorhanden sind.)");

email.focus();
email.select();
return false;
}
// make sure the IP address domain is valid
var IPArray = matchArray[2].match(/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/);
if (IPArray != null) {
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("Destination IP address is invalid!")
email.focus();
email.select();
return false;
      }
   }
}
return true;
}

//* Begin Phone Check!
function validphone(field) {
var valid = " +-/0123456789"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Falsche Eingabe! Es können ausschließlich Zahlen, Leerzeichen, /,  + und - eingegeben werden!");
field.focus();
field.select();
   }
}

//* begin Submission Agreement Check!
function checksub()
{
if (document.getElementById('accept').checked == true ){
document.getElementById('sub').disabled=false;}
if (document.getElementById('accept').checked == false ){
document.getElementById('sub').disabled=true;}
}



function validcardno(field) {
var valid = "0123456789"
var ok = "yes";
var temp;
field.value = RTrim(LTrim(field.value));
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
 if (valid.indexOf(temp) == "-1") ok = "no";
 if (field.value.substring(i, i+1)==" ") ok = "spaces";
}
if (ok == "no") {
 alert("Falsche Eingabe! Es können ausschließlich Zahlen eingegeben werden.");
 field.focus();
 field.select();
   }
if (ok == "spaces") {
 alert("Falsche Eingabe! Keine Leerzeichen möglich.");
 field.focus();
 field.select();
   }
if ((field.value.length!=16 && field.value.length!=15) && (field.value.length!=0)) {
 alert("Die Kreditkartennummer hat eine unzulässige Länge");
 field.focus();
 field.select();
   }
}



function LTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

function RTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;   
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

//  End -->

