function ajaxMailing(frmId) {
  var data = getFormData(frmId);
  var url = '/maillist/request.lp';
  var request = new Ajax.Request (
	  url, {
		  method: 'post',
      parameters: data,
      onLoading: loading,
      onSuccess: endloading,
		  onFailure: failure,
			onException: exception,
			onComplete: display
	});
  function display(request) {
    var resultResponse  = request.responseXML.getElementsByTagName('result')[0].firstChild.nodeValue;
    var xmlResponseType = request.responseXML.getElementsByTagName('result')[0].getAttribute('type');
    var xmlResponseCode = request.responseXML.getElementsByTagName('result')[0].getAttribute('code');
    if(frmId=='frmQuickSubscribe') {
      if(!$('mailinglistContainer')) return false;
      if(!$('mailinglistResponse')) return false;
      var mailinglistContainer = $('mailinglistContainer');
      var mailinglistResponse = $('mailinglistResponse');
      var responseDivCanvas = mailinglistResponse.getElementsByTagName('p')[0];
      mailinglistContainer.toggle();
      mailinglistResponse.toggle(); 
      if(xmlResponseType == 'ok') {
        $(responseDivCanvas).update(resultResponse);
      }
      else {
        resultResponse += '<br> klik hier om opnieuw aan te melden.';
        $(responseDivCanvas).update(resultResponse);
      }
    }
    else if(frmId=='frmSubscribe') {
      if(!$('aanmelden')) return false;
      if(!$('aanmeldenResponse')) return false;
      var aanmeldenResponseCanvas = $('aanmeldenResponse').getElementsByTagName('p')[0];
      $(aanmeldenResponseCanvas).update(resultResponse);
      responseHighlight('aanmeldenResponse', xmlResponseType);
      if(xmlResponseType == 'ok') {
        accordionMaillist.toggle('aanmelden');
        if(!$('aanmeldenResponse').visible()) {
          accordionMaillistResponse.toggle('aanmeldenResponse');
        }
      }
      else {
        if(!$('aanmeldenResponse').visible()) {
          accordionMaillistResponse.toggle('aanmeldenResponse');
        }
        $('aanmeldenEmail').activate();
      }
    }
    else if(frmId=='frmModify') {
      if(!$('wijzigen')) return false;
      if(!$('wijzigenResponse')) return false;
      var wijzigenResponseCanvas = $('wijzigenResponse').getElementsByTagName('p')[0];
      $(wijzigenResponseCanvas).update(resultResponse);
      responseHighlight('wijzigenResponse', xmlResponseType);
      if(xmlResponseType == 'ok') {
        accordionMaillist.toggle('wijzigen');
        if(!$('wijzigenResponse').visible()) {
          accordionMaillistResponse.toggle('wijzigenResponse');
        }
        accordionMaillistResponse.toggle('wijzigenResponse');
      }
      else {
        if(!$('wijzigenResponse').visible()) {
          accordionMaillistResponse.toggle('wijzigenResponse');
        }
        if(xmlResponseCode == '330' || xmlResponseCode == '332') {
          $('wijzigenEmail').activate();
        }
        if(xmlResponseCode == '510' || xmlResponseCode == '520') {
          $('wijzigenCode').activate();
        }
        if(xmlResponseCode == '420' || xmlResponseCode == '421' ||xmlResponseCode == '320') {
          $('wijzigenEmailnew').activate();
        }
      }
    }
    else if(frmId=='frmUnsubscribe') {
      if(!$('uitschrijven')) return false;
      if(!$('uitschrijvenResponse')) return false;
      var uitschrijvenResponseCanvas = $('uitschrijvenResponse').getElementsByTagName('p')[0];
      $(uitschrijvenResponseCanvas).update(resultResponse);
      responseHighlight('uitschrijvenResponse', xmlResponseType);
      if(xmlResponseType == 'ok') {
        accordionMaillist.toggle('uitschrijven');
        if(!$('uitschrijvenResponse').visible()) {
          accordionMaillistResponse.toggle('uitschrijvenResponse');
        }
      }
      else {
        if(!$('uitschrijvenResponse').visible()) {
          accordionMaillistResponse.toggle('uitschrijvenResponse');
        }
        if(xmlResponseCode == '330' || xmlResponseCode == '332') {
          $('uitschrijvenEmail').activate();
        }
        if(xmlResponseCode == '510' || xmlResponseCode == '520') {
          $('uitschrijvenCode').activate();
        }
      }
    }
    else if(frmId=='frmResend') {
      if(!$('codeDiv')) return false;
      if(!$('codeResponse')) return false;
      var codeResponseCanvas = $('codeResponse').getElementsByTagName('p')[0];
      $(codeResponseCanvas).update(resultResponse);
      responseHighlight('codeResponse', xmlResponseType);
      if(xmlResponseType == 'ok') {
        accordionMaillist.toggle('codeDiv');
        if(!$('codeResponse').visible()) {
          accordionMaillistResponse.toggle('codeResponse');
        }
      }
      else {
        if(!$('codeResponse').visible()) {
          accordionMaillistResponse.toggle('codeResponse');
        }
        if(xmlResponseCode == '333') {
          $('codeEmail').activate();
        }
      }
    }
  }
  function loading() {
    if($('loadingDiv')) {
      $('loadingDiv').show();
    }
  }
  function endloading() {
    if($('loadingDiv')) {
      $('loadingDiv').hide();
    }
  }
  function failure() {
	  alert('er heeft zich een storing voor gedaan, probeert u het nogmaals.');
  }
  function exception(exception,msg) {
    alert('er heeft zich een storing voor gedaan, probeert u het nogmaals.');
  }    
  function getFormData(frmId) {
    var data = $(frmId).serialize();
    return data;
  }
  function responseHighlight(id, xmlResponseType) {
    if(!id) return false;
    if(!xmlResponseType) return false;
    var element = $(id).getElementsByTagName('p')[0];
    var endColor = element.style.backgroundColor;
    if(xmlResponseType == 'ok') {
      var color = '#00E800';
    }
    else {
      var color = '#FF0000';
    }
    new Effect.Highlight(element, { 
      startcolor:color,
      endcolor: endColor,
      duration: 1.5
    });
  }
}
function codeRequest(object) {
  if(object.id=='wijzigenCR') {
    accordionMaillistResponse.closeAll();
    accordionMaillist.toggle('codeDiv');
    var email = $F('wijzigenEmail');
    document.forms.frmResend.email.value = email;
  }
  if(object.id=='uitschrijvenCR') {
    accordionMaillistResponse.closeAll();
    accordionMaillist.toggle('codeDiv');
    var email = $F('uitschrijvenEmail');
    document.forms.frmResend.email.value = email;
  }
}
function displayToggle(ID) {
  accordionMaillist.toggle(ID);
  accordionMaillistResponse.closeAll();
}

document.observe("dom:loaded", function() {
  // hiding loadingDiv
  if($('loadingDiv')) {
    $('loadingDiv').hide();
  }
  // zwevend invoer-veld
  if($('mailinglistContainer') && $('mailinglistResponse')) {
    var mailinglistResponse = $('mailinglistResponse');
    mailinglistResponse.hide();
    mailinglistResponse.onclick = function() {
      mailinglistResponse.toggle(); 
      $('mailinglistContainer').toggle();
    }
  }
});
