-- vim:set ft=lua:
dofile(mg.script_name:gsub('[^\\/]*$','')..'util.lua')

a={err='不正値入力'}
post=AssertPost()
if post then
  dataID=GetVarInt(mg.request_info.query_string,'id') or 0
  aa={dataID=dataID}
  if mg.get_var(post,'addchg') then
    aa.recSetting=GetRecSetting(post)
    if aa.recSetting then
      aa.dayOfWeekFlag=GetVarInt(post,'dayOfWeekFlag') or 0
      if aa.dayOfWeekFlag==0 then
        for i=7,1,-1 do
          aa.dayOfWeekFlag=aa.dayOfWeekFlag*2+(GetVarInt(post,'checkDayOfWeek'..i)==1 and 1 or 0)
        end
      end
      aa.startTime=GetVarTime(post, 'startTime')
      aa.durationSecond=(GetVarTime(post, 'endTime')-aa.startTime)%(24*3600)
      aa.onid,aa.tsid,aa.sid=GetVarServiceID(post,'serviceID')
      if aa.onid then
        chInfo=BinarySearch(edcb.GetChDataList(),aa,CompareFields('onid',false,'tsid',false,'sid'))
        if chInfo then
          aa.stationName=chInfo.serviceName
          --制御文字は消す
          aa.title=(mg.get_var(post,'title') or ''):gsub('%c','')
          done=edcb.AddOrChgManuAdd(aa)
        end
      end
    end
    if done then
      a={success='プログラム予約を'..(dataID==0 and '追加' or '変更')..'しました'}
    else
      a={err='プログラム予約を'..(dataID==0 and '追加' or '変更')..'できませんでした'}
    end
  elseif mg.get_var(post,'del') then
    edcb.DelManuAdd(aa.dataID)
    a={success='プログラム予約を削除しました'}
  end
end

if GetVarInt(mg.request_info.query_string,'json')==1 then
  ResponseJson(a)
else
  ResponseXml(a)
end
