// Setting file

// Tinyscrolling
/**
 * zudolab jqTinyscrolling
 *
 * @version    1  (updated: 2008/12/16)
 * @author     Takeshi Takatsudo (http://zudolab.net/)
 * @license    MIT (http://www.opensource.org/licenses/mit-license.php)
 * original idea by Marco Rosella (http://lab.centralscrutinizer.it/the-tiny-scrollings/)
 */

(function($){
	
	var currentSpeed;
	var currentMaxStep;
	var currentBrakeK;
	var currentAddHash;
	var currentTarget;
	var currentHash;
	var currentRequestedY;
	var currentScrollTimer;

	jqTinyscrolling = function(settings)
	{
		this.speed = settings && settings.speed ? settings.speed : 20;
		this.maxStep = settings && settings.maxStep ? settings.maxStep : 200;
		this.maxStepWhenLongDoc = settings && settings.maxStepWhenLongDoc ? settings.maxStepWhenLongDoc : 1000;
		this.brakeK = settings && settings.brakeK ? settings.brakeK : 3;
		this.addHash = settings && settings.addHash===false ? false : true;
		this.anchors = [];
		
		/* exec setup when onload */
		var self = this;
		$(function(){ self.setup(); });
	}
	
	jqTinyscrolling.prototype.setup = function()
	{
		this.prepareAnchors();
		if(!this.anchors) return;
		this.setEvents();
	}
	jqTinyscrolling.prototype.prepareAnchors = function()
	{
		var allAnchors = $("a[href^=#]");
		for(var i=0,anchor; anchor=allAnchors[i]; i++){
			if($(anchor).hasClass("avoidScroll")) continue;
			this.anchors.push(anchor);
		}
	}
	jqTinyscrolling.prototype.setEvents = function()
	{
		var self = this;
		for(var i=0,anchor; anchor=this.anchors[i]; i++){
			$(anchor).click(function(){
				if(currentRequestedY) releaseCurrentScrollInfo();
				if(setCurrentScrollInfo(this)) scroll();
				return false;
			});
		}
		function setCurrentScrollInfo(anchor)
		{
			var $anchor = $(anchor);
			var hash = $anchor.attr("href").replace("#","");
			var target = document.getElementById(hash);
			if(!target) return false;
			currentTarget = target;
			currentHash = hash;
			currentRequestedY = $(target).offset().top;
			currentSpeed = self.speed;
			currentMaxStep = ($(document).height()>2500) ? self.maxStepWhenLongDoc : self.maxStep;
			currentBrakeK = self.brakeK;
			currentAddHash = self.addHash;
			return true;
		}
	}
	function scroll()
	{
		var top = $(document).scrollTop();
		if(currentRequestedY > top){
			var endDistance = 
				Math.round(($(document).height() - (top + $(window).height())) / currentBrakeK);
			endDistance = 
				Math.min(Math.round((currentRequestedY-top)/ currentBrakeK), endDistance);
			var offset = 
				Math.max(2, Math.min(endDistance, currentMaxStep));
			if(Math.round((currentRequestedY-top)/ currentBrakeK)<10)
				offset = 2;
		}else{
			var offset =
				- Math.min(Math.abs(Math.round((currentRequestedY-top)/ currentBrakeK)), currentMaxStep);
		}
		window.scrollTo(0, top + offset);
		if(Math.abs(top-currentRequestedY) <= 1 || $(document).scrollTop() == top){
			window.scrollTo(0, currentRequestedY);
			if(currentAddHash && (!document.all || window.opera)) location.hash = currentHash;
			releaseCurrentScrollInfo();
		}else{
			currentScrollTimer = setTimeout(scroll, currentSpeed);
		}
	}
	function releaseCurrentScrollInfo()
	{
		currentSpeed = null;
		currentMaxStep = null;
		currentBrakeK = null;
		currentAddHash = null;
		currentTarget = null;
		currentHash = null;
		currentRequestedY = null;
		clearTimeout(currentScrollTimer);
		currentScrollTimer = null;
	}
	
	/* override opera 9.5 jQuery height problem */
	(function(){
		if(!$.browser.opera || $.browser.version < 9.5) return;
		$.each([ 'Height', 'Width' ], function(i, name){
			var type = name.toLowerCase();
			var originalMethod = $.fn[ type ];
			$.fn[ type ] = function( size ) {
				return this[0] == window
					? document.documentElement[ 'client' + name ] 
					: originalMethod.call(this,size);
			};
		});
	})();
	
})(jQuery);

new jqTinyscrolling({
	speed: 20,
	maxStep: 60,
	maxStepWhenLongDoc: 1000,
	brakeK: 4,
	addHash: false
});



// ロールオーバー
function rollOver(){
	var preLoad = new Object();
	$('.on img,img.on,.on input,input.on').not("[@src*='_on.']").each(function(){
		var imgSrc = this.src;
		var fType = imgSrc.substring(imgSrc.lastIndexOf('.'));
		var imgName = imgSrc.substr(0, imgSrc.lastIndexOf('.'));
		var imgOver = imgName + '_on' + fType;
		preLoad[this.src] = new Image();
		preLoad[this.src].src = imgOver;
		$(this).hover(
			function (){
				this.src = imgOver;
			},
			function (){
				this.src = imgSrc;
			}
		);
	});
}
$(document).ready(rollOver);





/**
 * Simple tabs & Slim menu
 * 
 * Copyright (c) 2009 Kyosuke Nakamura (kyosuke.jp)
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 */

//スリムオープン
$(function(){
	$('div.slimMenu').each(function(){
		var group = $(this);
		var btn = group.find('.slimIn');
		var contents = group.find('.slimArea');

		group.addClass('slimClose');
		contents.css('height', contents.height() + 'px').hide();

		btn.click(function(){
			group.toggleClass('slimClose').toggleClass('slimOpen');
			contents.slideToggle(1000);
		});
	});
});



// 外部リンク
$(document).ready( function () {
	$('a[@href^="http://"]').click(function(){
		window.open(this.href, '_blank');
		return false;
	}).addClass('outLink');
});



// Shadowbox
Shadowbox.loadSkin('classic', 'js/shadowbox');
Shadowbox.loadLanguage('en', 'js/shadowbox');
Shadowbox.loadPlayer(['flv', 'html', 'iframe', 'img', 'qt', 'swf', 'wmp'], 'js/shadowbox/player');
$(document).ready(function() {
	$('a[@rel^="shadowbox"]').each(function() {
		var options = {
			overlayColor       : '#000000',
			overlayOpacity     : 0.5,
			AnimationSequence  : 'hw',
			resizeDuration : 0.6,
			fadeDuration   : 0.4,
			continuous    : true,
			counterType   : 'skip',
			counterLimit  : 20,
			displayNav    : true,
			resizeLgImages   : false,
			viewportPadding  : 50,
			handleUnsupported :  'remove',
			keysClose : ['c', 27] // c or esc
		};
		Shadowbox.init(options);
	});
});



//////////////////////////////////////////////// 不使用

// tabs切り替え
$(function(){
	$('.tabNavi').each(function(){
		var tabs = $(this).find('a[rel^=#]'); // relに変更、scrollと共存のため
		var imgs = tabs.find('img');
		var contents;
		imgs.each(function(){
			this.originalSrc =  $(this).attr('src');
			this.currentSrc = this.originalSrc.replace(/(\.gif|\.jpg|\.png)$/, '_cr'+"$1");
		});
		tabs.each(function(){
			var selecter = $(this).attr('rel'); // relに変更、scrollと共存のため
			if (contents) {
				contents = contents.add(selecter);
			} else {
				contents = $(selecter);
			}
			$(this).click(function(){
				imgs.each(function(){
					$(this).attr('src',this.originalSrc);
				});
				var img = $(this).find('img');
				img.attr('src',img.get(0).currentSrc);
				contents.hide();
				$(selecter).show();
				return false;
			});
		});
		tabs.eq(0).trigger('click');
	});
});



// swapImageスタート
//ターゲットをaタグのhrefの値で置き換える。
//スワップイメージさせたいaタグのclassに指定したclass名を割り当てる。
//aタグのclassに変更したいターゲットのidを割り当てる。

var ImgSrcChanges={

	varsion:"1.0.0",

	set:function(){
		//対象となるAタグのクラス名
		this.set_class="swapImg";
		
		//対象を切り替えるボタンアクション(onclick or onmouseover)
		this.bt_action="onmouseover";
		
		//ボタンからマウスアウトした際に、対象を元の画像に戻すか true or false
		this.bt_mouseout_back=false;
		
		//プリロードイメージを仕様するか
		this.preloadImgFlag=true;
		
		this.targetIds=new Array();
		
		this.window_load();
	},
	
	execute:function(){
		ImgSrcChanges.btaction();
		if(ImgSrcChanges.bt_mouseout_back){
			ImgSrcChanges.targetDefaltImgSet();
		}
	},
	
	btaction:function(){
		var a=document.getElementsByTagName("a");
		var act=this.bt_action;
		for(var i=0; i<a.length; i++){
			if(a[i].className == this.set_class){
				if(this.bt_action == "onmouseover"){
					a[i].onmouseover=function(){
						var target=document.getElementById(this.target);
						if(target){
							target.src=this.href;						
						}
					};
				}
				if(this.bt_action == "onclick"){
					a[i].onclick=function(){
						var target=document.getElementById(this.target);
						if(target){
							target.src=this.href;						
						}
						return false;
					};
				}else{
					a[i].onclick=function(){
						//ここを「target.src=this.href;」にするとクリックで画像リンクできる。
						return false;
					}
				}
				if(this.bt_mouseout_back){
					a[i].onmouseout=function(){
						var target=document.getElementById(this.target);
						if(target){
							target.src=target.lowsrc;
						}
					};
				}
				if(this.preloadImgFlag){
					this.preload(a[i].href);
				}
				this.targetIds.push(a[i].target);
			}
		}
	},
	
	targetDefaltImgSet:function(){
		var es={};
		var ids= this.targetIds;
		for(var i=0; i<ids.length; i++){
			if(es[ids[i]]){
				ids[i]=null;
			}else{
				es[ids[i]]=true;
				var tarObj=document.getElementById(ids[i]);
				if(tarObj){
					tarObj.lowsrc=tarObj.src;
				}
			}
		}
	},
	
	preload:function(img){
		this.preloadnum=(this.preloadnum >= 0)?this.preloadnum+1:0;
		if(this.preloadnum == 0){
			this.preloadimgs=new Array();
		}
		this.preloadimgs[this.preloadnum]=new Image();
		this.preloadimgs[this.preloadnum].src=img;
	},

	window_load:function(){
		if(window.addEventListener) {
			window.addEventListener("load", this.execute, false);
		}
		else if(window.attachEvent) {
			window.attachEvent("onload", this.execute);
		}
	}
};
ImgSrcChanges.set();


//奇数、偶数を自動追加
	$('ul').each(function(){
		$(this).find('li:odd').addClass('even');
		$(this).find('li:even').addClass('odd');
	});
	$('table').each(function(){
		$(this).find('tr:odd').addClass('even');
		$(this).find('tr:even').addClass('odd');
	});
	
//:first-child, :last-childをクラスとして追加
	$(':first-child').addClass('firstChild');
	$(':last-child').addClass('lastChild');

//css3の:emptyをクラスとして追加
	$(':empty').addClass('empty');


// ストライプTable
$(document).ready(function(){
	$(".section tr:even").addClass("even");
});





//////////////////////////////////////////////// jQuery以外

// inputフォーカス
var focuselements;
function set(obj){
	obj.style.backgroundColor = "#FFF5D6";
	obj.style.borderColor = "#AF4C4C";
	if(focuselements){
		focuselements.style.backgroundColor = "#FFFFFF";
		focuselements.style.borderColor = "#DDDDDD";
	}
	focuselements = obj;
}
function falsesubmit(obj){
	var flag;
	var movefocus;
	for(i=0;i<obj.length;i++){
		if(flag){
			movefocus = obj.elements[i];
			flag = 0;
		}
		if(obj.elements[i] == focuselements){
			flag = 1;
		}
	}
	movefocus.focus();
	return false;
}
