module Data.DOM.Element (getAttribute, setAttribute, removeAttribute, getAttributeNode, setAttributeNode, removeAttributeNode, getElementsByTagName, getAttributeNS, setAttributeNS, removeAttributeNS, getAttributeNodeNS, setAttributeNodeNS, getElementsByTagNameNS, hasAttribute, hasAttributeNS, get'tagName, getm'tagName) where import Data.DOM.Dom import Control.Monad import BrownPLT.JavaScript import Data.DOM.WBTypes import Data.DOM.Document (createElement) getAttribute :: (Monad mn, CElement this) => Expression String -> Expression this -> mn (Expression String) getAttribute a thisp = do let et = undefined :: String let r = DotRef et (thisp /\ et) (Id et "getAttribute") return (CallExpr et r [a /\ et]) setAttribute :: (Monad mn, CElement this) => Expression String -> Expression String -> Expression this -> mn (Expression ()) setAttribute a b thisp = do let et = undefined :: () let r = DotRef et (thisp /\ et) (Id et "setAttribute") return (CallExpr et r [a /\ et, b /\ et]) removeAttribute :: (Monad mn, CElement this) => Expression String -> Expression this -> mn (Expression ()) removeAttribute a thisp = do let et = undefined :: () let r = DotRef et (thisp /\ et) (Id et "removeAttribute") return (CallExpr et r [a /\ et]) getAttributeNode :: (Monad mn, CElement this, CAttr zz) => Expression String -> Expression this -> mn (Expression zz) getAttributeNode a thisp = do let et = undefined :: zz let r = DotRef et (thisp /\ et) (Id et "getAttributeNode") return (CallExpr et r [a /\ et]) setAttributeNode :: (Monad mn, CElement this, CAttr newAttr, CAttr zz) => Expression newAttr -> Expression this -> mn (Expression zz) setAttributeNode a thisp = do let et = undefined :: zz let r = DotRef et (thisp /\ et) (Id et "setAttributeNode") return (CallExpr et r [a /\ et]) removeAttributeNode :: (Monad mn, CElement this, CAttr oldAttr, CAttr zz) => Expression oldAttr -> Expression this -> mn (Expression zz) removeAttributeNode a thisp = do let et = undefined :: zz let r = DotRef et (thisp /\ et) (Id et "removeAttributeNode") return (CallExpr et r [a /\ et]) getElementsByTagName :: (Monad mn, CElement this, CNodeList zz) => Expression String -> Expression this -> mn (Expression zz) getElementsByTagName a thisp = do let et = undefined :: zz let r = DotRef et (thisp /\ et) (Id et "getElementsByTagName") return (CallExpr et r [a /\ et]) getAttributeNS :: (Monad mn, CElement this) => Expression String -> Expression String -> Expression this -> mn (Expression String) getAttributeNS a b thisp = do let et = undefined :: String let r = DotRef et (thisp /\ et) (Id et "getAttributeNS") return (CallExpr et r [a /\ et, b /\ et]) setAttributeNS :: (Monad mn, CElement this) => Expression String -> Expression String -> Expression String -> Expression this -> mn (Expression ()) setAttributeNS a b c thisp = do let et = undefined :: () let r = DotRef et (thisp /\ et) (Id et "setAttributeNS") return (CallExpr et r [a /\ et, b /\ et, c /\ et]) removeAttributeNS :: (Monad mn, CElement this) => Expression String -> Expression String -> Expression this -> mn (Expression ()) removeAttributeNS a b thisp = do let et = undefined :: () let r = DotRef et (thisp /\ et) (Id et "removeAttributeNS") return (CallExpr et r [a /\ et, b /\ et]) getAttributeNodeNS :: (Monad mn, CElement this, CAttr zz) => Expression String -> Expression String -> Expression this -> mn (Expression zz) getAttributeNodeNS a b thisp = do let et = undefined :: zz let r = DotRef et (thisp /\ et) (Id et "getAttributeNodeNS") return (CallExpr et r [a /\ et, b /\ et]) setAttributeNodeNS :: (Monad mn, CElement this, CAttr newAttr, CAttr zz) => Expression newAttr -> Expression this -> mn (Expression zz) setAttributeNodeNS a thisp = do let et = undefined :: zz let r = DotRef et (thisp /\ et) (Id et "setAttributeNodeNS") return (CallExpr et r [a /\ et]) getElementsByTagNameNS :: (Monad mn, CElement this, CNodeList zz) => Expression String -> Expression String -> Expression this -> mn (Expression zz) getElementsByTagNameNS a b thisp = do let et = undefined :: zz let r = DotRef et (thisp /\ et) (Id et "getElementsByTagNameNS") return (CallExpr et r [a /\ et, b /\ et]) hasAttribute :: (Monad mn, CElement this) => Expression String -> Expression this -> mn (Expression Bool) hasAttribute a thisp = do let et = undefined :: Bool let r = DotRef et (thisp /\ et) (Id et "hasAttribute") return (CallExpr et r [a /\ et]) hasAttributeNS :: (Monad mn, CElement this) => Expression String -> Expression String -> Expression this -> mn (Expression Bool) hasAttributeNS a b thisp = do let et = undefined :: Bool let r = DotRef et (thisp /\ et) (Id et "hasAttributeNS") return (CallExpr et r [a /\ et, b /\ et]) get'tagName :: (Monad mn, CElement this) => Expression this -> mn (Expression String) get'tagName thisp = do let et = undefined :: String let r = DotRef et (thisp /\ et) (Id et "tagName") return r getm'tagName :: (Monad mn, CElement this) => Expression this -> mn (Expression String) getm'tagName = get'tagName