// EnglishJapanese.js

var showEnglish = true;
var showJapanese = true;
var englishIDs = new Array();
var japaneseIDs = new Array();
var saveTexts = new Array();

function GetAllIDs(allIDs, object)
{
	for (var i = 0; i < object.childNodes.length; ++i)
	{
		var subObject = object.childNodes[i];
		if (subObject.id)
		{
			allIDs[allIDs.length] = subObject.id;
		}
		GetAllIDs(allIDs, subObject);
	}
}

var g_dictionary = new Array();

function InitEnglishJapanese()
{
	var url = document.URL;
	var index = url.search(/#/);
	if (index != -1)
	{
		url = url.substr(0, index);
	}
	var a = url.split("?");
	if (2 <= a.length)
	{
		var pairs = a[1].split('&');
		for (var i = 0; i < pairs.length; ++i)
		{
			if (pairs[i].match(/([^=]*)=([^=]*)/))
			{
				var key = RegExp.$1;
				var value = RegExp.$2;
				g_dictionary[key] = value;
			}
		}
		var language = g_dictionary["Language"];
		if (language == "English" || language == "Japanese")
		{
			if (language == "English")
			{
				SetLanguageCookie("English", true);
				SetLanguageCookie("Japanese", false);
			}
			else
			{
				SetLanguageCookie("English", false);
				SetLanguageCookie("Japanese", true);
			}
		}
	}

	// From http://www.metalusions.com/backstage/articles/8/
	if (document.all && !document.getElementById)
	{
		document.getElementById = function(id)
		{
			document.all[id];
		}
	}

	var value = GetCookie("English");
	if (value == "0")
	{
		showEnglish = false;
	}
	var value = GetCookie("Japanese");
	if (value == "0")
	{
		showJapanese = false;
	}
	var allIDs;
//	if (document.all)
//	{
//		allIDs = document.all;
//	}
//	else
	{
		allIDs = new Array();
		GetAllIDs(allIDs, document);
	}

	for (i in allIDs)
	{
		var id = allIDs[i];

		if (id.match(/^English_*/))
		{
			englishIDs[englishIDs.length] = id;
		}
		if (id.match(/^Japanese_*/))
		{
			japaneseIDs[japaneseIDs.length] = id;
		}
	}

	var IDs = (englishIDs.join(";") + ";" + japaneseIDs.join(";")).split(";");
	for (i in IDs)
	{
		var id = IDs[i];
		var div = document.getElementById(id);
		if (div)
		{
			saveTexts[id] = div.innerHTML;
		}
	}

	ShowTexts(englishIDs, showEnglish);
	ShowTexts(japaneseIDs, showJapanese);
}

function EnglishJapaneseShowButtons()
{
	document.write("<form>\
<input type='button' value='Show/Hide English' onclick='ToggleEnglish()'>\
<input type='button' value='Show/Hide Japanese 日本語表示/非表示' onclick='ToggleJapanese()'>\
</form>");
}

function ToggleEnglish(sw)
{
	showEnglish = !showEnglish;
	SetLanguageCookie("English", showEnglish);
	ShowTexts(englishIDs, showEnglish);
}

function ToggleJapanese(sw)
{
	showJapanese = !showJapanese;
	SetLanguageCookie("Japanese", showJapanese);
	ShowTexts(japaneseIDs, showJapanese);
}

function SetLanguageCookie(language, sw)
{
	var exp = new Date(); 
	var expDays = 90;
	exp.setTime(exp.getTime() + (expDays * 24 * 60 * 60 * 1000));
	DeleteCookie(language);
	SetCookie(language, sw ? "1" : "0", exp);
}

function ShowTexts(IDs, sw)
{
	for (i in IDs)
	{
		var id = IDs[i];
		var div = document.getElementById(id);
		if (sw)
		{
			div.innerHTML = saveTexts[id];
			// div["style"]["visibility"] = "visible"; // see comments below
		}
		else
		{
			div.innerHTML = '';
			// 'div["style"]["visibility"] = "hidden";' can hide the text but it still takes the same space
		}
	}
}

function ShowAll()
{
	ShowTexts(englishIDs, true);
	ShowTexts(japaneseIDs, true);
}

