//******************************************************************************
// YAYA　ゴースト
// 種々のイベント辞書
//******************************************************************************

//******************************************************************************
//シェル切り替え
//******************************************************************************

//------------------------------------------------------------------------------
//シェルチェンジ開始
//------------------------------------------------------------------------------

OnShellChanging
{
	"\0\s[5]ドレスアップっすね。\e"
}

//------------------------------------------------------------------------------
//シェルチェンジ完了
//------------------------------------------------------------------------------
OnShellChanged
{
	"\0\s[5]%(reference[0])に着替えたっす。\e"
}


//******************************************************************************
//インストール関連
//******************************************************************************

//------------------------------------------------------------------------------
//インストール中のメッセージ
//------------------------------------------------------------------------------
OnInstallBegin
{
	"\0\s[6]インストール中……\w9\e"
}

//------------------------------------------------------------------------------
//インストール完了メッセージ
//------------------------------------------------------------------------------
OnInstallComplete
{
	_ref0 = SPLIT(reference[0],' with',2)[0] //hogehoge with hemohemo
	
	"\0\s[5]"
	--
	if _ref0 == "shell" {
		"シェル"
	}
	elseif _ref0 == "ghost" {
		"ゴースト"
	}
	elseif _ref0 == "balloon" {
		"バルーン"
	}
	elseif _ref0 == "plugin" {
		"プラグイン"
	}
	--
	"「%(reference[1])」、インストール完了っす。\n"
	--
	if basewarenameex == 'SSP' {
		_id = ''
		if _ref0 == "shell" {
			_id = 'shell'
		}
		elseif _ref0 == "ghost" {
			_id = 'ghost'
		}
		elseif _ref0 == "balloon" {
			_id = 'balloon'
		}
		
		if _id != '' {
			"切り替えるっすか？"
			--
			AYATEMPLATE.MenuItem("切り替えるっす","OnAYATEMPLATE.InstallChange",_id,200)
			--
			AYATEMPLATE.MenuItem("切り替えないっす","Menu_CANCEL")
		}
	}
}

OnAYATEMPLATE.InstallChange
{
	"\![change,%(reference[0]),lastinstalled]"
}

//------------------------------------------------------------------------------
//インストール失敗メッセージ
//------------------------------------------------------------------------------
OnInstallFailure
{
	"\0\s[4]インストールに失敗したっす。\w9\w9\n\n理由：%(reference[0])。\e"
}

//------------------------------------------------------------------------------
//インストール拒否（他のゴーストのためのアーカイブだった）
//------------------------------------------------------------------------------
OnInstallRefuse
{
	"\0\s[0]これは%(reference[0])用のアーカイブっすよ。\e"
}


//******************************************************************************
//消滅関連
//******************************************************************************

//------------------------------------------------------------------------------
//消滅指示
//------------------------------------------------------------------------------
OnVanishSelecting
{
	"\0\s[3]え、\w5お別れっすか？\e"
}

//------------------------------------------------------------------------------
//消滅開始
//------------------------------------------------------------------------------
OnVanishSelected
{
	"\0\s[3]そんな…\w9自分、\w5先生に捨てられたら箸にも棒にもかからない輩に…。\e"
}

//------------------------------------------------------------------------------
//消滅中止
//------------------------------------------------------------------------------
OnVanishCancel
{
	"\0\s[3]わがままばっかりで、\w5ごめんなさい…。\e"
}

//------------------------------------------------------------------------------
//他のゴーストが消滅して自分に切り替わった
//------------------------------------------------------------------------------
OnVanished
{
	"\0\s[0]%(reference[0])さんがアンインストールされたっす。\e"
}


//******************************************************************************
//メールチェック
//******************************************************************************

//------------------------------------------------------------------------------
//メールチェック開始
//------------------------------------------------------------------------------
OnBIFFBegin
{
	"\0\s[0]メールチェックを開始するっす。\e"
}

//------------------------------------------------------------------------------
//メールチェック成功
//------------------------------------------------------------------------------
OnBIFFComplete
{
	if reference[0] == 0
	{
		//---- メールは無かった
		"\0\s[0]新着メールなし。\e"
	}
	else
	{
		//---- メールが届いていた
		"\0\s[0]%(reference[0])通の新着メールがあるっす。\e"
	}
}

//------------------------------------------------------------------------------
//メールチェック失敗
//------------------------------------------------------------------------------
OnBIFFFailure
{
	if reference[0] == "timeout"
	{
		//---- タイムアウト
		"\0\s[0]タイムオーバー。\w9サーバーにつながらないっす。\e"
	}
	elseif reference[0] == "kick"
	{
		//---- 蹴られた
		"\0\s[0]蹴られたっす。\e"
	}
	elseif reference[0] == "defect"
	{
		//---- 設定誤り
		"\0\s[0]設定を見直す必要があるっす。\e"
	}
	else
	{
		//---- 原因不明
		"\0\s[0]よくわからないけど失敗っす。\e"
	}
}


//******************************************************************************
//ネットワーク更新
//******************************************************************************

//------------------------------------------------------------------------------
//ネットワーク更新開始
//------------------------------------------------------------------------------
OnUpdateBegin
{
	"\0\s[0]ネットワーク更新を開始っす。"
}

//------------------------------------------------------------------------------
//ネットワーク更新準備完了
//------------------------------------------------------------------------------
OnUpdateReady
{
	"\0\s[0]%(TOINT(reference[0])+1)個のファイルをダウンロードするっす。\e"
}

//------------------------------------------------------------------------------
//ネットワーク更新終了
//------------------------------------------------------------------------------
OnUpdateComplete
{
	if reference[0] == "none"
	{
		//---- 更新すべきファイルが無かった
		"\0\s[0]更新対象はないようっすね。\e"
	}
	else
	{
		//---- 実際に更新が完了した
		"\0\s[0]更新完了っす。\e"
	}
}

//------------------------------------------------------------------------------
//ネットワーク更新失敗
//------------------------------------------------------------------------------
OnUpdateFailure
{
	if reference[0] == "timeout"
	{
		//---- タイムアウトした
		"\0\s[3]タイムオーバー。\e"
	}
	elseif reference[0] == "md5 miss"
	{
		//---- MD5値が一致しなかった
		"\0\s[3]\w5MD5値が違うらしいっすけど。\e"
	}
	else
	{
		//---- 上記以外の理由で失敗した
		"\0\s[3]%(reference[0])、\w5っす。\e"
	}
}

//------------------------------------------------------------------------------
//ネットワーク更新 ダウンロード開始
//------------------------------------------------------------------------------
OnUpdate.OnDownloadBegin
{
	"\0\s[5]ファイル「%(reference[0])」をダウンロードするっす。\e"
}

//------------------------------------------------------------------------------
//ネットワーク更新 MD5値照合開始
//------------------------------------------------------------------------------
OnUpdate.OnMD5CompareBegin
{
	"\0\s[5]ファイルの確認。\e"
}

//------------------------------------------------------------------------------
//ネットワーク更新 MD5値一致
//------------------------------------------------------------------------------
OnUpdate.OnMD5CompareComplete
{
	"\0\s[5]MD5値一致。\e"
}

//------------------------------------------------------------------------------
//ネットワーク更新 MD5値不一致
//------------------------------------------------------------------------------
OnUpdate.OnMD5CompareFailure
{
	"\0\s[2]MD5値不一致。\w9\w9\nサーバーに問題がありそうな気がするっすけど。\e"
}

//******************************************************************************
//ヘッドラインセンス
//******************************************************************************

//------------------------------------------------------------------------------
//ヘッドラインセンス開始
//------------------------------------------------------------------------------
OnHeadlinesenseBegin
{
	"\0\s[0]%(reference[0])ヘッドライン取得中。\e"
}

//------------------------------------------------------------------------------
//ヘッドライン読み上げ
//------------------------------------------------------------------------------
OnHeadlinesense.OnFind
{
	//---- はじめのセリフ
	if reference[2] == "First" || reference[2] == "First and Last"
	{
		//---- 最初のページ
		"\0\b2\s[0]%(reference[0])のヘッドラインっす。"
	}
	elseif reference[2] == "Next"
	{
		//---- 真ん中あたりのページ
		"\0\b2\s[0]%(reference[0])ヘッドライン、続きっす。"
	}
	elseif reference[2] == "Last"
	{
		//---- 最後のページ
		"\0\b2\s[0]%(reference[0])ヘッドライン、最後のページっす。"
	}
	--
	//---- ヘッドライン本体
	"\n\n%(reference[3])\n\n"
	--
	//---- 選択肢
	if reference[2] == "First" || reference[2] == "Next"
	{
		//---- 次のページがある場合
		AYATEMPLATE.MenuItem("次のページ","")
		--
		AYATEMPLATE.MenuItem("サイトへ",reference[1])
		--
		AYATEMPLATE.MenuItem("やめる","Menu_HEADLINECANCEL",150)
	}
	else
	{
		//---- 次のページがない場合
		AYATEMPLATE.MenuItem("サイトへ",reference[1])
		--
		AYATEMPLATE.MenuItem("やめる","Menu_HEADLINECANCEL",150)
	}
}

//------------------------------------------------------------------------------
//ヘッドライン更新が無かった
//------------------------------------------------------------------------------
OnHeadlinesenseComplete
{
	"\0\s[0]%(reference[0])、\w5更新はないっす。\e"
}

//------------------------------------------------------------------------------
//ヘッドラインセンス失敗
//------------------------------------------------------------------------------
OnHeadlinesenseFailure
{
	"\0\s[0]ヘッドラインセンスに失敗。\n\n理由："
	--
	if reference[0] == "can't download"
	{
		"ダウンロード失敗。"
	}
	elseif reference[0] == "can't analyze"
	{
		"ヘッドライン解析失敗。"
	}
	else
	{
		"謎。"
	}
	--
	"\e"
}


//******************************************************************************
//ファイル作成関連
//******************************************************************************

//------------------------------------------------------------------------------
//updates2.dau作成開始
//------------------------------------------------------------------------------
OnUpdatedataCreating
{
	"\0\s[5]アップデートデータを作成するっす。\e"
}

//------------------------------------------------------------------------------
//updates2.dau作成完了
//------------------------------------------------------------------------------
OnUpdatedataCreated
{
	"\0\s[5]アップデートデータ、\w5作成完了っす。\e"
}

//------------------------------------------------------------------------------
//NAR作成開始
//------------------------------------------------------------------------------
OnNarCreating
{
	"\0\s[5]narファイルを作成するっす。\e"
}

//------------------------------------------------------------------------------
//NAR作成完了
//------------------------------------------------------------------------------
OnNarCreated
{
	"\0\s[5]「%(reference[0])」のnarファイル、\w5「%(reference[1])」が完成したっす。\e"
}

//******************************************************************************
//時計合わせ
//みか (http://homepage2.nifty.com/ko-ki/) の辞書を参考にしました。感謝＞こーき氏
//******************************************************************************

//------------------------------------------------------------------------------
//時計合わせ開始
//------------------------------------------------------------------------------
OnSNTPBegin
{
	"\0\s[5]時計合わせ。\w9%(reference[0])に接続するっす。\e"
}

//------------------------------------------------------------------------------
//時刻取得成功、比較開始
//この関数で 2008/03/25 19:15:05 のように見やすい形に作り変えます。
//詳しくはSTRFORM関数の説明を見てね！
//わからなければこのままで。
//------------------------------------------------------------------------------

SNTPCompare_StrForm
{
	_txt = SPLIT(_argv[0],',')
	STRFORM("$04d/$02d/$02d $02d:$02d:$02d",TOINT(_txt[0]),TOINT(_txt[1]),TOINT(_txt[2]),TOINT(_txt[3]),TOINT(_txt[4]),TOINT(_txt[5]))
}

OnSNTPCompare
{
	"\0\s[0]\_q/
	修正前 %(SNTPCompare_StrForm(reference[2]))\n/
	修正後 %(SNTPCompare_StrForm(reference[1]))\n/
	\_q\n"
	--
	if reference[3] == 0
	{
		"誤差はないっすね。\e"
	}
	else
	{
		//\6は補正実行タグ。消しちゃだめ
		"\6\0\n\s[5]%(reference[3])秒のずれを修正したっす。\e"
	}
}

//------------------------------------------------------------------------------
//時計合わせ失敗
//------------------------------------------------------------------------------
OnSNTPFailure
{
	"\0\s[4]…時計合わせ失敗。\e"
}


//******************************************************************************
//そのほか
//******************************************************************************

//------------------------------------------------------------------------------
//ディスプレイ解像度変更
//------------------------------------------------------------------------------
OnDisplayChange
{
	//---- 変数にディスプレイ解像度と色深度に関する情報を取得
	//---- 使うかどうかは分からないがとりあえず保持しておく
	displaybpp    = reference[0]
	displaywidth  = reference[1]
	displayheight = reference[2]
}

//------------------------------------------------------------------------------
//URLドロップ
//CROW でゴーストインストーラからゴーストをインストールを始めた時にも呼ばれます
//------------------------------------------------------------------------------
OnURLDropping
{
	"\0\s[0]%(reference[0])からデータを取得するっす。\e"
}

//------------------------------------------------------------------------------
//起動時に MATERIA を検出
//------------------------------------------------------------------------------
OnEmbryoExist
{
	"\0\s[2]MATERIAがあるようっすけど。\e"
}

//------------------------------------------------------------------------------
//起動時に猫どりふを検出
//------------------------------------------------------------------------------
OnNekodorifExist
{
	"\0\s[2]猫どりふがあるようっすけど。\e"
}

//------------------------------------------------------------------------------
//スクリーンセーバー実行開始
//------------------------------------------------------------------------------
OnScreenSaverStart
{
	"\0\s[5]スクリーンセーバーを実行っす。\w9\w9\e"
}

//------------------------------------------------------------------------------
//スクリーンセーバー実行終了
//------------------------------------------------------------------------------
OnScreenSaverEnd
{
	"\0\s[5]スクリーンセーバー実行終了っす。\w9\w9\e"
}