 function submitViaAjax(form) {
  var paramString = "ajaxContext=true";
  
  for (var ii=0; ii<form.elements.length; ii++) {
    paramString += '&'+form.elements[ii].name+'='+escape(encodeURI(form.elements[ii].value));
  }
  var req = newXMLHttpRequest();

  var handlerFunction = getReadyStateHandler(req, function(rtnReq) { dataLoaded(rtnReq, form) } );
  req.onreadystatechange = handlerFunction;  
  req.open("POST", form.action, true);
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

  req.send(paramString);
  form.className = form.className+' AjaxLoading';
  return false;
}


function dataLoaded(request, form) {
    //alert('pause to simulate proccessing');

    document.fire("fm:submitted"); // could probably pass some status message here
    form.className = form.className.replace('AjaxLoading', '');
    form.className = form.className+' AjaxReturned';
   
    var  rtnElm = $(form).select('.submitted');
   
   if (rtnElm[0] != undefined && rtnElm[0] != null) {
     rtnElm[0].innerHTML = request.responseText; // responseXML
   }
  
    return;
  /*
  var rootNode = inputXML.getElementsByTagName("country")[0];

  var list = rootNode.getElementsByTagName("state");
  var tmpList = new Array();

  for (var i=0; i<list.length; i++) {
    var item = list[i];

    var id = item.getElementsByTagName("id")[0].firstChild.nodeValue;
    var tmpNode = item.getElementsByTagName("title")[0].firstChild;
    var title = (tmpNode != null) ? tmpNode.nodeValue : '';
        
    // update cache
    tmpList.push(new State(id, title));
  }

    stateCache = tmpList;
    window.status = "Done.";
    drawStateList();
  }
  */
}