/* -----------------------------------------
 *
 *  common.js
 *  Last Update : 2010/12/28
 *
 *  monosus inc.
 *  http://monosus.co.jp/
 *
 ----------------------------------------- */

jQuery(document).ready(function($) {
//ロールオーバー
	var postfix = '_on';
	$('.over').not('[src*="'+ postfix +'."]').each(function() {
		var img = $(this);
		var src = img.attr('src');
		var src_on = src.substr(0, src.lastIndexOf('.'))
		           + postfix
		           + src.substring(src.lastIndexOf('.'));
		$('<img>').attr('src', src_on);
		img.hover(
			function() {
				img.attr('src', src_on);
			},
			function() {
				img.attr('src', src);
			}
		);
	});
//スムーズスクロール
	jQuery.easing.quart = function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	};  
	$('.pageTop a').click(function () {
		$('html,body').animate({ scrollTop: 0 }, 1000, 'quart');
		return false;
	});
//ファンクションの起動
	js_window_open();
	js_lNavi_visual();

	if($.fn.scrollFollow){
		if( document.getElementById('menu') ){
		$('#sub').css('height', ( parseInt( $('#contents').innerHeight() ) - parseInt( $('#sub_img').innerHeight() ) ) );
		$('#menu').css('position','relative').scrollFollow();
		}
	}

});

/*	//	PAGE PRINT
-----------------------------------------------------------------------------------------------------------------*/
function js_page_print(){
	window.print();
	return false
}
/*	//	ウィンドウを閉じる - a要素にclass="js_window_close"でウィンドウを閉じる
-----------------------------------------------------------------------------------------------------------------*/
function js_window_close(){
	window.close();
	return false;
}
/*	//	ポップアップ - a要素にclass="js_window_open-width-height"でポップアップ
-----------------------------------------------------------------------------------------------------------------*/
function js_window_open(){
	var js_para = null;
	// js_para[0] = width
	// js_para[1] = height
	// js_para[2] = window.name
	$('a[class^="js_window_open"], area[class^="js_window_open"]').each(function(index){
		$(this).click(function(){
			var wo = null;
			// get window width & height
			js_para = $(this).attr('class').match(/[0-9]+/g);
			// get window.name
			window.name ? js_para[2] = window.name+'_' : js_para[2] = ('');
			wo = window.open(this.href, js_para[2]+'popup'+index,'width='+js_para[0]+',height='+js_para[1]+',scrollbars=yes');
			wo.focus();
			return false;
		});
	});
}

/*	//	js_lNavi_visual setup
-----------------------------------------------------------------------------------------------------------------*/
function js_lNavi_visual(){
	var _root_elm = $('body').attr('class');
	$('#lNavi ul ul').hide();

	if(_root_elm.indexOf("lDef") < 0){
		$('#lNavi').each(function(){
			_routing = new Array;
			_routing[0] = _root_elm.match(/l[\d]+_[\d]+_[\d]+/);
			_routing[1] = _root_elm.match(/l[\d]+_[\d]+/);
			_routing[2] = _root_elm.match(/l[\d]+/);
			if(_routing[0]){ _routing[0].push(_routing[0][0].match(/[\d]+/g))};
			if(_routing[1]){ _routing[1].push(_routing[1][0].match(/[\d]+/g))};
			if(_routing[2]){ _routing[2].push(_routing[2][0].match(/[\d]+/g))};
			//console.log(_routing[0]);
			//console.log(_routing[1]);
			//console.log(_routing[2][1]);

			if(_routing[0] != null){
				$('a.lNav'+_routing[0][1][0]+'_'+_routing[0][1][1]+'_'+_routing[0][1][2])
				.addClass('current')
				.parent().parent().show()
				.parent().parent().show();
	
			}else if(_routing[1] != null){
				$('a.lNav'+_routing[1][1][0]+'_'+_routing[1][1][1])
				.addClass('current')
				.next().show()
				.parent().parent().show();
		
			}else if(_routing[2] != null){
				$('a.lNav'+_routing[2][1])
				.addClass('current')
				.next().show();
			}
		});
	}
}

/*	//	Firefox用CSSを呼び出し（ルート相対パスなのでサーバー上でのみ）
-----------------------------------------------------------------------------------------------------------------*/
var firefox = (navigator.userAgent.indexOf("Firefox") != -1)? true : false; 
if(firefox) document.write('<link rel="stylesheet" type="text/css" media="print" href="common/css/fx_print.css" />');

/*	//	Lazy Load > http://www.appelsiini.net/projects/lazyload
-----------------------------------------------------------------------------------------------------------------*/
(function($){$.fn.lazyload=function(options){var settings={threshold:0,failurelimit:0,event:"scroll",effect:"show",container:window};if(options){$.extend(settings,options);}
var elements=this;if("scroll"==settings.event){$(settings.container).bind("scroll",function(event){var counter=0;elements.each(function(){if($.abovethetop(this,settings)||$.leftofbegin(this,settings)){}else if(!$.belowthefold(this,settings)&&!$.rightoffold(this,settings)){$(this).trigger("appear");}else{if(counter++>settings.failurelimit){return false;}}});var temp=$.grep(elements,function(element){return!element.loaded;});elements=$(temp);});}
this.each(function(){var self=this;if(undefined==$(self).attr("original")){$(self).attr("original",$(self).attr("src"));}
if("scroll"!=settings.event||undefined==$(self).attr("src")||settings.placeholder==$(self).attr("src")||($.abovethetop(self,settings)||$.leftofbegin(self,settings)||$.belowthefold(self,settings)||$.rightoffold(self,settings))){if(settings.placeholder){$(self).attr("src",settings.placeholder);}else{$(self).removeAttr("src");}
self.loaded=false;}else{self.loaded=true;}
$(self).one("appear",function(){if(!this.loaded){$("<img />").bind("load",function(){$(self).hide().attr("src",$(self).attr("original"))
[settings.effect](settings.effectspeed);self.loaded=true;}).attr("src",$(self).attr("original"));};});if("scroll"!=settings.event){$(self).bind(settings.event,function(event){if(!self.loaded){$(self).trigger("appear");}});}});$(settings.container).trigger(settings.event);return this;};$.belowthefold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).height()+$(window).scrollTop();}else{var fold=$(settings.container).offset().top+$(settings.container).height();}
return fold<=$(element).offset().top-settings.threshold;};$.rightoffold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).width()+$(window).scrollLeft();}else{var fold=$(settings.container).offset().left+$(settings.container).width();}
return fold<=$(element).offset().left-settings.threshold;};$.abovethetop=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).scrollTop();}else{var fold=$(settings.container).offset().top;}
return fold>=$(element).offset().top+settings.threshold+$(element).height();};$.leftofbegin=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).scrollLeft();}else{var fold=$(settings.container).offset().left;}
return fold>=$(element).offset().left+settings.threshold+$(element).width();};$.extend($.expr[':'],{"below-the-fold":"$.belowthefold(a, {threshold : 0, container: window})","above-the-fold":"!$.belowthefold(a, {threshold : 0, container: window})","right-of-fold":"$.rightoffold(a, {threshold : 0, container: window})","left-of-fold":"!$.rightoffold(a, {threshold : 0, container: window})"});})(jQuery);

/*	//	Equal Column Heights > http://www.jainaewen.com/files/javascript/jquery/equal-height-columns/
-----------------------------------------------------------------------------------------------------------------*/
(function($){$.fn.equalHeightColumns=function(e){var J,a;e=$.extend({},$.equalHeightColumns.defaults,e);a=$(this);J=e.height;$(this).each(function(){if(e.children)a=$(this).children(e.children);if(!e.height){if(e.children){a.each(function(){if($(this).height()>J)J=$(this).height()})}else{if($(this).height()>J)J=$(this).height()}}});if(e.minHeight&&J<e.minHeight)J=e.minHeight;if(e.maxHeight&&J>e.maxHeight)J=e.maxHeight;a.animate({height:J},e.speed);return $(this)};$.equalHeightColumns={version:1.0,defaults:{children:false,height:0,minHeight:0,maxHeight:0,speed:0}}})(jQuery);
