﻿
function ValidateTextbox(control, minLength, isRequiered) {
  if (isRequiered) {
    if (!control.value || control.value.length < minLength) {
      IsInvalid(control, "Eingabe ungültig");
      return;
    }
  }
  if (MatchesRegEx(control, /\d/)) {
    IsInvalid(control, "Keine Ziffern erlaubt");
    return;
  }
  IsValid(control);
}

function ValidateInputbox(control, minLength, isRequiered) {
  if (isRequiered) {
    if (!control.value || control.value.length < minLength) {
      IsInvalid(control, "Eingabe ungültig");
      return;
    }
  }
  IsValid(control);
}

function ValidateDate(control, isRequiered) {
  if (isRequiered) {
    if (!control.value || control.value.length < 10) {
      IsInvalid(control, "Ungültiges Datum (TT.MM.JJJJ)");
      control.value = "TT.MM.JJJJ";
      return;
    }
  }
  if (control.value != '') {
    if (!MatchesRegEx(control, /(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d/)) {
      IsInvalid(control, "Ungültiges Datum (TT.MM.JJJJ)");
      return;
    }
    IsValid(control);
    return;
  }
  ResetValidator(control);
}

function ValidateEmail(control, isRequiered) {
  if (isRequiered) {
    if (!control.value) {
      IsInvalid(control, "Bitte Emailadresse eingeben");
      return;
    }
    IsValid(control);
  }
  if (control.value != '') {
    if (!MatchesRegEx(control, /(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})/)) {
      IsInvalid(control, "Ungültige Emailadresse");
      return;
    }
    IsValid(control);
    return;
  }
  ResetValidator(control);
}

function ValidateNumeric(control, minLength, isRequiered) {
  if (isRequiered) {
    if (!control.value || control.value.length < minLength) {
      IsInvalid(control, "Eingabe ungültig");
      return false;
    }
  }
  if (control.value != '') {
    if (!MatchesRegEx(control, /^[0-9]+$/)) {
      IsInvalid(control, "Nur Ziffern 0-9");
      return false;
    }
    else {
      IsValid(control);
      return true;
    }
  }
  ResetValidator(control);
}

function ResetValidator(control) {
  $(control).next('img').remove();
  $('body').data(control.id, true);
}

function IsValid(control) {
  var img = $('<img/>').attr({ 'class': 'validator', src: 'App_Themes/default/images/valid.png', alt: '', title: '' })
  $('body').data(control.id, true);
  if ($(control).next().is('input')) {
    $(control).next().next('img').remove()
    $(control).next().after(img);
  } else {
    $(control).next('img').remove();
    $(control).after(img);
  }
}
function IsInvalid(control, Hint) {
  var img = $('<img/>').attr({ 'class': 'validator', src: 'App_Themes/default/images/warning.png', alt: Hint, title: Hint })
  $('body').data(control.id, false);
  if ($(control).next().is('input')) {
    $(control).next().next('img').remove()
    $(control).next().after(img);
  } else {
    $(control).next('img').remove();
    $(control).after(img);
  }
}

function MatchesRegEx(control, Pattern) {
  var re = new RegExp(Pattern);
  return re.test(control.value);
}
function CheckValidationSummary() {
  var valid = true;
  $('input[type="text"]').blur();
  if ($('body').data() != null) {
    $.each($('body').data(), function (i, e) {
      valid = e;
      if (!valid) {
        return false;
      }
    });
  }
  return valid;
}
function CleanUp() {
  $('.formcontainer input[type="text"]').next('img').remove();
  return true;
}

function LetterCount(sender, messagelength, target) {
  var Text = sender.value;
  var MessageLength = messagelength;
  var result = Text.match(/€/g)

  if (result) {
    for (n = 0; n < result.length; n++)
      MessageLength = MessageLength - 1;
  }
  document.getElementById(target).value = MessageLength - Text.length;
  if ((MessageLength - Text.length) < 0) {
    sender.style.backgroundColor = "red";
  }
  else {
    sender.style.backgroundColor = "white";
  }

}
function RemoveMask(control, mask) {
  if ($(control).val() == mask) {
    $(control).val('');
    return;
  }
}
