// オリビアン小豆島の処理を格納するオブジェクト。
if (typeof olivean == "undefined" || !olivean) var olivean = {};

// IE6のキャッシュを有効にする。
try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(e) {}

/**
 * bodyタグ(ページ全体を意味する)の文字サイズを設定する。
 * Cookieに文字サイズを保存する。
 *
 * @param size	String:	CSSのfont-sizeに指定する文字列。
 */
olivean.setFontSize = function(size)
{
	size = size || '1.2em';
	$('body').css('font-size', size);
	$.cookie('font-size', size, {expires:365,path:'/'});
	return false;
};

/**
 * 現在のページのドキュメントルートからの相対パスを取得する。
 */
function getRelativePath()
{
	var relPath = '';
	// URLがローカル(file://)の場合に機能しない。
	// for (var i = 0; i < location.pathname.split('/').length - 3; i++) relPath += '../';
	// ローカルルールでショートカットアイコンのパスから取得する。
	relPath = $('link[rel="shortcut icon"]').attr('href').replace('favicon.ico','');
	return relPath;
}

/**
 * 文字サイズを変更するメニューを表示する。
 */
olivean.createFontSizeMenu = function()
{
	var div = $('<div id="header_fontsize" class="clearfix"><div id="fontsize_title">フォントの大きさ</div></div>');
	var a = $('<a href="#"></a>').css('display','block');
	div.append($('<div id="fontsize_large"></div>').append(a.clone().clickpress(function(){ olivean.setFontSize('1.5em'); }).text('大')));
	div.append($('<div id="fontsize_medium"></div>').append(a.clone().clickpress(function(){ olivean.setFontSize('1.2em'); }).text('中')));
	div.append($('<div id="fontsize_small"></div>').append(a.clone().clickpress(function(){ olivean.setFontSize('0.9em'); }).text('小')));
	$('div#header_yoyaku').after(div);
};

/**
 * 指定の要素にGoogle Analyticsのページトラッカーを設定する。
 *
 * @param target	String:	jQueryで1個を特定可能な
 * @param url		String:	ページトラッカーに設定するURL。
 */
olivean.setPageTracker = function(target, url)
{
	$(target).clickpress(function(){ pageTracker._trackPageview(url); });
};

/**
 * 外部リンクにGoogle Analyticsのページトラッカーを設定する。
 */
olivean.setPageTrackerExternalLink = function()
{
	// 外部リンク(自ドメインをURLに含まない)にトラッキングを設定する。
	var domain = 'olivean\.com'; //'olivean.com'.replace(/\W/g, '\\$&');
	var reg = new RegExp(domain,'i');
	$('a[href*="://"]').each(function(){
		var href = this.href;
		if (href.match(reg)) return;
		$(this).clickpress(function(){
			var link = '/_external/' + href.replace(/http(|s):\/\//i,'');
			pageTracker._trackPageview(link);
		});
	});
};

/**
 * ボックスをクリックで開閉させる。
 */
olivean.toggle = function(target)
{
	var display = $(target).css('display');
	if (display == 'none') {
			$(target).slideDown();
	} else {
			$(target).slideUp();
	}
}

// メイン処理。
$(function(){

	// 文字サイズを変更して、メニューも表示する。
	olivean.setFontSize($.cookie('font-size'));
	olivean.createFontSizeMenu();

	// 外部リンクにGoogle Analyticsのページトラッカーを設定する。
	olivean.setPageTrackerExternalLink();
});
