var Input = Namespace.declare("com.twitter.Bootstrap",
  class Input extends UcpComponent {
    static get implements() {
      return [];
    }
    static get overwriteServerDescriptor() { return true; }
    static get weBeanUnitPaths() {
      return [
        "src/html/weBeans/Input.weBean.html"
      ];
    }
    static start() {
    }

    static get dependencies() {
      return [
        "/EAMD.ucp/Components/com/twitter/Bootstrap/3.3.7/Bootstrap.component.xml"
      ];
    }

    constructor() {
      super();
      this.onEvent = this.onEvent.bind(this);

      // Thinglish.defineAlias(this, "model.classes", "cssClasses");

    }

    init() {
      super.init();
      let model = {
          label: "Label",
          type: "text",
          autocomplete: "text",
          placeholder: "",
          value: "",
          name: "",
          classes: ''
      };
      model.placeholder = model.label;
      this.model = model;


      return this;
    }


    onDomReady(view) {
        const domElement = view.documentElement.querySelector("input");
        //let events = ['keydown', 'keyup', 'blur', 'keypress', 'change', 'focus', 'click' ]; 
        //events.forEach(e => domElement.addEventListener(e, this.onEvent.bind(this), true));
                
        domElement.addEventListener('keydown', this.onEvent, true);
        domElement.addEventListener('keyup', this.onEvent, true);
        domElement.addEventListener('blur', this.onEvent, true);
        domElement.addEventListener('keypress', this.onEvent, true);
        domElement.addEventListener('change', this.onEvent, true);
        domElement.addEventListener('focus', this.onEvent, true);

        domElement.addEventListener('click', this.onEvent, true);
    }

    onEvent(event) {
        this.eventSupport.fire(event.type, event, this);
    }

  }
);
