Index: misc/drupal.js
===================================================================
RCS file: /cvs/drupal/drupal/misc/drupal.js,v
retrieving revision 1.3
diff -u -r1.3 drupal.js
--- misc/drupal.js	21 Jun 2005 09:45:43 -0000	1.3
+++ misc/drupal.js	18 Jul 2005 09:53:29 -0000
@@ -23,16 +23,16 @@
  * Make IE's XMLHTTP object accessible through XMLHttpRequest()
  */
 if (typeof XMLHttpRequest == 'undefined') {
- XMLHttpRequest = function () {
-   var msxmls = ['MSXML3', 'MSXML2', 'Microsoft']
-   for (var i=0; i < msxmls.length; i++) {
-     try {
-       return new ActiveXObject(msxmls[i]+'.XMLHTTP')
-     }
-     catch (e) { }
-   }
-   throw new Error("No XML component installed!")
- }
+  XMLHttpRequest = function () {
+    var msxmls = ['MSXML3', 'MSXML2', 'Microsoft']
+    for (var i=0; i < msxmls.length; i++) {
+      try {
+        return new ActiveXObject(msxmls[i]+'.XMLHTTP')
+      }
+      catch (e) { }
+    }
+    throw new Error("No XML component installed!")
+  }
 }
 
 /**
@@ -41,16 +41,55 @@
 function HTTPGet(uri, callbackFunction, callbackParameter) {
   var xmlHttp = new XMLHttpRequest();
   var bAsync = true;
-  if (!callbackFunction)
+  if (!callbackFunction) {
     bAsync = false;
+  }
   xmlHttp.open('GET', uri, bAsync);
   xmlHttp.send(null);
 
   if (bAsync) {
     if (callbackFunction) {
       xmlHttp.onreadystatechange = function() {
-        if (xmlHttp.readyState == 4)
-          callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter)
+        if (xmlHttp.readyState == 4) {
+          callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter);
+        }
+      }
+    }
+    return true;
+  }
+  else {
+    return xmlHttp.responseText;
+  }
+}
+
+/**
+ * Creates an HTTP POST request and sends the response to the callback function
+ */
+function HTTPPost(uri, object, callbackFunction, callbackParameter) {
+  var xmlHttp = new XMLHttpRequest();
+  var bAsync = true;
+  if (!callbackFunction) {
+    bAsync = false;
+  }
+  xmlHttp.open('POST', uri, bAsync);
+
+  var toSend = '';
+  if (typeof object == 'object') {
+    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+    for (var i in object)
+      toSend += (toSend ? '&' : '') + i + '=' + escape(object[i]);
+  }
+  else {
+    toSend = object;
+  }
+  xmlHttp.send(toSend);
+
+  if (bAsync) {
+    if (callbackFunction) {
+      xmlHttp.onreadystatechange = function() {
+        if (xmlHttp.readyState == 4) {
+          callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter);
+        }
       }
     }
     return true;
@@ -163,4 +202,4 @@
   else {
     return false;
   }
-}
+}
\ No newline at end of file
