interfaceDialog = {type = "Dialog"}
-- dialog boxes
function interfaceDialog:New(style)

  o = {}
  o.pos = {
    x = 0,
    y = game.height*80/100
  }
  o.size = {
    w = game.width,
    h = game.height*20/100

  }

  o.value = 0
  o.target_value = 0

  local style = {}

  o.style = {
    content = style.content or nil,
    color = style.color or {1,1,1},
    color2 = style.color2 or {0,0,0},
    --color3 = style.color3 or style.color2 or {0,0,0},
    alpha = style.alpha or 1,
    scale = style.scale or 1,
    scale_x = style.scale_x or 1,
    scale_y = style.scale_y or 1,
    scale_proportion = 1
  }

  AddElement(o)

  setmetatable(o, self)
  self.__index = self

  return o
end

function interfaceDialog:updateContents()
  if self.value < self.target_value then
    self.contents = self.sequence[self.value]
    if self.contents[1] == nil then self.contents[1] = "" end
    if self.contents[2] == nil then self.contents[2] = "" end
    if self.contents[3] == nil then self.contents[3] = "" end
  end
end

function interfaceDialog:loadSequence(sequence)
  self.sequence = sequence
  self.value = 1
  self.target_value = 1+#sequence
  self:updateContents()
end

function interfaceDialog:checkConfirm()
  if not self.clicked then
    if love.mouse.isDown(1) then
      self.clicked = true
      self.value = self.value + 1
      logPrint("Dialog: "..self.value.." of "..self.target_value)
      self:updateContents()
    end
  elseif not love.mouse.isDown(1) then
    self.clicked = false
  end
end

function interfaceDialog:Draw()
  local c1, c2, c3, a = love.graphics.getColor()

  love.graphics.setColor(self.style.color[1],self.style.color[2],self.style.color[3],self.style.alpha)
  love.graphics.rectangle(
    "fill",
    self.pos.x*self.style.scale_x*self.style.scale_proportion,
    self.pos.y*self.style.scale_y*self.style.scale_proportion,
    self.size.w*self.style.scale_x*self.style.scale_proportion,
    self.size.h*self.style.scale_y*self.style.scale_proportion)
  love.graphics.setColor(self.style.color2[1],self.style.color2[2],self.style.color2[3],self.style.alpha)
  love.graphics.rectangle(
    "line",
    self.pos.x*self.style.scale_x*self.style.scale_proportion,
    self.pos.y*self.style.scale_y*self.style.scale_proportion,
    self.size.w*self.style.scale_x*self.style.scale_proportion,
    self.size.h*self.style.scale_y*self.style.scale_proportion)

  if self.contents ~= nil then
    love.graphics.printf(self.contents[2],self.pos.x+10,self.pos.y+(self.size.h/2),100,"left")
    love.graphics.printf(self.contents[1],self.pos.x+(self.size.w/2),self.pos.y+(self.size.h/2),100,"center")
    love.graphics.printf(self.contents[3],self.pos.x+(self.size.w)-10,self.pos.y+(self.size.h/2),100,"right")
  else
    love.graphics.printf("ERROR",self.pos.x+(self.size.w/2),self.pos.y+(self.size.h/2),100,"center")
  end

  love.graphics.setColor(c1,c2,c3,a)
end
