function emptystr(string) {
	var x = 0;
	var chr;
	var empty = true;
	if (string.length) {
		do {
			chr = string.substring(x, x + 1);
			x++;
			empty = (chr == ' ' || chr == '\t' || chr == '\n' || chr == '\r');
		} while (empty && x < string.length);
	}
	return empty;
}

function showAlert(item, name){
  if (emptystr(document.subform.elements[item].value)){
    alert('U bent ' + name + ' vergeten in te voeren!');
    document.subform.elements[item].focus();
    return false;
  }
  else{
    return true;
  }
}

function checkNumber(item, name){
  if (isNaN(document.form_cms.elements[item].value)){
	  alert(name + ' moet een nummer zijn!');
    document.form_cms.elements[item].focus();
    return false;
  }
  else{
    return true;
  }
}

function checkRange(item, name, min, max) {
  var val = parseInt(document.form_cms.elements[item].value);

  if (!isNaN(document.form_cms.elements[item].value) && val >= min && val <= max) {
    return true;
  }
  else {
    alert(name + ' moet een getal zijn tussen ' + min + ' en ' + max + '!');
    document.form_cms.elements[item].focus();
    return false;
  }
}

function setChange(objname) {
  if (document.all) {
    var newContent = editor_getHTML(objname); 
    setGlobalVar("_" + objname + "_initialText",newContent); 
  }
  return true;
}

function showConfirmation(item, action){
  return confirm('Weet u zeker dat u ' + item + ' wilt ' + action + '?');
}

function checkEmpty(item, name){
  if (emptystr(document.form_cms.elements[item].value)){
    alert('U bent ' + name + ' vergeten in te voeren!');
    document.form_cms.elements[item].focus();
    return false;
  }
  else{
    return true;
  }
}

// Like above, but without the focus()
function checkEmptyNoFocus(item, name){
  if (emptystr(document.form_cms.elements[item].value)){
    alert('U bent ' + name + ' vergeten in te voeren!');
    return false;
  }
  else{
    return true;
  }
}

// Like above, for WYSIWYG
function checkEmptyWYSIWYG(item, name){
  if (emptystr(document.form_cms.elements[item].value)){
    alert('U bent ' + name + ' vergeten in te voeren!');
    if (document.all)
      editor_focus(document.getElementById('_' + item + '_editor'));
    return false;
  }
  else{
    return true;
  }
}

function checkEmail(item){
  var pattern=/(^[\-_\.a-zA-Z0-9]+)@((([0-9]{1,3}\.){3}([0-9]{1,3})((:[0-9])*))|(([a-zA-Z0-9\-]+)(\.[a-zA-Z]{2,})+(\.[a-zA-Z]{2})?((:[0-9])*)))/;
  
  if (document.form_cms.elements[item].value.search(pattern) == -1){
    alert('Het e-mailadres is onjuist!');
    document.form_cms.elements[item].focus();
    return false;
  }
  else{
    return true;
  }
}

function checkPassword(item1, item2){
  if (document.form_cms.elements[item1].value != document.form_cms.elements[item2].value){
    alert('Het wachtwoord en de bevestiging van het wachtwoord komen niet overeen!');
    document.form_cms.elements[item1].focus();
    return false;
  }
  else{
    return true;
  }
}

function checkImage(item) {
  if (!document.form_cms.elements[item].value) {
    alert('Selecteer een afbeelding!');
    document.form_cms.elements[item + '_btn'].focus();
    return false;
  }
  else {
    return true;
  }
}

function checkURL(item) {
  var url = document.form_cms.elements[item].value;

  var urlPattern = /^(http|ftp|https):\/\/([^\s]+)$/i;
  if (!urlPattern.test(url) || url.indexOf('.') == -1) {
    alert('De URL is onjuist!');
    document.form_cms.elements[item].focus();
    return false;
  }
  else {
    return true;
  }
}

function checkDates(eff,exp){
  EffectiveDays = Number(document.form_cms.elements[eff+"_day"].value);
  EffectiveMonth = Number(document.form_cms.elements[eff+"_month"].value)-1;
  EffectiveYear = Number(document.form_cms.elements[eff+"_year"].value);
  ExpirationDays = Number(document.form_cms.elements[exp+"_day"].value);
  ExpirationMonth = Number(document.form_cms.elements[exp+"_month"].value)-1;
  ExpirationYear = Number(document.form_cms.elements[exp+"_year"].value);

  Effective = new Date(EffectiveYear, EffectiveMonth-1, EffectiveDays);
  Expiration = new Date(ExpirationYear, ExpirationMonth-1, ExpirationDays);

  if (document.form_cms.elements['effective_enabled'].checked && document.form_cms.elements['expiration_enabled'].checked ){
    if(Effective >= Expiration){
      alert('De publicatiedatum kan niet gelijk of groter zijn dan de verloopdatum!');
      return false;
    }
    else {
      return true;
    }
  }
  else 
    return true;
}

function compareDates(fromdate, todate) {
  var FromDay = Number(document.form_cms.elements[fromdate + "_day"].value);
  var FromMonth = Number(document.form_cms.elements[fromdate + "_month"].value);
  var FromYear = Number(document.form_cms.elements[fromdate + "_year"].value);
  
  var ToDay = Number(document.form_cms.elements[todate + "_day"].value);
  var ToMonth = Number(document.form_cms.elements[todate + "_month"].value);
  var ToYear = Number(document.form_cms.elements[todate + "_year"].value);
 
  var From = new Date(FromYear, FromMonth, FromDay);
  var To = new Date(ToYear, ToMonth, ToDay);

	if (From > To) {
		alert('De vanaf datum kan niet groter zijn dan de tot datum!');
		return false;
	}
	else {
		return true;
	}
}

function compareActExpDates(active, expiration) {
  var ActDay = Number(document.form_cms.elements[active + "_day"].value);
  var ActMonth = Number(document.form_cms.elements[active + "_month"].value);
  var ActYear = Number(document.form_cms.elements[active + "_year"].value);
  
  var ExpDay = Number(document.form_cms.elements[expiration + "_day"].value);
  var ExpMonth = Number(document.form_cms.elements[expiration + "_month"].value);
  var ExpYear = Number(document.form_cms.elements[expiration + "_year"].value);
 
  var Act = new Date(ActYear, ActMonth, ActDay);
  var Exp = new Date(ExpYear, ExpMonth, ExpDay);

	if (document.form_cms.elements['active_enabled'].checked && document.form_cms.elements['archive_enabled'].checked && (Act > Exp)) {
		alert('De activeerdatum kan niet groter zijn dan de archiefdatum!');
		return false;
	}
	else {
		return true;
	}
}

function checkFormSaveResults() {
  if (!document.form_cms.elements['mail_enabled'].checked && !document.form_cms.elements['savedb'].checked) {
    alert('Selecteer minstens één optie om de resultaten op te slaan!');
    return false;
  }
  else
    return true;
}

function checkPageMenu(item) {
  if (typeof document.form_cms.elements[item] == 'undefined') {
    return true; // Item not found
  }
  else if (document.form_cms.elements[item].options[document.form_cms.elements[item].selectedIndex].value == '0') {
    alert('Selecteer een niet gebruikt menuitem!');
    document.form_cms.elements[item].focus();
    return false;
  }
  else
    return true;
}

// Form check function
function checkForm(moduleName, formName, action) {
  switch (moduleName) {
    case 'user':
      switch (action) {
        case 'login':
          return (checkEmpty('login', 'de gebruikersnaam') && checkEmpty('password', 'het wachtwoord'));
          break;
        case 'delete':
          return (showConfirmation('de gebruiker', 'verwijderen'));
          break;
        case 'add':
        case 'change':
           var ret = (checkEmpty('uselogin', 'de gebruikersnaam') && checkEmpty('usepassword', 'het wachtwoord') && checkPassword('usepassword', 'password_check') && checkEmpty('firstname', 'de voornaam')
      && checkEmpty('lastname', 'de achternaam') && checkEmpty('email', 'het e-mailadres') && checkEmail('email'));
          if (action == 'add')
             return ret && showConfirmation('de gebruiker', 'toevoegen');
          else
             return ret && showConfirmation('de gebruiker', 'wijzigen');
          break;
      }
      break;

    case 'page':
      switch (action) {
        case 'delete':
          return (showConfirmation('de pagina', 'verwijderen'));    
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam') && checkPageMenu('menu') && checkPageMenu('menu1') && setChange('content_text') && checkEmptyWYSIWYG('content_text', 'de tekst'));
          if (action == 'add')
            return ret && showConfirmation('de pagina', 'toevoegen');
          else
            return ret && showConfirmation('de pagina', 'wijzigen');
          break;
      }
      break;
  
    case 'menu': // top menu
      switch (action) {
        case 'delete':
          return (showConfirmation('het menuitem', 'verwijderen'));
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam') && checkEmpty('width', 'de breedte') && checkNumber('width', 'De breedte') && checkRange('width', 'De breedte', 1, 1000) && checkDates('effectivedate', 'expirationdate'));
          if (action == 'add')
            return ret && showConfirmation('het menuitem', 'toevoegen');
          else
            return ret && showConfirmation('het menuitem', 'wijzigen');
          break;
      }
      break;

    case 'module':
      switch (action) {
        case 'delete':
          return (showConfirmation('module', 'verwijderen'));
          break;
        case 'add':
        case 'change':
          var ret = (checkEmptyNoFocus('modulename', 'de naam'));
          if (action == 'add')
            return ret && showConfirmation('de module', 'toevoegen');
          else
            return ret && showConfirmation('de module', 'wijzigen');
          break;
      }
      break;

    case 'newsletter':
      switch (formName) {
        case 'newsletter':
          switch (action) {
            case 'delete':
              return (showConfirmation('de nieuwsbrief', 'verwijderen'));
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('name', 'de naam') && setChange('htmlcontent') && checkEmptyWYSIWYG('htmlcontent', 'de HTML tekst'));
              if (action == 'add')
                return ret && showConfirmation('de nieuwsbrief', 'toevoegen');
              else
                return ret && showConfirmation('de nieuwsbrief', 'wijzigen');
              break;
            case 'broadcast':
              // Check if at least one member is selected
              var sel = false;
              for (var i = 0; i < document.form_cms.elements.length && !sel; i++)
                if (document.form_cms.elements[i].name.substr(0, 7) == 'member[' && document.form_cms.elements[i].checked)
                  sel = true;
    
                if (!sel) {
                  alert('Selecteer minimaal één lid!');
                  return false;
                }

                return (checkEmpty('email', 'het e-mailadres') && checkEmail('email') && showConfirmation('de nieuwsbrief', 'verzenden'));
              break;
          }
          break;
        case 'group':
          switch (action) {
            case 'delete':
              return (showConfirmation('de groep en alle leden erin', 'verwijderen'));
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('name', 'de naam'));
              if (action == 'add')
                 return ret && showConfirmation('de groep', 'toevoegen');
              else
                 return ret && showConfirmation('de groep', 'wijzigen');
              break;
          }
          break;
        case 'member':
          switch (action) {
            case 'delete':
              return (showConfirmation('het lid', 'verwijderen'));
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('firstname', 'de voornaam') && checkEmpty('lastname', 'de achternaam') && checkEmpty('email', 'het e-mailadres')
      && checkEmail('email'));
              if (action == 'add')
                return ret && showConfirmation('het lid', 'toevoegen');
              else
                return ret && showConfirmation('het lid', 'wijzigen');
              break;              
          }
          break;
      }
      break;

    case 'calendar':
      switch (action) {
        case 'delete':
          return (showConfirmation('het kalenderitem', 'verwijderen'));
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam') && compareDates('fromdate', 'todate') && setChange('description') && checkEmptyWYSIWYG('description', 'de omschrijving'));
          if (action == 'add')
            return ret && showConfirmation('het kalenderitem', 'toevoegen');
          else
            return ret && showConfirmation('het kalenderitem', 'wijzigen');
          break;
      }
      break;

    case 'category':
      switch (action) {
        case 'delete':
          return (showConfirmation('de categorie', 'verwijderen'));
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam'));
          if (action == 'add')
            return ret && showConfirmation('de categorie', 'toevoegen');
          else
            return ret && showConfirmation('de categorie', 'wijzigen');
          break;
      }
      break;

    case 'template':
      switch (action) {
        case 'delete':
          return (showConfirmation('de template', 'verwijderen'));
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam'));
          if (action == 'add')
            return ret && showConfirmation('de template', 'toevoegen');
          else
            return ret && showConfirmation('de template', 'wijzigen');
          break;
      }
      break;

    case 'news':
      switch (action) {
        case 'delete':
          return (showConfirmation('het nieuwsbericht', 'verwijderen'));
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam') && checkEmpty('description', 'de omschrijving') && setChange('content_text')
       && checkEmptyWYSIWYG('content_text', 'de tekst') && compareActExpDates('activedate', 'archivedate'));
          if (action == 'add')
            return ret && showConfirmation('het nieuwsbericht', 'toevoegen');
          else
            return ret && showConfirmation('het nieuwsbericht', 'wijzigen');
          break;
      }
      break;

    case 'job':
      switch (formName) {
        case 'job':
          switch (action) {
            case 'delete':
              return (showConfirmation('de vacature', 'verwijderen'));
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('name', 'de naam') && checkEmpty('description', 'de omschrijving') && checkEmpty('requirements', 'de eisen') && checkDates('active', 'deactive','De activeerdatum kan niet groter of gelijk zijn dan de deactiveerdatum!'));
              if (action == 'add')
                return ret && showConfirmation('de vacature', 'toevoegen');
              else
                return ret && showConfirmation('de vacature', 'wijzigen');
              break;
          }
          break;
        break;
        case 'reaction':
          switch (action) {
            case 'delete':
              return (showConfirmation('de reactie', 'verwijderen'));
              break;
          }
          break;
      }
      break;

    case 'link':
      switch (action) {
        case 'delete':
          return (showConfirmation('link', 'verwijderen'));
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam') && checkEmpty('description', 'de omschrijving') && checkEmpty('link', 'de link')
      && checkURL('link'));
          if (action == 'add')
            return ret && showConfirmation('de link', 'toevoegen');
          else
            return ret && showConfirmation('de link', 'wijzigen');
          break;
      }
      break;

    case 'forum':
      switch (formName) {
        case 'forum':
          switch (action) {
            case 'delete':
              return (showConfirmation('het forum en alle onderwerpen en reacties', 'verwijderen'));
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('name', 'de naam') && checkEmpty('description', 'de omschrijving') && checkEmpty('moderator', 'de moderator')
      && checkEmpty('email', 'het e-mailadres') && checkEmail('email'));
              if (action == 'add')
                return ret && showConfirmation('het forum', 'toevoegen');
              else
                return ret && showConfirmation('het forum', 'wijzigen');
              break;
          }
        case 'subject':
          if (action == 'delete')
            return (showConfirmation('het onderwerp en alle reacties', 'verwijderen'));
          break;
        case 'post':
          if (action == 'delete')
            return (showConfirmation('de reactie', 'verwijderen'));
          break;
      }
      break;

    case 'upload':
      switch (formName) {
        case 'upload':
          switch (action) {
            case 'delete':
              return (showConfirmation('de upload', 'verwijderen'));
              break;
            case 'add':
            case 'change':
              var ret =  (checkEmpty('name', 'de naam'));
              if (action == 'add')
                 return ret && showConfirmation('de upload', 'toevoegen');
              else
                 return ret && showConfirmation('de upload', 'wijzigen');
              break;
          }
          break;
        case 'resize':
          return (checkEmpty('ratio', 'het percentage') && checkNumber('ratio', 'Het percentage') && checkEmpty('name', 'de naam') && showConfirmation('de afbeelding', 'wijzigen'));
      }
      break;

    case 'faq':
      switch (action) {
        case 'delete':
          return (showConfirmation('de faq', 'verwijderen'));
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('question', 'de vraag') && setChange('answer') && checkEmptyWYSIWYG('answer', 'het antwoord'));
          if (action == 'add')
            return ret && showConfirmation('de faq', 'toevoegen');
          else
            return ret && showConfirmation('de faq', 'wijzigen');
          break;
      }
      break;

    case 'address':
      switch (action) {
        case 'delete':
          return (showConfirmation('het adres', 'verwijderen'));
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam') && checkEmpty('description', 'de omschrijving'));
          if (action == 'add')
            return ret && showConfirmation('het adres', 'toevoegen');
          else
            return ret && showConfirmation('het adres', 'wijzigen');
          break;
      }
      break;

    case 'publication':
      switch (action) {
        case 'delete':
          return (showConfirmation('de publicatie', 'verwijderen'));
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam') && setChange('description') && checkEmptyWYSIWYG('description', 'de omschrijving'));
          if (action == 'add')
            return ret && showConfirmation('de publicatie', 'toevoegen');
          else
            return ret && showConfirmation('de publicatie', 'wijzigen');
          break;  
      }
      break;

    case 'catchword':
      switch (action) {
        case 'delete':
          return (showConfirmation('het trefwoord', 'verwijderen'));
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam') && setChange('description') && checkEmptyWYSIWYG('description', 'de omschrijving'));
          if (action == 'add')
            return ret && showConfirmation('het trefwoord', 'toevoegen');
          else
            return ret && showConfirmation('het trefwoord', 'wijzigen');
          break;
      }
      break;
  
    case 'translate':
      switch (formName) {
        case 'translate':
          switch (action) {
            case 'delete':
              return (showConfirmation('de vertaling', 'verwijderen'));
              break;
            case 'add':
            case 'change':
              if (document.form_cms.elements['template'].options[document.form_cms.elements['template'].selectedIndex].value == '0') {
                alert('Selecteer een template!');
                document.form_cms.elements['template'].focus();
                return false;
              }
              var ret = (checkEmpty('name', 'de naam') && checkEmpty('translation', 'de vertaling'));
              if (action == 'add')
                return ret && showConfirmation('de vertaling', 'toevoegen');
              else
                return ret && showConfirmation('de vertaling', 'wijzigen');
              break;
          }
          break;
        case 'language':
          switch (action) {
            case 'delete':
              return (showConfirmation('de taal', 'verwijderen')); 
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('name', 'de naam'));
              if (action == 'add')
                return ret && showConfirmation('de taal', 'toevoegen');
              else
                return ret && showConfirmation('de taal', 'wijzigen');
              break;
          }
          break;
      }
      break;

    case 'site':
      switch (action) {
        case 'delete':
          return (showConfirmation('de site', 'verwijderen'));
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam'));
          if (action == 'add')
             return ret && showConfirmation('de site', 'toevoegen');
          else
             return ret && showConfirmation('de site', 'wijzigen');
          break;
      }
      break;

    case 'poll':
      switch (formName) {
        case 'poll':
          switch (action) {
            case 'delete':
              return (showConfirmation('de poll', 'verwijderen'));
              break;
            case 'add':
            case 'change':
              var ret = checkEmpty('statement', 'de stelling');

              if (document.form_cms.elements['from_enabled'].checked && document.form_cms.elements['to_enabled'].checked)
                ret = ret && compareDates('fromdate', 'todate');      

              if (!document.form_cms.elements['showresults'][0].checked)
                ret = ret && checkEmpty('resulttext', 'de tekst na stemmen');

              if (action == 'add')
                return (ret && showConfirmation('de poll', 'toevoegen'));
              else
                return (ret && showConfirmation('de poll', 'wijzigen'));
              break;
          }
          break;
        case 'answer':
          switch (action) {
            case 'delete':
              return (showConfirmation('het antwoord', 'verwijderen'));
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('answer', 'het antwoord'));
              if (action == 'add')
                return ret && showConfirmation('het antwoord', 'toevoegen');
              else
                return ret && showConfirmation('het antwoord', 'wijzigen');
              break;
          }
          break;
      }
      break;

    case 'form':
      switch (formName) {
        case 'form':
          switch (action) {
            case 'copy':
              return checkEmpty('name', 'de naam') && showConfirmation('het formulier', 'kopieren');
              break;
            case 'delete':
              return showConfirmation('het formulier', 'verwijderen');
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('name', 'de naam') && (document.form_cms.elements['mail_enabled'].checked ? checkEmail('email') : true) && checkFormSaveResults() && checkEmpty('submitvalue', 'de tekst van de verstuurknop'));
              if (action == 'add')
                 return ret && showConfirmation('het formulier', 'toevoegen');
              else
                 return ret && showConfirmation('het formulier', 'wijzigen');
              break;
          }
          break;
        case 'field':
          switch (action) {
            case 'delete':
              return showConfirmation('het veld', 'verwijderen');
              break;
            case 'add':
            case 'change':
              var res;
              // Check generic fields
              res = checkEmpty('label', 'het label');
              // Now the specific fields
              switch (document.form_cms.component.value) {
                case 'select':
                  res = (res && checkEmpty('height', 'de hoogte') && checkNumber('height', 'De hoogte') && checkRange('height', 'De hoogte', 1, 100));
                  break;
                case 'textarea':
                  res = (res && checkEmpty('cols', 'het aantal kolommen') && checkNumber('cols', 'Het aantal kolommen') && checkRange('cols', 'Het aantal kolommen', 1, 500) && checkEmpty('rows', 'het aantal rijen') && checkNumber('rows', 'Het aantal rijen') && checkRange('rows', 'Het aantal rijen', 1, 100));
                  break;
                case 'password':
                case 'textfield':
                  res = (res && checkEmpty('maxlength', 'de maximale lengte') && checkNumber('maxlength', 'De maximale lengte') && checkRange('maxlength', 'De maximale lengte', 1, 200) && checkEmpty('size', 'de breedte') && checkNumber('size', 'De breedte') && checkRange('size', 'De breedte', 1, 100));
                  break;
                case 'intlink':
            		  var test = (document.form_cms.intlink.options[document.form_cms.intlink.selectedIndex].value);
            		  var test2 = (document.form_cms.doelframe.options[document.form_cms.doelframe.selectedIndex].value);
            			if (test == "0") {
                    res = (res && alert('Selecteer een pagina!'));
                		document.form_cms.intlink.focus();
                		return false;
            		  }
            			if (test2 == "0") {
                    res = (res && alert('U moet een doelframe kiezen!'));
                		document.form_cms.doelframe.focus();
                		return false;
            			}
                  break;	
              }
              if (action == 'add')
                return (res && showConfirmation('het veld', 'toevoegen'));
              else
                return (res && showConfirmation('het veld', 'wijzigen'));
              break;
          }
          break;
        case 'result':
          return showConfirmation('het formulierresultaat', 'verwijderen');
          break;          
        case 'fieldoption':
          switch (action) {
            case 'delete':
              return showConfirmation('de optie', 'verwijderen');
              break;
            case 'add':
            case 'change':
              var res;
              switch (document.form_cms.component.value) {
                case 'select':
                  res = (checkEmpty('text', 'de tekst') && checkEmpty('value', 'de waarde'));
                  break;
                case 'checkbox':
                  res = (checkEmpty('label', 'het label') && checkEmpty('value', 'de waarde'));
                  break;
                case 'radio':
                  res = (checkEmpty('label', 'het label') && checkEmpty('value', 'de waarde'));
                  break;
              }
              if (action == 'add')
                return (res && showConfirmation('de optie', 'toevoegen'));
              else
                return (res && showConfirmation('de optie', 'wijzigen'));
              break;
          }
          break;
      }
      break;

    case 'mainpage':
      switch (action) {
        case 'delete':
          return showConfirmation('het item', 'verwijderen');
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('title', 'de titel') && checkImage('image'));
          if (action == 'add')
            return ret && showConfirmation('het item', 'toevoegen');
          else
            return ret && showConfirmation('het item', 'wijzigen');
          break;
      }
      break;

    case 'member':
      switch (formName) {
        case 'member':
          switch (action) {
            case 'delete':
              return showConfirmation('de gebruiker', 'verwijderen');
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('login', 'de gebruikersnaam') && checkEmpty('password', 'het wachtwoord') && checkPassword('password', 'password_check') && checkEmpty('firstname', 'de voornaam') && checkEmpty('lastname', 'de achternaam'));
              if (action == 'add')
                return ret && showConfirmation('de gebruiker', 'toevoegen');
              else
                return ret && showConfirmation('de gebruiker', 'wijzigen');
              break;
          }
          break;
        case 'group':
          switch (action) {
            case 'delete':
              return showConfirmation('de groep', 'verwijderen');
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('name', 'de naam'));
              if (action = 'add')
                 return ret && showConfirmation('de groep', 'toevoegen');
              else
                 return ret && showConfirmation('de groep', 'wijzigen');
              break;
          }
          break;
      }
      break;

    case 'document':
      switch (action) {
        case 'delete':
          return showConfirmation('het document', 'verwijderen');
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('name', 'de naam') && checkEmpty('description', 'de omschrijving'));
          if (action == 'add')
            return ret && showConfirmation('het document', 'toevoegen');
          else
            return ret && showConfirmation('het document', 'wijzigen');
          break;
      }
      break;

    case 'picture':
      switch (formName) {
        case 'picture':
          switch (action) {
            case 'delete':
              return showConfirmation('de foto gallerij', 'verwijderen');
              break;
            case 'add':
            case 'change':
              var ret = (checkEmpty('name', 'de naam') && checkEmpty('description', 'de omschrijving'));
              if (action == 'add')
                return ret && showConfirmation('de foto gallerij', 'toevoegen');
              else
                return ret && showConfirmation('de foto gallerij', 'wijzigen');
              break;
          }
          break;
        case 'photo':
          switch (action) {
            case 'add':
              return showConfirmation('de foto', 'toevoegen');
              break;
            case 'delete':
              return showConfirmation('de foto', 'verwijderen');
              break;
          }
      }
      break;

    case 'relation':
      switch (action) {
        case 'delete':
          return showConfirmation('de relatie', 'verwijderen');
          break;
        case 'add':
        case 'change':
          var ret = (checkEmpty('lastname', 'de achternaam') && checkEmpty('firstname', 'de voornaam') && (document.form_cms.elements['email'].value == '' || checkEmail('email')) && (document.form_cms.elements['website'].value == '' || checkURL('website')));
          if (action == 'add')
            return ret && showConfirmation('de relatie', 'toevoegen');
          else
            return ret && showConfirmation('de relatie', 'wijzigen');
          break;
      }
      break;

    case 'cms_module':
      switch (action) {
        case 'delete':
          return showConfirmation('de module', 'verwijderen');
          break;
        case 'add':
        case 'change':
          var ret = (showAlert('name', 'de naam') && showAlert('title', 'de titel'));
          if (action == 'add')
            return ret && showConfirmation('de module', 'toevoegen');
          else
            return ret && showConfirmation('de module', 'wijzigen');
          break;
      }
      break;

    case 'userrole':
      switch (action) {
        case 'delete':
          return showConfirmation('de rol', 'verwijderen');
          break;
        case 'add':
        case 'change':
          var ret = (showAlert('title', 'de naam'));
          if (action == 'add')
            return ret && showConfirmation('de rol', 'toevoegen');
          else
            return ret && showConfirmation('de rol', 'wijzigen');
          break;
      }
      break;

    case 'cms_menu':
      switch (action) {
        case 'delete':
          return showConfirmation('het menuitem', 'verwijderen');
          break;
        case 'add':
        case 'change':
          var ret = (showAlert('title', 'de titel'));
          if (action == 'add')
            return ret && showConfirmation('het menuitem', 'toevoegen');
          else
            return ret && showConfirmation('het menuitem', 'wijzigen');
          break;
      }
      break;

    case 'permission':
      switch (action) {
        case 'delete':
          return showConfirmation('de permissie', 'verwijderen');
          break;
        case 'add':
        case 'change':
          var ret = (showAlert('permission', 'de permissie') && showAlert('title', 'de titel'));
          if (action == 'add')
            return ret && showConfirmation('de permissie', 'toevoegen');
          else
            return ret && showConfirmation('de permissie', 'wijzigen');
          break;
      }
      break;
  }
  return false;
}

