jQuery(document).ready(function($){
	
	// !サイドバーアコーディオン
	$('#rightSide ul li a, .indexNavi a').each(function(i, e){
		if (location.href == $(e).attr('href')) {
			$(e).addClass('current');
		}
	});
	// currentクラスから親のh3のインデックスを取得し、アコーディオンをアクティブ
	var index = $('#rightSide ul li h3').index($('#rightSide ul li a.current').parent('h3'));
	//$('#rightSide ul.listMenu').accordion('activate', index );

	if (!$('body').hasClass('sitemap')) {
		$('#rightSide ul.listMenu').accordion({
			clearStyle: true,
			collapsible: true,
			autoHeight: false,
			//navigation: true,
			//event: 'mouseover',
			icons: { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' },
			active: index
		});
		
		//クリックイベントのアコーディオンへのパブリングを停止
		$('#rightSide ul.listMenu h3 a').click(function(event){
			event.stopPropagation();
		});
	}
	
	//子要素がない時はheaderのイベントをunbind
	var noChild = $.map($('#rightSide ul.listMenu').children(), function(n, i){
		if ($(n).find('ul').length) return null;
		return n;
	});
	if (noChild.length) {
		$(noChild).find('h3').unbind('click');
		$(noChild).find('span').removeClass().addClass('ui-icon-nc');
	}
	
	// ----------------------------------------------------------------------------

	// !URLパーサー
	if ($.url.segment(0) != null) {
		var url = $.url.segment(0);
		// グローバル
		var target = $('.globalNavi a');
		$('.globalNavi a').each(function(i, e){
			if ($(e).attr('href').lastIndexOf('/' + url + '/') == ($.nmt.home.length)) {
				$(e).addClass('current');
			}
		});
	}

	// ----------------------------------------------------------------------------

	// !プリントコントロール
	indexNavi = $('#header .indexNavi ul');
	printControll = $('<li id="printControll" class="action"></li>').append(
		$('<img />').attr({'class': 'rollover', src: '' + $.nmt.home + '/images/print.png', alt: 'このページを印刷'}).click(function(){window.print();})
	);
	indexNavi.append(printControll);

	// ----------------------------------------------------------------------------
	
	// !フォントサイズ
	if (navigator.cookieEnabled) {
		if ($.cookie('nmt') === null) {
			cookieValue = { fontSize: 'm' };
			$.cookie('nmt', $.JSON.encode(cookieValue), {path: '/', experies: 60*60*24*30});
		} else {
			cookieValue = $.JSON.decode($.cookie('nmt'));
		}

		fontControll = $('<li id="fontControll" class="action"></li>')
					.append($('<img src="' + $.nmt.home + '/images/fontsize-s.png" alt="文字サイズ小" />').bind({
						click: function(){$.fontSize('S')}					
					}))
					.append($('<img src="' + $.nmt.home + '/images/fontsize-m.png" alt="文字サイズ中" />').bind({
						click: function(){$.fontSize('M')}					
					}))
					.append($('<img src="' + $.nmt.home + '/images/fontsize-l.png" alt="文字サイズ大" />').bind({
						click: function(){$.fontSize('L')}				
					}));
		indexNavi.append(fontControll);

		$.extend({
			fontSize: function(size) {
				var button = $('#fontControll img');
				// アクティブ表示をリセット
				button.filter('[src*="_over."]').each(function(i, e){
					$(e).unbind('mouseover').unbind('mouseout');
					src = $(e).attr('src');
					srcReset = src.substr(0, src.lastIndexOf('_over.'))
							   + src.substring(src.lastIndexOf('.'));
					$(e).attr('src', srcReset);
				});
				
				switch (size) {
					case 'S':
						var el = button.get(0);
						var px = 12;
						break;
					case 'L':
						var el = button.get(2);
						var px = 16;
						break;
					case 'M':
					default:
						var el = button.get(1);
						var px = 14;
				}
				
				// アクティブ表示
				$(el).attr('src', $(el).attr('src').substr(0, $(el).attr('src').lastIndexOf('.')) + '_over' + $(el).attr('src').substring($(el).attr('src').lastIndexOf('.')));
				// アクティブ意外
				button.not(el).each(function(i, e){
					var src = $(e).attr('src');
					var srcOver = src.substr(0, src.lastIndexOf('.'))
								  + '_over'
								  + src.substring(src.lastIndexOf('.'));

					$(e).bind({
						mouseover: function(){$(this).attr('src', srcOver);},
						mouseout: function(){$(this).attr('src', src);}
					});
				});
				
				$('#leftSide').css({fontSize: px + 'px'});
				cookieValue = { fontSize: size };
				$.cookie('nmt', $.JSON.encode(cookieValue), {path: '/', experies: 60*60*24*30});
			}
		});
		
		// オンロード時の実行
		$.fontSize(cookieValue.fontSize);
	}

	// ----------------------------------------------------------------------------
	
	// !ロールオーバー
	$.fn.extend({
		rollOver: function(options) {
			version = 1.0;
			el = this;
			var postfix = '_over';
			
			$(el).not('[src*="' + postfix + '."]').each(function(i, e){

				var src = $(e).attr('src');
				var srcOver = src.substr(0, src.lastIndexOf('.'))
							  + postfix
							  + src.substring(src.lastIndexOf('.'));
				$(e).bind({
					mouseover: function(){
						$(this).attr('src', srcOver);
					},
					mouseout: function(){
						$(this).attr('src', src);
					}
				});
				//オーバー画像のプリロード
				$('<img>').attr('src', srcOver);
			})
			.end()
			.filter('[src*="' + postfix + '."]').each(function(i, e){
				
				var src = $(e).attr('src');
				var srcOver = src.substr(0, src.lastIndexOf(postfix + '.'))
							  + src.substring(src.lastIndexOf('.'));
				$(e).bind({
					mouseover: function(){
						$(this).attr('src', srcOver);
					},
					mouseout: function(){
						$(this).attr('src', src);
					}
				});
				//オーバー画像のプリロード
				$('<img>').attr('src', srcOver);

			});
			return this;
		}
	});
	
	// オンロード時の実行
	$('img.rollover').rollOver();
	
	
	// ----------------------------------------------------------------------------

	// !ページ内スクロール
    $('a[href^=#]').click(function(event) {
    	event.preventDefault();
	    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
	            $.slideTo(this.hash);
        }
    });
	
	$.extend({
		slideTo: function(hash) {
			var $target = $(hash);
            $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
 
            if ($target.length) {
 
                var targetOffset = $target.offset().top;
                $('html, body').animate({scrollTop: targetOffset}, 1000);
                return $target;
            }
			
		}
	});

	// ----------------------------------------------------------------------------
	
	// !コラムの高さ合わせ
	if ($('.autoHeight').length) {
		var maxHeight = 0;
		$('.autoHeight').each(function(i, e){
			maxHeight = (maxHeight < $(e).height()) ? $(e).height() : maxHeight;
		}).height(maxHeight);
	}
});

