module Data.DOM.HTMLSelectElement
       (add, remove, blur, focus, get'type, getm'type, set'selectedIndex,
        get'selectedIndex, getm'selectedIndex, set'value, get'value,
        getm'value, set'length, get'length, getm'length, get'form,
        getm'form, get'options, getm'options, set'disabled, get'disabled,
        getm'disabled, set'multiple, get'multiple, getm'multiple, set'name,
        get'name, getm'name, set'size, get'size, getm'size, set'tabIndex,
        get'tabIndex, getm'tabIndex)
       where
import Data.DOM.Html2
import Control.Monad
import BrownPLT.JavaScript
import Data.DOM.WBTypes
import Data.DOM.Dom
import Data.DOM.Document (createElement)
 
add ::
    (Monad mn, CHTMLSelectElement this, CHTMLElement element,
     CHTMLElement before) =>
      Expression element ->
        Expression before -> Expression this -> mn (Expression ())
add a b thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "add")
       return (CallExpr et r [a /\ et, b /\ et])
 
remove ::
       (Monad mn, CHTMLSelectElement this) =>
         Expression Double -> Expression this -> mn (Expression ())
remove a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "remove")
       return (CallExpr et r [a /\ et])
 
blur ::
     (Monad mn, CHTMLSelectElement this) =>
       Expression this -> mn (Expression ())
blur thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "blur")
       return (CallExpr et r [])
 
focus ::
      (Monad mn, CHTMLSelectElement this) =>
        Expression this -> mn (Expression ())
focus thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "focus")
       return (CallExpr et r [])
 
get'type ::
         (Monad mn, CHTMLSelectElement this) =>
           Expression this -> mn (Expression String)
get'type thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "type")
       return r
 
getm'type ::
          (Monad mn, CHTMLSelectElement this) =>
            Expression this -> mn (Expression String)
getm'type = get'type
 
set'selectedIndex ::
                  (Monad mn, CHTMLSelectElement zz) =>
                    Expression Double -> Expression zz -> mn (Expression zz)
set'selectedIndex = setjsProperty "selectedIndex"
 
get'selectedIndex ::
                  (Monad mn, CHTMLSelectElement this) =>
                    Expression this -> mn (Expression Double)
get'selectedIndex thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "selectedIndex")
       return r
 
getm'selectedIndex ::
                   (Monad mn, CHTMLSelectElement this) =>
                     Expression this -> mn (Expression Double)
getm'selectedIndex = get'selectedIndex
 
set'value ::
          (Monad mn, CHTMLSelectElement zz) =>
            Expression String -> Expression zz -> mn (Expression zz)
set'value = setjsProperty "value"
 
get'value ::
          (Monad mn, CHTMLSelectElement this) =>
            Expression this -> mn (Expression String)
get'value thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "value")
       return r
 
getm'value ::
           (Monad mn, CHTMLSelectElement this) =>
             Expression this -> mn (Expression String)
getm'value = get'value
 
set'length ::
           (Monad mn, CHTMLSelectElement zz) =>
             Expression Double -> Expression zz -> mn (Expression zz)
set'length = setjsProperty "length"
 
get'length ::
           (Monad mn, CHTMLSelectElement this) =>
             Expression this -> mn (Expression Double)
get'length thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "length")
       return r
 
getm'length ::
            (Monad mn, CHTMLSelectElement this) =>
              Expression this -> mn (Expression Double)
getm'length = get'length
 
get'form ::
         (Monad mn, CHTMLSelectElement this, CHTMLFormElement zz) =>
           Expression this -> mn (Expression zz)
get'form thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "form")
       return r
 
getm'form ::
          (Monad mn, CHTMLSelectElement this) =>
            Expression this -> mn (Expression THTMLFormElement)
getm'form = get'form
 
get'options ::
            (Monad mn, CHTMLSelectElement this, CHTMLOptionsCollection zz) =>
              Expression this -> mn (Expression zz)
get'options thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "options")
       return r
 
getm'options ::
             (Monad mn, CHTMLSelectElement this) =>
               Expression this -> mn (Expression THTMLOptionsCollection)
getm'options = get'options
 
set'disabled ::
             (Monad mn, CHTMLSelectElement zz) =>
               Expression Bool -> Expression zz -> mn (Expression zz)
set'disabled = setjsProperty "disabled"
 
get'disabled ::
             (Monad mn, CHTMLSelectElement this) =>
               Expression this -> mn (Expression Bool)
get'disabled thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "disabled")
       return r
 
getm'disabled ::
              (Monad mn, CHTMLSelectElement this) =>
                Expression this -> mn (Expression Bool)
getm'disabled = get'disabled
 
set'multiple ::
             (Monad mn, CHTMLSelectElement zz) =>
               Expression Bool -> Expression zz -> mn (Expression zz)
set'multiple = setjsProperty "multiple"
 
get'multiple ::
             (Monad mn, CHTMLSelectElement this) =>
               Expression this -> mn (Expression Bool)
get'multiple thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "multiple")
       return r
 
getm'multiple ::
              (Monad mn, CHTMLSelectElement this) =>
                Expression this -> mn (Expression Bool)
getm'multiple = get'multiple
 
set'name ::
         (Monad mn, CHTMLSelectElement zz) =>
           Expression String -> Expression zz -> mn (Expression zz)
set'name = setjsProperty "name"
 
get'name ::
         (Monad mn, CHTMLSelectElement this) =>
           Expression this -> mn (Expression String)
get'name thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "name")
       return r
 
getm'name ::
          (Monad mn, CHTMLSelectElement this) =>
            Expression this -> mn (Expression String)
getm'name = get'name
 
set'size ::
         (Monad mn, CHTMLSelectElement zz) =>
           Expression Double -> Expression zz -> mn (Expression zz)
set'size = setjsProperty "size"
 
get'size ::
         (Monad mn, CHTMLSelectElement this) =>
           Expression this -> mn (Expression Double)
get'size thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "size")
       return r
 
getm'size ::
          (Monad mn, CHTMLSelectElement this) =>
            Expression this -> mn (Expression Double)
getm'size = get'size
 
set'tabIndex ::
             (Monad mn, CHTMLSelectElement zz) =>
               Expression Double -> Expression zz -> mn (Expression zz)
set'tabIndex = setjsProperty "tabIndex"
 
get'tabIndex ::
             (Monad mn, CHTMLSelectElement this) =>
               Expression this -> mn (Expression Double)
get'tabIndex thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "tabIndex")
       return r
 
getm'tabIndex ::
              (Monad mn, CHTMLSelectElement this) =>
                Expression this -> mn (Expression Double)
getm'tabIndex = get'tabIndex