// JS
// Version: 2.1.1.3

function moduleForm_save() {
  var form = $('editModule_form');
  var moduleId = $('moduleId').value;
  var param = {cmd: "function", funcName: "updateContentItem", moduleType: "form", moduleId: moduleId};
  for (i = 0; i < form.length; i++) {
    if (form[i].type == "radio") {
      if (form[i].checked) {
        param[form[i].name] = form[i].value;
      }
    } else if (form[i].type == "checkbox") {
      if (form[i].checked) {
        param[form[i].name] = "true";
      }
    } else {
      param[form[i].name] = form[i].value;
    }
  }
  ajaxCM2(param, true);
}

function newFormInput(moduleId, type) {
  ajaxCM2({cmd: "function", funcName: "newFormInput", moduleId: moduleId, type: type, moduleType: "form"});
  Lightbox.updateContent_ajax("editModule", {moduleType: "form", moduleId: moduleId});
}

function formInput_delete(id) {
  var sure = confirm("Sind Sie sicher, dass dieses Feld entfernt werden soll?");    
  if (!sure) return;
  var moduleId = $('moduleId').value;
  ajaxCM2({cmd: "function", funcName: "deleteFormInput", id: id, moduleType: "form", moduleId: moduleId});
  Lightbox.updateContent_ajax("editModule", {moduleType: "form", moduleId: moduleId});
}

function updateFormEmail(formId, email) {
  var newEmail = prompt("E-Mail-Adresse", email);
  if (newEmail != null) {
    var moduleId = $('moduleId').value;
    ajaxCM2({cmd: "function", funcName: "updateFormEmail", moduleId: formId, newEmail: newEmail, moduleType: "form"});
    Lightbox.updateContent_ajax("editModule", {moduleType: "form", moduleId: moduleId});
  }
}

function abortForm() {
  var moduleId = $('moduleId').value;
  Lightbox.updateContent_ajax("editModule", {moduleType: "form", moduleId: moduleId});
}

function moveInputUp(id) {
  var moduleId = $('moduleId').value;
  ajaxCM2({cmd: "function", funcName: "moveInputUp", inputId: id, moduleId: moduleId, moduleType: "form"});
  Lightbox.updateContent_ajax("editModule", {moduleType: "form", moduleId: moduleId});
}

function moveInputDown(id) {
  var moduleId = $('moduleId').value;
  ajaxCM2({cmd: "function", funcName: "moveInputDown", inputId: id, moduleId: moduleId, moduleType: "form"});
  Lightbox.updateContent_ajax("editModule", {moduleType: "form", moduleId: moduleId});
}

//////////////////////////////////////
// function for require testing
//////////////////////////////////////
function toggleRequired(id) {
  $('required_' + id).toggle();
}
function requireCheck_none(id) {
  return true;
}
function requireCheck_notEmpty(id) {
  if ($('input_' + id).value == "") {
    $('requireAlert_' + id).show();
    return false;
  }
  $('requireAlert_' + id).hide();
  return true;
}

function requireCheck_email(id) {
  if (!isEmail($('input_' + id).value)) {
    $('requireAlert_' + id).show();
    return false;
  }
  $('requireAlert_' + id).hide();
  return true;
}

function requireCheck_date(id) {
  if (!isDate($('input_' + id).value)) {
    $('requireAlert_' + id).show();
    return false;
  }
  $('requireAlert_' + id).hide();  
  return true;
}

function checkRequired(form) {
  var error = false;
  for (var i = 0; i < form.length; i++) {
    if (form[i].type == "text") {
      var id = form[i].id.substring(6, form[i].id.length);
      if (form[i].hasClassName("notEmpty")) {
        if (!requireCheck_notEmpty(id)) error = true;
      }
      if (form[i].hasClassName("email")) {
        if (!requireCheck_email(id)) error = true;
      }
      if (form[i].hasClassName("date")) {
        if (!requireCheck_date(id)) error = true;
      }
    }
  }
  if (error) {
    $('formRequireAlert').show();
    return false;
  } else {
    $('formRequireAlert').hide();
    return true;
  }  
}

/////// validate email address
function isEmail(s) {
  var a = false;
  var res = false;
  if(typeof(RegExp) == 'function') {
    var b = new RegExp('abc');
    if(b.test('abc') == true){a = true;}
  }
  
  if(a == true) {
    reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                     '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                     '(\\.)([a-zA-Z]{2,4})$');
    res = (reg.test(s));
  } else {
    res = (s.search('@') >= 1 &&
           s.lastIndexOf('.') > s.search('@') &&
           s.lastIndexOf('.') >= s.length-5)
  }
  return(res);
}

////////////// validate date
function isDate(s) {
  var a = false;
  var res = false;
  
  if(typeof(RegExp) == 'function') {
    var b = new RegExp('abc');
    if(b.test('abc') == true){a = true;}
  }
  if(a == true) {
    reg = new RegExp("^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$");
    res = (reg.test(s));
  }
  return res;
}
