function jsRequest(action,getData,postData,formElems) {
  var i=0;
  var getStr = "";
  var postObjects = [];
  // Build request url//{{{
  for(i=0; i<getData.length; i++) {
    if(i==0)
      getStr += "?";
    else
      getStr += "&";
    getStr += getData[i].name;
    getStr += "=";
    getStr += escape(getData[i].value);
  }//}}}
  // Build request form//{{{
  var k = 0;
  for(i=0; i<postData.length; i++) {
    var inp = new Element('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name',postData[i].name);
    inp.setAttribute('value',postData[i].value);
    postObjects[k] = inp;
    k++;
  }//}}}
  for(i=0; i<formElems.length; i++) {//{{{
    var inp = new Element('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name',formElems[i]);
    inp.setAttribute('value',document.getElementById(formElems[i]).value);
    postObjects[k] = inp;
    k++;
  }//}}}
  // Create form//{{{
  var form = new Element('form');
  form.setAttribute('method','post');
  form.setAttribute('action',action+getStr);
  for(i=0; i<postObjects.length; i++) {
    form.appendChild(postObjects[i]);
  }//}}}
  // Attach form to document//{{{
  var div = new Element('div');
  div.style.visibility='hidden';
  div.appendChild(form);
  document.body.appendChild(div);//}}}
  form.submit();
}
