--[[
RhythmicaLyrics拡張出力
SaveAs(p1,p2)
p1:RhythmicaLyricsが保持しているデータ配列変数
	p1.saveext                  RhythmicaLyricsで選択された保存する拡張子
	p1.ymax                     最大行数
	p1[行].xmax                 その行の最大列数
	p1[行][列].timetag          タイムタグ
	p1[行][列].word             歌詞 [改行="\n",連続タイムタグ位置="nil"]
	p1[行][列].subtimetag       補助タイムタグ(さくらスクリプトウィンドウにあるタイムタグ)
	p1[行][列].subtimetags[i]   補助タイムタグが1つずつ格納されている /Ver.2〜
	p1[行][列].subtimetagsmax   subtimetags[i]の最大値 /Ver.2〜
	p1[行][列].ruby             ルビ(さくらスクリプトウィンドウにある「かな」)
	p1[行][列].rubys[i]         ルビが1音ずつ格納されている /Ver.2〜
	p1[行][列].rubysmax         rubys[i]の最大値 /Ver.2〜
	p1[行][列].surface          表情、仕草(さくらスクリプトウィンドウにある「サーフィス」)
	p1[行][列].sakurascript     さくらスクリプト(さくらスクリプトウィンドウにある「補助スクリプト」)
	p1.attag.title              @タグ：@Title /Ver.3〜
	p1.attag.titleFlg           1=使用する /Ver.3〜
	p1.attag.artist             @タグ：@Artist /Ver.3〜
	p1.attag.artistFlg          1=使用する /Ver.3〜
	p1.attag.album              @タグ：@Album /Ver.3〜
	p1.attag.albumFlg           1=使用する /Ver.3〜
	p1.attag.taggingby          @タグ：@TaggingBy /Ver.3〜
	p1.attag.taggingbyFlg       1=使用する /Ver.3〜
	p1.attag.silencemsec        @タグ：@SilencemSec /Ver.3〜
	p1.attag.silencemsecFlg     1=使用する /Ver.3〜
	p1.attag.other              @タグ：その他の@タグ /Ver.3〜
	p1.output.format            保存設定：@タグの位置 /Ver.3〜
	p1.output.winamptimeFlg     Winamp時間に変換（もう対応しなくていいと思う）：1=チェック /Ver.3〜
	p1.output.dotxxFlg          タイムタグを[mm:ss.xx]形式で保存：1=チェック /Ver.3〜
	p1.version                  3:RhythmicaLyrics Ver.4.7〜 / @タグ，出力フォーマット 情報を扱えるようにした
	                            2:RhythmicaLyrics Ver.4.3〜 / subtimetags,rubys関係、デバッグ表示 追加
	                            1:RhythmicaLyrics Ver.4.2.1以下
p2:オプションテキスト
	拡張出力luaファイルと同名のiniファイルの中身が入っている変数

・デバッグについて
error("エラーメッセージ")
	error関数は強制的にエラーを発生させ処理を中断することができる。
	引数"エラーメッセージ"にテキストを指定すればRhythmicaLyrics側で
	エラーメッセージとしてテキスト内容が確認できる。/Ver.2〜
	
_RLlog=""
	_RLlog変数にテキストを格納していくと、エラーが発生した際RhythmicaLyrics側で
	エラーメッセージと共に内容が表示される。
	（エラーが発生しなかった場合は無視され、特に影響はない）/Ver.2〜

--]]
function SaveAs( RLtable, initxt )

	--拡張出力version確認
	if RLtable.version<2 then
		error("")
	end

	--オプション(iniファイルがある場合その内容がinitxt変数に入る)----
	if initxt:find("timetag=1", 1, 1) ~= nil then       --initxtにtimetagフラグがあればタイムタグを出力する
		timetag=1
	end	
	if initxt:find("word=1", 1, 1) ~= nil then          --initxtにwordフラグがあれば歌詞を出力する
		word=1
	end
	if initxt:find("subtimetag=1", 1, 1) ~= nil then    --initxtにsubtimetagフラグがあれば補助タイムタグを出力する
		subtimetag=1
	end
	if initxt:find("ruby=1", 1, 1) ~= nil then          --initxtにrubyフラグがあればルビを出力する
		ruby=1
	end
	if initxt:find("surface=1", 1, 1) ~= nil then       --initxtにsurfaceフラグがあればサーフィスを出力する
		surface=1
	end
	if initxt:find("sakurascript=1", 1, 1) ~= nil then  --initxtにsakurascriptフラグがあれば補助スクリプトを出力する
		sakurascript=1
	end
	-----------------------------------------------------------------
	--ログ変数初期化
	_RLlog=""
	
    --XMLっぽい表記で出力--------------------------------------------
	lyrics="<RLDATA>\r\n"
	for gyo=1, RLtable.ymax do
		--行数出力
		lyrics = lyrics .. "\t<GYO y=" .. gyo .. ">\r\n"
		for retsu=1, RLtable[gyo].xmax do
			--列数出力
			lyrics = lyrics .. "\t\t<RETSU x=" .. retsu .. ">\r\n"
			--タイムタグ出力
			if timetag then
				lyrics = lyrics .. "\t\t\t<timetag>" .. RLtable[gyo][retsu].timetag .. "</timetag>\r\n"
			end
			--歌詞出力
			if word then
				lyrics = lyrics .. "\t\t\t<word>" .. RLtable[gyo][retsu].word .. "</word>\r\n"
			end
			--補助タイムタグ出力
			if subtimetag then
				lyrics = lyrics .. "\t\t\t<subtimetag>" .. RLtable[gyo][retsu].subtimetag .. "</subtimetag>\r\n"
			end
			--ルビ出力
			if ruby then
				lyrics = lyrics .. "\t\t\t<ruby>" .. RLtable[gyo][retsu].ruby .. "</ruby>\r\n"
			end
			--サーフィス出力
			if surface then
				lyrics = lyrics .. "\t\t\t<surface>" .. RLtable[gyo][retsu].surface .. "</surface>\r\n"
			end
			--補助スクリプト出力
			if sakurascript then
				lyrics = lyrics .. "\t\t\t<sakurascript>" .. RLtable[gyo][retsu].sakurascript .. "</sakurascript>\r\n"
			end
			lyrics = lyrics .. "\t\t</RETSU>\r\n" --列タグ閉じ
			
			--ログ
			_RLlog = _RLlog .. string.format("(%02d,%02d), %s, %s", gyo, retsu, RLtable[gyo][retsu].timetag, RLtable[gyo][retsu].word) .. "\r\n"
		end
		lyrics = lyrics .. "\t</GYO>\r\n" --行タグ閉じ
		
	end
	lyrics=lyrics.."</RLDATA>" --全体閉じ
	-----------------------------------------------------------------
	--error()  --強制エラーでログを確認

	--出力したデータをRhythmicaLyricsへ返す
    return lyrics
end