/* 
 ##########################################
 文字サイズ変更スクリプト FontSizeChange.js
 ##########################################

 小説ページに３段階の文字サイズ変更ボタンをつけます。
 サイズの指定はCookieで記録され、同じフォルダ内でこのjsファイルを呼び出している
 全てのページに適用されます。Cookieは指定日数（初期設定では30日間）保存されます。
 ボタンはjavascriptで記述されるので、javascriptオフの環境下では表示されません。

 配布元 小説HTMLの小人さん http://htmldwarf.hanameiro.net/
*/

/* -------------------使い方---------------------*/
/*
 1) 小説ファイルのbody要素に  onload="SizeChange();" と指定してください。
 　例）<body onload="SizeChange()">

 2) 小説ファイルのフォントサイズを変更したい要素に id="docs" と指定してください。
 （id名は下の「初期設定」で変えられます）
   例）<div id="docs">（〜本文〜）</div>

 3) 小説ファイルのボタンを置きたい場所に
 <script type="text/javascript" src="FontSizeChange.js"></script>
 と記述してください。

 4) 小説ファイルとFontSizeChange.jsを同じフォルダ内にアップしてください。

 ※テーブルの中にテキストを入れている場合、idは一番内側のtd要素に指定してください。
*/

/* ----------------- 変数宣言 -------------------*/
var ButtonType;
var FontSize;
var Unit;
var Obj;
var LinkColor;
var SelectedColor;
var SelectedBold;
Img = new Array();
ImgOn = new Array();
SizeList = new Array();
Units = new Array('%','px','pt','em');
Text = new Array();

/* ----------------- 初期設定 -------------------*/
/* IDの指定 */
//文字サイズを変更したい要素のID
Obj = 'docs';

/* サイズの単位（0 = %、1 = px、2 = pt, 3= em） */
Unit = 0;

/* サイズの選択肢（上から順に小、中、大。指定できるのは数字のみ）*/
SizeList["S"] = 85;
SizeList["M"] = 100;
SizeList["L"] = 130;

/* ボタンのタイプ （0 = テキスト  1 = 画像）*/
ButtonType = 1;

/* テキストの表記（上から順に小、中、大）*/
Text["S"] = "[小]";
Text["M"] = "[中]";
Text["L"] = "[大]";

/* テキストの色（上は選択していないサイズ、下は選択中のサイズ）*/
TextColor = 'blue';
SelectedColor = 'red';

/* 選択中のサイズの太字表記（0 = 普通、 1 = 太字） */
SelectedBold = 0; 

/* 画像ボタン（未選択）のURL（上から順に小、中、大）*/
Img["S"] = 'menu_img/size_s.gif';
Img["M"] = 'menu_img/size_m.gif';
Img["L"] = 'menu_img/size_l.gif';

/* 画像ボタン（選択中）のURL（上から順に小、中、大）*/
ImgOn["S"] = 'menu_img/size_s_o.gif';
ImgOn["M"] = 'menu_img/size_m_o.gif';
ImgOn["L"] = 'menu_img/size_l_o.gif';

/* Cookieの有効期限（日数） */
ExpireDays = 30;


/* -------------------- 実　行 ---------------------*/
ReadCookie();
Buttons();


/* -------------------- 関　数 ---------------------*/
/* ボタン書き出し */
function Buttons() {
	Button("S");
	Button("M");
	Button("L");
}

/* 各ボタンの書き出し */
function Button(Size) {
	// 画像
	if (ButtonType) {
		if (SizeList[Size] == FontSize) {
			document.write('<img src="' + ImgOn[Size] + '"> ');
		} else {
			document.write('<a href="javascript:Write(' + SizeList[Size] + ');"><img src="' + Img[Size] + '" border=0"></a> ');
		}
	// テキスト
	} else {
		if (SizeList[Size] == FontSize) {
			var Style;
			if (SelectedBold) {
				Style = 'color:' + SelectedColor + ';font-weight:bold';
			} else {
				Style = 'color:' + SelectedColor;
			}
			document.write ('<span style="' + Style + '">' + Text[Size] + '</span> ');
		} else {
			document.write ('<a href="javascript:Write(' + SizeList[Size] + ');" style="color:' + TextColor + '">' + Text[Size] + '</a> ');
		}
	}
}

/* Cookie呼出 */
function ReadCookie() {
	if (document.cookie) {
		Cookie = document.cookie;
		if (Cookie.match(/FontSize=([\d.]*)/)) {
			FontSize = RegExp.$1;
		}
	}
}

/* フォントサイズ変更 */
function SizeChange() {
	if (FontSize != null) {
		document.getElementById(Obj).style.fontSize = FontSize + Units[Unit];
	}
}

/* Cookie書込 */
function Write(Size) {
	// 日付の計算
	var toDay = new Date;
	var xDay = new Date;
	parseInt(ExpireDays);
	xDay.setDate(toDay.getDate()+ExpireDays);
	ExpireText = xDay.toGMTString();
	// 書込
	document.cookie = "FontSize = " + Size + ";expires=" + ExpireText;
	// 再読込
	location.reload();
}

