function mtProcessXmlResponse(responseXML, formObj, serviceURL){
  var i = 0;
  var resultNode = responseXML.getElementsByTagName("result");
  if(resultNode.length > 0 && resultNode[0].childNodes.length > 0) {
    resultNode = resultNode[0].childNodes;
    for(i==0;i<resultNode.length;i++) {
      switch(resultNode[i].nodeName){
        case 'message': // message node
          if(resultNode[i].childNodes.length > 0) {
            alert(resultNode[i].firstChild.nodeValue);
          }
          break;
        case 'confirm': // prompt node
          if(resultNode[i].childNodes.length > 0) {
            var actionId = resultNode[i].attributes.getNamedItem('id').nodeValue;
            var actionOk = resultNode[i].attributes.getNamedItem('ok').nodeValue;
            var actionCancel = resultNode[i].attributes.getNamedItem('cancel').nodeValue;
            var question = resultNode[i].childNodes[0].nodeValue;
            var action = (confirm(question)) ? actionOk : actionCancel;
            $(actionId).value = action;
            formObj.send(serviceURL);
          }
          break;
        case 'clearField': // clear field node
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).value = '';
          break;
        case 'setField': // set field value node
          if(resultNode[i].childNodes.length > 0) {
            var objId = resultNode[i].attributes.getNamedItem('id').nodeValue;
            var value = resultNode[i].childNodes[0].nodeValue;
            if ($(objId)) {
              $(objId).value = value;
            }
          }
          break;
        case 'focusField': // make focus on field node
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).focus();
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).highlight(resultNode[i].attributes.getNamedItem('color').nodeValue);
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).select();
          break;
        case 'highlightField': // highlight a field node
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).highlight(resultNode[i].attributes.getNamedItem('color').nodeValue);
          break;
        case 'markObject': // mark an object by adding a css to the object
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).addClass(resultNode[i].attributes.getNamedItem('css').nodeValue);
          break;
        case 'unmarkObject': // unmark an object by deleting a css form the object
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).removeClass(resultNode[i].attributes.getNamedItem('css').nodeValue);
          break;
        case 'setHtml': // set Html content node
          var value = '';
          if (resultNode[i].childNodes.length  > 0) {
            value = resultNode[i].childNodes[0].nodeValue;
          }
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).innerHTML = value;
          break;
        case 'resetForm': // reset current form data
          formObj.reset();
          break;
        case 'resetOtherForm': // reset other form data
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).reset();
          break;
        case 'hideObject': // hide node
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).slide('hide');
          break;
        case 'showObject': // show node
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).slide('show');
          break;
        case 'slideInObject': // slide in node
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).slide('in');
          break;
        case 'slideOutObject': // slide out node
          $(resultNode[i].attributes.getNamedItem('id').nodeValue).slide('out');
          break;
        case 'redirect': // redirect to URL
          if (resultNode[i].childNodes.length  > 0) {
            window.location = resultNode[i].childNodes[0].nodeValue;
          }
          break;
        case 'sbMessage': // shadowbox message
          if(resultNode[i].childNodes.length > 0) {
            var msgTitle = resultNode[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
            var msgHtml = resultNode[i].getElementsByTagName("message")[0].childNodes[0].nodeValue;
            var msgWidth = resultNode[i].attributes.getNamedItem('width').nodeValue;
            var msgHeight = resultNode[i].attributes.getNamedItem('height').nodeValue;
            Shadowbox.open({
                content:        '<div id="sb-message-outter"><div id="sb-message-inner">'+msgHtml+'</div></div>',
                player:         'html',
                title:          msgTitle,
                width:          msgWidth,
                height:         msgHeight
            });
          }
          break;
      } // switch
    } // for
  }
}

function requestError(xhr){
  hideRequestLoader();
  alert(localeConnErr);
}

function showRequestLoader(obj, ajaxLoaderCss, where){
  if ($('ajaxLoader')) {
    hideRequestLoader();
  }
  if (obj) {
    var div = new Element('div', {'id': 'ajaxLoader', 'class': ajaxLoaderCss});
    div.inject(obj, where);
  }
}

function hideRequestLoader(){
  if ($('ajaxLoader')) {
    $('ajaxLoader').destroy();
  }
}

