// ============================================================ 
// jQuery と prototype コンフリクト対策
// ============================================================ 
jQuery.noConflict();
var $j = jQuery;

// ============================================================ 
// 画像プリロード
// ============================================================
$j.preloadImages = function() {
	for(var i = 0; i<arguments.length; i++) {
		$j("<img>").attr("src", arguments[i]);
	}
}
$j.preloadImages(
"/common/img/icon_fontsize_s_on.gif",
"/common/img/icon_fontsize_m_on.gif",
"/common/img/icon_fontsize_l_on.gif"
);
							
// ============================================================ 
// ロールオーバー
// ============================================================ 
var rollover = {
	swap:function(){
		$j("img.swap").each(function(i) {
			var imgsrc = this.src;
			var dot = imgsrc.lastIndexOf(".");
			var imgsrc_on = imgsrc.substr(0, dot) + '_on' + imgsrc.substr(dot, 4);
			$j("<img>").attr("src", imgsrc_on);
			
			$j(this).hover(
				function() { this.src = imgsrc_on; },
				function() { this.src = imgsrc; }
			);
		});
	},
	
	bright:function(){
		$j("img.bright").mouseover(function(){
			$j(this).css({opacity: 0.25}).fadeTo(300, 1);
		});
	},
	
	alpha:function(){
		$j("img.alpha").hover(
			function() { $j(this).stop().fadeTo(250, 0.6); },
			function() { $j(this).stop().fadeTo(250, 1); }
		);
	}
}

$j(function() {
	rollover.swap();
	rollover.bright();
	rollover.alpha();
});

// ============================================================ 
// フォントサイズ切り換え
// ============================================================ 
$j(function() {
							
	var fsize = function() {

		// 初期化
		if($j.cookie("TEXT_SIZE")) {
			var c = $j.cookie("TEXT_SIZE");
			$j("body").addClass(c);
			$j("."+c).addClass(c+"-on");
		} else {
			$j("body").addClass("fm");
			$j(".fm").addClass("fm-on");
		}
		
		// クリックでボタン状態変更
		$j("#font-size li").click(function() {
			var size = $j(this).attr("class");
			if(size.indexOf("on")!=-1) return false;
			$j("#font-size li").removeClass("fs-on fm-on fl-on");
			$j(this).addClass(size+"-on");
			$j("body").removeClass("fs fm fl").addClass(size);

			// Cookie に書き込む
			$j.cookie("TEXT_SIZE", size, { path: '/', expires: 30 });
			return false;
		});
	}
	fsize();
});

// ============================================================ 
// Droppy 0.1.2
// ============================================================ 
$j(function() {
	$j('#gnavi-inner').droppy({speed: 200});
	
	// 最後のli要素に"no-border"追加
	$j("ul#gnavi-inner li ul li:last-child").addClass("no-border");
});

/*
 * Droppy 0.1.2
 * (c) 2008 Jason Frame (jason@onehackoranother.com)
 */
$j.fn.droppy = function(options) {
		
	options = $j.extend({speed: 250}, options || {});
	
	this.each(function() {
		
		var root = this, zIndex = 1000;
		
		function getSubnav(ele) {
			if (ele.nodeName.toLowerCase() == 'li') {
				var subnav = $j('> ul', ele);
				return subnav.length ? subnav[0] : null;
			} else {
				return ele;
			}
		}
		
		function getActuator(ele) {
			if (ele.nodeName.toLowerCase() == 'ul') {
				return $j(ele).parents('li')[0];
			} else {
				return ele;
			}
		}
		
		
		function hide() {
			clearTimeout(dTimer);
			
			var subnav = getSubnav(this);
			if (!subnav) return;
			$j.data(subnav, 'cancelHide', false);
			setTimeout(function() {
				if (!$j.data(subnav, 'cancelHide')) {
					$j(subnav).slideUp(options.speed);
				}
			}, 100);
		}
	
		var dTimer; // ロールオーバーの遅延
		function show() {
			var subnav = getSubnav(this);
			if (this.nodeName.toLowerCase() == 'ul') {
				var li = getActuator(this);
				$j(li).addClass('hover');
				$j('> a', li).addClass('hover');
			}
			dTimer = setTimeout(function(){
				if (!subnav) return;
				$j.data(subnav, 'cancelHide', true);
				$j(subnav).css({zIndex: zIndex++}).slideDown(options.speed);
			}, 200);
		}
		
		$j('ul, li', this).hover(show, hide);
		$j('li', this).hover(
			function() { $j(this).addClass('hover'); $j('> a', this).addClass('hover'); },
			function() { $j(this).removeClass('hover'); $j('> a', this).removeClass('hover'); }
		);
	});
};

// ============================================================ 
// スムーズスクロール
// ============================================================ 
$j(function() {
		
	$j('.pagetop').click(function(){
		if($j.browser.safari && $j.browser.version.charAt(0)<5) {
			location.href = "#header";
		} else {
			$j(this).blur();
			$j('html,body').animate({scrollTop: 0}, 'slow');
			return false;
		}
	});
});

function pageScroll(id) {
	if($j.browser.safari && $j.browser.version.charAt(0)<5) {
		location.href = id;
	} else {
		var targetOffset = $j(id).offset().top;
		$j('html,body').animate({ scrollTop: targetOffset }, 'slow');
	}
}

// ============================================================ 
// このサイト用に定義
// ============================================================ 
var okahata = {
	init:function() {
		// パンくずリストの最後のli要素は矢印アイコン無し
		var p_len = $j(".pankuzu ul li").length;
		$j(".pankuzu ul li:eq("+(p_len-1)+")").addClass("no-bg");
		// ローカルナビゲーション小階層の最後のli要素
		var gnavChild_len = $j("#lnavi ul ul li").length;
		$j("#lnavi ul ul li:eq("+(gnavChild_len-1)+") a").css("border-bottom","solid 1px #dbdbdb");
	}
}

$j(function() {
	okahata.init();
});
