Anyone interested in an AJAX post form extension?
Anyone see caveats with the following script?

<script type="text/javascript">
function xmlhttppost(form){
var data ='';
var elems = form.getElementsByTagName('input');
for(var i=0;i<elems.length;i++){
var elem = elems[i];
switch(elem.type){
case "radio":
case "checkbox":
if(elem.checked){
if(data.length>0)data+='&';
data+=elem.name+'='+elem.value;
}
break;
case "text":
default:
if(data.length>0)data+='&';
data+=elem.name+'='+elem.value;
break;

}

}
elems = form.getElementsByTagName('textarea');
for(var i=0;i<elems.length;i++){
if(data.length>0)data+='&';
data+=elems[i].name+'='+elems[i].value;
}
elems = form.getElementsByTagName('select');
for(var i=0;i<elems.length;i++){
if(data.length>0)data+='&';
data+=elems[i].name+'='
var value = '';
for(var j=0; j<elems[i].options.length; j++){
if(elems[i].options[j].selected){
if(value.length>0)value+=',';
value+=elems[i].options[j].value;
}
}
data+=value;
}
if(form.method.toUpperCase()=='POST'){
req = new request();
req.onreadystatechange = xmlhttprequest_statuschange;
req.open( "POST", form.action, false );
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(data.replace(' ', '+'));
} else {
xmlhttprequest(form.action+'?'+data);
}
}
</script>
<form action="" name="theform" method="POST$"
onsubmit="xmlhttppost(this);return false;">
.....