module Data.DOM.XMLHttpRequest
       (openSync, openAsync, openUser, openAuth, setRequestHeader,
        sendString, sendDocument, abort, getAllResponseHeaders,
        getResponseHeader, get'readyState, getm'readyState,
        get'responseText, getm'responseText, get'responseXML,
        getm'responseXML, get'status, getm'status, get'statusText,
        getm'statusText)
       where
import Data.DOM.XMLHTTP
import Control.Monad
import BrownPLT.JavaScript
import Data.DOM.WBTypes
import Data.DOM.Dom
import Data.DOM.Document (createElement)
 
openSync ::
         (Monad mn, CXMLHttpRequest this) =>
           Expression String ->
             Expression String -> Expression this -> mn (Expression ())
openSync a b thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "open")
       return (CallExpr et r [a /\ et, b /\ et])
 
openAsync ::
          (Monad mn, CXMLHttpRequest this) =>
            Expression String ->
              Expression String ->
                Expression Bool -> Expression this -> mn (Expression ())
openAsync a b c thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "open")
       return (CallExpr et r [a /\ et, b /\ et, c /\ et])
 
openUser ::
         (Monad mn, CXMLHttpRequest this) =>
           Expression String ->
             Expression String ->
               Expression Bool ->
                 Expression String -> Expression this -> mn (Expression ())
openUser a b c d thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "open")
       return (CallExpr et r [a /\ et, b /\ et, c /\ et, d /\ et])
 
openAuth ::
         (Monad mn, CXMLHttpRequest this) =>
           Expression String ->
             Expression String ->
               Expression Bool ->
                 Expression String ->
                   Expression String -> Expression this -> mn (Expression ())
openAuth a b c d e thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "open")
       return
         (CallExpr et r [a /\ et, b /\ et, c /\ et, d /\ et, e /\ et])
 
setRequestHeader ::
                 (Monad mn, CXMLHttpRequest this) =>
                   Expression String ->
                     Expression String -> Expression this -> mn (Expression ())
setRequestHeader a b thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "setRequestHeader")
       return (CallExpr et r [a /\ et, b /\ et])
 
sendString ::
           (Monad mn, CXMLHttpRequest this) =>
             Expression String -> Expression this -> mn (Expression ())
sendString a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "send")
       return (CallExpr et r [a /\ et])
 
sendDocument ::
             (Monad mn, CXMLHttpRequest this, CDocument doc) =>
               Expression doc -> Expression this -> mn (Expression ())
sendDocument a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "send")
       return (CallExpr et r [a /\ et])
 
abort ::
      (Monad mn, CXMLHttpRequest this) =>
        Expression this -> mn (Expression ())
abort thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "abort")
       return (CallExpr et r [])
 
getAllResponseHeaders ::
                      (Monad mn, CXMLHttpRequest this) =>
                        Expression this -> mn (Expression String)
getAllResponseHeaders thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "getAllResponseHeaders")
       return (CallExpr et r [])
 
getResponseHeader ::
                  (Monad mn, CXMLHttpRequest this) =>
                    Expression String -> Expression this -> mn (Expression String)
getResponseHeader a thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "getResponseHeader")
       return (CallExpr et r [a /\ et])
 
get'readyState ::
               (Monad mn, CXMLHttpRequest this) =>
                 Expression this -> mn (Expression Double)
get'readyState thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "readyState")
       return r
 
getm'readyState ::
                (Monad mn, CXMLHttpRequest this) =>
                  Expression this -> mn (Expression Double)
getm'readyState = get'readyState
 
get'responseText ::
                 (Monad mn, CXMLHttpRequest this) =>
                   Expression this -> mn (Expression String)
get'responseText thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "responseText")
       return r
 
getm'responseText ::
                  (Monad mn, CXMLHttpRequest this) =>
                    Expression this -> mn (Expression String)
getm'responseText = get'responseText
 
get'responseXML ::
                (Monad mn, CXMLHttpRequest this, CDocument zz) =>
                  Expression this -> mn (Expression zz)
get'responseXML thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "responseXML")
       return r
 
getm'responseXML ::
                 (Monad mn, CXMLHttpRequest this) =>
                   Expression this -> mn (Expression TDocument)
getm'responseXML = get'responseXML
 
get'status ::
           (Monad mn, CXMLHttpRequest this) =>
             Expression this -> mn (Expression Double)
get'status thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "status")
       return r
 
getm'status ::
            (Monad mn, CXMLHttpRequest this) =>
              Expression this -> mn (Expression Double)
getm'status = get'status
 
get'statusText ::
               (Monad mn, CXMLHttpRequest this) =>
                 Expression this -> mn (Expression String)
get'statusText thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "statusText")
       return r
 
getm'statusText ::
                (Monad mn, CXMLHttpRequest this) =>
                  Expression this -> mn (Expression String)
getm'statusText = get'statusText