// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// WARNING: Do not edit - generated code.

class _ElementWrappingImplementation extends _NodeWrappingImplementation implements Element {
  _ElementWrappingImplementation() : super() {}

  static create__ElementWrappingImplementation() native {
    return new _ElementWrappingImplementation();
  }

  int get childElementCount() { return _get__Element_childElementCount(this); }
  static int _get__Element_childElementCount(var _this) native;

  int get clientHeight() { return _get__Element_clientHeight(this); }
  static int _get__Element_clientHeight(var _this) native;

  int get clientLeft() { return _get__Element_clientLeft(this); }
  static int _get__Element_clientLeft(var _this) native;

  int get clientTop() { return _get__Element_clientTop(this); }
  static int _get__Element_clientTop(var _this) native;

  int get clientWidth() { return _get__Element_clientWidth(this); }
  static int _get__Element_clientWidth(var _this) native;

  Element get firstElementChild() { return _get__Element_firstElementChild(this); }
  static Element _get__Element_firstElementChild(var _this) native;

  Element get lastElementChild() { return _get__Element_lastElementChild(this); }
  static Element _get__Element_lastElementChild(var _this) native;

  Element get nextElementSibling() { return _get__Element_nextElementSibling(this); }
  static Element _get__Element_nextElementSibling(var _this) native;

  int get offsetHeight() { return _get__Element_offsetHeight(this); }
  static int _get__Element_offsetHeight(var _this) native;

  int get offsetLeft() { return _get__Element_offsetLeft(this); }
  static int _get__Element_offsetLeft(var _this) native;

  Element get offsetParent() { return _get__Element_offsetParent(this); }
  static Element _get__Element_offsetParent(var _this) native;

  int get offsetTop() { return _get__Element_offsetTop(this); }
  static int _get__Element_offsetTop(var _this) native;

  int get offsetWidth() { return _get__Element_offsetWidth(this); }
  static int _get__Element_offsetWidth(var _this) native;

  EventListener get onabort() { return _get__Element_onabort(this); }
  static EventListener _get__Element_onabort(var _this) native;

  void set onabort(EventListener value) { _set__Element_onabort(this, value); }
  static void _set__Element_onabort(var _this, EventListener value) native;

  EventListener get onbeforecopy() { return _get__Element_onbeforecopy(this); }
  static EventListener _get__Element_onbeforecopy(var _this) native;

  void set onbeforecopy(EventListener value) { _set__Element_onbeforecopy(this, value); }
  static void _set__Element_onbeforecopy(var _this, EventListener value) native;

  EventListener get onbeforecut() { return _get__Element_onbeforecut(this); }
  static EventListener _get__Element_onbeforecut(var _this) native;

  void set onbeforecut(EventListener value) { _set__Element_onbeforecut(this, value); }
  static void _set__Element_onbeforecut(var _this, EventListener value) native;

  EventListener get onbeforepaste() { return _get__Element_onbeforepaste(this); }
  static EventListener _get__Element_onbeforepaste(var _this) native;

  void set onbeforepaste(EventListener value) { _set__Element_onbeforepaste(this, value); }
  static void _set__Element_onbeforepaste(var _this, EventListener value) native;

  EventListener get onblur() { return _get__Element_onblur(this); }
  static EventListener _get__Element_onblur(var _this) native;

  void set onblur(EventListener value) { _set__Element_onblur(this, value); }
  static void _set__Element_onblur(var _this, EventListener value) native;

  EventListener get onchange() { return _get__Element_onchange(this); }
  static EventListener _get__Element_onchange(var _this) native;

  void set onchange(EventListener value) { _set__Element_onchange(this, value); }
  static void _set__Element_onchange(var _this, EventListener value) native;

  EventListener get onclick() { return _get__Element_onclick(this); }
  static EventListener _get__Element_onclick(var _this) native;

  void set onclick(EventListener value) { _set__Element_onclick(this, value); }
  static void _set__Element_onclick(var _this, EventListener value) native;

  EventListener get oncontextmenu() { return _get__Element_oncontextmenu(this); }
  static EventListener _get__Element_oncontextmenu(var _this) native;

  void set oncontextmenu(EventListener value) { _set__Element_oncontextmenu(this, value); }
  static void _set__Element_oncontextmenu(var _this, EventListener value) native;

  EventListener get oncopy() { return _get__Element_oncopy(this); }
  static EventListener _get__Element_oncopy(var _this) native;

  void set oncopy(EventListener value) { _set__Element_oncopy(this, value); }
  static void _set__Element_oncopy(var _this, EventListener value) native;

  EventListener get oncut() { return _get__Element_oncut(this); }
  static EventListener _get__Element_oncut(var _this) native;

  void set oncut(EventListener value) { _set__Element_oncut(this, value); }
  static void _set__Element_oncut(var _this, EventListener value) native;

  EventListener get ondblclick() { return _get__Element_ondblclick(this); }
  static EventListener _get__Element_ondblclick(var _this) native;

  void set ondblclick(EventListener value) { _set__Element_ondblclick(this, value); }
  static void _set__Element_ondblclick(var _this, EventListener value) native;

  EventListener get ondrag() { return _get__Element_ondrag(this); }
  static EventListener _get__Element_ondrag(var _this) native;

  void set ondrag(EventListener value) { _set__Element_ondrag(this, value); }
  static void _set__Element_ondrag(var _this, EventListener value) native;

  EventListener get ondragend() { return _get__Element_ondragend(this); }
  static EventListener _get__Element_ondragend(var _this) native;

  void set ondragend(EventListener value) { _set__Element_ondragend(this, value); }
  static void _set__Element_ondragend(var _this, EventListener value) native;

  EventListener get ondragenter() { return _get__Element_ondragenter(this); }
  static EventListener _get__Element_ondragenter(var _this) native;

  void set ondragenter(EventListener value) { _set__Element_ondragenter(this, value); }
  static void _set__Element_ondragenter(var _this, EventListener value) native;

  EventListener get ondragleave() { return _get__Element_ondragleave(this); }
  static EventListener _get__Element_ondragleave(var _this) native;

  void set ondragleave(EventListener value) { _set__Element_ondragleave(this, value); }
  static void _set__Element_ondragleave(var _this, EventListener value) native;

  EventListener get ondragover() { return _get__Element_ondragover(this); }
  static EventListener _get__Element_ondragover(var _this) native;

  void set ondragover(EventListener value) { _set__Element_ondragover(this, value); }
  static void _set__Element_ondragover(var _this, EventListener value) native;

  EventListener get ondragstart() { return _get__Element_ondragstart(this); }
  static EventListener _get__Element_ondragstart(var _this) native;

  void set ondragstart(EventListener value) { _set__Element_ondragstart(this, value); }
  static void _set__Element_ondragstart(var _this, EventListener value) native;

  EventListener get ondrop() { return _get__Element_ondrop(this); }
  static EventListener _get__Element_ondrop(var _this) native;

  void set ondrop(EventListener value) { _set__Element_ondrop(this, value); }
  static void _set__Element_ondrop(var _this, EventListener value) native;

  EventListener get onerror() { return _get__Element_onerror(this); }
  static EventListener _get__Element_onerror(var _this) native;

  void set onerror(EventListener value) { _set__Element_onerror(this, value); }
  static void _set__Element_onerror(var _this, EventListener value) native;

  EventListener get onfocus() { return _get__Element_onfocus(this); }
  static EventListener _get__Element_onfocus(var _this) native;

  void set onfocus(EventListener value) { _set__Element_onfocus(this, value); }
  static void _set__Element_onfocus(var _this, EventListener value) native;

  EventListener get oninput() { return _get__Element_oninput(this); }
  static EventListener _get__Element_oninput(var _this) native;

  void set oninput(EventListener value) { _set__Element_oninput(this, value); }
  static void _set__Element_oninput(var _this, EventListener value) native;

  EventListener get oninvalid() { return _get__Element_oninvalid(this); }
  static EventListener _get__Element_oninvalid(var _this) native;

  void set oninvalid(EventListener value) { _set__Element_oninvalid(this, value); }
  static void _set__Element_oninvalid(var _this, EventListener value) native;

  EventListener get onkeydown() { return _get__Element_onkeydown(this); }
  static EventListener _get__Element_onkeydown(var _this) native;

  void set onkeydown(EventListener value) { _set__Element_onkeydown(this, value); }
  static void _set__Element_onkeydown(var _this, EventListener value) native;

  EventListener get onkeypress() { return _get__Element_onkeypress(this); }
  static EventListener _get__Element_onkeypress(var _this) native;

  void set onkeypress(EventListener value) { _set__Element_onkeypress(this, value); }
  static void _set__Element_onkeypress(var _this, EventListener value) native;

  EventListener get onkeyup() { return _get__Element_onkeyup(this); }
  static EventListener _get__Element_onkeyup(var _this) native;

  void set onkeyup(EventListener value) { _set__Element_onkeyup(this, value); }
  static void _set__Element_onkeyup(var _this, EventListener value) native;

  EventListener get onload() { return _get__Element_onload(this); }
  static EventListener _get__Element_onload(var _this) native;

  void set onload(EventListener value) { _set__Element_onload(this, value); }
  static void _set__Element_onload(var _this, EventListener value) native;

  EventListener get onmousedown() { return _get__Element_onmousedown(this); }
  static EventListener _get__Element_onmousedown(var _this) native;

  void set onmousedown(EventListener value) { _set__Element_onmousedown(this, value); }
  static void _set__Element_onmousedown(var _this, EventListener value) native;

  EventListener get onmousemove() { return _get__Element_onmousemove(this); }
  static EventListener _get__Element_onmousemove(var _this) native;

  void set onmousemove(EventListener value) { _set__Element_onmousemove(this, value); }
  static void _set__Element_onmousemove(var _this, EventListener value) native;

  EventListener get onmouseout() { return _get__Element_onmouseout(this); }
  static EventListener _get__Element_onmouseout(var _this) native;

  void set onmouseout(EventListener value) { _set__Element_onmouseout(this, value); }
  static void _set__Element_onmouseout(var _this, EventListener value) native;

  EventListener get onmouseover() { return _get__Element_onmouseover(this); }
  static EventListener _get__Element_onmouseover(var _this) native;

  void set onmouseover(EventListener value) { _set__Element_onmouseover(this, value); }
  static void _set__Element_onmouseover(var _this, EventListener value) native;

  EventListener get onmouseup() { return _get__Element_onmouseup(this); }
  static EventListener _get__Element_onmouseup(var _this) native;

  void set onmouseup(EventListener value) { _set__Element_onmouseup(this, value); }
  static void _set__Element_onmouseup(var _this, EventListener value) native;

  EventListener get onmousewheel() { return _get__Element_onmousewheel(this); }
  static EventListener _get__Element_onmousewheel(var _this) native;

  void set onmousewheel(EventListener value) { _set__Element_onmousewheel(this, value); }
  static void _set__Element_onmousewheel(var _this, EventListener value) native;

  EventListener get onpaste() { return _get__Element_onpaste(this); }
  static EventListener _get__Element_onpaste(var _this) native;

  void set onpaste(EventListener value) { _set__Element_onpaste(this, value); }
  static void _set__Element_onpaste(var _this, EventListener value) native;

  EventListener get onreset() { return _get__Element_onreset(this); }
  static EventListener _get__Element_onreset(var _this) native;

  void set onreset(EventListener value) { _set__Element_onreset(this, value); }
  static void _set__Element_onreset(var _this, EventListener value) native;

  EventListener get onscroll() { return _get__Element_onscroll(this); }
  static EventListener _get__Element_onscroll(var _this) native;

  void set onscroll(EventListener value) { _set__Element_onscroll(this, value); }
  static void _set__Element_onscroll(var _this, EventListener value) native;

  EventListener get onsearch() { return _get__Element_onsearch(this); }
  static EventListener _get__Element_onsearch(var _this) native;

  void set onsearch(EventListener value) { _set__Element_onsearch(this, value); }
  static void _set__Element_onsearch(var _this, EventListener value) native;

  EventListener get onselect() { return _get__Element_onselect(this); }
  static EventListener _get__Element_onselect(var _this) native;

  void set onselect(EventListener value) { _set__Element_onselect(this, value); }
  static void _set__Element_onselect(var _this, EventListener value) native;

  EventListener get onselectstart() { return _get__Element_onselectstart(this); }
  static EventListener _get__Element_onselectstart(var _this) native;

  void set onselectstart(EventListener value) { _set__Element_onselectstart(this, value); }
  static void _set__Element_onselectstart(var _this, EventListener value) native;

  EventListener get onsubmit() { return _get__Element_onsubmit(this); }
  static EventListener _get__Element_onsubmit(var _this) native;

  void set onsubmit(EventListener value) { _set__Element_onsubmit(this, value); }
  static void _set__Element_onsubmit(var _this, EventListener value) native;

  EventListener get ontouchcancel() { return _get__Element_ontouchcancel(this); }
  static EventListener _get__Element_ontouchcancel(var _this) native;

  void set ontouchcancel(EventListener value) { _set__Element_ontouchcancel(this, value); }
  static void _set__Element_ontouchcancel(var _this, EventListener value) native;

  EventListener get ontouchend() { return _get__Element_ontouchend(this); }
  static EventListener _get__Element_ontouchend(var _this) native;

  void set ontouchend(EventListener value) { _set__Element_ontouchend(this, value); }
  static void _set__Element_ontouchend(var _this, EventListener value) native;

  EventListener get ontouchmove() { return _get__Element_ontouchmove(this); }
  static EventListener _get__Element_ontouchmove(var _this) native;

  void set ontouchmove(EventListener value) { _set__Element_ontouchmove(this, value); }
  static void _set__Element_ontouchmove(var _this, EventListener value) native;

  EventListener get ontouchstart() { return _get__Element_ontouchstart(this); }
  static EventListener _get__Element_ontouchstart(var _this) native;

  void set ontouchstart(EventListener value) { _set__Element_ontouchstart(this, value); }
  static void _set__Element_ontouchstart(var _this, EventListener value) native;

  EventListener get onwebkitfullscreenchange() { return _get__Element_onwebkitfullscreenchange(this); }
  static EventListener _get__Element_onwebkitfullscreenchange(var _this) native;

  void set onwebkitfullscreenchange(EventListener value) { _set__Element_onwebkitfullscreenchange(this, value); }
  static void _set__Element_onwebkitfullscreenchange(var _this, EventListener value) native;

  Element get previousElementSibling() { return _get__Element_previousElementSibling(this); }
  static Element _get__Element_previousElementSibling(var _this) native;

  int get scrollHeight() { return _get__Element_scrollHeight(this); }
  static int _get__Element_scrollHeight(var _this) native;

  int get scrollLeft() { return _get__Element_scrollLeft(this); }
  static int _get__Element_scrollLeft(var _this) native;

  void set scrollLeft(int value) { _set__Element_scrollLeft(this, value); }
  static void _set__Element_scrollLeft(var _this, int value) native;

  int get scrollTop() { return _get__Element_scrollTop(this); }
  static int _get__Element_scrollTop(var _this) native;

  void set scrollTop(int value) { _set__Element_scrollTop(this, value); }
  static void _set__Element_scrollTop(var _this, int value) native;

  int get scrollWidth() { return _get__Element_scrollWidth(this); }
  static int _get__Element_scrollWidth(var _this) native;

  CSSStyleDeclaration get style() { return _get__Element_style(this); }
  static CSSStyleDeclaration _get__Element_style(var _this) native;

  String get tagName() { return _get__Element_tagName(this); }
  static String _get__Element_tagName(var _this) native;

  void blur() {
    _blur(this);
    return;
  }
  static void _blur(receiver) native;

  void focus() {
    _focus(this);
    return;
  }
  static void _focus(receiver) native;

  String getAttribute(String name = null) {
    if (name === null) {
      return _getAttribute(this);
    } else {
      return _getAttribute_2(this, name);
    }
  }
  static String _getAttribute(receiver) native;
  static String _getAttribute_2(receiver, name) native;

  String getAttributeNS(String namespaceURI = null, String localName = null) {
    if (namespaceURI === null) {
      if (localName === null) {
        return _getAttributeNS(this);
      }
    } else {
      if (localName === null) {
        return _getAttributeNS_2(this, namespaceURI);
      } else {
        return _getAttributeNS_3(this, namespaceURI, localName);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static String _getAttributeNS(receiver) native;
  static String _getAttributeNS_2(receiver, namespaceURI) native;
  static String _getAttributeNS_3(receiver, namespaceURI, localName) native;

  Attr getAttributeNode(String name = null) {
    if (name === null) {
      return _getAttributeNode(this);
    } else {
      return _getAttributeNode_2(this, name);
    }
  }
  static Attr _getAttributeNode(receiver) native;
  static Attr _getAttributeNode_2(receiver, name) native;

  Attr getAttributeNodeNS(String namespaceURI = null, String localName = null) {
    if (namespaceURI === null) {
      if (localName === null) {
        return _getAttributeNodeNS(this);
      }
    } else {
      if (localName === null) {
        return _getAttributeNodeNS_2(this, namespaceURI);
      } else {
        return _getAttributeNodeNS_3(this, namespaceURI, localName);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static Attr _getAttributeNodeNS(receiver) native;
  static Attr _getAttributeNodeNS_2(receiver, namespaceURI) native;
  static Attr _getAttributeNodeNS_3(receiver, namespaceURI, localName) native;

  ClientRect getBoundingClientRect() {
    return _getBoundingClientRect(this);
  }
  static ClientRect _getBoundingClientRect(receiver) native;

  ClientRectList getClientRects() {
    return _getClientRects(this);
  }
  static ClientRectList _getClientRects(receiver) native;

  NodeList getElementsByClassName(String name = null) {
    if (name === null) {
      return _getElementsByClassName(this);
    } else {
      return _getElementsByClassName_2(this, name);
    }
  }
  static NodeList _getElementsByClassName(receiver) native;
  static NodeList _getElementsByClassName_2(receiver, name) native;

  NodeList getElementsByTagName(String name = null) {
    if (name === null) {
      return _getElementsByTagName(this);
    } else {
      return _getElementsByTagName_2(this, name);
    }
  }
  static NodeList _getElementsByTagName(receiver) native;
  static NodeList _getElementsByTagName_2(receiver, name) native;

  NodeList getElementsByTagNameNS(String namespaceURI = null, String localName = null) {
    if (namespaceURI === null) {
      if (localName === null) {
        return _getElementsByTagNameNS(this);
      }
    } else {
      if (localName === null) {
        return _getElementsByTagNameNS_2(this, namespaceURI);
      } else {
        return _getElementsByTagNameNS_3(this, namespaceURI, localName);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static NodeList _getElementsByTagNameNS(receiver) native;
  static NodeList _getElementsByTagNameNS_2(receiver, namespaceURI) native;
  static NodeList _getElementsByTagNameNS_3(receiver, namespaceURI, localName) native;

  bool hasAttribute(String name) {
    return _hasAttribute(this, name);
  }
  static bool _hasAttribute(receiver, name) native;

  bool hasAttributeNS(String namespaceURI = null, String localName = null) {
    if (namespaceURI === null) {
      if (localName === null) {
        return _hasAttributeNS(this);
      }
    } else {
      if (localName === null) {
        return _hasAttributeNS_2(this, namespaceURI);
      } else {
        return _hasAttributeNS_3(this, namespaceURI, localName);
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static bool _hasAttributeNS(receiver) native;
  static bool _hasAttributeNS_2(receiver, namespaceURI) native;
  static bool _hasAttributeNS_3(receiver, namespaceURI, localName) native;

  Element querySelector(String selectors) {
    return _querySelector(this, selectors);
  }
  static Element _querySelector(receiver, selectors) native;

  NodeList querySelectorAll(String selectors) {
    return _querySelectorAll(this, selectors);
  }
  static NodeList _querySelectorAll(receiver, selectors) native;

  void removeAttribute(String name = null) {
    if (name === null) {
      _removeAttribute(this);
      return;
    } else {
      _removeAttribute_2(this, name);
      return;
    }
  }
  static void _removeAttribute(receiver) native;
  static void _removeAttribute_2(receiver, name) native;

  void removeAttributeNS(String namespaceURI, String localName) {
    _removeAttributeNS(this, namespaceURI, localName);
    return;
  }
  static void _removeAttributeNS(receiver, namespaceURI, localName) native;

  Attr removeAttributeNode(Attr oldAttr = null) {
    if (oldAttr === null) {
      return _removeAttributeNode(this);
    } else {
      return _removeAttributeNode_2(this, oldAttr);
    }
  }
  static Attr _removeAttributeNode(receiver) native;
  static Attr _removeAttributeNode_2(receiver, oldAttr) native;

  void scrollByLines(int lines = null) {
    if (lines === null) {
      _scrollByLines(this);
      return;
    } else {
      _scrollByLines_2(this, lines);
      return;
    }
  }
  static void _scrollByLines(receiver) native;
  static void _scrollByLines_2(receiver, lines) native;

  void scrollByPages(int pages = null) {
    if (pages === null) {
      _scrollByPages(this);
      return;
    } else {
      _scrollByPages_2(this, pages);
      return;
    }
  }
  static void _scrollByPages(receiver) native;
  static void _scrollByPages_2(receiver, pages) native;

  void scrollIntoView(bool alignWithTop = null) {
    if (alignWithTop === null) {
      _scrollIntoView(this);
      return;
    } else {
      _scrollIntoView_2(this, alignWithTop);
      return;
    }
  }
  static void _scrollIntoView(receiver) native;
  static void _scrollIntoView_2(receiver, alignWithTop) native;

  void scrollIntoViewIfNeeded(bool centerIfNeeded = null) {
    if (centerIfNeeded === null) {
      _scrollIntoViewIfNeeded(this);
      return;
    } else {
      _scrollIntoViewIfNeeded_2(this, centerIfNeeded);
      return;
    }
  }
  static void _scrollIntoViewIfNeeded(receiver) native;
  static void _scrollIntoViewIfNeeded_2(receiver, centerIfNeeded) native;

  void setAttribute(String name = null, String value = null) {
    if (name === null) {
      if (value === null) {
        _setAttribute(this);
        return;
      }
    } else {
      if (value === null) {
        _setAttribute_2(this, name);
        return;
      } else {
        _setAttribute_3(this, name, value);
        return;
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static void _setAttribute(receiver) native;
  static void _setAttribute_2(receiver, name) native;
  static void _setAttribute_3(receiver, name, value) native;

  void setAttributeNS(String namespaceURI = null, String qualifiedName = null, String value = null) {
    if (namespaceURI === null) {
      if (qualifiedName === null) {
        if (value === null) {
          _setAttributeNS(this);
          return;
        }
      }
    } else {
      if (qualifiedName === null) {
        if (value === null) {
          _setAttributeNS_2(this, namespaceURI);
          return;
        }
      } else {
        if (value === null) {
          _setAttributeNS_3(this, namespaceURI, qualifiedName);
          return;
        } else {
          _setAttributeNS_4(this, namespaceURI, qualifiedName, value);
          return;
        }
      }
    }
    throw "Incorrect number or type of arguments";
  }
  static void _setAttributeNS(receiver) native;
  static void _setAttributeNS_2(receiver, namespaceURI) native;
  static void _setAttributeNS_3(receiver, namespaceURI, qualifiedName) native;
  static void _setAttributeNS_4(receiver, namespaceURI, qualifiedName, value) native;

  Attr setAttributeNode(Attr newAttr = null) {
    if (newAttr === null) {
      return _setAttributeNode(this);
    } else {
      return _setAttributeNode_2(this, newAttr);
    }
  }
  static Attr _setAttributeNode(receiver) native;
  static Attr _setAttributeNode_2(receiver, newAttr) native;

  Attr setAttributeNodeNS(Attr newAttr = null) {
    if (newAttr === null) {
      return _setAttributeNodeNS(this);
    } else {
      return _setAttributeNodeNS_2(this, newAttr);
    }
  }
  static Attr _setAttributeNodeNS(receiver) native;
  static Attr _setAttributeNodeNS_2(receiver, newAttr) native;

  bool webkitMatchesSelector(String selectors = null) {
    if (selectors === null) {
      return _webkitMatchesSelector(this);
    } else {
      return _webkitMatchesSelector_2(this, selectors);
    }
  }
  static bool _webkitMatchesSelector(receiver) native;
  static bool _webkitMatchesSelector_2(receiver, selectors) native;

  String get typeName() { return "Element"; }
}
