def toLower(elt)
  set elt.value to elt.value.toLowerCase()
end

def toLowerUri(elt)
  set elt.value to elt.value.toLowerCase().replaceAll(" ", "/")
end

def toLowerSnake(elt)
  set elt.value to elt.value.toLowerCase().replaceAll(" ", "_").replaceAll("/", "_")
end

def copyToByElementId(elt, tgt)
  set #{tgt}.value to elt.value
  set telem to #{tgt}
  if telem
    trigger input on telem
  end
end

def copyToLower(elt, tgt)
  set #{tgt}.value to elt.value.toLowerCase()
end

def copyToLowerUri(elt, tgt)
  set #{tgt}.value to elt.value.toLowerCase().replaceAll(" ", "/")
end

def copyToInnerText(elt, tgt)
  set #{tgt}.innerText to elt.value
  trigger input on #{tgt}
end

def copyToLowerSnake(elt, tgt)
  set #{tgt}.value to elt.value.toLowerCase().replaceAll(" ", "_")
  trigger input on #{tgt}
end

def refreshEditorById(element_id)
  -- It is necessary to use querySelector as this is
  -- attached to the body of the DOM.
  set elt to document.querySelector('#' + element_id)
  if elt and elt.editor
    elt.editor.refresh()
    elt.editor.focus()
  end
end

def refreshEditor(elt)
  if elt and elt.editor
    elt.editor.refresh()
    elt.editor.focus()
  end
end


behavior HandleCodeMirrorTabChange()
  on tabchange from me.closest('.wc-tab-item')
    WaveHelpers.waitForPropertyPolling(me, 'editor')
    me.refresh()
    me.editor.focus()
  end
end