/*
 * styles.js: 代替スタイルシート切替JavaScript
 * <script type="text/javascript" src="/common/js/common.js"></script>
 * を先に呼び出す必要があります。
 */

// クッキーの名前。
var cookieName = "JihoStyles";

// クッキーの有効期限。日数で指定。
var cookieExpDays = 30;

// クッキーのパス設定。例えば、サイトのホームディレクトリのパス("/"や"/~user/")
// を指定すれば、あるページでのスタイル切替をサイト内のすべてのページに反映させ
// るようなことも可能。
//var cookiePath = "/jiho";
var cookiePath = "";
// ※途中の処理で前２パスを有効にしました。

/*
 * ページ読み込み後の処理
 */
function initialize() {
	if (cookieValue) switchStyleByName(cookieValue);

	$("#characterS").click(function() {
		switchFontSize("characterS");
	});

	$("#characterM").click(function() {
		switchFontSize("characterM");
	});

	$("#characterB").click(function() {
		switchFontSize("characterB");
	});

	setFontImage(cookieValue);
}

/*
 * 引数にとったスタイル名のスタイルシートに切替え、Cookieを発行する。
 */
function switchStyleByName(name) {
	if (isSafari) {
		var elLink = $("link");
		elLink.each(function() {
			var el = $(this);
			if (el.attr("title") != "") {
				if (el.attr("title") == name) {
					this.disabled = false;
					el.attr("rel", "stylesheet");
				} else {
					this.disabled = true;
					el.attr("rel", "alternate stylesheet");
				}
			}
		});
	} else {
		var sheets = document.styleSheets;
		var arAlternates = new Array();
		for (var i = 0; i < sheets.length; i++) {
			if (sheets[i].title != "") {
				var no = arAlternates.length;
				arAlternates[no] = new Object();
				arAlternates[no].element = sheets[i];
				if (sheets[i].title == name) {
					arAlternates[no].disabled = false;
				} else {
					arAlternates[no].disabled = true;
				}
			}
		}
		for (var i=0; i<arAlternates.length; i++) {
			arAlternates[i].element.disabled = arAlternates[i].disabled;
		}
	}
	// ローカルパスの取得
	// 2パスまで有効
	var strLocal = location.pathname;
	var arrLocal = strLocal.split("/");
	var strPath = "";
	for(var i = 1; i < arrLocal.length && i < 3; i++){
		strPath = strPath + "/" + arrLocal[i];
	}

	cookie.set(cookieName, name, cookieExpDays, strPath);
}

/*
 * 固定スタイルシート以外で現在有効なスタイルシートのスタイル名を取得
 */
function getAppliedStyleName() {
	var elLink = $("link");
	elLink.each(function() {
		var el = $(this);
		if (el.attr("rel") == "alternate stylesheet") {
			if (!this.disabled) {
				return el.attr("title");
			}
		}
	});
	return "";
}

/*
 * 文字サイズアイコンがクリックされたら、それに対応したスタイルシートに切り替える。
 */
function switchFontSize(id) {
	var getName = "";
	switch (id) {
		case "characterS":
			getName = "文字サイズ小";
			break;
		case "characterM":
			getName = "文字サイズ中";
			break;
		case "characterB":
			getName = "文字サイズ大";
			break;
	}
	switchStyleByName(getName);
	setFontImage(getName);
}

/*
 * 文字サイズアイコンがクリックされたら、そのイメージを”選択済み”状態に切り替える。
 */
function setFontImage(name) {
	var elFontButton = $("#charactersize");
	switch (name) {
		case "文字サイズ小":
			elFontButton.attr("class", "small");
			break;
		case "文字サイズ中":
			elFontButton.attr("class", "medium");
			break;
		case "文字サイズ大":
			elFontButton.attr("class", "big");
			break;
	}
}

var cookieValue = cookie.get(cookieName);
if (cookieValue == "") {
	cookieValue = "文字サイズ中";
}

var isSafari = false;
if (navigator.userAgent.match(/AppleWebKit/)) {
	isSafari = true;
}

$(function() {
	initialize();
});


